В проекте, использующем GNU Autotools, есть ли задача запустить xgettext?
Резюме:
У меня есть проект с использованием GNU Autotools. У меня есть файл банка. Мне нужно обновить его. Есть ли волшебная задача "сделать", которая запускает xgettext для меня (я ленивый?)
Подробная версия:
Привет
Я пытаюсь настроить проект, используя GNU autotools и gettext.
Я пытаюсь следовать "ленивому" пути (то есть писать только configure.ac, Makefile.am и т. Д., И пусть инструменты генерируют для меня как можно больше остального).
Я однажды использовал gettextize для своего пакета, поэтому я создал файл package.pot и извлек файл fr.po (я пытаюсь перевести на французский).
Мне никогда не удавалось перевести мой код, но я понял, что это может быть из-за того, что код был не в том месте. Переведенная строка находится в lib вместо main, и в документации совершенно неясно, что мне делать в этом случае. Если мой основной вызов функции в библиотеке, а функция из библиотеки использует _(). Должен ли я использовать gettext из d gettext в этом случае? Моя библиотека здесь только для целей организации, поэтому я могу использовать один и тот же домен (только один файл package.pot для всего приложения).
Итак, чтобы попробовать что-то попроще, я переместил свою строку в основную (на данный момент это действительно просто привет). Поэтому мне нужно обновить файл package.pot, чтобы хотя бы понять, что позиция строки изменилась, не так ли? В этом случае, буду ли я использовать xgettext вручную (мучительно передавая ему список всех интересных файлов cpp, что будет проблемой в заднице, когда у меня более одного файла), или есть где-нибудь задача "сделать что-нибудь", которую я может бежать?
Это может выглядеть глупо, но я не смог его найти.
Также приветствуется любая помощь в поиске причин, по которым мой код не переведен (что-либо не в http://www.gnu.org/software/gettext/FAQ.html)!
Спасибо
PH
1 ответ
Хорошо, получается, что:
- в сгенерированном Makefile папки po / есть задача update-po, которая делает то, что я хочу;
- эта задача ищет файл, указанный в файле POTFILES.in, который я забыл обновить.
Так что это было что-то глупое.