【问题标题】:How to use xgettext iteratively to update .po files for translation如何迭代地使用 xgettext 更新 .po 文件进行翻译
【发布时间】:2010-10-16 09:37:52
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: internationalization gettext xgettext


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 这是拼图中缺失的部分。非常感谢。
    • 如果我理解得很好,您也可以将 -j 添加到 xgettext 命令中,以仅附加缺少的键。使用现有文件加入消息。
    • @jamesjara 我不知道这是否会删除已删除的消息 - msgmerge 将注释掉 po 文件中已从源中删除的消息。
    猜你喜欢
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 2012-05-21
    相关资源
    最近更新 更多