问题标签 [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 + typescript,如何区分导出的和内部的道具?
考虑以下组件:
当我使用Foo
组件时,它应该同时发送 OProps 和 IProps ......
IProps 可能在injectedIntlProps
、hoc 注入的 props、mobx 存储的 props 或任何不需要父级注入的 props 中。
我知道有一些方法可以解决它,例如:
export default injectedIntlProps<OProps>
(我不喜欢 export default...)或将 props 声明为 partial notNeed?: number
,但仍然想知道是否有更好的解决方案?只导出需要的道具...
react-native - 使用 enyzme shallow 和 react-intl 与 react native 进行测试
我一直在尝试使用酶浅渲染来模拟 onPress。但是由于 react-intl 我无法访问 TouchableOpacity
我已经看到了将 intl 注入到 react 组件中的辅助函数,但这些似乎只适用于 React 而不是 react-native。
JSdom 会是解决这个问题的方法吗?
reactjs - 是否可以使用 React-intl 作为变量?
我正在使用react-intl
和react-helmet
!我正在尝试将元描述作为翻译文本传递给 Helmet,但这似乎是不可能的!
这是我所做的:
这homepage.description
是一个文本lang/en/en.json
。
我想如果可以抓取翻译并将其用作变量,它可以很容易使用,我会这样做:
如果这甚至可能?或者是否存在任何替代方法或最佳实践?
提前致谢
javascript - react-intl 翻译相对时间(如 3 分 50 秒)
我使用 react-intl 来翻译应用程序。我得到了一个以秒为单位的时间,它表示完成一项任务需要多长时间,我想将这个时间显示为相对时间。(“2 分钟”而不是纯 120 秒)
但是当我使用
react-intl 返回“21 分钟前”而不是“2 周”有没有办法摆脱那个“以前”短语并只显示给定时间值的翻译短语?
javascript - react中常量文件的翻译
我正在尝试为我的 react 应用程序找到最佳的翻译概念。
我有一个用于翻译的高阶组件,并通过以下方式使用它:
在一个组件中,我有所有可用的文本道具 - 它对我来说很好用。
但是,我有很多带有常量的纯 javascript 文件,也需要在那里进行翻译。例如,验证模式带有错误消息或带有选择元素的常量,例如:
在 React 应用程序中翻译纯 js 文件的最佳方法是什么?
javascript - React-Intl 如何从变量切换语言环境和消息
我试图弄清楚如何使用 React-Intl 更改语言。这是我的第一个 React 应用程序,它是使用 create-react-app 制作的,我没有使用 Redux 或 Flux。
在我的 index.js 中,我有以下代码:
TodoApp 正在通过道具发送一个关于“lang”参数的字符串(即:“es”或“en”),当我更改i18nConfig时,IntlProvider似乎没有任何变化。我的想法是更改我的i18nConfig变量,然后我的所有应用程序也会更改语言。
我在 TodoApp 中有 FormattedMessages,我的两条 JSON 消息是这样填充的:
你知道我的代码缺少什么吗?也许我对 React-Intl 有一些不明白的地方。任何建议都会有所帮助,谢谢。
reactjs - intl.formatMessage 不起作用 - react-intl
我正在尝试使用react-intl
. 当我使用它时<FormattedMessage id='importantNews' />
,它运行良好。但是,当我将以下代码与 一起使用时intl.formatMessage()
,它无法正常工作并引发一些错误。我不知道它有什么问题。
我的根组件是这样的,
有人可以帮我解决这个问题吗?提前致谢。
javascript - Intl.DateTimeFormat 产生错误的格式
在当前的 Chrome、Firefox 和 SafariIntl.DateTimeFormat
的语言环境it-CH
(瑞士的意大利部分)中是错误的:
第一行的输出是错误的。在瑞士所有地区,格式应为“dd.mm.yyyy”
有趣的是,IE11 和 Edge 为上述代码片段生成了正确的输出。
在给定浏览器中修复/修补/覆盖 window.Intl 错误实现的最佳方法是什么?
javascript - webpack 用 json 文件中的值替换代码中的值
我正在使用react-intl本地化我的应用程序。我有一个看起来像这样的 json 文件:
显示消息的代码如下所示。这一切都有效并显示了应有的翻译。
现在是我无法弄清楚的棘手部分。我正在使用string-replace-loader来尝试defaultMessage
在我的代码中找到它。然后我想用 json 文件中的相应英文值填充这些。显然我可以手动输入所有的,defaultMessages
但是以后这会更麻烦,所以我希望我可以使用 webpack 来为我做这件事。
我也看过使用html webpack 插件,但是,这会破坏 jsx。
在 webpack 文件中
然后在反应代码中。
defaultMessage={ <%= htmlWebpackPlugin.options.meta.en.greeting %>}
reactjs - 从 react-intl 只获取十进制符号
我只需要为当前语言环境获取正确的十进制符号。(. 或 ,)
是否可以从 react-intl 获得它?
或者在 react-intl 中是否有其他方法来纠正十进制符号。