问题标签 [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.

0 投票
1 回答
1583 浏览

javascript - 从 url 导入 json 文件

我正在使用 react-i18next 进行翻译,目前一切正常,因为我正在本地导入翻译文件,如下所示

现在的挑战是,我希望能够更新翻译文件,我决定采用的实现是将文件放在 Amazon S3 上并读取它们,每当需要更新时,我都会将更新的 json 对象发送到后端将更新文件的服务。

我面临的问题是弄清楚如何像我一样在反应项目中导入文件

它给了我一个错误。找不到模块:错误:无法解析模块“https:my-s3-url/locales/en/translation.json”。

使用 i18next-xhr-backend 插件也不适用于以下配置:-

任何有关解决此问题的最佳方法的建议将不胜感激,谢谢:-)

0 投票
1 回答
3421 浏览

reactjs - 如何在 i18next 配置中使用 cookie?

我想在我的 i18n.js 文件中使用 react-cookie 来设置语言。

我正在尝试这样,但它发送此错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一: 1. 你可能有不匹配的 React 版本和渲染器(例如 React DOM) 2. 你可能违反了 Hooks 规则 3. 你可能有多个 React 副本同一个应用

我想让它工作!

0 投票
2 回答
2143 浏览

react-i18next - 如何在 BASIC 函数(不是组件)中使用 react-i18next?

我知道 react-i18next 在每个组件中都有效:功能(使用 useTranslation)和类组件(使用 withTranslation())但是我不能在这样的基本函数中使用翻译:

错误挂钩!

谢谢 !

0 投票
1 回答
374 浏览

i18next - 在 i18next 中对具有不同 IETF 语言标签的语言使用相同的资源

我有以下代码:

我的问题是,假设用 检测到英语时navigator.language,它可能是en, en-US, en-GB,或者对于挪威语,它可能是nb,nb-NOny-NO

我们希望为所有英语语言代码提供相同的翻译,并为所有挪威语言代码提供相同的翻译。

我目前的解决方案是像这样定义资源:

但是必须有更好的解决方案!有人可以帮忙吗?

0 投票
1 回答
806 浏览

reactjs - React - i18next-extract: Question about extractedTranslations output

I'm using this babel plugin https://github.com/gilbsgilbs/babel-plugin-i18next-extract. Haven't configured it much beyond the basics.

it generates an extractedTranslations folder but I just end up with keys and no values. Is that the correct behavior? I would figure that it would reconcile the values from the translations files that i already have.. I'm kind of confused on how this is useful?

0 投票
0 回答
255 浏览

react-i18next - 如何避免 react-i18next 闪烁?

这是我的代码:

结果如下:

在此处输入图像描述

0 投票
1 回答
1807 浏览

react-i18next - 没有 i18nKey 属性的 Trans 组件不渲染翻译

我有一个使用Trans组件执行翻译的应用程序。我没有i18nKey在我的 Trans 组件上声明属性,只是使用组件内的Trans内容来生成密钥,但即使存在密钥,Trans也不会产生翻译,除非i18nKey组件上存在。t函数 from正确翻译了它的useTranslation参数,但是在这个例子中 Trans 组件不会翻译成法语。github上的完整项目在这里我的应用程序中的示例:

索引.jsx

主题/hangul/index.jsx

常见/i18n.js

common/i18n/fr/translation.json

0 投票
4 回答
11994 浏览

javascript - i18n.changeLanguage 不是函数

这是我的代码。

当我点击de en按钮时。我得到这个错误。TypeError: i18n.changeLanguage 不是函数。如何修复?

0 投票
1 回答
851 浏览

reactjs - react-i18next 从哪里来的 initialI18nStore

我希望有更多关于 react-i18next 的 useSSR 的文档。在文档中,它声明要构建这样的组件......

问题是它没有显示 initialI18nStore 道具的来源。我得到的 initialLanguage 会类似于“es”、“en”、“etc”,但我只是不确定 initialI18nStore 来自哪里。这是来自中间件还是 I18nextProvider 的东西?

0 投票
1 回答
4691 浏览

reactjs - i18next 反应 Trans 组件 - 正确转义字符

我有一个基于反应的应用程序并使用 i18next 的 Trans 组件进行翻译。

假设我们有一个用户注册表单,我们想通过显示以下文本来确认已创建一个新帐户:

已创建名为NAME的用户。

其中NAME由用户提供并以粗体显示。

我现在拥有的是以下代码:

和以下翻译字符串

对于一个简单的案例,name: 'Tom'它可以正常工作并显示

已创建名为Tom的用户。

但是我想让用户在他们的名字中使用特殊字符。当我把名字改成Tom&Jerry我得到

Tom&Jerry已创建具有名称的用户。

在做了一些研究之后,我认为问题在于 i18next 和 react 都转义了它们的输入,因此名称被转义了两次。i18next.init我通过添加以下选项关闭了 i18next 转义

interpolation: {escapeValue: false},

这解决了 Tom&Jerry 案:

已创建名为Tom&Jerry的用户。

但是有一些输入会完全破坏它,例如name: 'Tom<'像这样设置渲染(名称后面的所有内容都是粗体):

已创建名为 Tom 的用户。

和设置name: '<Tom>'给了我:

已创建具有名称的用户。

(根本没有显示名称)。我希望它呈现如下:

<Tom>已创建具有名称的用户。

有没有办法让它工作?