.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" ======================================================================== .\" .IX Title "PO4A 1p" .TH PO4A 1p "2013-08-21" "Инструменты Po4a" "Инструменты Po4a" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "ИМЯ" .IX Header "ИМЯ" po4a \- одновременное обновление \s-1PO\s0 файлов и переведенной документации .SH "ОБЗОР" .IX Header "ОБЗОР" \&\fBpo4a\fR [\fIoptions\fR] \fIconfig_file\fR .SH "ОПИСАНИЕ" .IX Header "ОПИСАНИЕ" Целью проекта po4a (\s-1PO\s0 везде или для всего) является облегчение процесса перевода (и что более важно \- поддержка переводов) использующего инструменты gettext там, где переводимые файлы не выглядят как документация. .PP Программа \fBpo4a\fR очень полезна если вы хотите избежать вызова \&\fIpo4a\-gettextize\fR\|(1), \fIpo4a\-updatepo\fR\|(1), и \fIpo4a\-translate\fR\|(1) в достаточно сложных файлах сборки (Makefiles) когда слишком много файлов для перевода, много различных форматов или необходимо определить разные параметры для разных документов. .SH "Содержание" .IX Header "Содержание" Этот документ устроен следующим образом: .SS "ОПИСАНИЕ" .IX Subsection "ОПИСАНИЕ" .SS "ВВЕДЕНИЕ" .IX Subsection "ВВЕДЕНИЕ" .SS "СИНТАКСИС ФАЙЛА НАСТРОЙКИ" .IX Subsection "СИНТАКСИС ФАЙЛА НАСТРОЙКИ" \fIОпределение шаблона языков\fR .IX Subsection "Определение шаблона языков" .PP \fIОпределение путей к входным файлам переводчика\fR .IX Subsection "Определение путей к входным файлам переводчика" .PP \fIАвтоопределение путей и языков\fR .IX Subsection "Автоопределение путей и языков" .PP \fIОпределение документов для преревода\fR .IX Subsection "Определение документов для преревода" .PP \fIОпределение параметров для модулей\fR .IX Subsection "Определение параметров для модулей" .PP \fIОпределение ссылок (aliases)\fR .IX Subsection "Определение ссылок (aliases)" .PP \fIРаздельный режим\fR .IX Subsection "Раздельный режим" .SS "ПАРАМЕТРЫ" .IX Subsection "ПАРАМЕТРЫ" .SS "\s-1EXAMPLE\s0" .IX Subsection "EXAMPLE" .SS "НЕДОСТАТКИ" .IX Subsection "НЕДОСТАТКИ" .SS "СМ. ТАКЖЕ" .IX Subsection "СМ. ТАКЖЕ" .SS "АВТОРЫ" .IX Subsection "АВТОРЫ" .SS "АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИИ" .IX Subsection "АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИИ" \fI\fR .IX Subsection "" .SH "ВВЕДЕНИЕ" .IX Header "ВВЕДЕНИЕ" Программа \fBpo4a\fR предназначена как для обновления \s-1PO\s0 файлов (для синхронизации их с оригинальными документами) так и для обновления переведенных документов (для синхронизации их с \s-1PO\s0 файлами). Главная цель состоит в том чтобы использование программы po4a было насколько возможно простым, благодаря тому, что нет необходимости запоминать параметры командной строки. .PP Она также позволяет вам объединять несколько документов различных форматов в один \s-1POT\s0 файл, так что вы можете создать один файл для каждого проекта. .PP Такое поведение может быть повторено другими инструментами пакета po4a (например с помощью Makefiles), но создавать одни и те же сложные Makefiles для каждого проекта, использующего po4a, сложнее и утомительнее. .PP Работу с данными можно описать следующим образом. Любые изменения главного документа влияет на \s-1PO\s0 файлы, и все изменения \s-1PO\s0 файлов (ручные или вызванные предыдущими шагами) будут влиять на переведенный документ. .PP .Vb 1 \& главный документ \-\-> PO файлы \-\-> переводы .Ve .PP Поток данных нельзя обратить с помощью данного инструмента, поэтому все изменения в переводах перезаписывается содержимым \s-1PO\s0 файлов. Данный инструмент нельзя использовать для преобразования существующего перевода в систему po4a. Для прешения этих задач смотрите \fIpo4a\-gettextize\fR\|(1). .SH "СИНТАКСИС ФАЙЛА НАСТРОЙКИ" .IX Header "СИНТАКСИС ФАЙЛА НАСТРОЙКИ" (Обязательным) Параметром является путь к файлу настроек для использования. Его синтаксис прост и максимально близок к синтаксису файлу настроек используемого в проекте intl-tools. .PP Комментарии в этом файле помечаются символом '#'. Помеченный таким образом текст, до конца строки, является комментарием. Строка может быть продолжена с помощью перехода на новую строку. Все не пустые строки должны начинаться с команды [], следующей за ее аргументами. (звучит сложно, но на самом деле довольно просто, я надеюсь ;) .SS "Определение шаблона языков" .IX Subsection "Определение шаблона языков" \&\fBПримечание:\fR рекомендуется использовать \fB[po_directory]\fR, а не \&\fB[po4a_langs]\fR и \fB[po4a_paths]\fR. См. раздел \fBAutodetection of the paths and languages\fR (автоопределение путей и языков) ниже. .PP Эта дополнительная команда может упростить весь файл настройки и сделать его более масштабируемым. Вам необходимо указать список языков на которые вы хотите перевести документы. Это довольно просто: .PP .Vb 1 \& [po4a_langs] fr de .Ve .PP Это позволит вам расширить \fB\f(CB$lang\fB\fR на все определенные языки в оставшейся части файла настройки. .SS "Определение путей к входным файлам переводчика" .IX Subsection "Определение путей к входным файлам переводчика" \&\fBПримечание:\fR рекомендуется использовать \fB[po_directory]\fR, а не \&\fB[po4a_langs]\fR и \fB[po4a_paths]\fR. См. раздел \fBAutodetection of the paths and languages\fR (автоопределение путей и языков) ниже. .PP Сначала вам необходимо определить где находятся входные файлы переводчика (например, файлы, используемые переводчиками при выполнении работы). Это можно сделать с помощью следующей команды: .PP .Vb 2 \& [po4a_paths] doc/l10n/project.doc.pot \e \& fr:doc/l10n/fr.po de:doc/l10n/de.po .Ve .PP Вызывается команда \fB[po4a_paths]\fR. Первым аргументов которой является путь к используемому \s-1POT\s0 файлу. Следующие аргументы носят говорящие сами за себя названия: .PP .Vb 1 \& : .Ve .PP Если вы определили шаблон языков, вы можете переписать строку выше следующим образом: .PP .Vb 1 \& [po4a_paths] doc/l10n/project.doc.pot $lang:doc/l10n/$lang.po .Ve .PP You can also use \fB\f(CB$master\fB\fR to refer to the document filename. In this case, \&\fBpo4a\fR will use a split mode: one \s-1POT\s0 and one \s-1PO\s0 (for each language) will be created for each document specified in the \fBpo4a\fR configuration file. See the \fBSplit mode\fR section. .PP .Vb 1 \& [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po .Ve .SS "Автоопределение путей и языков" .IX Subsection "Автоопределение путей и языков" Можно использовать другую команду для того чтобы задать имя каталога в котором находятся \s-1PO\s0 и \s-1POT\s0 файлы. При ее использовании \fBpo4a\fR будет обнаруживать \s-1POT\s0 файлы только в соответствии с шаблоном \fI*.pot\fR из указанного каталога. \fBpo4a\fR также будет использовать список \fI*.po\fR файлов для определения списка языков (путем удаления расширения). Эти языки будут использованы для замены переменной \fB\f(CB$lang\fB\fR в оставшейся части конфигурационного файла. .PP Эта команда не должна использоваться вместе с командами \fB[po4a_langs]\fR или \&\fB[po4a_paths]\fR. .PP При использовании этой команды, вы должны создать пустой \s-1POT\s0 файл при первом вызове \fBpo4a\fR чтобы указать имя \s-1POT\s0 файла. .PP .Vb 1 \& [po_directory] po4a/po/ .Ve .SS "Определение документов для преревода" .IX Subsection "Определение документов для преревода" Теперь, вы должны указать, какие документы переведены, их формат, и местоположение переводов. Это можно сделать следующим образом: .PP .Vb 4 \& [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \e \& de:doc/de/mein_kram.sgml \& [type: pod] script fr:doc/fr/script.1 de:doc/de/script.1 \e \& add_fr:doc/l10n/script.fr.add .Ve .PP Это должно быть понятно само по себе. Заметим, что во втором случае \&\fIdoc/l10n/script.fr.add\fR является дополнением, предназначенным для добавления к французской версии этого документа. Пожалуйста, прочитайте \&\fIpo4a\fR\|(7) чтобы узнать подробней о дополнениях. .PP Более детально, формат имеет вид: .PP .Vb 2 \& [type: ] (:)* \e \& (add_:*)* .Ve .PP Если модификатор отсутствует, \fIaddendum_path\fR является путем к дополнению. Модификаторами являются .IP "\fB?\fR" 2 .IX Item "?" Включить \fIaddendum_path\fR если этот файл не существует, в противном случае ничего не делать. .IP "\fB@\fR" 2 .IX Item "@" \&\fIaddendum_path\fR is not a regular addendum but a file containg a list of addenda, one by line. Each addendum may be preceded by modifiers. .IP "\fB!\fR" 2 .IX Item "!" \&\fIaddendum_path\fR отбрасывается, он не загружается и не будет загружаться никакими будущими дополнениями. .PP Если вы определили шаблон языков, вы можете переписать строку выше следующим образом: .PP .Vb 2 \& [type: pod] script $lang:doc/$lang/script.1 \e \& add_fr:doc/l10n/script.fr.add .Ve .PP Если бы все языки имели дополнения с подобными путями, можно было бы написать что\-то вроде: .PP .Vb 2 \& [type: pod] script $lang:doc/$lang/script.1 \e \& add_$lang:doc/l10n/script.$lang.add .Ve .SS "Определение параметров для модулей" .IX Subsection "Определение параметров для модулей" \&\fBpo4a\fR принимает параметры, которые будут переданы в модуль. Эти параметры, специфичные для модуля и задаются помощью переключателя \fB\-о\fR. .PP Если вам необходимы определенные настройки для одного документа, который вы хотите переводить, то их можно определить в файле настроек. Настройки определяются с помощью \fBopt\fR ключевого слова. Аргумент \fBopt\fR ключевого слова должен быть заключен в двойные кавычки, если содержит пробелы (например, если определены несколько параметров или параметр в аргументом). Вы можете также задать параметры, которые будут применяться только к определенному языку с помощью ключевого слова \fBopt_\fR\fIlang\fR. .PP Ниже приведен пример: [type:man] data\-05/test2_man.1 \f(CW$lang:tmp\fR/test2_man.$lang.1 \e opt:\*(L"\-k 75\*(R" opt_it:\*(L"\-L \s-1UTF\-8\s0\*(R" opt_fr:\-v .PP Аргументы могут содержать пробелы если вы используете одинарные или двойные кавычки: [po4a_alias:man] man opt:\*(L"\-o \e\*(R"mdoc=NAME,SEE ALSO\e\*(L" \-k 20\*(R" .PP Если вы хотите использовать одни и те же параметры для нескольких документов, можете использовать псевдоним (см. раздел \fBSpecifying aliases\fR ниже по тексту). .PP Вы также можете установить параметры для всех документов, указанных в файле настроек: [options] opt:\*(L"...\*(R" opt_fr:\*(L"...\*(R" .SS "Определение ссылок (aliases)" .IX Subsection "Определение ссылок (aliases)" Если вы вынуждены указывать одни и те же параметры для большого количества файлов, то может возникнуть необходимость в определении псевдонима для модуля. Это можно сделать следующим образом: .PP .Vb 1 \& [po4a_alias:test] man opt:"\-k 21" opt_es:"\-o debug=splitargs" .Ve .PP Таки образом определяется псевдоним модуля с именем \fBtest\fR, основанный на модуле \fBman\fR, с ключем \fB\-k 21\fR для всех языков и с ключем \fB\-o debug=splitargs\fR только для перевода на Испанский. .PP Данный псевдоним модуля можно затем использовать как обычный модуль: .PP .Vb 2 \& [type:test] data\-05/test2_man.1 $lang:tmp/test2_man.$lang.1 \e \& opt_it:"\-L UTF\-8" opt_fr:\-v .Ve .PP Обратите внимание, что вы можете указать дополнительные параметры для каждого файла. .SS "Раздельный режим" .IX Subsection "Раздельный режим" Раздельный режим используется при использовании \fB\f(CB$master\fB\fR в строке \&\fB[po4a_paths]\fR. .PP При использовании раздельного режима используются временный большой \s-1POT\s0 и временный большие \s-1PO\s0 файлы. Это позволяет распределить переводы во все \s-1PO\s0 файлы. .PP Если два \s-1PO\s0 файла имеют различные переводы для одной и той же строки, \&\fBpo4a\fR будет помечать данные строчки как неточно переведенные и потребует подтвердить переводы во всех \s-1PO\s0 файлах, содержащих данную строку. Затем, когда переводчик обновит перевод и снимет пометку неточно переведенный с одного \s-1PO\s0 файла, перевод данной строки будет обновлен в каждом \s-1PO\s0 файле автоматически. .PP If there are name conflicts because several files have the same filename, the name of the master file can be specified by adding a \&\f(CW\*(C`master:file=\*(C'\fR\fIname\fR option: .PP .Vb 4 \& [po4a_langs] de fr ja \& [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po \& [type: xml] foo/gui.xml $lang:foo/gui.$lang.xml master:file=foo\-gui \& [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml master:file=bar\-gui .Ve .SH "ПАРАМЕТРЫ" .IX Header "ПАРАМЕТРЫ" .IP "\fB\-k\fR, \fB\-\-keep\fR" 4 .IX Item "-k, --keep" Минимальное пороговое значение, в процентах, для сохранения (например, для записи) результирующего файла (по умолчанию: 80). То есть, по умолчанию, для того чтобы файл был записан, необходимо перевести 80%. .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Отобразить короткую справку. .IP "\fB\-M\fR, \fB\-\-master\-charset\fR" 4 .IX Item "-M, --master-charset" Кодировка файла, содержащего переводимый документ. Обратите внимание на то, что все основные документы должны использовать одну и ту же кодировку, пока. Это известное ограничение, и мы работаем над его устранением. .IP "\fB\-L\fR, \fB\-\-localized\-charset\fR" 4 .IX Item "-L, --localized-charset" Кодировка файла, содержащего переведенный документ. Обратите внимание на то, что все переведенные документы должны иметь одну и ту же кодировку, пока. Это известное ограничение, и мы работаем над его устранением. .IP "\fB\-A\fR, \fB\-\-addendum\-charset\fR" 4 .IX Item "-A, --addendum-charset" Кодировка дополнение. Обратите внимание, что все дополнения должны иметь одну и ту же кодировку. .IP "\fB\-V\fR, \fB\-\-version\fR" 4 .IX Item "-V, --version" Отобразить версию и завершить работу скрипта. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" Увеличить количество выводимой пояснительной информации. .IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 .IX Item "-q, --quiet" Уменьшить количество выводимой пояснительной информации. .IP "\fB\-d\fR, \fB\-\-debug\fR" 4 .IX Item "-d, --debug" Вывод отладочной информации. .IP "\fB\-o\fR, \fB\-\-option\fR" 4 .IX Item "-o, --option" Дополнительный параметр(ы) для перехода в формат плагина. Определяйте каждый параметр в формате '\fIname\fR\fB=\fR\fIvalue\fR'. См. документацию на каждый плагин для получения дополнительной информации о возможных параметрах и их значениях. .IP "\fB\-f\fR, \fB\-\-force\fR" 4 .IX Item "-f, --force" Всегда создавать \s-1POT\s0 и \s-1PO\s0 файлы, даже если \fBpo4a\fR считает, что это не требуется. .Sp По умолчанию ведет (когда параметр \fB\-\-force\fR не установлен) себя следующим образом: .RS 4 .Sp .RS 4 Если \s-1POT\s0 файл уже существует, он создается повторно, если основной документ или файл настроек был недавно изменен. \s-1POT\s0 файл так же записывается во временный документ и \fBpo4a\fR подтверждает что изменения действительно необходимы. .Sp Кроме того, перевод обновляется (regenerated) только если его главный документ, \s-1PO\s0 файл, один из его дополнений или файл настроек были недавно обновлены. Чтобы избежать попыток обновления переводов, которые не преодолели порогового значения (см. \fB\-\-keep\fR), можно создать файл с расширением \fI.po4a\-stamp\fR (см. \fB\-\-stamp\fR). .RE .RE .RS 4 .Sp Если главный документ включает файлы, вам необходимо использовать флаг \&\fB\-\-force\fR, потому что время изменения включенных файлов не принимается во внимание. .Sp \&\s-1PO\s0 файлы всегда обновляются из \s-1POT\s0 файлов с помощью \fBmsgmerge \-U\fR. .RE .IP "\fB\-\-stamp\fR" 4 .IX Item "--stamp" Указывает \fBpo4a\fR создать отпечаток файлов, если перевод не создается, поскольку он не преодалел порогового значения. Отпечаток файла буден называться также как и переводимый документ, с расширением \fI.po4a\-stamp\fR. .Sp Примечание: Параметр только активирует создание файлов \fI.po4a\-stamp\fR. Файлы отпечатков используются всегда если они существуют, и удаляются с помощью \&\fB\-\-rm\-translations\fR или когда файл полностью переведен. .IP "\fB\-\-no\-translations\fR" 4 .IX Item "--no-translations" Не регенерировать переведенные документы, только обновлять \s-1POT\s0 и \s-1PO\s0 файлы. .IP "\fB\-\-rm\-translations\fR" 4 .IX Item "--rm-translations" Удалить переведенные файлы (подразумевается \fB\-\-no\-translations\fR). .IP "\fB\-\-no\-backups\fR" 4 .IX Item "--no-backups" This flag does nothing since 0.41, and may be removed in later releases. .IP "\fB\-\-rm\-backups\fR" 4 .IX Item "--rm-backups" This flag does nothing since 0.41, and may be removed in later releases. .IP "\fB\-\-translate\-only\fR \fItranslated-file\fR" 4 .IX Item "--translate-only translated-file" Translate only the specified file. It may be useful to speed up processing if a configuration file contains a lot of files. Note that this option does not update \s-1PO\s0 and \s-1POT\s0 files. This option can be used multiple times. .IP "\fB\-\-variable\fR \fIvar\fR\fB=\fR\fIvalue\fR" 4 .IX Item "--variable var=value" Определить переменную которая будет использовано в файле настроек \&\fBpo4a\fR. Каждое появление \fI$(var)\fR будет замещено на значение \&\fIvalue\fR. Данный параметр можно использовать несколько раз. .IP "\fB\-\-srcdir\fR \fI\s-1SRCDIR\s0\fR" 4 .IX Item "--srcdir SRCDIR" Указывает базовый каталог для всех входных документов указанных в файле настроек \fBpo4a\fR. .IP "\fB\-\-destdir\fR \fI\s-1DESTDIR\s0\fR" 4 .IX Item "--destdir DESTDIR" Указывает базовый каталог для всех выходных документов указанных в файле настроек \fBpo4a\fR. .SS "\s-1OPTIONS\s0 \s-1WHICH\s0 \s-1MODIFY\s0 \s-1POT\s0 \s-1HEADER\s0" .IX Subsection "OPTIONS WHICH MODIFY POT HEADER" .IP "\fBporefs\fR \fItype\fR[,\fBwrap\fR|\fBnowrap\fR]" 4 .IX Item "porefs type[,wrap|nowrap]" Specify the reference format. Argument \fItype\fR can be one of \fBnone\fR to not produce any reference, \fBnoline\fR to not specify the line number (more accurately all line numbers are replaced by 1), \fBcounter\fR to replace line number by an increasing counter, and \fBfull\fR to include complete references. .Sp Argument can be followed by a comma and either \fBwrap\fR or \fBnowrap\fR keyword. References are written by default on a single line. The \fBwrap\fR option wraps references on several lines, to mimic \fBgettext\fR tools (\fBxgettext\fR and \fBmsgmerge\fR). This option will become the default in a future release, because it is more sensible. The \fBnowrap\fR option is available so that users who want to keep the old behavior can do so. .IP "\fB\-\-msgid\-bugs\-address\fR \fIemail@address\fR" 4 .IX Item "--msgid-bugs-address email@address" Установить адрес для сообщения об msgid ошибках. По умолчанию, созданные \s-1POT\s0 файлы не имеют поля Report-Msgid-Bugs-To. .IP "\fB\-\-copyright\-holder\fR \fIstring\fR" 4 .IX Item "--copyright-holder string" Указать владельца авторских прав в заголовке \s-1POT\s0 файла. Значение по умолчанию \*(L"Free Software Foundation, Inc.\*(R" .IP "\fB\-\-package\-name\fR \fIstring\fR" 4 .IX Item "--package-name string" Указать имя пакета в заголовке \s-1POT\s0 файла. Значение по умолчанию \*(L"\s-1PACKAGE\s0\*(R". .IP "\fB\-\-package\-version\fR \fIstring\fR" 4 .IX Item "--package-version string" Указать версию пакета в заголовке \s-1POT\s0 файла. Значение по умолчанию \&\*(L"\s-1VERSION\s0\*(R". .SS "\s-1OPTIONS\s0 \s-1TO\s0 \s-1MODIFY\s0 \s-1PO\s0 \s-1FILES\s0" .IX Subsection "OPTIONS TO MODIFY PO FILES" .IP "\fB\-\-msgmerge\-opt\fR \fIoptions\fR" 4 .IX Item "--msgmerge-opt options" Дополнительные настройки для \fBmsgmerge\fR. .Sp Примечание: \fB\f(CB$lang\fB\fR будет распространен на текущий язык. .IP "\fB\-\-no\-previous\fR" 4 .IX Item "--no-previous" Данный параметр удалает параметр \fB\-\-previous\fR из настроек \fBmsgmerge\fR. Что позволяет использовать версии \fBgettext\fR более ранние чем 0.16. .IP "\fB\-\-previous\fR" 4 .IX Item "--previous" Данный параметр добавляет \fB\-\-previous\fR к настройкам \fBmsgmerge\fR. Что требует \fBgettext\fR версии 0.16 или выше, и активирован по умолчанию. .SS "\s-1EXAMPLE\s0" .IX Subsection "EXAMPLE" Let's assume you maintain a program named \fBfoo\fR which has a man page \&\fIman/foo.1\fR which naturally is maintained in English only. Now you as the upstream or downstream maintainer want to create and maintain the translation. First you need to create the \s-1POT\s0 file necessary to send to translators using \fIpo4a\-gettextize\fR\|(1). .PP So for our case we would call .PP .Vb 1 \& cd man && po4a\-gettextize \-f man \-m foo.1 \-p foo.pot .Ve .PP You would then send this file to the appropriate language lists or offer it for download somewhere on your website. .PP Now let's assume you received three translations before your next release: \&\fIde.po\fR (including an addendum \fIde.add\fR), \fIsv.po\fR and \fIpt.po\fR. Since you don't want to change your \fIMakefile\fR(s) whenever a new translation arrives you can use \fBpo4a\fR with an appropriate configuration file in your \&\fIMakefile\fR. Let's call it \fIpo4a.cfg\fR. In our example it would look like the following: .PP .Vb 1 \& [po_directory] man/po4a/po/ \& \& [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \e \& add_$lang:?man/po4a/add_$lang/$lang.add opt:"\-k 80" .Ve .PP In this example we assume that your generated man pages (and all \s-1PO\s0 and addenda files) should be stored in \fIman/translated/$lang/\fR (respectively in \&\fIman/po4a/po/\fR and \fIman/po4a/add_$lang/\fR) below the current directory. In our example the \fIman/po4a/po/\fR directory would include \fIde.po\fR, \fIpt.po\fR and \fIsv.po\fR, and the \fIman/po4a/add_de/\fR directory would include \fIde.add\fR. .PP Note the use of the modifier \fB?\fR as only the German translation (\fIde.po\fR) is accompanied by an addendum. .PP To actually build the translated man pages you would then (once!) add the following line in the \fBbuild\fR target of the appropriate \fIMakefile\fR: .PP .Vb 1 \& po4a po4a.cfg .Ve .PP Once this is set up you don't need to touch the \fIMakefile\fR when a new translation arrives, i.e. if the French team sends you \fIfr.po\fR and \&\fIfr.add\fR then you simply drop them respectively in \fIman/po4a/po/\fR and \&\fIman/po4a/add_fr/\fR and the next time the programm is build the French translation is automatically build as well in \fIman/translated/fr/\fR. .PP Note that you still need an appropriate target to install localized manual pages with English ones. .PP Finally if you do not store generated files into your version control system, you will need a line in your \fBclean\fR target as well: \-rm \-rf man/translated .SH "НЕДОСТАТКИ" .IX Header "НЕДОСТАТКИ" .IP "\(bu" 4 Дублирует некоторый код в программах \fBpo4a\-\fR\fI*\fR. .PP Заплатки (patch) приветствуются ;) .SH "СМ. ТАКЖЕ" .IX Header "СМ. ТАКЖЕ" \&\fIpo4a\-build\fR\|(1), \fIpo4a\-gettextize\fR\|(1), \fIpo4a\-normalize\fR\|(1), \&\fIpo4a\-translate\fR\|(1), \fIpo4a\-updatepo\fR\|(1), \fIpo4a\-build.conf\fR\|(5), \fIpo4a\fR\|(7) .SH "АВТОРЫ" .IX Header "АВТОРЫ" .Vb 3 \& Denis Barbier \& Nicolas François \& Martin Quinson (mquinson#debian.org) .Ve .SH "АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИИ" .IX Header "АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИИ" Copyright 2002\-2012 by \s-1SPI\s0, inc. .PP This program is free software; you may redistribute it and/or modify it under the terms of \s-1GPL\s0 (see the \s-1COPYING\s0 file).