DEBCONF-GETTEXTIZE
Section: po-debconf (1)
Updated: 2021-02-16
Page Index
Translation:
debian-l10n-russian@lists.debian.org
Yuri Kozlov <kozlov.y@gmail.com>, 2005, 2006
НАЗВАНИЕ
debconf-gettextize --- создаёт PO-файлы из шаблонов debconf для последующего
перевода
СИНТАКСИС
debconf-gettextize [
-v] [
-h] [
--podir=КАТАЛОГ
] [
--choices]
[
--merge]
мастер_файл [
мастер_файл ...]
ОПИСАНИЕ
В файлах
/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".
СМОТРИТЕ ТАКЖЕ
debconf-updatepo(1),
po2debconf(1),
debconf-devel(7),
po-debconf(7).
АВТОРЫ
Дэнис Барбье (Denis Barbier) <barbier@linuxfr.org>
Мартин Квинсон (Martin Quinson) <martin.quinson@ens-lyon.fr>