问题标签 [react-intl]

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 回答
2715 浏览

json - babel v6 + react-intl v2 + webpack 将消息提取到文件

我想使用 Babel v6、react-intl v2 和 webpack 将源代码中的消息提取到 JSON 文件中。这一切都编译得很好,但没有提取任何东西。如何使 v2 的 react-intl 正确提取消息?

有一个选项messagesDir

我试过了:

  • .babel.rc来自这里的新文件: https ://github.com/yahoo/babel-plugin-react-intl/issues/23 - 名称可能拼写错误,应该是.babelrc.
  • 新文件.babelrc

使用 webpack 配置

给出:“index.js:未知选项:/.babelrc.extra”作为错误消息。

我也尝试将上述extra属性添加到上面的 webpack 配置中。它给出了一个非常相似的错误信息。

版本:

0 投票
1 回答
5375 浏览

reactjs - 如何处理 React-Intl 消息的多次使用?

react-intl我在文档(我正在使用分支)中找不到v2关于这种用法的任何内容,因此出现了这个问题。以下用例是否有推荐的方法?

假设我有 2 个组件,Tooltip并且Select. 两者都需要相同的 i18n 格式字符串,例如:

如何在另一个组件中使用相同的消息?只需使用这个:

不起作用(不应该:))。那么,这样做的正确方法是什么?我是否必须在我的应用程序中全局保存这些共享消息?因为维护与代码分开的“共享”国际消息列表可能会变得很麻烦,而这正是react-intl声称要解决的问题。

0 投票
1 回答
256 浏览

reactjs - 我可以在我的应用程序中使用 React-Intl 的内置名称来表示时间段吗?

假设我有一个这样的组件:

因为props.cycle在我的示例中实际上是一个时间段,如day, week,month等,所以在将其传递到 FormattedMessage 之前,我也需要翻译该文本。在翻译中进行这种翻译的正确方法是什么?

最好我能想出这个:

这是唯一的方法吗?

我看到在 node-js 包中react-intl,在lib\locale-data\[lang].js文件中,已经为dayweekmonth等定义了值。有没有办法直接在我的应用程序中访问/使用这些字符串?

我正在v2使用react-intl.

0 投票
5 回答
14043 浏览

reactjs - 如何在不使用 FormattedMessage 的情况下在 ReactIntl​​ 2.0 中检索字符串

如果我错了,请纠正我,ReactIntl​​ 中的 FormattedMessage 返回一个由 span 标签包裹的字符串。在 ReactIntl​​ 1.2 中,我们可以选择this.getIntlMessage('key')仅获取字符串部分。

这是我的问题:在 ReactIntl​​ 2.0 中是否有等价物?我知道字符串可以通过使用 FormattedMessage 中的 Function-As-Child 模式作为

但是,它弄乱了我组件中的“引用”,我无法再使用该组件this.refs.mycomponent

0 投票
1 回答
839 浏览

javascript - 如何输出长日期时间格式,其中包括 timzone 与 moment-timezone 和 react-intl?

我有一些客户端代码使用react-intl以用户定义的语言和区域(文化/区域设置)显示货币、语言和日期时间值。除了这些要求之外,我还想在使用长日期和时间格式时显示时区缩写(例如2016 年 2 月 8 日,格林威治标准时间 15:02)。

为此,我尝试使用moment-timezone模块,它似乎在隔离中做正确的事情。但是,我发现在我使用react-intl的应用程序中,同一行代码会生成正确的数据,但日期时间格式错误。

预计时间:格林威治标准时间 2016 年 2 月 8 日 20:57

实际时间:格林威治标准时间 2016 年 2 月 8 日晚上 9:04

我的猜测是,这与我没有直接加载en-US local的事实有关,因为使用以下类型的代码作为react-intl库的一部分自动为我加载了时刻。

有关的:

0 投票
1 回答
800 浏览

reactjs - ReactJS:如何使用内部组件设置状态?

增加 used react-intl,下面是测试:

我正在测试我的 reactJS 组件。

因为我用过react-intl。我必须使用IntlProvider它来渲染它。

如何设置状态Quotation

更新: 我使用:

得到QuotationsetState为此。

但又出现了一个错误:

https://github.com/yahoo/react-intl/issues/332#issuecomment-189394004

0 投票
2 回答
21126 浏览

reactjs - React-intl 多语言应用程序:更改语言和翻译存储

我有 react-router 应用程序并想添加 i18n。在包装在 IntlProvider 中的 react-intl示例根组件中:

);

但是只有一种语言环境。如何更新应用程序以添加其他语言以及存储翻译的最佳方式是什么?

0 投票
2 回答
1369 浏览

reactjs - 通过更改 react-intl 包装器道具切换语言时,我的 redux-form 被重新初始化

我将我的应用程序包装在IntlProviderfrom react-intl v2中,如下所示:

我把我的react-form表格放在树下。一切都很好。

但是,如果我开始填写表格,并且我决定更改 UI 的语言(通过监听将通过我的 redux 存储更新我的langmessages道具的操作),则表格将被重置:-/

我看到redux-form/INITIALIZE当 lang 改变时触发的动作。

即使我传递destroyOnUnmount: false给它也会发生reduxForm()

不受控制的表单字段不会发生这种情况。

任何想法?

我的代码:App.js +注册表单

0 投票
2 回答
5579 浏览

javascript - 使用 Yahoo 的 react-intl 使用 React.js 进行国际化

我正在尝试在 React.js 应用程序中支持不同的语言,并发现react-intl是一个很好的候选者。他们一直在过渡到 V2,但我很难弄清楚这一切是如何协同工作的。示例应用程序过于复杂,涉及客户端/服务器架构。我只想要一个没有服务器的页面。

看起来步骤是这样的:

  • react-intl使用's定义消息defineMessage
  • 使用添加语言环境addLocaleData
  • 使用构建脚本将扁平化消息数据构建到每个语言环境的文件中

我已经完成了这些步骤,但我不知道如何显示消息。我将我的 React 组件包裹在<IntlProvider>. react-intlV2 github问题真的很长,我一直在努力寻找答案。谁能提供一个简单的工作示例?

0 投票
1 回答
968 浏览

reactjs - 如何使用 react-intl v2 + webpack 加载语言环境文件?

我有一个设置来使用 webpack 来管理我的所有资产。它工作正常。现在我打算使用 react-intl version 2 来支持多种语言。

我设法使包'react-intl'中定义的组件工作,

但我无法弄清楚通过 webpack 加载语言环境文件并在组件中引用它们的正确方法是什么。由于该软件包最近进行了重大升级,因此也没有太多关于它的文档。wiki 页面现在是空的

https://github.com/yahoo/react-intl/wiki

我想知道这样做的正确方法是什么?