问题标签 [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.
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
我们以正确的语言登陆正确的页面。
next.js - 访问页面/组件之外的 next-i18next 翻译
我正在使用 Typescript 构建 Next.JS 应用程序,并希望访问页面/组件之外的 next-i18next 翻译,以便本地化验证消息,而所有验证引擎都在单独的实用程序类中定义。已经检查了 next-i18next 是否有任何类型的静态访问器,但那里没有运气。有什么建议么?
typescript - 在 Next _app.tsx 中导出超过 1 个默认值
我遇到了这种棘手的情况,我需要“在我的 Next _app 文件中导出 2 个默认值(使用打字稿)。
我开始为 Redux 导出它,我在我的应用程序中使用它
但是现在我需要使用 next-i18next 翻译我的应用程序,我在其中导入 appWithTranslation 并且还需要将其导出
是否有可能以某种方式有 2 个导出默认值?
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
.
为什么此设置不再适用于重定向?
这意味着重写不起作用。但是 i18n 怎么办?
它是 _app 或 _document 文件中的内容吗?
- 如果我
/search
直接导航到,它加载得很好,所以页面路由似乎没问题。
其他注意事项:
- NextJS
"next": "^10.0.2",
- 下一个-i18下一个
"next-i18next": "^7.0.1",
javascript - 在数据文件中使用 next-i18next 翻译
我next-i18next
在 Next.js 应用程序中使用库进行翻译。
它被设计为使用大量数据文件,这些文件导出原始数组和对象。现在,我不确定如何将我的翻译放在那里。
让我们考虑这个简化的例子:
我将此文件导入我的模板并显示它:
在现实生活中,这些数据文件要复杂得多,调整模板以使用那里的翻译将需要很长时间。此外,模板中的许多组件使用这些文件中的数据作为动态属性。因此,为了避免这种重构噩梦,我想做这样的事情:
当然不能这样做,因为钩子不能在功能组件之外使用。有没有办法在像这样的原始 JavaScript 文件中使用翻译?
javascript - 如何使用 nextJs 和 next-i18next 像 URL 别名一样本地化路由?
我使用NextJs
10.0.5 和next-i18next
8.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 用于相同的页面文件?
javascript - i18next 插值中的 React 组件显示为 [object Object]
我的 React 应用程序使用next-i18next
包。我想在我的插值中加入一些 React 组件:
并且reviews.json
:
尝试使用 JSX 元素填充插值无法按预期工作。我得到的结果是:
作者:[object Object],保留所有权利
我也尝试使用 未转义插值By {{- author}}, all rights reserved
,但结果相同。
我可以使用 JSX 元素来填充我的插值吗?
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函数让它工作了
reactjs - next-i18next 在构建期间使用了错误的资源集
我有一个使用子路径路由的具有 4 个语言环境的应用程序。在开发期间它工作得很好,但在构建期间使用了错误的语言环境集。它会导致页面加载时翻译不正确,然后转向更正导致闪烁的页面。这发生在本地和生产中(我使用 vercel)。而且它不依赖于活动子路径(我在 example.com、example.com/fr 等上获得随机页面版本)。
我的next-i18next.config.js
我getStaticProps
的src/pages/index.tsx
然后是我src/pages/index.tsx
自己
和src/components/Navbar
现在,当我进行下一次构建时,我会按以下顺序收到消息:
我现在在这个问题上苦苦挣扎了几天,找不到任何可能导致这个问题的东西。任何想法我做错了什么?
jestjs - next-i18next 使用 useTranslation 进行 Jest 测试
测试库...总是很有趣。我next-i18next
在我的 NextJS 项目中使用。我们正在使用useTranslation
带有命名空间的钩子。
当我运行测试时,会出现警告:
console.warn react-i18next:: 你需要使用 initReactI18next 传入一个 i18next 实例
我已经尝试了react-i18next 测试示例中的设置,但没有成功。我也试过这个建议。
以及只是试图模拟useTranslation
而没有成功。
是否有更直接的解决方案来避免此警告?测试通过了 FWIW...
最后,有没有办法让翻译后的纯文本成为结果,而不是命名空间:account:account:organization.invite.copyLink
?