2012-06-16 66 views
0

假設我有一個example.php文件這樣的:如何保留gettext()翻譯?

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

如果我提取字符串:

xgettext example.php 

我得到一個messages.mo文件,我可以用poedit打開,翻譯,創建一個.po文件等等,沒關係,問題是當我編輯我的原稿並且已經翻譯時example.php

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

我已經添加了一個新字符串,如果我再次執行xgettext,我會得到一個messages.mo文件,其中所有字符串都是空的,所以我必須使用poedit並再次翻譯所有字符串。我如何重新使用我以前的翻譯?

回答

1

您可以將兩個po文件與msgmerge合併在一起。如果源字符串保持不變,則合併應該完美運行,如果它發生了變化,您顯然可能需要做一些工作才能重新進行翻譯,當然,您將不得不翻譯任何全新的字符串。

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