From fb2acfd610202d2698e87466005fb44541db12b8 Mon Sep 17 00:00:00 2001 From: Ed Asriyan Date: Sat, 19 Oct 2024 10:52:10 -0700 Subject: [PATCH] Get locale from query params --- src/i18n/index.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/i18n/index.ts b/src/i18n/index.ts index 482e418..c085f6a 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -12,8 +12,19 @@ export const locales = { const fallbackLocale = 'en'; const localStorageKey = 'locale'; +const getLocaleFromQuery = function() { + const params = new URLSearchParams(location.search); + const lang = params.get('lang'); + if (lang) { + params.delete('lang'); + const newUrl = `${location.pathname}?${params.toString()}`; + history.replaceState(null, '', newUrl); + } + return lang; +}; + const getLocale = function() { - const lang = localStorage.getItem(localStorageKey) || getLocaleFromNavigator(); + const lang = getLocaleFromQuery() || localStorage.getItem(localStorageKey) || getLocaleFromNavigator(); if (locales[lang]) { return lang; }