2015-03-31 47 views
0

它是翻译docscommment注释的方法吗?ZF2:如何翻译表单注释?

这里是我的实际代码的例子:

/** 
    * 
    * The Item Name 
    * @var string 
    * @Annotation\Options({"label":"Name"}) 
    * @Annotation\Attributes({"type":"text"}) 
    * @ORM\Column(type="string", length=128, nullable=false, unique=true) 
    */ 
    private $name; 

要在我的模板文件转换生成的表单标签(我用树枝):

<label for="{{field.getName()}}"> 
    {{translate(field.getLabel())}}: 
</label> 

它运作良好,除了一个解析器像POEdit一样,不能用这种方式使用“名字”这个词。现在我用的私有方法为我的模型,以通知方面存在的解析器...但它的肮脏..

/** 
* Unused in the software, used by external parser. 
*/ 
private final function parseTranslations() 
{ 
    $this->translate('Name'); 
    return null; 
} 

是否有更好的解决方案,以解决这一问题,并在docscomments翻译方面?

回答

0

无法强制poedit识别要从注释转换的文本。 Poedit使用xgettext来解析文件,而这个只是简单地忽略注释行。

考虑编写自己的解析器可以解决此问题。创建.po文件并不像它假装的那么困难。接下来,您必须使用msgfmt工具将其编译为.mo二进制格式。

+0

好吧,我在php cli中做了一个自定义的解析器。没有任何其他解决方案,它运作良好:)感谢您的答案。 – user2846642 2015-04-09 08:57:37

+0

考虑在github上发布你的工具:) – 2015-04-09 19:10:07