xgettext - извлекает переводимые строки и обновляет .pot - PullRequest
4 голосов
/ 28 января 2011

Я унаследовал файл sample.pot.Теперь я добавил новые сообщения в a1.c и a2.cpp.Могу ли я использовать xgettext и вывести содержимое в тот же sample.pot вместо создания нового?Например: -

xgettext -d sample -s -o sample.pot a1.c
xgettext -d sample -s -o sample.pot a2.cpp

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

Было бы замечательно, если бы кто-то мог поделиться правильным подходом. Спасибо

Ответы [ 2 ]

3 голосов
/ 29 января 2011

Разве опция -j, --join-existing («объединять сообщения с существующим файлом») не делает то, что вам нужно?

Обратите внимание, что вы можете указать более одного входного файла в командной строке.

xgettext -d sample -s -j -o sample.pot a1.c a2.cpp
1 голос
/ 26 сентября 2016

Самый простой способ добиться этого:

xgettext -o sample.pot -s a1.c a2.cpp sample.pot

Вам не нужны -j, --join-existing, потому что xgettext принимает файлы .po и .pot как обычные входные файлы.

Опция -j, --join-existing редко используется.В сочетании с -D, --directory это приводит к тому, что выходной файл sample.pot, используемый в качестве входного файла, не ищется в списке каталогов.Если вы используете -l c, --language=c, вам нужны -j, --join-existing, потому что иначе sample.pot будет проанализирован как исходный файл C / C ++.

Кроме того, -o sample.pot, --output=sample.pot имеет точно такой же эффект, как -d sample, --default-domain=sample.Вы можете спокойно пропустить один из них.

...