我正在使用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