Next Js 动态 i18n 子文件夹

问题描述

我目前正在 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',},

我很难找到一种方法来捕捉所有的博客文章。使用我当前的文件结构,我将使用以下网址捕获所有博客文章

siteName/en/blog/page-name

但不是具有结构的认语言下的博客文章

siteName/blog/page-name

我尝试使用 [[locale]] 但出现错误

Error: Optional route parameters are not yet supported ("[[locale]]").

所以似乎只有包罗万象的路由可以成为可选的。知道如何处理这样的事情吗?另一种方法是“加入”帖子和博客帖子的 2 个不同文件,然后使用一些条件逻辑来排序是否需要对帖子或页面进行查询。如果可能的话,我宁愿避免这种情况...

解决方法

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...