如何通过PHP数组或DocBlock中的xgettext识别可翻译字符串(没有方法调用)?
我使用poEdit和xgettext解析器来解析PHP源文件并检测所有可翻译字符串。默认情况下,xgettext只识别函数调用中的字符串,如translatefoo, 如果将translate指定为xgettext的关键字 现在我在PHP数组中有一些可翻译字符串,比如如何通过PHP数组或DocBlock中的xgettext识别可翻译字符串(没有方法调用)?,php,gettext,poedit,xgettext,Php,Gettext,Poedit,Xgettext,我使用poEdit和xgettext解析器来解析PHP源文件并检测所有可翻译字符串。默认情况下,xgettext只识别函数调用中的字符串,如translatefoo, 如果将translate指定为xgettext的关键字 现在我在PHP数组中有一些可翻译字符串,比如 array( 'label' => 'foo', ); 或者像这样的块 /** * @FormElement(type="text", options={ * "label"="Foobar", *
array(
'label' => 'foo',
);
或者像这样的块
/**
* @FormElement(type="text", options={
* "label"="Foobar",
* })
*/
如何使用xgettext识别这些可翻译字符串foo或Foobar
提前谢谢 您可以创建虚拟转换方法,并在创建数组时使用该方法:
function dummy_translate ($string)
{
return $string;
}
$array = array
(
'label' => dummy_translate('foo')
);
并提取以下内容:
xgettext --keyword=dummy_translate:1
另外,由于xgettext关键字必须形成有效的C标识符,因此不能在数组之前执行此操作:
$dummy_method = function ($string)
{
return $string;
}
只要找一个好地方放你的虚拟方法
除了文档,没有使用docblock,所以对此不确定,但我想类似的方法也应该适用于此
另外,额外函数调用的性能可以忽略不计,请不要浪费时间进行微优化 你找到解决办法了吗?@OytunTez在下面的答案中看到我的建议。谢谢你的更新,@RaduMaris。