javascript - 如何强制 Next.js 始终重定向到首选用户语言?
问题描述
目前,Next.js 仅从根目录重定向到用户的语言,因此“/”变为“/fr-FR”。但是如果用户访问例如“/profile”路由,它不会将他重定向到“/fr-FR/profile”。
有没有办法强制 Next 进行这些类型的重定向?
解决方案
默认情况下,Next.js 会根据Accept-Language
页面请求中发送的标头自动检测用户的首选语言环境。
要从此标头覆盖区域设置,您可以使用NEXT_LOCALE
cookie。
可以使用语言切换器设置此 cookie,然后当用户返回站点时,它将在重定向
/
到正确的语言环境位置时利用 cookie 中指定的语言环境。
在您的情况下,即使用户en
在其Accept-Language
标题中具有区域设置但NEXT_LOCALE=fr-FR
设置了 cookie,那么在访问/profile
用户时将被重定向到,/fr-FR/profile
直到 cookie 被删除或过期。
检查在 cookie/localSession中存储选定的语言选项以获取有关如何存储NEXT_LOCALE
cookie 的示例。
推荐阅读
- python - Plotly 打包没有名为“重试”的模块
- powershell - 在 PowerShell 中哪种方式更好,为什么
- magento - 如何在其他自定义模块的模型文件中调用块函数?
- c++ - 将 char 数组转换为 uint16_t 数组 C/C++
- c++ - 素数算法给出运行时错误
- javascript - 使用 APEX.SERVER.PROCESS 检查状态更新
- swift - URL(fileURLWithPath: isDirectory:) MacOSX 10.15 Catalina, swift 5.2.2 下的分段错误
- google-apps-script - Google Sheets script general mechanics
- templates - VS Code 等文本编辑器中带有预定义用户模板的新文件
- azure - Azure 应用程序网关背后的 Azure 应用服务