aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modern/src/common/localization.js8
-rw-r--r--web/load.js9
2 files changed, 15 insertions, 2 deletions
diff --git a/modern/src/common/localization.js b/modern/src/common/localization.js
index 94e089d5..8d176745 100644
--- a/modern/src/common/localization.js
+++ b/modern/src/common/localization.js
@@ -111,13 +111,19 @@ const supportedLanguages = {
const languages = window.navigator.languages !== undefined ? window.navigator.languages.slice() : [];
let language = window.navigator.userLanguage || window.navigator.language;
languages.push(language);
-languages.push(language.substr(0, 2));
+languages.push(language.substring(0, 2));
languages.push('en');
for (let i = 0; i < languages.length; i++) {
language = languages[i].replace('-', '_');
if (language in supportedLanguages) {
break;
}
+ if (language.length > 2) {
+ language = languages[i].substring(0, 2);
+ if (language in locale.languages) {
+ break;
+ }
+ }
}
const selectedLanguage = supportedLanguages[language];
diff --git a/web/load.js b/web/load.js
index 21a69af5..528b9652 100644
--- a/web/load.js
+++ b/web/load.js
@@ -98,7 +98,7 @@
languages = window.navigator.languages !== undefined ? window.navigator.languages.slice() : [];
language = window.navigator.userLanguage || window.navigator.language;
languages.push(language);
- languages.push(language.substr(0, 2));
+ languages.push(language.substring(0, 2));
languages.push(languageDefault);
for (i = 0; i < languages.length; i++) {
language = languages[i].replace('-', '_');
@@ -106,6 +106,13 @@
locale.language = language;
break;
}
+ if (language.length > 2) {
+ language = languages[i].substring(0, 2);
+ if (language in locale.languages) {
+ locale.language = language;
+ break;
+ }
+ }
}
}