我的changellanguage函数在生产中不工作。使用i18n的调试功能,我没有任何警告,更重要的是每次单击选择菜单时都能正确检测到语言更改。我在控制台上有log locale,它返回undefined有人能告诉我我做错了什么吗?请看下面我的changellanguage
const changeLanguage = (e) => {
const locale = e.target.value;
i18n.changeLanguage(locale);
router.push(router.pathname, router.asPath, { locale });
};
您不需要使用函数来更改区域设置。
对于nextjs,你有router()
,这完全适合任何情况。
同样,你有<Link>
与locale
属性。
第一种可能的方法-用URL更改区域设置。因此,您可以使用链接.map
您的区域设置,然后更改它。
<Link href='/test' locale={router.locale} key="your_key">
<a>test</a>
</Link>
2的方式,改变函数
router.push("/test", null, {locale: "your_desired_locale_or_variable"})
您的区域设置在您的config
文件中定义,可能您有en
区域设置而不是en-us