diff --git a/components/utility/home-redirector.tsx b/components/utility/home-redirector.tsx index 82b16f8..41fe1b8 100644 --- a/components/utility/home-redirector.tsx +++ b/components/utility/home-redirector.tsx @@ -4,6 +4,11 @@ import { useEffect } from 'react' import { useRouter } from 'next/navigation' import i18nConfig from '@/i18nConfig' +const isValidLocale = (locale: string): boolean => { + const localeList = [...i18nConfig.locales] as string[] + return localeList.includes(locale) +} + export default function HomeRedirector() { const router = useRouter() @@ -11,24 +16,19 @@ export default function HomeRedirector() { const preferred = localStorage.getItem('preferred-language') const currentPath = window.location.pathname + console.log('[HomeRedirector] preferred:', preferred) console.log('[HomeRedirector] currentPath:', currentPath) - console.log('[HomeRedirector] preferred-language from storage:', preferred) - const isValidLocale = (lang: string) => - (i18nConfig.locales as string[]).includes(lang) - - // 若路径中已经有 locale 前缀,或 preferred 为空 / 非法,跳过 if ( preferred && isValidLocale(preferred) && - !currentPath.startsWith(`/${preferred}/`) && - !i18nConfig.locales.some(locale => currentPath.startsWith(`/${locale}/`)) + !currentPath.startsWith(`/${preferred}/`) ) { const newPath = `/${preferred}${currentPath}` console.log('[HomeRedirector] Redirecting to:', newPath) router.replace(newPath) } else { - console.log('[HomeRedirector] No redirection triggered') + console.log('[HomeRedirector] No redirect needed.') } }, [])