Next.JS 中的 context.locale 有问题。我有一个动态路线(页面/歌曲/[id])
如果我通过在浏览器中输入地址并按 Enter 键直接进入类似 /de/song/exampleSong 的页面,则本地是正确的并且页面会以正确的语言显示。
但是,如果在网站的另一个页面中我有一个链接或者我做了 router.push,那么首先将此页面放在动态路由下总是由 Next 给出区域设置,就像在 i18n (next.config.js) 中一样即使浏览器中显示的地址具有正确的区域设置 (/de/song/....),也会定义 defaultLocale。我是否在页面上点击重新加载,然后反应应用程序中的区域设置再次正确。当我在中间件中执行 console.log 时,始终会正确检测到区域设置。然而,在实际的应用程序中,区域设置有时是错误的。
我正在使用:
"next": "^13.3.0",
"next-intl": "^2.19.1",
"react": "^18.2.0",
"react-click-away-listener": "^2.2.3",
"react-dom": "^18.2.0",
"react-gtm-module": "^2.0.11"
我目前还没有解决办法。我尝试了 Next.js 的其他版本,但没有帮助。这似乎是 13.0.0 以来的一个错误
对于遇到同样问题的人,只需升级
next-intl
到3.4.2
即可解决问题