From 84bf92437864d471411567a7c4441a8bda42e41b Mon Sep 17 00:00:00 2001 From: kang Date: Mon, 25 May 2026 14:53:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(i18n):=20=E5=A2=9E=E5=BC=BA=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=AB=AF=E5=A4=9A=E8=AF=AD=E8=A8=80=E6=94=AF=E6=8C=81?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E8=AF=AD=E8=A8=80=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E4=B8=8E=E6=81=A2=E5=A4=8D=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/layout.tsx | 6 ++++++ src/components/providers.tsx | 22 +++++++++++++++++++--- src/i18n/index.ts | 32 ++++++++++++++++++++++++++++---- src/lib/admin-locale.ts | 5 +++-- 4 files changed, 56 insertions(+), 9 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 5fb6af2..78707c2 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -22,6 +22,9 @@ export const metadata: Metadata = { description: "Lottery administration console", }; +/** 在 React 水合前恢复 ``,避免刷新后先闪中文再切换 */ +const ADMIN_LOCALE_BOOTSTRAP = `(function(){try{var s=localStorage.getItem("lottery_admin_ui_locale");var m={zh:"zh-Hans",en:"en",ne:"ne"};if(s&&m[s])document.documentElement.lang=m[s];}catch(e){}})();`; + export default function RootLayout({ children, }: Readonly<{ @@ -33,6 +36,9 @@ export default function RootLayout({ suppressHydrationWarning className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`} > + +