aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/i18n.js27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/lib/i18n.js b/src/lib/i18n.js
index e0387fb4..2d44a767 100644
--- a/src/lib/i18n.js
+++ b/src/lib/i18n.js
@@ -9,7 +9,32 @@ function addLocale(localeCode) {
}
localeCodes.forEach(addLocale);
+// determine locale
+function pickLocale(navigatorLocale, availableLocales) {
+ // determine langugage part of locale
+ // (e.g. if navigatorLocale is 'en-US', languageCode is 'en')
+ let dashIndex = navigatorLocale ? navigatorLocale.indexOf("-") : -1;
+ let languageCode; // navigator locale without the regional part
+ if (dashIndex === -1) {
+ languageCode = navigatorLocale;
+ } else {
+ languageCode = navigatorLocale.slice(0, dashIndex);
+ }
+
+ // get locale
+ if (availableLocales.includes(navigatorLocale)) {
+ return navigatorLocale;
+ } else if (availableLocales.includes(languageCode)) {
+ return languageCode;
+ } else {
+ return null;
+ }
+}
+
+let initialLocale = pickLocale(getLocaleFromNavigator(), localeCodes);
+console.log("Selected locale '" + initialLocale + "'");
+
init({
fallbackLocale: 'en',
- initialLocale: getLocaleFromNavigator(),
+ initialLocale: initialLocale,
});