问题标签 [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-intl 的 defineMessages 在传入对象引用时会抛出错误?
我正试图react-intl
从 Yahoo! i18n 项目,我遇到了一个奇怪的问题。我的目标是将基本字符串(英语)存储在组件之外的某种 JSON 文件中,以便非开发人员可以编辑它们。
这似乎是合乎逻辑的,我可以只import
使用它们然后在组件中使用我需要的部分,但是defineMessages
当我这样做时,该函数会导致错误。
编辑:问题似乎与babel-plugin-react-intl
插件和“导出”默认字符串有关。该应用程序运行良好,但当npm run build
命令运行时发生错误。
.babelrc:
网络包配置:
包.json:
有效的代码:
失败的代码:
尝试直接传递引用而不是对象时收到的错误消息:
javascript - react-intl 使用 json 树格式
我在我的项目中使用 react-intl 并为任何语言加载 json 文件,但我需要我的 json 文件具有树格式。当我加载我的组件时 react-intl 打印 json 的密钥字符串。例如:
当我使用:
<p><FormattedMessage id="header.title"/></p>
结果是:
<p>header.title</p>
任何想法?
javascript - 带有路由的 Webpack 生产构建不加载 1.bundle.js 文件
我有一个针对这个问题的测试仓库(链接)
我认为这是本地化文件的问题。我使用反应国际。
开发版效果很好。
问题是:
- 创建生产构建
- 运行生产服务器
- 打开应用程序http://localhost:3001/activities
- 刷新页面(正常工作)
- 点击链接到 id 1(正常工作)
- 刷新页面(不起作用,因为1.bundle.js文件未正确发送,css 也是)
1.bundle.js是什么?我认为这是本地化文件。(一些信息)。我该如何解决?
reactjs - 静态 React 应用程序/网页多语言
我花了一周的时间来解决这个问题,目前我正在使用 gatsby 生成我的静态 Web 应用程序。我已经尝试过
这是一种作品,但仍然不是完美的解决方案。我正在考虑 impelent React-Intl,但我不确定。静态应用程序/网页可以吗?
还有其他建议吗?
reactjs - React App 在 prop 更改时刷新
我正在实施 Yahoo React-Intl 来本地化我的应用程序。为了做到这一点,我必须像这样用 Localizer 包装 ROOT:
“消息”是一个包含键值转换映射的 JSON 对象。
我的问题是我必须使这个动态,以便用户可以选择更改语言。我创建了一个 Action/Reducer 组合,以便在应用程序状态中更改分配给 messages 属性的对象。但是,当我调用该操作并将消息提供一个新对象时,整个页面都会刷新,并且我的状态会恢复到初始值。
默认情况下,消息是一个空变量,并被分配一个包含中文字符的 id 值的对象。默认情况下,当给定对象时,可以正确看到翻译。只有当我通过操作更新它时,应用程序才会刷新并且无法获得所需的结果。
什么可能导致我的应用程序刷新?
javascript - 我如何动态呈现消息
我正在使用 react-intl 包进行翻译。用户可以在西班牙语和英语之间进行选择。默认情况下,使用西班牙语。如果用户选择英语,则所有文本都应翻译成英语,如果是西班牙语,则应翻译成西班牙语。我创建了一个动作以及存储语言环境及其消息的减速器。该组件接受语言环境和消息作为道具。我也可以动态传递语言环境和消息。动态地,我的意思是当用户选择英语时,将语言环境设置为“en”并相应地获取其消息。
但我无法动态呈现消息/文本。我收到以下错误
无法格式化消息:“Nav__registration_text”,使用消息 ID 作为后备。
这是我的代码
typescript - React-intl,使用 api 和 Typescript
我想formatMessage
使用react-intl
来插入一条消息作为占位符,但我不知道访问此功能的正确方法。
这是我所拥有的简化版本:
我用作道具InjectedIntlProps
的类型,因为似乎没有提供方法。intl
IntlShape
formatMessage
我添加了一个?到intl
道具,因为我一直有一个Property 'intl' is missing
(但不injectIntl
应该在没有这个道具的情况下返回一个组件?)
现在它编译了,但是运行时出现错误Cannot read property 'displayName' of undefined
。我猜这是因为默认导出没有明确的名称)。
我觉得我没有朝着正确的方向前进,但是找不到 typescript/react-intl 项目的任何示例。
谢谢你的帮助!
internationalization - react-intl 或 intl-messageformat 中的小数复数形式(javascript i18n 包)
我正在使用react-intl
包进行国际化。反过来,该软件包依赖于intl-messageformat
. 我一直在搜索这两个包中的文档,但仍然对是否可以将分数变量的消息国际化感到困惑。例如,如此处所述:
一些语言使用“1. 2茶匙”但“2 . 1茶匙”</p>
react-intl
使用/时有没有办法计算分数intl-messageformat
?到目前为止,我只在文档中看到了带有整数的示例。
javascript - 如何使用 react-intl 使用标签(链接)格式化消息?
我需要添加指向我需要翻译的文本的链接。如何格式化具有链接的消息?
现在这就是我想要做的:
然后,在渲染函数中:
这行不通。我得到:通过点击“下订单”按钮,您确认您已阅读、理解并接受我们的【object Object】、【object Object】和【object Object】。
完成这项任务的正确方法是什么?
react-intl - react-intl FormattedDate 显示 YYYY-MM-DD 值的先前日期
请注意,我是 react-intl 的新手。我想显示以下日期:
d1_date: "2012-03-26" //目标显示为 2012 年 3 月 26 日
我使用 react-intl 的
格式化日期
显示日期:
我得到以下结果:
2012 年 3 月 25 日
我知道 d1_date 没有时间信息。我是否需要操纵 d1_date 以便出现虚假时间,让真实日期反映“2012 年 3 月 26 日”?