From acfcffa60d6e685b4d69e65ac0255dbb72b8eafc Mon Sep 17 00:00:00 2001 From: eafonyang Date: Wed, 21 Oct 2026 13:38:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(locale):=20=E5=AE=9E=E7=8E=B0=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E5=A4=9A=E8=AF=AD=E8=A8=80=E8=A6=86=E7=9B=96=E4=B8=8E?= =?UTF-8?q?=E7=94=9F=E6=95=88=E8=AF=AD=E8=A8=80=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 effectiveLanguage 字段,统一界面语言解析依据 - 支持前端语言覆盖(德语/西班牙语/法语)优先显示,回退设备语言 - setUiLanguage 方法实现前端或设备语言切换逻辑与持久化 - 当设备语言发生变化时自动清除前端语言覆盖,保证同步一致 - BottomNav 组件和 ConnectionPlaceholder 组件调整使用 effectiveLanguage 获取语言包 - 多语言数据更新,新增德语、西班牙语、法语、韩语支持及语言选项扩展 --- client/src/components/BottomNav.tsx | 6 +- .../src/components/ConnectionPlaceholder.tsx | 20 +- client/src/contexts/DeviceContext.tsx | 52 ++ client/src/locales/data-de.json | 7 +- client/src/locales/data-en.json | 7 +- client/src/locales/data-es.json | 7 +- client/src/locales/data-fr.json | 7 +- client/src/locales/data-ko.json | 719 ++++++++++++++++++ client/src/locales/data-pl.json | 719 ++++++++++++++++++ client/src/locales/data-pt.json | 719 ++++++++++++++++++ client/src/locales/data-vi.json | 719 ++++++++++++++++++ client/src/locales/data-zh-HK.json | 7 +- client/src/locales/data-zh.json | 7 +- client/src/locales/resolveLocale.ts | 112 ++- client/src/pages/AIPage.tsx | 6 +- client/src/pages/AudioPage.tsx | 4 +- client/src/pages/ChangelogPage.tsx | 6 +- client/src/pages/EQPage.tsx | 9 +- client/src/pages/EffectsPage.tsx | 10 +- client/src/pages/Home.tsx | 11 +- client/src/pages/IOPage.tsx | 6 +- client/src/pages/SelectPage.tsx | 20 +- client/src/pages/SystemPage.tsx | 29 +- client/src/pages/VUPage.tsx | 6 +- 24 files changed, 3136 insertions(+), 79 deletions(-) create mode 100644 client/src/locales/data-ko.json create mode 100644 client/src/locales/data-pl.json create mode 100644 client/src/locales/data-pt.json create mode 100644 client/src/locales/data-vi.json diff --git a/client/src/components/BottomNav.tsx b/client/src/components/BottomNav.tsx index e9eccd6..4c1bd30 100644 --- a/client/src/components/BottomNav.tsx +++ b/client/src/components/BottomNav.tsx @@ -99,7 +99,7 @@ export default function BottomNav() { const [location, setLocation] = useLocation(); const isLgUp = useIsLgUp(); const { open: aiDrawerOpen, setOpen: setAiDrawerOpen } = useAIDrawer(); - const { deviceState } = useDevice(); + const { effectiveLanguage } = useDevice(); const { isNavHidden } = useNavConfig(); const festival = useFestival(); @@ -110,9 +110,9 @@ export default function BottomNav() { ); const navText = useMemo((): BottomNavLocale => { - const pack = resolveLocalePack(deviceState?.language); + const pack = resolveLocalePack(effectiveLanguage); return (pack.bottomNav ?? localeEn.bottomNav) as BottomNavLocale; - }, [deviceState?.language]); + }, [effectiveLanguage]); return (