chatbot-ui/components/utility/home-redirector.tsx

37 lines
1.1 KiB
TypeScript

'use client'
import { useEffect } from 'react'
import { useRouter } from 'next/navigation'
import i18nConfig from '@/i18nConfig'
export default function HomeRedirector() {
const router = useRouter()
useEffect(() => {
const preferred = localStorage.getItem('preferred-language')
const currentPath = window.location.pathname
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}/`))
) {
const newPath = `/${preferred}${currentPath}`
console.log('[HomeRedirector] Redirecting to:', newPath)
router.replace(newPath)
} else {
console.log('[HomeRedirector] No redirection triggered')
}
}, [])
return null
}