问题
我想知道是否有任何方法可以为客户端提供相同的可见URL,同时能够处理国际化。
我的用例
getServerSideProps在服务器端获取本地化数据,并使用Cache-Control缓存结果5-10分钟。因此,将区域设置作为查询参数(?lang=en、?lang=ca等)可能无法工作,因为对于不同的地区,缓存的结果应该是不同的。我以前做过的事
?lang=en这样的URL查询参数中传递区域设置。然后,我会将该区域设置存储在accordingly.以使其正常工作,但现在我想使用服务器端呈现和请求缓存,这使事情更像complicated.。
这似乎是一个常见的用例。是否有任何方法可以在不显式更改URL的情况下处理国际化?或者一开始有一个URL,然后隐藏一些部分?任何一种想法/解决办法都会很感激的!
发布于 2022-08-20 22:15:14
我想得到一个类似的结果。到目前为止,我还没有找到摆脱url中本地部分的方法(我使用的是next-i18next)。但是,我设法用cookie和中间件处理了“内容必须以用户打开页面的首选语言加载”部分,包括以下内容
const url = request.nextUrl.clone();
url.locale = userPreferredLanguage;
url.pathname =
request.nextUrl.pathname === '/'
? `/${userPreferredLanguage}`
: `/${userPreferredLanguage}${request.nextUrl.pathname}`;
return NextResponse.redirect(url);https://stackoverflow.com/questions/73413260
复制相似问题