Автоматическая генерация комментариев Gettext


Я делаю i18n для php-проекта с использованием gettext. Я хотел бы использовать функцию автоматического комментария , чтобы давать подсказки переводчикам при переводе длинных фраз, замененных идентификатором. То, что я хочу получить, - это следующий po-файл

#: full-path-to-file/index.phtml:3
#. a very long text which should replaced by _('foobar')
msgid "foobar"
msgstr ""

Таким образом, переводчик может видеть, что ему следует перевести, когда он видит ключ foobar с помощью POEdit или какого-либо аналогового инструмента в поле комментариев программиста.

Я пробовал использовать этот код, но он не работает

<?php
/// TRANSLATORS: a very long text which should replaced by _('foobar')
_('foobar');
?>

Являюсь ли я что-то упущено или автоматические комментарии просто не работают для php?

Даже Википедия упоминает эту функцию, я пытался скопировать их пример в файл C, но я не могу заставить его работать даже с C. Я использовал командную строку

xgettext -C -o - main.c

Но сгенерированный результат равен

#: main.c:16
#, c-format
msgid "My name is %s.\n"
msgstr ""

Итак, я определенно что-то упускаю, должен ли я использовать какой-либо флаг xgettext или конкретную версию для включения этой функции.

Author: Fabio, 2011-10-05

1 answers

Чтобы заставить xgettext извлекать комментарии из вашего источника, вам нужно передать аргумент, чтобы указать ему, какие комментарии искать.

Из документации :

-c[tag]
--add-comments[=tag]

Поместите блоки комментариев, начинающиеся с тега и предшествующих строк ключевых слов, в выходной файл. Без тега опция означает, что все блоки комментариев, предшествующие строкам ключевых слов, помещаются в выходной файл.

Передача -c/ или --add-comments=/ в качестве аргумента сделает это распознайте формат "тройной косой черты".

 8
Author: John Flatness, 2011-10-05 17:50:49