问题标签 [react-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.
javascript - 如何测试包装在具有“innerRef”的“withNamespaces”HOC 中的组件?
我将 i18n 添加到我的反应应用程序中使用react-i18next
. 我有一个组件 A 使用对子组件 B 的引用,如下所示:
A.jsx:
B.jsx:
现在我想测试组件 A,所以我创建了一个这样的模拟withNamespaces
:
我该如何为此进行测试?我如何才能真正将在测试中创建的实际引用传递给 innerRef 函数?
react-i18next - 下拉和 react-i18next
我有一个下拉列表,其中列出了我想要的翻译得很好的国家/地区列表。即使我可以从下拉列表中向下和向上导航,我也无法选择任何选项。对此问题有任何解释、帮助或解决方案吗?
javascript - 更改语言后如何通过 react-router-dom 重新加载页面(react-i18next)
我的反应有些问题。
我需要重新加载页面并在更改语言后重新获取数据而无需window.location
.
我使用 react、redux、react-router-dom、react-i18next 等
我不想使用componentWillReceiveProps
并检查我的参数en
是否已更改为 (uk
或ru
),然后调用触发 redux 操作的方法并发出一些请求。
有人有想法吗?
reactjs - React 应用程序 i18n 支持
我们有一个 React 应用程序,其中所有小部件的标签都是从属性文件中读取的,
属性文件:
在 js 文件中的使用(示例):
现在我们需要使其与 i18n 兼容。请建议一种更简单的方法来实现 i18n,我可以在 js 中没有太多更改的情况下重用这个属性文件
reactjs - React Webpack:TypeError:react__WEBPACK_IMPORTED_MODULE_7___default.a.createContext
最近我将 i18next 库添加到我的 React 应用程序中。编译成功,但我在控制台中收到此 TypeError。
i18n 是来自https://react.i18next.com/guides/quick-start的示例。我在使用 create-react-app (React 16.7) 之前对其进行了测试,它运行良好。在我的应用程序中,我使用的是 React 15.6 和 Redux,但它看起来像 Webpack 问题。
index.js
包.json
internationalization - i18next-browser-languageDetector 路径不起作用
我在根据路径检测语言时遇到问题,即http://localhost:3000/en或http://localhost:3000/en/subpage应该将我的页面翻译成英文。我可以通过单击按钮并调用 i18n.changeLanguage('en') 来翻译它,但检测器似乎不起作用。
reactjs - 如何从已弃用的切换在 react-18next 中?
我已经更新react-i18next
到最新版本,我看到<I18n>
HOC 不见了。
在你拥有这样的东西之前
现在它说该模块没有导出成员 i18n。
我已经阅读了文档,但找不到明确的方法来获得相同的结果。我试过withNamespace
了,但这并不能解决我的问题。
我的组件内部也有渲染 JSX.Elements 的函数,因此withNamespaces
无法在那里传递,并且 {t} 不会传递给它们。
是否有类似于 was <I18n></I18n>
doing 的组件或功能?
react-i18next - 如何将可迭代的 React.Component 传递给 react-i18next Trans 组件?
我正在尝试将几个由 map 函数创建的组件传递给翻译组件Trans。在以前的版本中,我可以使用任何东西作为变量,但是使用 react-i18next 的新 API 似乎并不那么容易。现在我无法将项目列表添加到翻译中,因为它呈现为[object Object]
. 是的,它是React.Node
,我不能将它用作values
,但作为一个简单的组件,它只呈现第一个组件(在我的情况下ul
)
演示我的头痛的示例:
https://codesandbox.io/s/ojqxzpw86y
也许有人可以提供帮助,或提出一些建议。不,我不想从翻译中删除列表 =(
react-native - 如果没有带有 react-i18next 容器的 react-navigation 的导航道具,我将无法导航
我应用了没有react-navigations 文档(NavigationService )的导航道具的导航示例,但我无法使其与react-i18next 一起使用。
我在我的代码中应用了文档https://reactnavigation.org/docs/en/navigating-without-navigation-prop.html的示例:
当授权令牌被验证并且结果是否定的时,必须打开登录屏幕(NavigationService.navigate('Login')
)但它_navigator.dispatch is not a function
在 NavigationService.js 中返回错误:
依赖项:
- 反应 16.5.0
- 反应原生 57.1
- 反应-i18next 9.0.0
- 反应导航 3.1.2
有什么建议吗?有没有其他人发现这种情况?
reactjs - 如何模拟 i18n.addResourceBundle?
我在测试 i18next 时遇到了一些问题,我们在反应项目 + redux 中使用 jest + 酶。
我们在一个文件react-i18next
中这样实现:lib/i18n
我们创建了一个__mocks__
文件夹并使用了(https://github.com/i18next/react-i18next)中提供的示例,__mocks__/react-18next.js
我们看到,一旦我们i18n
从非 jsx 文件导入并尝试操作其属性,就不会调用该模拟。我们的用例如下:
我们有一个请求所有翻译的操作,并i18n.addResourceBundle
在响应中使用 来设置所有翻译。
在这个动作中,我们导入了../lib/i18n.js
为效果创建的文件,但是一旦我们开始测试我们的动作,我们就会不断收到以下错误
我们检测到__mocks__/react-i18next.js
没有被调用,但是如果我们创建一个__mocks__/i18next.js
文件,它将模拟导入的i18n
实例,这是有意义的,因为在配置文件lib/i18n.js
中我们正在导入它,import i18n from 'i18next';
但您的项目中提供的模拟文件似乎再次不起作用。
我们正在考虑以下场景并想征求意见: - 将我们的 fetch 操作迁移到 i18next-xhr-backend,我们想问您这是否可以解决问题?因为我们不再要导入配置文件,因此不需要模拟它,但是我们将失去我们的 redux 操作日志记录功能,因为我们使用 redux store 来跟踪用户操作。- 正确模拟文件以保持当前功能,为此,我们想询问是否有人已经经历过相同的行为。
发生在 react-i18next 版本中
"react-i18next": "^9.0.2",