包含所有语言环境的所有路线的404-具有next-i18next的NextJS

时间:2020-06-07 10:51:32

标签: reactjs localization next.js i18next next-i18next

嗨,我在这里关注文档:github docs

,但所有具有语言环境的URL均返回404。 例如:

  • localhost:3000 / de / second-page = 404
  • localhost:3000 / en / second-page = 404
  • localhost:3000 / de = 404
  • localhost:3000 / en = 404

    • 与默认语言环境相同。
  • localhost:3000 / second-page = 200

  • localhost:3000 = 200

我想这是因为示例中没有pages/de/second-page.js,但是如果该库不能解决问题,那么该库的目的是什么。

我进行了很多搜索,并且知道localSubpaths,但似乎不起作用:

module.exports = new NextI18Next({
otherLanguages: ['fr'],
//localeSubpaths: localeSubpathVariations[localeSubpaths],
localeSubpaths: {
    de: 'de',
    en: 'en',
  }
})

它在我的应用中不起作用,但在他们的示例中也不起作用:their sample

1 个答案:

答案 0 :(得分:0)

您检查了这两个步骤吗?

创建并导出NextI18Next实例后,您需要 采取以下步骤使一切正常运行:

在页面目录中创建一个_app.js文件,并将其包装为 NextI18Next.appWithTranslation高阶组件(HOC)。您 可以在examples / simple / pages / _app.js中看到这种方法。您的应用程式 组件必须扩展App(如果它是类组件)或定义一个 getInitialProps(如果它是功能组件)(在此处说明)。

如果要在根目录中创建next.config.js文件 使用语言环境子路径。您可以在 examples / simple / next.config.js(需要Next.js 9.5及更高版本)。

const { nextI18NextRewrites } = require('next-i18next/rewrites')

const localeSubpaths = {
  de: 'de',
  en: 'en',
};

module.exports = {
  rewrites: async () => nextI18NextRewrites(localeSubpaths),
  publicRuntimeConfig: {
    localeSubpaths,
  },
}