我有一个简单的项目,应该使用英语和荷兰语(默认)。我已经从原始示例中复制了所有内容,但不知何故它没有按预期工作。
即使我有browserLanguageDetection: false
,它也迫使我/en
结束。
我想显示 NL 文本,/
但目前我不能。
你能检查一下沙箱并告诉我这里有什么问题吗?
https://codesandbox.io/s/pensive-galileo-zifjm?file=/pages/index.js
我有一个简单的项目,应该使用英语和荷兰语(默认)。我已经从原始示例中复制了所有内容,但不知何故它没有按预期工作。
即使我有browserLanguageDetection: false
,它也迫使我/en
结束。
我想显示 NL 文本,/
但目前我不能。
你能检查一下沙箱并告诉我这里有什么问题吗?
https://codesandbox.io/s/pensive-galileo-zifjm?file=/pages/index.js
重要的是要知道在 Next.js 中,第一次加载总是在服务器端完成。在i18n.js
你已经定义 browserLanguageDetection: false
但你没有定义serverLanguageDetection: false
这就是为什么你总是被重定向到/en
在索引页面中,将此行替换为这一行 export default withTranslation('common')(IndexPage);
以export default withTranslation(['common'])(IndexPage);
避免出现此警告
文档中有解决方案。这是:https ://nextjs.org/docs/advanced-features/i18n-routing
正如我从文档中发现的那样,您应该声明localeDetection: false然后您应该声明自己的域路径。它会起作用的。
i18n: {
defaultLocale: 'en',
locales: ['en'],
localeDetection: false, // Important!
domains: [
{
domain: 'example.com', // <-
defaultLocale: 'en' // This locale will be appeared at the exact above domain.
},
{
// 2nd locale goes here in the same way.
}
]
}
我希望,它有帮助。