合并两个 PO 文件并覆盖匹配的翻译规则

Merge two PO files and overwrite matching translation rules

我正在尝试合并两个 PO 文件。

我有一个包含通用翻译的 base.po 文件。

我有一个 extra.po,它有额外的翻译,我想将其添加到基本文件中,或者如果有匹配的翻译 ID 则覆盖翻译。

我试过使用 msgmerge:

$ msgmerge extra.po base.po -o merge.po

但这会注释掉任何具有匹配 ID 的翻译。

查看 msgmerge documentation,似乎没有任何选项可以影响此行为。

我希望能够有多个额外的翻译文件(extra1.poextra2.po 等),这样我就可以将它们与基本翻译文件合并并在不同的上下文中使用它们.

有人知道如何做我正在尝试的事情吗?

原来我需要使用 msgcat 来代替。

以下命令创建一个 PO 文件 merge.po,其中包含来自 extra.po 的所有翻译,并添加来自 base.po 的任何其他翻译。

--use-first选项指定如果两个文件之间有匹配的翻译id,从extra.po中选择翻译。

$ msgcat extra.po base.po -o merge.po --use-first