问题标签 [next-i18next]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
623 浏览

next.js - Next.js 与 i18n 错误:警告:文本内容不匹配。服务器:“”客户端:“fr”

我们在加载时收到此错误。

应用程序首先在 URL 处加载,http://localhost:3000/然后当我们切换到 ex: french 时,我们得到http://localhost:3000/fr,但是当我们再次将语言切换到 ex:deutsch 时,我们得到http://localhost:3000/de/fr等等。新选择的语言路径插入在第一个选择的语言和根 URL 之间。

此外,如果我们直接转到 ex:http://localhost:3000/fr我们以正确的语言登陆正确的页面。

0 投票
1 回答
374 浏览

next.js - 访问页面/组件之外的 next-i18next 翻译

我正在使用 Typescript 构建 Next.JS 应用程序,并希望访问页面/组件之外的 next-i18next 翻译,以便本地化验证消息,而所有验证引擎都在单独的实用程序类中定义。已经检查了 next-i18next 是否有任何类型的静态访问器,但那里没有运气。有什么建议么?

0 投票
1 回答
65 浏览

typescript - 在 Next _app.tsx 中导出超过 1 个默认值

我遇到了这种棘手的情况,我需要“在我的 Next _app 文件中导出 2 个默认值(使用打字稿)。

我开始为 Redux 导出它,我在我的应用程序中使用它

但是现在我需要使用 next-i18next 翻译我的应用程序,我在其中导入 appWithTranslation 并且还需要将其导出

是否有可能以某种方式有 2 个导出默认值?

0 投票
1 回答
2445 浏览

next.js - 带有 next-rewrite 的 next-i18next 不适用于根页面重写路径

我们有一个现有的应用程序,默认情况下将根目录"/"重定向到该应用程序。"/search"它通过我们的next-redirects.js文件运行良好:

我必须使用 实现对应用程序的翻译next-i18next,这样我们就可以使用 NextJS 开箱即用地翻译文本 + 路由。我已按照next-i8next docs中的步骤进行操作。我将next-i18next.config.js文件添加为:

next.config 看起来像:

根据 nextJS 文档,我们有一个使用 HOC 包装的自定义_app文件,并使用 getInitialProps 进行设置:appWithTranslation

我们有我们的_document文件来处理一些情感主题:

此时,重定向逻辑应继续导航到search设置如下的页面:

根据所有页面级文件的需要,搜索页面具有getStaticPaths&getStaticProps功能,每个next-i18next.

为什么此设置不再适用于重定向?

  • 终端中没有错误。
  • 网络选项卡404在根路由上显示错误"/" 在此处输入图像描述

这意味着重写不起作用。但是 i18n 怎么办?

它是 _app 或 _document 文件中的内容吗?

  • 如果我/search直接导​​航到,它加载得很好,所以页面路由似乎没问题。

其他注意事项:

  • NextJS"next": "^10.0.2",
  • 下一个-i18下一个"next-i18next": "^7.0.1",
0 投票
0 回答
45 浏览

javascript - 在数据文件中使用 next-i18next 翻译

next-i18next在 Next.js 应用程序中使用库进行翻译。

它被设计为使用大量数据文件,这些文件导出原始数组和对象。现在,我不确定如何将我的翻译放在那里。

让我们考虑这个简化的例子:

我将此文件导入我的模板并显示它:

在现实生活中,这些数据文件要复杂得多,调整模板以使用那里的翻译将需要很长时间。此外,模板中的许多组件使用这些文件中的数据作为动态属性。因此,为了避免这种重构噩梦,我想做这样的事情:

当然不能这样做,因为钩子不能在功能组件之外使用。有没有办法在像这样的原始 JavaScript 文件中使用翻译?

0 投票
1 回答
2735 浏览

javascript - 如何使用 nextJs 和 next-i18next 像 URL 别名一样本地化路由?

我使用NextJs10.0.5 和next-i18next8.1.0 来本地化我的应用程序。众所周知nextJs,10 具有用于国际化路由的子路径路由。另外,我需要按语言更改页面名称。例如,我contact-us在 pages 文件夹中有一个文件。当我将语言更改为土耳其语时,我必须使用localhost:3000/tr/contact-us. 但是,当语言是土耳其语时,我想用来localhost:3000/bize-ulasin访问该页面。contact-us所以有两个 URL,只有一个页面文件。

