mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
Fix algorithm for finding localized files
Now we search in priority with the GUI language, and then the
language(s) specified in the LANGUAGES environment variable.
Preoviously, the GUI language would only be considered when
LANGUAGES was not set (which was a bug).
Take this opportunity to remove old compatibility code from 2007.
(cherry picked from commit e203bf519b
)
This commit is contained in:
parent
841f0fd3dd
commit
4c18a49c87
@ -357,25 +357,20 @@ FileName const libFileSearch(string const & dir, string const & name,
|
|||||||
FileName const i18nLibFileSearch(string const & dir, string const & name,
|
FileName const i18nLibFileSearch(string const & dir, string const & name,
|
||||||
string const & ext)
|
string const & ext)
|
||||||
{
|
{
|
||||||
/* The highest priority value is the `LANGUAGE' environment
|
// if the LANGUAGE variable is set, use it as a fallback for searching for files.
|
||||||
variable. But we don't use the value if the currently
|
|
||||||
selected locale is the C locale. This is a GNU extension.
|
|
||||||
|
|
||||||
Otherwise, w use a trick to guess what support/gettext.has done:
|
|
||||||
each po file is able to tell us its name. (JMarc)
|
|
||||||
*/
|
|
||||||
|
|
||||||
string lang = getGuiMessages().language();
|
string lang = getGuiMessages().language();
|
||||||
string const language = getEnv("LANGUAGE");
|
string const language = getEnv("LANGUAGE");
|
||||||
if (!lang.empty() && !language.empty())
|
if (!language.empty())
|
||||||
lang = language;
|
lang += ":" + language;
|
||||||
|
|
||||||
string l;
|
for (auto const & l : getVectorFromString(lang, ":")) {
|
||||||
lang = split(lang, l, ':');
|
|
||||||
while (!l.empty()) {
|
|
||||||
FileName tmp;
|
FileName tmp;
|
||||||
// First try with the full name
|
// First try with the full name
|
||||||
tmp = libFileSearch(addPath(dir, l), name, ext);
|
// `en' files are not in a subdirectory
|
||||||
|
if (l == "en")
|
||||||
|
tmp = libFileSearch(dir, name, ext);
|
||||||
|
else
|
||||||
|
tmp = libFileSearch(addPath(dir, l), name, ext);
|
||||||
if (!tmp.empty())
|
if (!tmp.empty())
|
||||||
return tmp;
|
return tmp;
|
||||||
|
|
||||||
@ -386,18 +381,6 @@ FileName const i18nLibFileSearch(string const & dir, string const & name,
|
|||||||
if (!tmp.empty())
|
if (!tmp.empty())
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1
|
|
||||||
// For compatibility, to be removed later (JMarc)
|
|
||||||
tmp = libFileSearch(dir, token(l, '_', 0) + '_' + name,
|
|
||||||
ext);
|
|
||||||
if (!tmp.empty()) {
|
|
||||||
lyxerr << "i18nLibFileSearch: File `" << tmp
|
|
||||||
<< "' has been found by the old method" <<endl;
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
lang = split(lang, l, ':');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return libFileSearch(dir, name, ext);
|
return libFileSearch(dir, name, ext);
|
||||||
|
@ -144,6 +144,9 @@ What's new
|
|||||||
|
|
||||||
- Expand environment variables when modifying the PATH prefix.
|
- Expand environment variables when modifying the PATH prefix.
|
||||||
|
|
||||||
|
- Fix language of Help documents when LyX UI language is different from
|
||||||
|
OS UI language.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* INTERNALS
|
* INTERNALS
|
||||||
|
Loading…
Reference in New Issue
Block a user