首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NextJS:是否可以将区域设置隐藏在URL中以进行本地化路由?

NextJS:是否可以将区域设置隐藏在URL中以进行本地化路由?
EN

Stack Overflow用户
提问于 2022-08-19 07:30:17
回答 1查看 395关注 0票数 0

问题

我想知道是否有任何方法可以为客户端提供相同的可见URL,同时能够处理国际化。

我的用例

  • ,我希望我的用户能够对页面进行通用访问,并将区域设置隐藏在URL路径中。如果用户与另一个用户共享链接,内容应该以当前用户打开页面的首选语言加载。
  • I使用getServerSideProps在服务器端获取本地化数据,并使用Cache-Control缓存结果5-10分钟。因此,将区域设置作为查询参数(?lang=en?lang=ca等)可能无法工作,因为对于不同的地区,缓存的结果应该是不同的。

我以前做过的事

  • 我的应用程序完全是用React编写的,现在我要转到Next.js了。我过去常常在像?lang=en这样的URL查询参数中传递区域设置。然后,我会将该区域设置存储在accordingly.
  • That中,用给定的区域设置发送API请求,并更改应用程序的外观complicated.

以使其正常工作,但现在我想使用服务器端呈现和请求缓存,这使事情更像complicated.。

这似乎是一个常见的用例。是否有任何方法可以在不显式更改URL的情况下处理国际化?或者一开始有一个URL,然后隐藏一些部分?任何一种想法/解决办法都会很感激的!

EN

回答 1

Stack Overflow用户

发布于 2022-08-20 22:15:14

我想得到一个类似的结果。到目前为止,我还没有找到摆脱url中本地部分的方法(我使用的是next-i18next)。但是,我设法用cookie和中间件处理了“内容必须以用户打开页面的首选语言加载”部分,包括以下内容

代码语言:javascript
复制
const url = request.nextUrl.clone();
url.locale = userPreferredLanguage;
url.pathname =
  request.nextUrl.pathname === '/'
    ? `/${userPreferredLanguage}`
    : `/${userPreferredLanguage}${request.nextUrl.pathname}`;
return NextResponse.redirect(url);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73413260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档