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

Localization 如何合并2.POT文件(翻译文件),localization,internationalization,translation,gettext,Localization,Internationalization,Translation,Gettext,我有以下情况: 我想翻译的一个产品有两个独立的网站,一个是管理员网站,一个是客户网站。 代码库是CakePHP。 这两个站点彼此完全独立,它们是完整的CakePHP站点。 它们都有很多相同的字符串 因此,我使用CakePHP为每个站点生成.pot文件,但我希望为翻译人员提供一个文件,在两个.pot文件中都有唯一的字符串 他们会给我一个带有两个站点字符串的.po文件,我只会将同一个文件复制到两个站点,所以我会有代码不会使用的带有额外字符串的.po文件,但这应该不是问题 所以问题本质上是。。。如何合

我有以下情况:

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

好的,这样做的工具是msgcat

msgcat *.pot > all.pot
如果您在Windows上,请安装cygwin,并确保您拥有该软件包,因为msgcat不在常规版本中。

该命令是:

msgcat inputfile1 inputfile2 ... > outpo

谢谢大家!___________________________@J.Pablo Fernández:您可以发布合并命令吗?对于POT文件(与PO文件相反),我建议也使用“-use first”,以免产生不必要的重复内容。可能适合对msgcat输出进行后期处理以避免重复,@Gallaecio?为什么要投反对票?J.Pablo的答案更好,但这并不是技术上的错误或误导,我猜是因为这个答案除了现有答案之外没有任何内容,而这个答案是在更好的答案出现近两年后添加的。