From 8e734aa347aa1889f04f2d66c08df8f753fba9f1 Mon Sep 17 00:00:00 2001 From: DrMint Date: Fri, 15 Apr 2022 17:40:57 +0200 Subject: [PATCH] Select the primary language according to routing --- next.config.js | 2 +- src/components/AppLayout.tsx | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/next.config.js b/next.config.js index 72deeb1..a847b98 100644 --- a/next.config.js +++ b/next.config.js @@ -2,7 +2,7 @@ /* CONFIG */ -const locales = ["en", "fr", "ja", "es", "pt-br"]; +const locales = ["en", "es", "fr", "pt-br", "ja"]; /* END CONFIG */ diff --git a/src/components/AppLayout.tsx b/src/components/AppLayout.tsx index a7f21aa..e1bfe66 100644 --- a/src/components/AppLayout.tsx +++ b/src/components/AppLayout.tsx @@ -85,6 +85,23 @@ export default function AppLayout(props: Props): JSX.Element { }); const [currencySelect, setCurrencySelect] = useState(-1); + let defaultPreferredLanguages: string[] = []; + + if (router.locale && router.locales) { + if (router.locale === "en") { + defaultPreferredLanguages = [router.locale]; + router.locales.map((locale) => { + if (locale !== router.locale) defaultPreferredLanguages.push(locale); + }); + } else { + defaultPreferredLanguages = [router.locale, "en"]; + router.locales.map((locale) => { + if (locale !== router.locale && locale !== "en") + defaultPreferredLanguages.push(locale); + }); + } + } + useEffect(() => { if (appLayout.currency) setCurrencySelect(currencyOptions.indexOf(appLayout.currency)); @@ -272,7 +289,7 @@ export default function AppLayout(props: Props): JSX.Element { ]) ) : new Map( - router.locales.map((locale) => [ + defaultPreferredLanguages.map((locale) => [ locale, prettyLanguage(locale, languages), ])