首页 > 解决方案 > 如何强制 Next.js 始终重定向到首选用户语言?

问题描述

目前,Next.js 仅从根目录重定向到用户的语言,因此“/”变为“/fr-FR”。但是如果用户访问例如“/profile”路由,它不会将他重定向到“/fr-FR/profile”。

有没有办法强制 Next 进行这些类型的重定向?

标签: javascriptinternationalizationnext.jsi18next

解决方案


默认情况下,Next.js 会根据Accept-Language页面请求中发送的标头自动检测用户的首选语言环境。

要从此标头覆盖区域设置,您可以使用NEXT_LOCALEcookie

可以使用语言切换器设置此 cookie,然后当用户返回站点时,它将在重定向/到正确的语言环境位置时利用 cookie 中指定的语言环境。

在您的情况下,即使用户en在其Accept-Language标题中具有区域设置但NEXT_LOCALE=fr-FR设置了 cookie,那么在访问/profile用户时将被重定向到,/fr-FR/profile直到 cookie 被删除或过期。


检查在 cookie/localSession中存储选定的语言选项以获取有关如何存储NEXT_LOCALEcookie 的示例。


推荐阅读