From e9adaab7a63482e62a288ed7fb72500aba7ccacb Mon Sep 17 00:00:00 2001 From: Xinmin Zeng <135568692+fancyboi999@users.noreply.github.com> Date: Fri, 27 Feb 2026 08:10:38 +0800 Subject: [PATCH] fix(i18n): normalize locale and prevent undefined translations (#914) * fix(i18n): guard locale input and add safe translation fallback * refactor(i18n): isolate locale utils and normalize server cookie decode --------- Co-authored-by: Willem Jiang --- .../settings/appearance-settings-page.tsx | 8 +++-- frontend/src/core/i18n/hooks.ts | 27 ++++++++++---- frontend/src/core/i18n/index.ts | 28 +++++---------- frontend/src/core/i18n/locale.ts | 36 +++++++++++++++++++ frontend/src/core/i18n/server.ts | 14 ++++++-- 5 files changed, 81 insertions(+), 32 deletions(-) create mode 100644 frontend/src/core/i18n/locale.ts diff --git a/frontend/src/components/workspace/settings/appearance-settings-page.tsx b/frontend/src/components/workspace/settings/appearance-settings-page.tsx index 125fdae..2e76d68 100644 --- a/frontend/src/components/workspace/settings/appearance-settings-page.tsx +++ b/frontend/src/components/workspace/settings/appearance-settings-page.tsx @@ -12,7 +12,7 @@ import { SelectValue, } from "@/components/ui/select"; import { Separator } from "@/components/ui/separator"; -import { enUS, zhCN, type Locale } from "@/core/i18n"; +import { enUS, isLocale, zhCN, type Locale } from "@/core/i18n"; import { useI18n } from "@/core/i18n/hooks"; import { cn } from "@/lib/utils"; @@ -89,7 +89,11 @@ export function AppearanceSettingsPage() { >