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

时间:2016-01-12 21:44:04

标签: merge command-line-interface translation gnu gettext

我试图合并两个PO文件。

我有一个base.po文件,其中包含一般翻译。

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

我已尝试使用msgmerge

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

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

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

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

有谁知道我该怎么做?

1 个答案:

答案 0 :(得分:3)

原来我需要使用msgcat代替。

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

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

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