如何使用FormatJS CLI保留翻译顺序



提取消息时,它们在提取文件中根据随机生成的id按字母顺序排列。有什么方法可以防止这种情况发生,并将它们按与代码中出现的顺序完全相同的顺序排列吗?

例如现在:

"AYGNrK": translation2,
"BIOgfm": translation1,
"Cqv/CV": translation3,

通缉:

"BIOgfm": translation1,
"AYGNrK": translation2,
"Cqv/CV": translation3,

如果您想完全控制导出的消息,可以使用自己的格式化功能。

formatjs extract "src/**/*.{ts,tsx,vue}" --format [path]

在该函数中,您可以对其进行排序,即按值排序。有关自定义格式化程序的一般结构,请参见此示例:

https://github.com/formatjs/formatjs/blob/main/packages/cli/src/formatters/default.ts

一种替代方法是用前缀设置自定义id,而不是生成id。但您需要注意命名冲突。

<FormattedMessage
id="component.title"
value="My title"
/>

最新更新