【问题标题】:Next Js dynamic i18n subfolderNext Js 动态 i18n 子文件夹
【发布时间】: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/getStaticPropspages/[locale]/Blog/[...slug] 路径的代码?您不需要自己处理[locale] 路由,Next.js i18n 路由将为您完成。

标签: reactjs next.js next-i18next react-ssr


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多