首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PoEdit和PHP注解

PoEdit和PHP注解
EN

Stack Overflow用户
提问于 2012-07-19 22:48:23
回答 2查看 1.2K关注 0票数 6

我正在寻找一种让PoEdit理解PHP注解的方法。下面是我希望PoEdit提取并放入目录中的代码示例:

代码语言:javascript
复制
class MyController extends Controller {

    /**
     * @Title "Home"
     */
    public function index() {
        ...
    }

}

有趣的部分是@Title注释。它在前端控制器中被访问,并被分配给主视图,有效地结束在<title>...</title>标记中。

现在我需要翻译该字符串,但是PoEdit似乎只理解_()表达式,并且将@Title添加到关键字不起作用。这可能是因为PHP中的注释位于注释块中。

有没有办法强制PoEdit理解注释?

EN

回答 2

Stack Overflow用户

发布于 2012-07-24 14:59:09

简而言之,你不能。

POEdit使用xgettext来扫描您的文件,因此使用特定的语法,忽略注释行。

例如,如果您的关键字是_,则以下示例将被解析为:

测试字符串‘_('test');

测试字符串‘_("test");

测试字符串‘_('test'

_ 'test ->没有捕获

_('test ->没有捕获

_(test) ->没有捕获

_($test) ->没有捕获

//_('test'); ->没有捕获

/*_('test');*/ ->没有捕获

您可以使用其他参数执行xgettext,但我不确定您是否能够实现您的目标。

一个简单的解决方法(不是标准的ofc)是添加其他关键字,如placeholder,并使php函数如下

代码语言:javascript
复制
function placeholder($string){}

并使用它,这样POEdit就可以解析它

代码语言:javascript
复制
class MyController extends Controller {

    /**
     * @Title "Home"
     */
    public function index() {
      placeholder('Home');  
      ...
    }

}

在你的前端解析器中,只需使用简单的_($value),你的标题就会被翻译。

不知道你的代码是怎样的,但会假设它是类似于下面的东西。

假设$tag = 'title‘和$value = 'Home’

代码语言:javascript
复制
echo '<'.$tag.'>'._($value).'</'.$tag.'>';
票数 3
EN

Stack Overflow用户

发布于 2012-07-22 02:00:22

如果你真的想这样做,那么你可以从php文件中提取你需要的字符串到一个外部文件中,同时用_(string);替换注释部分来匹配每个匹配项,并在该文件上运行Poedit。

您可以将其与.*\*\s\@(\w+)\s\"(\w+)\".*匹配- $1将是注释(标题),$2将是值:(主页)

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

https://stackoverflow.com/questions/11563403

复制
相关文章

相似问题

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