В проекте, использующем GNU Autotools, есть ли задача запустить xgettext? - PullRequest
1 голос
/ 07 октября 2009

Резюме:

У меня есть проект с использованием GNU Autotools. У меня есть файл банка. Мне нужно обновить его. Есть ли волшебная задача "сделать", которая запускает xgettext для меня (я ленив?)

Подробная версия:

Привет

Я пытаюсь настроить проект, используя GNU autotools и gettext.

Я пытаюсь следовать «ленивому» пути (то есть писать только configure.ac, Makefile.am и т. Д., И пусть инструменты генерируют для меня как можно больше остального).

Я однажды использовал gettextize в своем пакете, поэтому я создал файл package.pot и извлек файл fr.po (я пытаюсь перевести на французский).

Мне никогда не удавалось перевести мой код, но я понял, что это может быть из-за того, что код был не в том месте. Переведенная строка находится в lib вместо main, и в документации совершенно неясно, что я должен делать в этом случае. Если мой основной вызов функции из библиотеки, а функция из библиотеки использует _ (). Должен ли я использовать gettext из dgettext в этом случае? Моя библиотека здесь только для целей организации, поэтому я могу использовать один и тот же домен (только один файл package.pot для всего приложения).

Итак, чтобы попробовать что-то попроще, я переместил свою строку в основную (на данный момент это действительно просто привет мир). Поэтому мне нужно обновить файл package.pot, чтобы хотя бы понять, что позиция строки изменилась, не так ли? В этом случае, буду ли я использовать xgettext вручную (мучительно передавая ему список всех интересных файлов cpp, что будет проблемой в заднице, когда у меня будет более одного файла), или есть где-нибудь задача «сделать что-нибудь», которую я может бежать ?

Это может выглядеть глупо, но я не смог его найти.

Также, любая помощь в поиске , почему мой код не переведен, (все, что не в http://www.gnu.org/software/gettext/FAQ.html#integrating_noop), приветствуется!

Спасибо

PH

1 Ответ

2 голосов
/ 07 октября 2009

Хорошо, получается, что:

  • в сгенерированном Makefile папки po / есть задача update-po, которая делает именно то, что я хочу;
  • эта задача ищет файл, указанный в файле POTFILES.in, который я забыл обновить.

Так что было чем-то глупым.

...