当我在 server.js 文件中使用带有 express js 的自定义路由时,它可以工作。但是,当我想访问文件中getStaticProps函数内的“语言环境”变量时contact-us,我无法访问它。当我使用URL时,该getStaticProps函数返回未定义的“语言环境”变量。localhost:3000/bize-ulasin

服务器.js

/pages/联系我们的文件

如何使用 getStaticProps 访问“语言环境”变量?或者,如何将以下 URL 用于相同的页面文件?

0 投票
1 回答
841 浏览

javascript - i18next 插值中的 React 组件显示为 [object Object]

我的 React 应用程序使用next-i18next包。我想在我的插值中加入一些 React 组件:

并且reviews.json

尝试使用 JSX 元素填充插值无法按预期工作。我得到的结果是:

作者:[object Object],保留所有权利

我也尝试使用 未转义插值By {{- author}}, all rights reserved,但结果相同。

我可以使用 JSX 元素来填充我的插值吗?

0 投票
1 回答
2305 浏览

reactjs - 如何在 nextjs 应用程序的动态路由页面上添加 next-i18next 翻译?

我在 Nextjs (v10.1.3) /my-translation/[id]中有一个动态路由页面,我想使用 next-i18next (v8.1.3) 包来翻译这个页面。

我尝试在 Nextjs 中使用 2 个文件夹结构,它们都给出了我无法理解的相同错误。

  • pages/translated-page/[id]/index.tsx
  • pages/translated-page/[id].tsx

但是,如果我将动态路由更改为静态,翻译就可以了。

工作文件夹结构示例:

  • 页面/翻译页面/id.tsx

我收到以下动态路线的错误,我无法从提供的链接中了解我做错了什么。

服务器错误错误:动态 SSG 页面需要 getStaticPaths,而“/translated-page/[id]”缺少 getStaticPaths。阅读更多: https ://nextjs.org/docs/messages/invalid-getstaticpaths-value生成页面时发生此错误。任何控制台日志都将显示在终端窗口中。调用堆栈 renderToHTML file:///C:/projects/my-project.io/web-apps/my-project/node_modules/next/dist/next-server/server/render.js (21:2118) file:/ //C:/projects/my-project.io/web-apps/my-project/node_modules/next/dist/next-server/server/next-server.js (112:126) __wrapper file:///C :/projects/my-project.io/web-apps/my-project/node_modules/next/dist/lib/coalesced-function.js (1:341) file:///C:/projects/my-project. io/web-apps/my-project/node_modules/next/dist/lib/coalesced-function.js (1:377) DevServer.renderToHTMLWithComponents file:///C:/projects/my-project.io/web-apps /my-project/node_modules/next/dist/next-server/server/next-server.js (137:120) runMicrotasks processTicksAndRejections internal/process/task_queues.js (93:5) async DevServer。

我通过添加getStaticPaths函数让它工作了

0 投票
0 回答
105 浏览

reactjs - next-i18next 在构建期间使用了错误的资源集

我有一个使用子路径路由的具有 4 个语言环境的应用程序。在开发期间它工作得很好,但在构建期间使用了错误的语言环境集。它会导致页面加载时翻译不正确,然后转向更正导致闪烁的页面。这发生在本地和生产中(我使用 vercel)。而且它不依赖于活动子路径(我在 example.com、example.com/fr 等上获得随机页面版本)。

我的next-i18next.config.js

getStaticPropssrc/pages/index.tsx

然后是我src/pages/index.tsx自己

src/components/Navbar

现在,当我进行下一次构建时,我会按以下顺序收到消息:

我现在在这个问题上苦苦挣扎了几天,找不到任何可能导致这个问题的东西。任何想法我做错了什么?

0 投票
2 回答
3148 浏览

jestjs - next-i18next 使用 useTranslation 进行 Jest 测试

测试库...总是很有趣。我next-i18next在我的 NextJS 项目中使用。我们正在使用useTranslation带有命名空间的钩子。

当我运行测试时,会出现警告:

console.warn react-i18next:: 你需要使用 initReactI18next 传入一个 i18next 实例


我已经尝试了react-i18next 测试示例中的设置,但没有成功。我也试过这个建议

以及只是试图模拟useTranslation而没有成功。

是否有更直接的解决方案来避免此警告?测试通过了 FWIW...

最后,有没有办法让翻译后的纯文本成为结果,而不是命名空间:account:account:organization.invite.copyLink