Gettext автоматическая генерация комментариев - PullRequest
10 голосов
/ 05 октября 2011

Я делаю i18n для проекта php, используя gettext. Я бы хотел использовать функцию автоматического комментирования , чтобы давать подсказки переводчикам при переводе длинных фраз, замененных на id. Я хочу получить следующий файл 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 или определенную версию, чтобы включить эту функцию.

1 Ответ

9 голосов
/ 05 октября 2011

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

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

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

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

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

...