我正在寻找一种让 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/