From 50ccae8b2736fa864ba6594fef2eb2b42838e201 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Mon, 23 Mar 2026 14:40:51 +0000 Subject: [PATCH] fix(i18n): preserve global locale state across provider updates --- packages/ui/src/lib/i18n/index.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/lib/i18n/index.tsx b/packages/ui/src/lib/i18n/index.tsx index de1d70ec..3a50885c 100644 --- a/packages/ui/src/lib/i18n/index.tsx +++ b/packages/ui/src/lib/i18n/index.tsx @@ -147,6 +147,8 @@ export const I18nProvider: ParentComponent = (props) => { const { preferences } = useConfig() const [detectedLocale, setDetectedLocale] = createSignal(globalLocale) const [resolvedLocale, setResolvedLocale] = createSignal(globalLocale) + const previousGlobalMessages = globalMessages + const previousGlobalLocale = globalLocale onMount(() => { const detected = detectNavigatorLocale() @@ -173,8 +175,8 @@ export const I18nProvider: ParentComponent = (props) => { if (cancelled) { return } - localeMessagesCache.set(nextLocale, loadedMessages) setResolvedLocale(nextLocale) + globalLocale = nextLocale globalMessages = loadedMessages setGlobalRevision((value) => value + 1) }) @@ -194,8 +196,8 @@ export const I18nProvider: ParentComponent = (props) => { }) onCleanup(() => { - globalMessages = enMessages - globalLocale = "en" + globalMessages = previousGlobalMessages + globalLocale = previousGlobalLocale setGlobalRevision((value) => value + 1) })