【发布时间】:2021-09-13 14:43:05
【问题描述】:
我目前正在使用 Next.js 中的无头 WordPress 网站。我在国际化路由方面有点挣扎。 我有 2 个与此问题相关的主页文件:
pages/[...slug].tsx
在这个文件中,我使用 getStaticPaths 函数来获取 WordPress 数据库中所有页面的 GraphQL 数据。
pages/[locale]/Blog/[...slug].tsx
在此文件中,我使用 getStaticPaths 函数为我的 WordPress 数据库中的所有博客文章获取 GraphQL 数据。
我在 next.config 文件中配置了这样的语言环境:
i18n: {
locales: ['da-DK', 'en-GB'],
defaultLocale: 'da-DK',
},
我很难找到一种方法来捕捉所有博客文章。使用我当前的文件结构,我将捕获所有带有如下 URL 的博客文章:
siteName/en/blog/page-name
但不是默认语言下的博客文章结构:
siteName/blog/page-name
我尝试使用 [[locale]] 但收到错误:
Error: Optional route parameters are not yet supported ("[[locale]]").
所以似乎只有包罗万象的路线才能成为可选路线。知道如何处理这样的事情吗?另一种方法可能是“加入”帖子和博客帖子的 2 个不同文件,然后在我需要对帖子或页面进行查询时使用一些条件逻辑进行排序。如果可能的话,我宁愿避免这种情况......
【问题讨论】:
-
您能否显示
getStaticPaths/getStaticProps中pages/[locale]/Blog/[...slug]路径的代码?您不需要自己处理[locale]路由,Next.js i18n 路由将为您完成。
标签: reactjs next.js next-i18next react-ssr