Как использовать xgettext итеративно для обновления .po файлов для перевода - PullRequest
4 голосов
/ 30 марта 2009

Я смотрю на использование xgettext для помощи в переводе большой кодовой базы, и у меня есть два вопроса:

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

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

РЕДАКТИРОВАТЬ: Я знаю, что poedit может сканировать код, но я надеялся найти приложение командной строки для выполнения сканирования, чтобы упростить автоматизацию процесса.

1 Ответ

9 голосов
/ 30 марта 2009

Да, в основном вы используете инструменты неправильно.

xgettext извлекает теги и создает файл шаблона. (например, * .pot файл)

Команда msgmerge обновляет файл .po с изменениями из файла .pot.

У нас есть правила для обновления файлов .po, как показано ниже:

%.en.po : %.pot
    -[ -e $@ ] && msgmerge --width=110 --update $@ $<
    [ -e $@ ] || cp $< $@
...