Это способ перевести аннотации в документацию?
Вот пример моего фактического кода:
/**
*
* 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;
}
Есть ли лучшее решение, чтобы исправить это и перевести термины в документы?
Нет никакого способа заставить poedit распознавать текст для перевода из аннотации. Poedit использует xgettext для разбора файлов, а этот просто игнорирует строки комментариев.
Подумайте над тем, чтобы написать собственный анализатор, чтобы исправить это поведение. Создание .po файлов не так сложно, как кажется. Затем вы должны скомпилировать его в двоичный формат .mo с помощью инструмента msgfmt.
Других решений пока нет …