ソースを参照

fix(admin-ui): Fix app crash when user has unknown locale

Fixes #3362
Michael Bromley 10 ヶ月 前
コミット
a4c1de22d1
1 ファイル変更8 行追加8 行削除
  1. 8 8
      packages/admin-ui/src/lib/core/src/core.module.ts

+ 8 - 8
packages/admin-ui/src/lib/core/src/core.module.ts

@@ -92,17 +92,17 @@ export class CoreModule {
             );
         }
 
-        if (!!defaultLocale && !availableLocales.includes(defaultLocale)) {
-            throw new Error(
-                `The defaultLocale "${defaultLocale}" must be one of the availableLocales [${availableLocales
-                    .map(l => `"${l}"`)
-                    .join(', ')}]`,
-            );
-        }
-
         const uiLanguage =
             lastLanguage && availableLanguages.includes(lastLanguage) ? lastLanguage : defaultLanguage;
 
+        // The locale detected from the `navigator.language` API might not be one of the
+        // "available" locales. In this case, we should still allow the app to load
+        // and add the detected locale to the available options.
+        if (defaultLocale && !availableLocales.includes(defaultLocale)) {
+            console.info(`Adding default locale ${defaultLocale} to the list of available locales`);
+            availableLocales.unshift(defaultLocale);
+        }
+
         this.localStorageService.set('uiLanguageCode', uiLanguage);
 
         this.i18nService.setLanguage(uiLanguage);