【问题标题】:Is it possible to override locale of one specific intl.formatMessage?是否可以覆盖一个特定 intl.formatMessage 的语言环境?
【发布时间】:2018-08-12 18:22:39
【问题描述】:

我将react-intlenfr 一起使用,我的React 应用程序包含在

<IntlProvider locale={lang}>

所以例如当langen 时,所有intl.formatMessage 调用都会产生英文文本。

我想要实现的是我想要&lt;IntlProvider locale="en"&gt;,但在应用程序内部,我需要将一个特定的intl.formatMessage 翻译成fr

【问题讨论】:

  • 如果你有两种语言的翻译 JSON 文件,你能不能把 fr 放在对应的 en 翻译里面?
  • 感谢您的提示,但我需要在同一页上同时访问同一文本的 enfr 版本,例如喜欢一起打印“Good day”和“Bon Jour”(都定义为例如messages.hello)。
  • 浏览了他们的文档/问题,没有发现任何重要的东西。也许你可以继续为这个问题创建一个问题..他们可能有一个解决方法..

标签: reactjs react-intl


【解决方案1】:

可以在同一个容器中添加多个IntlProvider。您必须为每个语言环境和消息定义。 这里只是一个带有 FormattedMessage 的示例,但它可以是更大的元素:

<div>
  <IntlProvider locale='en' messages={messagesEn} >
    <FormattedMessage value={message.hello} />
  </IntlProvider>

  <IntlProvider locale='fr' messages={messagesFr} >
    <FormattedMessage value={message.hello} />
  </IntlProvider>
</div>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 2021-06-22
  • 2012-07-18
相关资源
最近更新 更多