ZF2:如何翻译表单注释?
ZF2: how to translate Form annotations?
是否可以翻译 docscommment 中的注释?
这是我的实际代码示例:
/**
*
* 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;
在我的模板文件中翻译生成的表单标签(我使用 twig):
<label for="{{field.getName()}}">
{{translate(field.getLabel())}}:
</label>
它工作得很好,除了像 POEdit 这样的解析器不能用这种方式找到术语 "Name"。现在我在我的模型中使用一个私有方法来通知解析器术语存在......但它很脏..
/**
* Unused in the software, used by external parser.
*/
private final function parseTranslations()
{
$this->translate('Name');
return null;
}
是否有更好的解决方案来解决此问题并翻译 docscomments 中的术语?
无法强制 poedit 识别要从注释翻译的文本。 Poedit 使用 xgettext 来解析文件,而这个只是忽略注释行。
考虑编写您自己的解析器可以解决此问题。创建 .po 文件并不像它假装的那么困难。接下来你必须使用 msgfmt 工具将它编译成 .mo 二进制格式。
是否可以翻译 docscommment 中的注释?
这是我的实际代码示例:
/**
*
* 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;
在我的模板文件中翻译生成的表单标签(我使用 twig):
<label for="{{field.getName()}}">
{{translate(field.getLabel())}}:
</label>
它工作得很好,除了像 POEdit 这样的解析器不能用这种方式找到术语 "Name"。现在我在我的模型中使用一个私有方法来通知解析器术语存在......但它很脏..
/**
* Unused in the software, used by external parser.
*/
private final function parseTranslations()
{
$this->translate('Name');
return null;
}
是否有更好的解决方案来解决此问题并翻译 docscomments 中的术语?
无法强制 poedit 识别要从注释翻译的文本。 Poedit 使用 xgettext 来解析文件,而这个只是忽略注释行。
考虑编写您自己的解析器可以解决此问题。创建 .po 文件并不像它假装的那么困难。接下来你必须使用 msgfmt 工具将它编译成 .mo 二进制格式。