我有一个正在开发的python程序,它使用gettext进行翻译。
我有一个带翻译的.POT文件,但它有点过时了。我有一个脚本来生成最新的.PO文件。有没有办法检查.POT文件中有多少新的.PO文件?
答案 0 :(得分:1)
我有一个带翻译的.POT文件,但它有点过时了。我有一个脚本来生成最新的.PO文件
我认为你的意思是相反。 POT文件是从源代码生成的,其中PO文件包含翻译。
有没有办法检查.POT文件中有多少新的.PO文件?
Gettext命令行msgmerge程序可用于将过时的PO文件与最新的源字符串同步。要从更新的POT创建新的PO文件,您将发出以下命令:
msgmerge old.po new.pot > updated.po
新文件将包含仍然有效的所有现有翻译,并添加任何新的源字符串。在您最喜欢的PO编辑器中打开它,您应该看到现在有多少字符串未翻译。
更新
正如评论中所指出的,你可以看到有多少字符串保留未翻译msgfmt程序的“statistics”选项(通常用于编译为.mo),例如
msgfmt --statistics updated.po
或者没有打扰临时文件:
msgmerge old.po new.pot | msgfmt --statistics -
这将产生如下概要:
123 translated messages, 77 untranslated messages.