mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r2777) -Feature: When starting without a config file determine the language on basis of the current locale
This commit is contained in:
parent
d9d4e59438
commit
398301c7df
25
strings.c
25
strings.c
@ -1084,13 +1084,32 @@ void InitializeLanguagePacks(void)
|
||||
int n;
|
||||
int m;
|
||||
int def;
|
||||
int fallback;
|
||||
LanguagePack hdr;
|
||||
FILE *in;
|
||||
char *files[32];
|
||||
uint j;
|
||||
|
||||
char lang[] = "en";
|
||||
static const char* env[] = {
|
||||
"LANGUAGE",
|
||||
"LC_ALL",
|
||||
"LC_MESSAGES",
|
||||
"LANG"
|
||||
};
|
||||
|
||||
for (j = 0; j < lengthof(env); j++) {
|
||||
const char* envlang = getenv(env[j]);
|
||||
if (envlang != NULL) {
|
||||
snprintf(lang, lengthof(lang), "%.2s", envlang);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
n = GetLanguageList(files, lengthof(files));
|
||||
|
||||
def = 0; // default language file
|
||||
def = -1;
|
||||
fallback = 0;
|
||||
|
||||
// go through the language files and make sure that they are valid.
|
||||
for (i = m = 0; i != n; i++) {
|
||||
@ -1110,10 +1129,12 @@ void InitializeLanguagePacks(void)
|
||||
dl->ent[m].file = files[i];
|
||||
dl->ent[m].name = strdup(hdr.name);
|
||||
|
||||
if (strcmp(hdr.name, "English") == 0) def = m;
|
||||
if (strcmp(hdr.name, "English") == 0) fallback = m;
|
||||
if (strcmp(hdr.isocode, lang) == 0) def = m;
|
||||
|
||||
m++;
|
||||
}
|
||||
if (def == -1) def = fallback;
|
||||
|
||||
if (m == 0)
|
||||
error(n == 0 ? "No available language packs" : "Invalid version of language packs");
|
||||
|
Loading…
Reference in New Issue
Block a user