0

我有一个简单的项目,应该使用英语和荷兰语(默认)。我已经从原始示例中复制了所有内容,但不知何故它没有按预期工作。

即使我有browserLanguageDetection: false,它也迫使我/en结束。

我想显示 NL 文本,/但目前我不能。

你能检查一下沙箱并告诉我这里有什么问题吗?

https://codesandbox.io/s/pensive-galileo-zifjm?file=/pages/index.js

4

2 回答 2

1

重要的是要知道在 Next.js 中,第一次加载总是在服务器端完成。在i18n.js你已经定义 browserLanguageDetection: false但你没有定义serverLanguageDetection: false这就是为什么你总是被重定向到/en

在索引页面中,将此行替换为这一行 export default withTranslation('common')(IndexPage);export default withTranslation(['common'])(IndexPage); 避免出现此警告

于 2020-11-13T22:59:20.937 回答
0

文档中有解决方案。这是: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.
  }
 ]
}

我希望,它有帮助。

于 2021-05-03T12:03:42.440 回答