From 1e03a55acdb1e80b747d0604d698f4cbef97ace1 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 10 Feb 2026 07:47:05 -0600 Subject: fix(app): persist defensiveness (#12973) --- packages/desktop/src/i18n/index.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'packages/desktop/src/i18n') diff --git a/packages/desktop/src/i18n/index.ts b/packages/desktop/src/i18n/index.ts index 376769e28..7b1ebfe69 100644 --- a/packages/desktop/src/i18n/index.ts +++ b/packages/desktop/src/i18n/index.ts @@ -116,6 +116,15 @@ function parseRecord(value: unknown) { return value as Record } +function parseStored(value: unknown) { + if (typeof value !== "string") return value + try { + return JSON.parse(value) as unknown + } catch { + return value + } +} + function pickLocale(value: unknown): Locale | null { const direct = parseLocale(value) if (direct) return direct @@ -169,7 +178,7 @@ export function initI18n(): Promise { if (!store) return state.locale const raw = await store.get("language").catch(() => null) - const value = typeof raw === "string" ? JSON.parse(raw) : raw + const value = parseStored(raw) const next = pickLocale(value) ?? state.locale state.locale = next -- cgit v1.2.3