问题标签 [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 投票
3 回答
3131 浏览

reactjs - 为什么 react-intl 的 defineMessages 在传入对象引用时会抛出错误?

我正试图react-intl从 Yahoo! i18n 项目,我遇到了一个奇怪的问题。我的目标是将基本字符串(英语)存储在组件之外的某种 JSON 文件中,以便非开发人员可以编辑它们。

这似乎是合乎逻辑的,我可以只import使用它们然后在组件中使用我需要的部分,但是defineMessages当我这样做时,该函数会导致错误。

编辑:问题似乎与babel-plugin-react-intl插件和“导出”默认字符串有关。该应用程序运行良好,但当npm run build命令运行时发生错误。

.babelrc:

网络包配置:

包.json:

有效的代码:

失败的代码:

尝试直接传递引用而不是对象时收到的错误消息:

0 投票
2 回答
2508 浏览

javascript - react-intl 使用 json 树格式

我在我的项目中使用 react-intl 并为任何语言加载 json 文件,但我需要我的 json 文件具有树格式。当我加载我的组件时 react-intl 打印 json 的密钥字符串。例如:

当我使用:

<p><FormattedMessage id="header.title"/></p>

结果是: <p>header.title</p>

任何想法?

0 投票
1 回答
521 浏览

javascript - 带有路由的 Webpack 生产构建不加载 1.bundle.js 文件

我有一个针对这个问题的测试仓库(链接

我认为这是本地化文件的问题。我使用反应国际。

开发版效果很好。

问题是:

  • 创建生产构建
  • 运行生产服务器
  • 打开应用程序http://localhost:3001/activities
  • 刷新页面(正常工作)
  • 点击链接到 id 1(正常工作)
  • 刷新页面(不起作用,因为1.bundle.js文件未正确发送,css 也是)

1.bundle.js是什么?我认为这是本地化文件。(一些信息)。我该如何解决?

0 投票
2 回答
804 浏览

reactjs - 静态 React 应用程序/网页多语言

我花了一周的时间来解决这个问题,目前我正在使用 gatsby 生成我的静态 Web 应用程序。我已经尝试过

这是一种作品,但仍然不是完美的解决方案。我正在考虑 impelent React-Intl,但我不确定。静态应用程序/网页可以吗?

还有其他建议吗?

0 投票
0 回答
148 浏览

reactjs - React App 在 prop 更改时刷新

我正在实施 Yahoo React-Intl 来本地化我的应用程序。为了做到这一点,我必须像这样用 Localizer 包装 ROOT:

“消息”是一个包含键值转换映射的 JSON 对象。

我的问题是我必须使这个动态,以便用户可以选择更改语言。我创建了一个 Action/Reducer 组合,以便在应用程序状态中更改分配给 messages 属性的对象。但是,当我调用该操作并将消息提供一个新对象时,整个页面都会刷新,并且我的状态会恢复到初始值。

默认情况下,消息是一个空变量,并被分配一个包含中文字符的 id 值的对象。默认情况下,当给定对象时,可以正确看到翻译。只有当我通过操作更新它时,应用程序才会刷新并且无法获得所需的结果。

什么可能导致我的应用程序刷新?

0 投票
1 回答
3526 浏览

javascript - 我如何动态呈现消息

我正在使用 react-intl 包进行翻译。用户可以在西班牙语和英语之间进行选择。默认情况下,使用西班牙语。如果用户选择英语,则所有文本都应翻译成英语,如果是西班牙语,则应翻译成西班牙语。我创建了一个动作以及存储语言环境及其消息的减速器。该组件接受语言环境和消息作为道具。我也可以动态传递语言环境和消息。动态地,我的意思是当用户选择英语时,将语言环境设置为“en”并相应地获取其消息。

但我无法动态呈现消息/文本。我收到以下错误

无法格式化消息:“Nav__registration_text”,使用消息 ID 作为后备。

这是我的代码

0 投票
5 回答
16494 浏览

typescript - React-intl,使用 api 和 Typescript

我想formatMessage使用react-intl来插入一条消息作为占位符,但我不知道访问此功能的正确方法。

这是我所拥有的简化版本:

我用作道具InjectedIntlProps的类型,因为似乎没有提供方法。intlIntlShapeformatMessage

我添加了一个?到intl道具,因为我一直有一个Property 'intl' is missing(但不injectIntl应该在没有这个道具的情况下返回一个组件?)

现在它编译了,但是运行时出现错误Cannot read property 'displayName' of undefined。我猜这是因为默认导出没有明确的名称)。

我觉得我没有朝着正确的方向前进,但是找不到 typescript/react-intl 项目的任何示例。

谢谢你的帮助!

0 投票
1 回答
4375 浏览

internationalization - react-intl 或 intl-messageformat 中的小数复数形式(javascript i18n 包)

我正在使用react-intl包进行国际化。反过来,该软件包依赖于intl-messageformat. 我一直在搜索这两个包中的文档,但仍然对是否可以将分数变量的消息国际化感到困惑。例如,如此所述:

一些语言使用“1. 2茶匙”但“2 . 1茶匙”</p>

react-intl使用/时有没有办法计算分数intl-messageformat?到目前为止,我只在文档中看到了带有整数的示例。

0 投票
3 回答
11226 浏览

javascript - 如何使用 react-intl 使用标签(链接)格式化消息?

我需要添加指向我需要翻译的文本的链接。如何格式化具有链接的消息?

现在这就是我想要做的:

然后,在渲染函数中:

这行不通。我得到:通过点击“下订单”按钮,您确认您已阅读、理解并接受我们的【object Object】、【object Object】和【object Object】。

完成这项任务的正确方法是什么?

0 投票
1 回答
849 浏览

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 日”?