我正在尝试将formatjs设置为与我使用react-intl的应用程序一起使用,但在使用它们的CLI进行提取时遇到了一个问题。我目前有一些自定义组件,其中嵌入了FormattedMessage组件,例如:
<AppLabel title="section_title_name"/>
在<AppLabel/>内部,它有<FormattedMessage id={this.props.title}.../>,它将提供标签的翻译。
如果这些组件不使用id属性来保存要提取的字符串以进行转换,我还可以为这些不同的组件名称设置提取吗?
发布于 2021-01-23 00:29:39
由于不鼓励手动ID,我们提供了一个babel插件和一个TypeScript
转换器,它会自动在您转换后的代码中插入消息ID。有关更多详细信息,请访问Bundling with formatjs。Automatic ID Generation来自消息提取指南,我们明确建议不要使用显式ID,因为在大型应用程序中可能会发生冲突。虽然我们的提取器可以在提取的JSON文件中插入‘d,但您还需要将这些’d插入到编译后的JS输出中。Bundling with formatjs
你可以做到这一点。
yarn add -D babel-plugin-formatjs
在.babelrc中
"plugins": [
[
"formatjs",
{
"idInterpolationPattern": "[sha512:contenthash:base64:6]",
"ast": true
}
]
]https://stackoverflow.com/questions/65255661
复制相似问题