В файлах /var/lib/dpkg/info/*.templates, которые читает debconf,
содержится и английский текст и его перевод. Но в пакетах с исходными
текстами переводы выделены в отдельные файлы для простоты работы
переводчиков. В первоначальной реализации мастер файл templates содержал
только английский текст, а файлы templates.xx --- оригинальные и
переведённые строки для языка xx. Программа debconf-mergetemplate
объединяла мастер файл и переведённые шаблоны.
Новая реализация "po-debconf" основывается на использовании
"gettext". Сопровождающие помечают переводимые поля, предваряя их символом
подчёркивания, строки с английским текстом автоматически выделяются в
POT-файл, переводчики работают с обычными PO-файлами, а программа
po2debconf генерирует объединённый файл шаблонов прежней структуры.
Программа debconf-gettextize изначально разрабатывалась для помощи в в
переходе к новой реализации.
*
Она читает список мастер файлов и связанные с ними переводы, а затем
генерирует файлы po/*.po для каждого языка, для которого есть
переведённые строки.
*
Каждый входной файл переименовывается с суффиксом ".old", и новый мастер
файл перезаписывается на его место; он идентичен мастер файлу, за
исключением того, что поля для перевода начинаются с символа
подчёркивания. Таким образом разработчики могут задать, какие поля должны
иметь перевод, а какие нет, так как их значения не зависят от локали.
*
Также создаётся файл po/POTFILES.in, который содержит список templates
файлов для обработки debconf-updatepo.
Обычно, программа debconf-gettextize должна запускаться только один раз
для преобразования из формата первоначальной реализации в "po-debconf"
формат, но она также может быть использована после для преобразования поля
"_Choices" в "__Choices" (или наоборот) без потери переводов, если
используется флаг "--merge" (вместе с "--choices" или нет). Нужный шаблон,
содержащий изменяемые поля "_Choices" или "__Choices", будет скопирован в
временный файл шаблона, который будет передан как параметр
debconf-gettextize. Затем будет выполнено следующее:
1.
Для создания файла шаблонов с переводом будет запущена po2debconf с
указанием этого файла шаблонов в параметре.
2.
Файл шаблонов с переводом будет обработан как описано выше и будут созданы
PO-файлы.
3.
Эти созданные PO файлы объединяются с существующими.
При объединении PO-файлов перед запуском debconf-updatepo поля
"_Choices" будут заменены на "__Choices" (или наоборот) из первоначального
файла шаблонов, иначе новые переводы будут помечены как неточные (fuzzy).
ПАРАМЕТРЫ
-h, --help
Показать справку по использованию и завершить работу.
-v, --verbose
Показывать подробности работы.
--podir=КАТ
Указать каталог PO-файлов. По умолчанию, PO-файлы ищутся в подкаталоге
po, который находится ниже местоположения первого мастер файла.
--choices
По умолчанию, debconf-gettextize заменяет поля "Choices" на
"_Choices". Если указан этот флаг, будут использоваться поля "__Choices".
--merge
Если этот флаг установлен, то генерируются только PO-файлы из первого мастер
файла, а файлы шаблонов и po/POTFILES.in не изменяются.
ПРЕДОСТЕРЕЖЕНИЯ
Поле "Default" является специальным, если типом шаблона являются "Select"
или "Multiselect", так как значение выбирается из списка English, даже
для локализованных значений. Обычно, это поле изменять не требуется, но
иногда локализованные значения более выразительны (например, для выбора
языка по умолчанию для приложения). Для того, чтобы указать переводчикам,
что локализованное поле "Default" является специальным, по соглашению, вы
должны назвать его "_DefaultChoice", а не "_Default".