如何保存gettext()翻译?

时间:2012-06-16 11:52:33

标签: internationalization translation gettext poedit

假设我有一个example.php文件:

<p>
  <?php echo _('Hello world') ?>
</p>
<p>
  <b><?php echo _('the end') ?>
</p>

如果我提取字符串:

xgettext example.php

我得到一个messages.mo文件,我可以用poedit打开,翻译,创建.po文件等等。没关系,问题是当我编辑原文并已翻译{{ 1}}:

example.php

我添加了一个新字符串,如果我再次执行<p> <?php echo _('Hello world') ?> </p> <p> <?php echo _('new string') ?> </p> <p> <b><?php echo _('the end') ?> </p> ,我会得到一个xgettext文件,其中所有字符串都为空,所以我必须使用poedit并再次翻译所有字符串。我如何重复使用以前的翻译?

1 个答案:

答案 0 :(得分:1)

您可以将两个po文件与msgmerge合并在一起。如果源字符串没有改变,合并应该可以正常工作,如果它已经改变了,你显然可能需要做一些工作来重新翻译,当然你必须翻译任何全新的字符串。

msgmerge -o results.po my_existing_translations.po untranslated_xgettext_output.po