X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FThesaurus.cpp;h=4f4ad64d14aba691df74e59eb45445e20e76f261;hb=d2ec79beac9a539770ddf5a7010621ab629eace6;hp=b4655ac27f93e6290fc320ba928c37404c515a45;hpb=aafd52f44167d5510be1ddcb974daa9dae486933;p=lyx.git diff --git a/src/Thesaurus.cpp b/src/Thesaurus.cpp index b4655ac27f..4f4ad64d14 100644 --- a/src/Thesaurus.cpp +++ b/src/Thesaurus.cpp @@ -107,6 +107,11 @@ pair Thesaurus::Private::getThesaurus(string const & path, docstr for (FileNameList::const_iterator it = idx_files.begin(); it != idx_files.end(); ++it) { basename = it->onlyFileNameWithoutExt(); if (contains(basename, to_ascii(lang))) { + // do not use more specific dicts. + if (contains(basename, '_') && !contains(lang, '_')) + continue; + if (contains(basename, '-') && !contains(lang, '-')) + continue; ifstream ifs(it->absFileName().c_str()); if (ifs) { // check for appropriate version of index file @@ -128,8 +133,23 @@ pair Thesaurus::Private::getThesaurus(string const & path, docstr break; } } - if (idx.empty()) + if (idx.empty()) { + // try with a more general dictionary + docstring shortcode; + if (contains(lang, '_')) { + split(lang, shortcode, '_'); + LYXERR(Debug::FILES, "Did not find thesaurus for LANG code " + << lang << ". Trying with " << shortcode); + return getThesaurus(path, shortcode); + } + else if (contains(lang, '-')) { + split(lang, shortcode, '-'); + LYXERR(Debug::FILES, "Did not find thesaurus for LANG code " + << lang << ". Trying with " << shortcode); + return getThesaurus(path, shortcode); + } return make_pair(string(), string()); + } for (support::FileNameList::const_iterator it = data_files.begin(); it != data_files.end(); ++it) { if (contains(it->onlyFileName(), basename)) { data = it->absFileName();