From 85cf4c1a92d2e4383e1390b95e4ce3bb81ac3f1c Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 17 Apr 2025 11:07:55 +0800 Subject: [PATCH] . --- components/ui/language-switcher.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/components/ui/language-switcher.tsx b/components/ui/language-switcher.tsx index 306303b..a6b82cc 100644 --- a/components/ui/language-switcher.tsx +++ b/components/ui/language-switcher.tsx @@ -25,19 +25,27 @@ export function LanguageSwitcher() { const handleChange = (e: React.ChangeEvent) => { const newLocale = e.target.value - // 保存用户选择 if (typeof window !== 'undefined') { localStorage.setItem('preferred-language', newLocale) } - // 替换语言部分的路径 + // 拆解当前路径 const segments = pathname.split('/') - segments[1] = newLocale + + // 如果路径前缀是语言码,则替换 + const isLocaleInPath = i18nConfig.locales.includes(segments[1]) + if (isLocaleInPath) { + segments[1] = newLocale + } else { + // 否则插入语言前缀 + segments.unshift(newLocale) + } + const newPath = segments.join('/') startTransition(() => { router.push(newPath) - router.refresh() + router.refresh() }) }