首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP数组或DocBlocks (无方法调用)中通过xgettext识别可翻译的字符串?

如何在PHP数组或DocBlocks (无方法调用)中通过xgettext识别可翻译的字符串?
EN

Stack Overflow用户
提问于 2013-04-10 18:07:47
回答 1查看 263关注 0票数 1

我使用poEdit和xgettext-Parser来解析我的PHP源文件并检测所有可翻译的字符串。默认情况下,如果将"translate“指定为xgettext的关键字,则xgettext仅识别函数调用(如translate("foo") )中的字符串。

现在,我在PHP数组中有一些可翻译的字符串,例如

代码语言:javascript
复制
array(
    'label' => 'foo',
);

或者像这样的DocBlocks

代码语言:javascript
复制
/**
 * @FormElement(type="text", options={
 *     "label"="Foobar",
 * })
 */

如何使用xgettext识别这些可翻译的字符串"foo“或"Foobar”?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-06-25 00:49:42

您可以创建一个虚拟的翻译方法,并在创建数组时使用该方法:

代码语言:javascript
复制
function dummy_translate ($string)
{
    return $string;
}

$array = array
(
    'label' => dummy_translate('foo')
);

并使用以下命令提取:

代码语言:javascript
复制
xgettext --keyword=dummy_translate:1

另外,因为xgettext关键字必须形成有效的C标识符,所以不能这样做,就在数组之前:

代码语言:javascript
复制
$dummy_method = function ($string)
{
    return $string;
}

只要找到一个好的地方来放置你的伪方法即可。

除了文档之外,我没有使用DocBlocks,所以不确定这一点,但我猜类似的方法应该可以在那里工作。

附注:额外的函数调用的性能可以忽略不计,请不要浪费时间在微优化上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15922874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档