有没有办法确定.PO文件的覆盖范围?

时间:2018-02-14 14:47:08

标签: localization gettext

我有一个正在开发的python程序,它使用gettext进行翻译。

我有一个带翻译的.POT文件,但它有点过时了。我有一个脚本来生成最新的.PO文件。有没有办法检查.POT文件中有多少新的.PO文件?

1 个答案:

答案 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.