From 6ed20feda81ec1e3c2f9818b1ef3c45d3e15ae77 Mon Sep 17 00:00:00 2001 From: hailin Date: Fri, 18 Apr 2025 09:29:40 +0800 Subject: [PATCH] . --- components/utility/home-redirector.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/components/utility/home-redirector.tsx b/components/utility/home-redirector.tsx index 7836539..476d0cc 100644 --- a/components/utility/home-redirector.tsx +++ b/components/utility/home-redirector.tsx @@ -3,6 +3,7 @@ import { useEffect } from 'react' import { useRouter } from 'next/navigation' import i18nConfig from '@/i18nConfig' +import { useTranslation } from 'react-i18next' // 引入 useTranslation const isValidLocale = (locale: string): locale is (typeof i18nConfig.locales)[number] => { return (i18nConfig.locales as readonly string[]).includes(locale) @@ -10,6 +11,7 @@ const isValidLocale = (locale: string): locale is (typeof i18nConfig.locales)[nu export default function HomeRedirector() { const router = useRouter() + const { i18n } = useTranslation() // 获取 i18n 实例 useEffect(() => { const preferred = localStorage.getItem('preferred-language') @@ -25,6 +27,9 @@ export default function HomeRedirector() { // ✅ 同步写入 cookie document.cookie = `preferred-language=${preferred}; path=/; max-age=31536000` // 1 年 + + // 修改 i18n 中的语言 + i18n.changeLanguage(preferred) // 更新 i18n 的 locale const pathLocale = currentPath.split('/')[1] const hasLocaleInPath = isValidLocale(pathLocale)