From 8634140306513d60c252142d5b8973da5196f5a0 Mon Sep 17 00:00:00 2001 From: bannert <58707896+bannert1337@users.noreply.github.com> Date: Mon, 1 Jul 2024 18:38:52 +0200 Subject: [PATCH] refactor: Remove changes to i18n/index.ts --- src/lib/i18n/index.ts | 56 +++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/src/lib/i18n/index.ts b/src/lib/i18n/index.ts index 265e0bd6f..172c42f91 100644 --- a/src/lib/i18n/index.ts +++ b/src/lib/i18n/index.ts @@ -1,6 +1,6 @@ import i18next from 'i18next'; -import LanguageDetector from 'i18next-browser-languagedetector'; import resourcesToBackend from 'i18next-resources-to-backend'; +import LanguageDetector from 'i18next-browser-languagedetector'; import type { i18n as i18nType } from 'i18next'; import { writable } from 'svelte/store'; @@ -37,32 +37,36 @@ const createIsLoadingStore = (i18n: i18nType) => { return isLoading; }; -export const initI18n = (defaultLocale?: string) => { - // Use object destructuring for cleaner code - const [defaultDetection, fallbackDetection] = defaultLocale ? ['querystring', 'localStorage'] : ['querystring', 'localStorage', 'navigator']; - - // Use nullish coalescing operator to simplify the ternary expression - const fallbackDefaultLocale = defaultLocale ?? 'en-US'; - - const loadResource = (language: string, namespace: string) => import(`./locales/${language}/${namespace}.json`); - +export const initI18n = (defaultLocale: string | undefined) => { + let detectionOrder = defaultLocale + ? ['querystring', 'localStorage'] + : ['querystring', 'localStorage', 'navigator']; + let fallbackDefaultLocale = defaultLocale ? [defaultLocale] : ['en-US']; + + const loadResource = (language: string, namespace: string) => + import(`./locales/${language}/${namespace}.json`); + i18next - .use(resourcesToBackend(loadResource)) - .use(LanguageDetector) - .init({ - debug: false, - detection: { - order: [defaultDetection, fallbackDetection], - caches: ['localStorage'], - lookupQuerystring: 'lang', - lookupLocalStorage: 'locale' - }, - fallbackLng: fallbackDefaultLocale, - ns: 'translation', - returnEmptyString: false, - interpolation: { escapeValue: false } - }); - }; + .use(resourcesToBackend(loadResource)) + .use(LanguageDetector) + .init({ + debug: false, + detection: { + order: detectionOrder, + caches: ['localStorage'], + lookupQuerystring: 'lang', + lookupLocalStorage: 'locale' + }, + fallbackLng: { + default: fallbackDefaultLocale + }, + ns: 'translation', + returnEmptyString: false, + interpolation: { + escapeValue: false // not needed for svelte as it escapes by default + } + }); +}; const i18n = createI18nStore(i18next); const isLoadingStore = createIsLoadingStore(i18next);