我使用poEdit和xgettext-Parser来解析我的PHP源文件并检测所有可翻译的字符串。默认情况下,如果将"translate“指定为xgettext的关键字,则xgettext仅识别函数调用(如translate("foo") )中的字符串。
现在,我在PHP数组中有一些可翻译的字符串,例如
array(
'label' => 'foo',
);或者像这样的DocBlocks
/**
* @FormElement(type="text", options={
* "label"="Foobar",
* })
*/如何使用xgettext识别这些可翻译的字符串"foo“或"Foobar”?
提前感谢!
发布于 2015-06-25 00:49:42
您可以创建一个虚拟的翻译方法,并在创建数组时使用该方法:
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;
}只要找到一个好的地方来放置你的伪方法即可。
除了文档之外,我没有使用DocBlocks,所以不确定这一点,但我猜类似的方法应该可以在那里工作。
附注:额外的函数调用的性能可以忽略不计,请不要浪费时间在微优化上。
https://stackoverflow.com/questions/15922874
复制相似问题