问题标签 [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.
reactjs - React Redux Router Intl 在 intl state 和 router state 之间保持语言环境同步
我有一个使用 React、Redux、React-Router 和 Intl(还有 react-intl、react-intl-redux、react-router-redux、react-redux)的应用程序。基本的设置,没什么花哨的,我猜。
(language = locale here) 在标题中,我有一个下拉菜单,您可以从中控制应用程序的语言。应用程序的 url 还包含有关当前语言的信息。
如果 url 是http://example.com/en/post
标题语言菜单有en
作为选定的选项。
每当我更改下拉值时,url 和标题菜单都应相应更改。
反过来也应该可用:在特定路径(也包括语言)导航或简单地打开页面将反映在intl
状态中。
通常我会这样做:
对于我使用的网址更改
dispatch(push('/{newLanguage}/...
对于我使用的 intl 状态更改
dispatch(updateIntl({ locale, messages }))
- 动作创建者 updateIntl 由 react-intl-redux 提供
但是触发这 2 个动作对我的应用程序来说是不可行的,因为它会触发 2 个状态更改,这会生成 2 个渲染(+一些 api 交互)
问题是如何只触发一个动作以使 intl 状态和路由器状态同步?或者,如果我对解决这个问题的一个动作有误,那么一个优雅的解决方案是什么?
可能的解决方案:创建一个动作CHANGE_LANGUAGE
并重写两者intlReducer
并routerReducer
在触发时调整状态?
react-intl - 如何使用 React Intl 动态添加语言环境数据?
我正在使用 React-intl 来实现 UI Util 库的国际化。该库有一个名为 i18n 的文件夹,我在其中放置不同语言环境的 json 文件。如果该库的用户想要添加对其他语言环境的支持,他/她可以放置其他带有相应语言环境的键/值对的 json 文件。
但是 React-intl 需要在之前为各自的语言环境导入和添加LocaleData。例如,
有没有办法在 React-intl 中添加LocaleData 并动态导入相应语言环境的语言环境库?
reactjs - 是否可以在不注入每个组件的情况下调用 react-intl api 方法
我想知道是否有任何方法可以在不注入每个组件的情况下调用 API 方法?
比如提供一个调用 intl.formatMessage 的函数
reactjs - 在 saga 中调用 React Redux Toastr
我将React Boilerplate与React Redux Toastr一起使用,我希望能够使用React Intl的消息调用 toastr。
我试图在一个组件中调用它,但是当 toastr 进行状态更新时,Reacts 警告我这是一种反模式。我也尝试在传奇中调用,但我无法包含 Intl'messages。
用国际化消息调用 toastr 并充分利用 redux 的最佳地点是什么?
javascript - Android 设备需要 React-Native 和 Intl polyfill
我最近更新了我的 Android Studio 和许多组件/sdk,从那时起 React-Intl 抱怨intl
库丢失,即使它之前工作正常。
我已经安装了intl
polyfill,并将它导入到我的主文件的最顶部App.js
。我还导入localeData
并react-intl
添加它。IntlProvider
然后,我在指定locale
没有消息的情况下呈现我的视图(我FormattedNumber
现在只使用)
这是我的代码的简化版本:
我收到以下错误:
[React Intl] 格式化数字错误。ReferenceError:尚未为此对象提供区域设置数据。
我不明白发生了什么事。有人遇到同样的问题吗?
谢谢
reactjs - 带有redux的摩卡:预期未定义等于true
我正在尝试为使用 redux 和 react-intl 的 react 组件编写测试:
但我得到了这个结果:
有人可以给我一个建议,我该如何解决它?
javascript - 如何确定浏览器中当前语言环境的小数和千位分隔符?
我们正在使用 react 和 react-intl 并且出于某种原因需要编写我们自己的自定义输入字段。虽然可以将数字传递给 react-intl API 并正确格式化数字,但我们如何才能找出千位分隔符和小数点等当前语言环境字符?
reactjs - React-intl 在 react 之外定义消息
我有 utils.js 文件。
我想使用https://github.com/yahoo/react-intl翻译这些文本 - [低、中、高、关键] 。所以我定义了消息
现在最后一步是什么?
如何将消息传递回函数?应该有formatMessage
功能,但它只在反应上下文中。
reactjs - 使用 Webpack 1 构建时从 react-intl 消息中呈现反斜杠
概括
当我使用 Webpack Dev Server 加载我的应用程序时,我的消息显示正常:
\
.nginx
但是,当我将应用程序捆绑到磁盘并通过\\
.
细节
我正在使用react-intl
@2.2.3(此时最新)和babel-plugin-react-intl
@2.3.1(此时最新)。我的目标是使用\
字符定义默认消息并以任何方式呈现它(FormattedMessage
,formatMessage
等)
我正在使用 Webpack / Babel 捆绑我的应用程序。我的webpack.config.js
文件中没有 Babel / react-intl 特定配置,但是我确实使用DefinePlugin
设置process.env
为'development'
或'production'
当我使用 Webpack Dev Server 加载我的应用程序时,我的消息显示正常:\
. 但是,当我将应用程序捆绑到磁盘并通过 提供捆绑包时nginx
,我看到我的反斜杠重复:\\
. 我在这里有以下说明:https ://github.com/yahoo/babel-plugin-react-intl/issues/13#issuecomment-151944191关于使用 4 个\
字符来显示最终\
字符。
对于它的价值,我尝试过使用 JSX 字符串、JS 字符串、使用 1、2 和 4 个\
字符,以及我能想到的任何其他愚蠢的组合。
非常感谢任何提示或建议。谢谢你。
代码示例
我如何定义消息的示例
我如何呈现消息的示例
另一个例子,它也不起作用
另一个失败的例子: