问题标签 [babel-plugin-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 回答
651 浏览

next.js - react-intl 与服务器端渲染

问题

Next js SSR 环境无法检测“gr”和“rs”或“es”等某些语言的语言环境。我正在使用 react-intl https://github.com/formatjs/formatjs

这导致我的浏览器在页面加载时显示此错误。

忽略错误

我设法通过设置默认语言环境并像这样处理 onError 来抑制错误

然而,这并不是一个真正的修复,因为现在服务器端渲染将不同于实际请求的页面(它被烘焙到 url 中)。http://localhost/rs/page


库中失败的行

特别是在 SSR 库中失败的行是这一行,因为语言环境返回一个空数组。


水合错误

此外,如果我使用上面的 onError 技巧,我自然会收到 SSR 水合物错误,因为它在服务器上以不同的语言呈现


如何让 nextjs ssr 了解语言环境?

0 投票
0 回答
161 浏览

internationalization - react-intl:使用 .js 文件而不是 .json 文件进行消息存储

我正在使用没有 JSON 消息文件的 react-intl。相反,我只使用 .js 文件。我用<FormattedMessage id="" /> and <FormattedDate value={} />. 它可以正常工作。但是,react-intl 文档说使用 JSON 文件作为消息。

我想确定我是否在做正确的事情。没有 babel 配置,没有设置 package.json 文件或没有消息提取,到目前为止我没有收到任何错误。

我在下面做的事情正确吗?为什么他们建议使用 JSON 格式和 babel 配置?谢谢。

我的文件夹结构是:

我的 message.js 文件是这样的,所有消息都存储在一个文件中:

locales.js 文件:

在 APP.js 中,我包装了所有路由:

我使用 redux 来更改语言:

0 投票
0 回答
100 浏览

vite - Formatjs / react-intl 与 Vite

Formatjs 为用于注入消息 ID 和删除的模块提供了一个babel 插件。我如何将它与Vite一起使用?react-intldescription