aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorAdrien Hopkins <[email protected]>2022-07-29 13:56:46 -0500
committerAdrien Hopkins <[email protected]>2022-07-29 13:56:46 -0500
commit3f38c4419d6b9264ab6489c4af84662ab3049387 (patch)
treec1867f126f192cc9ab4adbe7cd921796ca4f5f86 /src/lib
parent5f4be6b589eb53be7a15433daaa5d1e9036b9509 (diff)
downloadcoinos-ui-3f38c4419d6b9264ab6489c4af84662ab3049387.tar.gz
coinos-ui-3f38c4419d6b9264ab6489c4af84662ab3049387.zip
If regional locale not found, uses language locale instead
(e.g. uses en if en-US is not available)
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,
});