我正在使用PHP的gettext函數進行本地化。我使用Poedit來進行實際翻譯,並且通過「從源代碼更新」功能,可以非常容易地提取需要翻譯的所有字符串 - 除了在heredoc語法中。從PHP heredoc語法中提取gettext翻譯?
Poedit正在使用xgettext程序從PHP源文件生成.po文件。它精美的作品時,PHP代碼如下所示:
echo "<h1>". _("test") ."</h1>";
但是下面沒有得到提取(請注意,僞T-對象需要使用):
echo <<<EOD
<h1>{$->_('test')}
EOD;
在PHP代碼,你可以通過以下方式解決該問題:
<?php
$t = _('test');
echo <<<EOD
<h1>$t</h1>
EOD
?>
但我真的寧願在節目了xgettext可從定界符塊中提取字符串。
在PHP文檔註釋workaround for that has been suggested。解決方法是處理告訴xgettext程序將PHP源文件視爲Python代碼。但是在Poedit中使用這種方法給了我很多來自xgettext解析器的語法錯誤。
有誰知道了xgettext獲得從中提取PHP定界符語法翻譯一個解決方法嗎?
一個有點相關的票已經打開的gettext項目的門票系統上:http://savannah.gnu.org/bugs/?27740這表明了定界符支持可以改善?
我創建了一個售票專爲此:http://savannah.gnu.org/bugs/index.php?35944我希望沒有更多的純粹主義者來給解決方法。這只是煩人的,這不被支持。 – Ciantic 2012-03-22 11:51:30