0

这是一种在 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 这样的解析器不能用这种方式找到术语“名称”。现在我在我的模型中使用私有方法来通知解析器术语存在......但它很脏......

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

有没有更好的解决方案来解决这个问题并翻译 docscomments 中的术语?

4

1 回答 1

0

没有办法强制 poedit 识别要从注释翻译的文本。Poedit 使用 xgettext 来解析文件,而这个只是忽略注释行。

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

于 2015-03-31T15:09:43.740 回答