From ede185504c0257910da12d7c026e5c5059898d80 Mon Sep 17 00:00:00 2001 From: Lorenzo Tanganelli Date: Wed, 29 Mar 2023 16:49:32 +0200 Subject: [PATCH] fix js error in case of locale not exists --- awx/ui/src/App.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/awx/ui/src/App.js b/awx/ui/src/App.js index 21ca5a0b4f..dfe6f34e61 100644 --- a/awx/ui/src/App.js +++ b/awx/ui/src/App.js @@ -28,7 +28,7 @@ import { getLanguageWithoutRegionCode } from 'util/language'; import Metrics from 'screens/Metrics'; import SubscriptionEdit from 'screens/Setting/Subscription/SubscriptionEdit'; import useTitle from 'hooks/useTitle'; -import { dynamicActivate } from './i18nLoader'; +import { dynamicActivate, locales } from './i18nLoader'; import getRouteConfig from './routeConfig'; import { SESSION_REDIRECT_URL } from './constants'; @@ -142,9 +142,15 @@ function App() { const searchParams = Object.fromEntries(new URLSearchParams(search)); const pseudolocalization = searchParams.pseudolocalization === 'true' || false; - const language = + let language = searchParams.lang || getLanguageWithoutRegionCode(navigator) || 'en'; + if (!Object.keys(locales).includes(language)) { + // If there isn't a string catalog available for the browser's + // preferred language, default to one that has strings. + language = 'en'; + } + useEffect(() => { dynamicActivate(language, pseudolocalization); }, [language, pseudolocalization]);