我正在使用poEdit和xgettext-Parser来解析我的PHP源文件并检测所有可翻译的字符串。默认情况下,xgettext仅识别函数调用中的字符串,如translate("foo")
,
如果“translate”被指定为xgettext的关键字。
现在我在PHP数组中有一些可翻译的字符串,比如
array(
'label' => 'foo',
);
或类似
的DocBlocks/**
* @FormElement(type="text", options={
* "label"="Foobar",
* })
*/
如何设法用xgettext识别这些可翻译字符串“foo”或“Foobar”?
提前致谢!
答案 0 :(得分:0)
您可以创建一个虚拟翻译方法,并在创建数组时使用它:
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而不是文档,所以不确定,但我想类似的方法应该在那里工作。
P.S。额外函数调用的性能可以忽略不计,请不要浪费时间进行微优化。