php - PoEdit 和 PHP 注释

标签 php annotations gettext poedit

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

class MyController extends Controller {

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

}

有趣的部分是@Title注解。它在前端 Controller 中访问并分配给主视图,有效地在 <title>...</title> 中结束。标签。

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

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

最佳答案

简短的回答,你不能。

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

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

_('test'); -> 字符串 'test'

_("test"); -> 字符串 'test'

_('test' -> string 'test'

_ 'test -> 没有捕获

_('测试 -> 没有捕获

_(test) -> 没有捕获

_($test) -> 没有捕获

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

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

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


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

function placeholder($string){}

并使用它以便 POEdit 可以解析它

class MyController extends Controller {

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

}

在您的前端解析器中,只需使用简单的 _($value) 即可翻译您的标题。

不知道您的代码如何,但会假设它与此类似。

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

echo '<'.$tag.'>'._($value).'</'.$tag.'>';

关于php - PoEdit 和 PHP 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563403/

相关文章:

php - Mysql 选择哪里 id = ? AND url = 1、0 或全部

php - 网站 Cookie - 是否存在任何安全问题?

java - 做一个运行代码的网站

java - hibernate 列名问题

php - 在这里使用 gettext 如何帮助我?

php - php.ini 配置文件位置和加载的配置文件之间的区别?

python - 设置注释在字符串轴上的位置

java - Spring AOP : @annotation() pointcut does not match type annotation

android - 对话 fragment 到 Activity 数据传输

PHP 获取文本 : temporary language switch?