Next.js 本地化路由不适用于动态路由

问题描述 投票:0回答:0

我有一个 Next 应用程序,它只有两条路线:

index.tsx
[slug].tsx
。 slug 路由使用
getStaticProps
getStaticPaths
从 CMS 获取页面。

我通过将其添加到我的

next.config.js
中启用了国际化路由:

i18n: {
  locales: ["en", "fr"],
  defaultLocale: "en",
}

index
路线工作正常,如果我去
/
Accept-Language
标题为
fr-FR
我被重定向到
/fr
子路线。不起作用的是动态路线
[slug].tsx
。如果我直接使用它,它不会将我重定向到 fr 语言环境版本。并在
getStaticProps
中打印我的语言环境显示默认的
en
语言环境,而不是从我的
Accept-Language
标题计算的语言环境。

我知道人们通常会忘记在

getStaticPaths
中生成区域设置路径,我不认为这是问题所在,这是我生成它们的方式:

const paths = locales
  .map((locale) => posts.map((p) => ({ params: { slug: c.id }, locale })))
  .flat();

// { params: { slug: "post1" }, locale: "en" }
// { params: { slug: "post1" }, locale: "fr" }

知道出了什么问题吗?谢谢!

javascript reactjs next.js i18next
© www.soinside.com 2019 - 2024. All rights reserved.