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

tha*_*ksd 1 merge translation gnu gettext command-line-interface

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

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

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

我试过使用msgmerge

$ msgmerge extra.po base.po -o merge.po
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

tha*_*ksd 5

原来我需要使用它msgcat

下面的命令创建一个 PO 文件merge.po,其中包含extra.po来自base.po.

--use-first选项指定如果两个文件之间存在匹配的翻译 ID,则从extra.po.

$ msgcat extra.po base.po -o merge.po --use-first
Run Code Online (Sandbox Code Playgroud)