Я делаю 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?
Даже Wikipedia упоминает эту функцию, я попытался скопировать их пример в файл C, но я не могу заставить его работать даже с C. Командная строка, которую я использовал, – это
xgettext -C -o - main.c
Но сгенерированный вывод
#: main.c:16 #, c-format msgid "My name is %s.\n" msgstr ""
Поэтому я определенно что-то упустил, должен ли я использовать любой флаг xgettext
или конкретную версию, чтобы включить эту функцию.
Чтобы заставить xgettext
извлекать комментарии из вашего источника, вам нужно передать аргумент, чтобы рассказать ему, какие комментарии искать.
Из документации :
'
-c[tag]
'
'--add-comments[=tag]
'Разместите блоки комментариев, начиная с тега и предшествующих строк ключевого слова в выходном файле. Без тега опция означает поместить все блоки комментариев, предшествующие линиям ключевого слова в выходной файл.
Передача -c/
или --add-comments=/
в качестве аргумента приведет к распознаванию формата «тройной косой черты».