如何合并2个.POT文件(翻译文件)

Dan*_*ola 13 translation localization gettext internationalization

我有以下情况:

我要翻译的一个产品,有两个独立的网站,一个用于管理员,一个用于客户.
代码库是CakePHP.
两个站点彼此完全分离,它们是完整的CakePHP站点.
而且它们都有很多共同点.

因此,使用CakePHP,我为每个站点生成.pot文件,但我很乐意为翻译者提供一个文件,两个.pot文件中都有唯一的字符串.

他们会给我一个带有两个网站字符串的.po文件,我只是将同一个文件复制到两个网站,所以我会有.po文件,其中包含代码不会使用的额外字符串,但是应该不是问题.

所以问题基本上是......我如何合并两个.pot文件?

  • 我需要获得一个没有重复字符串的新文件.
  • 理想情况下,它会在CakePHP添加的每个字符串之前保留(并且对于重复的字符串,追加)注释,指定找到字符串的位置,但如果没有这样做,那很好,我可以没有它.(有关此内容的说明,请参见下文.pot文件的摘录)

你知道有什么工具让我这么做吗?我真的很想避免写自己的.


这些是我上面谈到的评论:

#: \controllers\accounts_controller.php:118
#: \controllers\customer_documents_controller.php:75
msgid "Parent Customer not specified"
msgstr ""
Run Code Online (Sandbox Code Playgroud)

pup*_*eno 26

好的,所以这样做的工具是msgcat

msgcat *.pot > all.pot
Run Code Online (Sandbox Code Playgroud)

如果你在Windows上,安装cygwin,并确保你有gettext-devel包,因为msgcat不在常规的gettext包中.

  • 在POT文件的情况下(与PO文件相反)我建议使用"--use-first",而不是最终得到不必要的重复内容. (4认同)