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

时间:2010-10-29 14:24:11

标签: localization internationalization translation gettext

我有以下情况:

我要翻译的一个产品,它有两个独立的网站,一个用于管理员,一个用于客户 代码库是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 ""

3 个答案:

答案 0 :(得分:26)

好的,所以执行此操作的工具是msgcat

msgcat *.pot > all.pot

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

答案 1 :(得分:1)

msgcat 不应该是正确的答案,msgcat 适用于 .po 文件,但由于文档原因,它不适用于 .pot 文件:

<块引用>

要连接 POT 文件,最好使用 xgettext,而不是 msgcat,因为 msgcat 会阻塞指定 POT 中未定义的字符集 文件。

正确的是:

xgettext input/*.pot -o out.pot

答案 2 :(得分:-3)

命令是:

msgcat inputfile1 inputfile2 ... > outpo
相关问题