如何迭代使用xgettext来更新.po文件进行翻译

时间:2009-03-30 14:52:31

标签: internationalization gettext xgettext

我正在使用xgettext来帮助翻译大型代码库,我有两个问题:

  • 如果我每个语言都有一个.po文件,是否有一种简单的方法可以使用代码库的单个xgettext扫描来更新它们,或者我必须为每种语言运行一次xgettext吗?
  • 如果我使用poedit将目标语言添加到.po文件头,xgettext似乎用默认标头覆盖它。我怎么能阻止这个?

也许我使用了错误的工具,在这种情况下建议是受欢迎的。我想要的是能够扫描代码并使用任何新字符串更新.po文件,但保留任何标题信息。

编辑:我知道poedit可以扫描代码,但我希望找到一个命令行应用程序来执行扫描以更轻松地自动化该过程。

1 个答案:

答案 0 :(得分:9)

是的,基本上你使用的工具是错误的。

xgettext提取标签并创建模板文件。 (例如* .pot文件)

msgmerge命令使用.pot文件中的更改更新.po文件。

我们制定了更新.po文件的规则,如下所示:

%.en.po : %.pot
    -[ -e $@ ] && msgmerge --width=110 --update $@ $<
    [ -e $@ ] || cp $< $@