From 672575afa65ab006c2fe0cd7d5a47e131cddd8d1 Mon Sep 17 00:00:00 2001 From: Likhith Kolayari Date: Mon, 10 Jun 2024 15:20:00 +0400 Subject: [PATCH] chore: added support for config override --- src/utils/initialize-i18n.ts | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/utils/initialize-i18n.ts b/src/utils/initialize-i18n.ts index e8809dd..2b26991 100644 --- a/src/utils/initialize-i18n.ts +++ b/src/utils/initialize-i18n.ts @@ -1,29 +1,42 @@ -import i18next from "i18next"; +import i18next, { InitOptions } from "i18next"; import { str as crc32 } from "crc-32"; import { OtaSdk } from "@utils/index"; import { initReactI18next } from "react-i18next"; import { getInitialLanguage } from "@utils/index"; -const i18n_config = { +type TInstanceConfig = { + useSuspense?: Exclude["useSuspense"]; + enableDebug?: InitOptions["debug"]; +}; + +const setI18Config = ({ useSuspense, enableDebug }: TInstanceConfig) => ({ react: { hashTransKey(defaultValue: string) { return crc32(defaultValue); }, - useSuspense: true, + useSuspense, }, - debug: false, + debug: enableDebug, initImmediate: true, fallbackLng: "EN", interpolation: { escapeValue: false, }, -}; +}); -export default function initializeI18n({ cdnUrl }: { cdnUrl: string }) { +export default function initializeI18n({ + cdnUrl, + useSuspense = true, + enableDebug = false, +}: { + cdnUrl: string; +} & TInstanceConfig) { const module = new OtaSdk(cdnUrl); const initial_language = getInitialLanguage(); + const i18n_config = setI18Config({ useSuspense, enableDebug }); + i18next .use(module) .use(initReactI18next)