从 Next JS 动态路由中的 URL 中删除语言

mdu*_*bus 5 next.js next-i18next

我在 NextJS 中有一个带有 next-i18next 的网站,除了页面之外的每个页面都必须翻译legal

这些legal页面是 Markdown 格式的,并且由于[legal].js页面及其中的getStaticPaths和 ,我启用了动态路由。getStaticProps

问题是,通过构建我的网站,我的法律页面会以该语言为前缀(此处en)。我想删除它,因为我不想翻译这些页面。

我在这里做错了什么?

多谢

文件夹结构:

pages
|- index.js
|- [legal].js
|- privacy-policy.mdx

Run Code Online (Sandbox Code Playgroud)

下一个-i18next.config.js

pages
|- index.js
|- [legal].js
|- privacy-policy.mdx

Run Code Online (Sandbox Code Playgroud)

[法律].js

module.exports = {
  i18n: {
    defaultLocale: 'en',
    locales: ['en'],
    fallbackLng: 'en',
    defaultNS: ['homepage', 'header', 'footer'],
    localeDetection: false,
  },
}
Run Code Online (Sandbox Code Playgroud)

构建输出:

动态页面中的语言输出

sul*_*tan 0

所有静态 HTML 文件都应在每个区域设置的单独文件夹中创建。您的默认区域设置可以在 URL 中省略,以下 URL 是等效的:

example.com/my-first-blog
example.com/en/my-first-blog
Run Code Online (Sandbox Code Playgroud)

作为解决方案,您可以基于域设置应用程序 i18n:

example.com/my-first-blog
example.com/en/my-first-blog
Run Code Online (Sandbox Code Playgroud)

  • @mdubus 你找到解决这个问题的方法了吗?我面临着同样的问题 (3认同)