如何使用 React Intl 动态添加语言环境数据?

2023-12-30

我正在使用 React-intl 来实现 UI Util 库的国际化。该库有一个名为 i18n 的文件夹,其中我放置了不同区域设置的 json 文件。如果该库的用户想要添加对其他区域设置的支持,他/她可以放置带有相应区域设置的键/值对的附加 json 文件。

但是React-intl需要导入并添加之前的相应语言环境的LocaleData。例如,

import fr from 'react-intl/locale-data/fr';
addLocaleData([...fr]);

有没有办法在 React-intl 中动态添加 LocaleData 并导入相应语言环境的语言环境库?


如果您使用的是 webpack。您可以对应用程序中的不同区域设置数据进行代码分割并动态加载。 Webpack 1 仅支持 require.ensure(),webpack 2 还支持 System.import()。 System.import 返回一个承诺,而 require.ensure 使用回调。https://webpack.github.io/docs/code-splitting.html https://webpack.github.io/docs/code-splitting.html

使用 System.import()

import { addLocaleData } from 'react-intl';

const reactIntlLocaleData = {
  fr: () => System.import('react-intl/locale-data/fr'),
  en: () => System.import('react-intl/locale-data/en')
};

function loadLocaleData(locale){
  reactIntlLocaleData[locale]()
  .then((intlData) => {
    addLocaleData(intlData)
  }
}

使用 require.ensure()

import { addLocaleData } from 'react-intl';

const reactIntlLocaleData = {
  fr: () => require.ensure([], (require) => {
    const frData = require('react-intl/locale-data/fr');
    addLocaleData(frData);
  }),
  en: () => require.ensure([], (require) => {
    const enData = require('react-intl/locale-data/en');
    addLocaleData(enData);
  })
};

function loadLocaleData(locale){
  reactIntlLocaleData[locale]();
}

根据您的开发环境,上面的代码可能会也可能不会工作。它假设您正在使用 Webpack2 和 Babel 来转译您的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 React Intl 动态添加语言环境数据? 的相关文章

  • 从 @ElementCollection 中搜索对象

    我正在使用 Spring Data JPA 我是这样的一个实体 public class A CollectionTable name B ITEMS joinColumns JoinColumn name B ID ElementColl
  • 是否可以在支持 Intel IA-32e 模式的操作系统中运行 16 位代码?

    在 Intel 64 IA 32 架构手册第 3A 卷第 9 章处理器管理和初始化中 我发现了以下内容 兼容模式执行是基于代码段选择的 此模式允许旧应用程序与以 64 位模式运行的 64 位应用程序共存 在 IA 32e 模式下运行的操作系
  • 授权策略始终返回 403(禁止)-MVC/API

    我创建了一个 API 带有 EF Core 的 Net Core 2 其端点用于检索某些角色 我将 ASPNetIdentity 集成到我的项目中 并使用 AspNetRoles 和 AspNetRoleClaims 在我的例子中 调用 A
  • 当我们不关心结果时异步 URLfetch? [Python]

    在我为 GAE 编写的一些代码中 我需要定期对另一个系统上的 URL 执行 GET 本质上是 ping 它 并且我不太关心请求是否失败 超时或成功 因为我基本上想要 即发即忘 而不是通过等待请求来减慢我自己的代码速度 所以我使用异步 url
  • 在 asp.net 应用程序中将自动生成的 pdf 附加到电子邮件

    我有一个非常具体的要求 在我的网络应用程序中 我必须根据数据库值和电子邮件正文生成 pdf 发票 我可以使用 SMTP 轻松发送此信息 效果非常好 但是 问题是我们不能依赖系统总是完美的 而这是一张发票 所以 我们需要打开默认的邮件客户端而
  • 更改 DialogFragment 中 ProgressDialog 的字体

    我想知道是否可以更改字体ProgressDialog的消息显示 内DialogFragment public class LoadFromCloudTaskFragment extends DialogFragment Override p
  • 如何在通话开始时播放音频文件?

    我正在从我的应用程序发起语音呼叫 现在我希望当另一端的用户接听电话时 我想播放录制的音频文件 这件事该怎么办呢 请帮忙 我已经找到了解决方法 当手机状态变为TelephonyManager CALL STATE OFFHOOK 这可确保另一
  • Rails 4 中的 Jquery 文件上传

    大家好 我正在关注 Jquery 文件上传的视频教程 http railscasts com episodes 381 jquery file upload http railscasts com episodes 381 jquery f
  • 获取列表中的所有递归结果

    我正在学习 python 递归 为了练习 我给出了一个任务来查找列表的所有子集 例如函数 subset 1 2 should return 1 2 1 2 我可以让我的函数在递归的帮助下打印这些结果 def subset List prin
  • Basler Pylon 4 SDK 和 OPENCV 2.4.9,CPylonImage 到 Mat

    我目前正在使用 Basler 相机 acA1300 30gc 开发机器视觉应用程序 为此 我正在使用 Basler Pylon 4 和 OPENCV 版本 2 4 9 但出现了一些问题 我正在尝试使用 Pylon SDK 捕获图像并将其转换
  • 获取当前活动的应用程序名称

    我想在计时器停止时获取当前活动应用程序的名称 记录 20 秒后 它应该显示当前活动的应用程序名称 我尝试了一些代码 你可以在这里看到 但计时器停止后它没有向我显示任何内容 C code public class Win32wrapper p
  • MediaPlayer 中的 IllegalStateException

    这是我的代码 if player null if player isPlaying player pause player stop player release 这是错误 FATAL EXCEPTION main java lang Il

随机推荐

  • Firebase 数据库每次读取时都返回 null

    我有一个类从数据库读取数据 但它总是返回null 这是java文件 public class UserActivity extends AppCompatActivity TextView textView private Firebase
  • 通过重定向进行基本身份验证

    我有一个需要基本身份验证标头的网络服务 但是 当我使用它来调用它时 var header Authorization Basic CreateBasicHttpAuthenticationHeader login password webR
  • 打乱已排序的数组

    如果给定一个已排序的数组 我们可以使用什么算法来创建一个与已排序数组具有相同元素的输出数组 但元素应该随机打乱 我正在寻找一种复杂度为 O n 的算法 Collections shuffle List has an O n 时间复杂度 您可
  • 如何在 Docker 容器中运行 Python Flask [重复]

    这个问题在这里已经有答案了 我正在尝试在 docker 容器内运行 Python Flask Web 服务器 但无法从外部连接到 Flask 服务器 我做了什么 我创建 temp HelloFlask py from flask impor
  • 使用 Phonegap 应用程序执行 ajax 请求时出现问题

    我正在尝试使用 Phonegap 和 jQuery 创建一个简单的 RSS 阅读器 我正在关注这个教程 http visualrinse com 2008 09 24 how to build a simple rss reader wit
  • 来自 Android 的 HTTP 补丁请求

    我正在尝试从 Android 应用程序发出 HTTP 补丁请求 但无法弄清楚 HTTPUrlConnection 似乎不支持 PATCH HttpPatch 似乎不在 Android 包含的库中 link http hc apache or
  • Microsoft 团队获取来电号码

    我们有一个非常简单的用例 当团队中的用户被呼叫时 我们需要的只是呼叫者的号码 我们的想法是将这个数字传递到我们的后端系统并弹出相关信息 如果存在 所以只需要一种方法来读取呼叫者的号码 我查看了通话记录 API 但他们会提供已经发生的通话的信
  • MDX DRILLTHROUGH 失败但 select 可以成功执行

    我有以下 MDX 查询 它在执行时成功返回度量 SELECT Measures Closed Quote OE Retail ON COLUMNS FROM Sales WHERE Posting Date Date YQMD Month
  • sql服务器+VB 6.0

    我在 vb 6 0 中创建了一个数据库项目 我已经在 sql server 2000 中创建了数据库 我使用 adodc 和 odbc 连接到数据库 我想将我的 sql 服务器保留在一个系统中 将我的 vb 6 0 应用程序保留在另一个系统
  • 在 JSF 子视图中混合 HTML 和 JSF

    我今天遇到的问题是关于使用 JSF 处理包含的 JSP 中的 HTML 情况如下 我在 RAD 上使用 IBM 的 JSF 1 2 和 Websphere v6 1 我有一个自定义组件 来自公司层 来使用选项卡 为了获得更清晰的代码 我只想
  • Ember:动态切换到所选语言(使用 i18n 库)

    我正在使用 ember i18n 库来翻译我的应用程序中使用的静态字符串 由于语言文件相当大 我不想在应用程序启动时加载所有可能的语言词典 因此 我想在用户选择更改语言时动态加载字典 我已经做了第一个实现 效果相当好 See http js
  • 通过@leader@model访问automlleader时返回空列表

    Running h2o automl 返回排行榜中的单个模型 但是 当尝试通过访问实际模型时 leader model 出现以下错误 is H2OFrame x 中的错误 尝试从对象获取槽 指标 没有槽的基本类 NULL 另外 打电话时h2
  • 如何调试失败的 Fargate 任务初始化

    我有一个 Fargate 任务 已计划使用 CloudWatch Event 规则运行 并在成功运行时将时间戳输出到数据库 它还会在每次运行时向 CloudWatch 输出一个日志文件 但是 有 1 次未创建日志文件 并且未更新数据库 我怀
  • 为特定子域设置会话cookie

    我有一个具有多个子域的网站 它们共享一个唯一的 PHP 会话 cookie 来识别每个用户 我通过简单地添加来做到这一点session cookie domain mydomain com 但是我想知道是否可以指定多个子域 以便 cooki
  • Javascript 增量不起作用

    好吧 我不知道到底什么才是一个好的标题 因为这是一个最特殊的情况 或者我异常愚蠢 这就是我想做的 创建一个简单的
  • 数组元素的重复副本:MATLAB 中的游程解码

    我正在尝试使用 值 数组和 计数器 数组将多个值插入到数组中 例如 如果 a 1 3 2 5 b 2 2 1 3 我想要某个函数的输出 c somefunction a b to be c 1 1 3 3 2 5 5 5 其中 a 1 重复
  • 在 python/bash 脚本中编写 Git 挂钩 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我最近需要编写 git hooks 以便所有提交都引用特定的票证 我希望有一个地方可以开始学习 Pro
  • C# 泛型接口协方差

    我有一个界面IControl
  • 自加入条件查询

    所以我有一个名为 用户 的表 其字段为 userId userName 主管 ID 我想获取特定用户的主管的用户名 CriteriaBuilder criteriaBuilder em getCriteriaBuilder Criteria
  • 如何使用 React Intl 动态添加语言环境数据?

    我正在使用 React intl 来实现 UI Util 库的国际化 该库有一个名为 i18n 的文件夹 其中我放置了不同区域设置的 json 文件 如果该库的用户想要添加对其他区域设置的支持 他 她可以放置带有相应区域设置的键 值对的附加