【问题标题】:FormattedHtmlMessage react-intl v4FormattedHtmlMessage react-intl v4
【发布时间】:2021-11-25 18:36:12
【问题描述】:

升级到 react-intl@4 后,我们遇到了所有已用作 html 标签的 formattedHtmlMessages 的问题。

<FormattedHTMLMessage id={`${page}.legalNotice`} />

我们尝试用 formattedMessage 替换并尝试 values={{...}}

<FormattedMessage id={`${page}.legalNotice`} /> 

但首先html不被视为html标签。 此外,由于我们在标签(链接)上使用具有不同和未定义数量的“href”甚至不同“目标”的动态翻译,这似乎不是解决方案。

我们的翻译是这样的:


"myPage1.legalNotice" : "By clicking here I accept <a target="_self" title="my specific title" href='first_link.pdf'>LINK1</a>, and <a target="_blank" title="second_title" href='second_link'>LINK2</a> and <a target="_blank" href='third_link' title='third_title'>LINK3</a>."

"myPage2.legalNotice" : "Another Text .. <a target="_blank" href='another_link.pdf'>LINK2</a>."

【问题讨论】:

    标签: reactjs react-intl formatted-text


    【解决方案1】:

    查看迁移指南。 https://formatjs.io/docs/react-intl/upgrade-guide-3x

    您必须为您在消息中使用的所有标签提供描述。

    <FormattedMessage
      defaultMessage="To buy a shoe, <a>visit our website</a> and <cta>eat a shoe</cta>"
      values={{
        a: msg => (
          <a class="external_link" target="_blank" href="https://www.shoe.com/">
            {msg}
          </a>
        ),
        cta: msg => <strong class="important">{msg}</strong>,
      }}
    />
    

    【讨论】:

    猜你喜欢
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 2020-09-06
    • 2018-05-26
    • 2017-10-12
    • 2017-10-05
    • 2017-04-08
    相关资源
    最近更新 更多