0

我正在尝试设置 formatjs 以与使用 react-intl 的应用程序一起使用,并且在使用他们的 CLI 进行提取时遇到了问题。我目前有将组件嵌入其中的自定义组件FormattedMessage,例如:

<AppLabel title="section_title_name"/>

<AppLabel/>它里面有<FormattedMessage id={this.props.title}.../>可以为标签提供翻译的东西。

id如果它们不使用属性来保存要提取的字符串以进行翻译,我是否仍然可以为这些不同的组件名称设置提取?

4

1 回答 1

0

由于不鼓励使用手动 ID,因此我们提供了一个 babel 插件和一个 TypeScript AST 转换器,它们会自动在您的转译代码中插入消息 ID。有关更多详细信息,请访问使用 formatjs 捆绑。自动生成 ID

在消息提取指南中,由于大型应用程序中的潜在冲突,我们明确建议不要使用显式 ID。虽然我们的提取器可以在提取的 JSON 文件中插入 ID,但您还需要将这些 ID 插入到编译后的 JS 输出中。与 formatjs 捆绑

你可以这样做。

yarn add -D babel-plugin-formatjs

.babelrc

  "plugins": [
    [
      "formatjs",
      {
        "idInterpolationPattern": "[sha512:contenthash:base64:6]",
        "ast": true
      }
    ]
  ]
于 2021-01-22T16:29:38.650 回答