Next Js动态i18n子文件夹



我目前在Next.js中使用一个无头WordPress网站。我在国际化的路由方面有点困难。我有两个与这个问题相关的主页文件:

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]]").

因此,似乎只有"一网打尽"的路线才是可选的。知道如何处理这样的事情吗?另一种方法可以是"连接"帖子和博客文章的两个不同文件,然后使用一些条件逻辑来排序是否需要对帖子或页面进行查询。如果可能的话,我宁愿避免。。。

我最终使用了一些条件逻辑来确定我是否应该从CMS中获取博客文章或页面数据。我祈祷Optional route参数稍后将在Next.js中实现——这肯定是一个更灵活的解决方案。

最新更新