1.0 - en to ru translation catalogue (677 entries)

note: type: Attribute 'xml:lang' of: <refentry>
en: en
ru: ru

note: type: Content of: <refentry><refmeta><refmiscinfo>
en: Po4a Tools
ru: Инструменты Po4a

note: type: Content of: <refentry><refnamediv><refpurpose>
en: display a translated man page according to a PO
ru: отобразить переведённую man-страницу в соответствии с PO-файлом

note: type: Content of: <refentry><refsynopsisdiv><cmdsynopsis>
en: <command>po4a-display-man</command> <arg choice='plain'><option>-p</option> </arg> <arg choice='plain'><replaceable>PO_FILE</replaceable></arg> <arg choice='opt'><arg choice='plain'><option>-m</option> </arg><arg choice='plain'><replaceable>MASTER_FILE</replaceable></arg></arg> <arg choice='opt'><arg choice='plain'><option>-o</option> </arg><arg choice='plain'><replaceable>PO4A_OPT</replaceable></arg></arg>
ru: <command>po4a-display-man</command> <arg choice='plain'><option>-p</option> </arg> <arg choice='plain'><replaceable>PO_ФАЙЛ</replaceable></arg> <arg choice='opt'><arg choice='plain'><option>-m</option> </arg><arg choice='plain'><replaceable>МАСТЕР_ДОКУМЕНТ</replaceable></arg></arg> <arg choice='opt'><arg choice='plain'><option>-o</option> </arg><arg choice='plain'><replaceable>ПАРАМЕТРЫ_PO4A</replaceable></arg></arg>

note: type: =head1
en: DESCRIPTION
ru: ОПИСАНИЕ

note: type: Content of: <refentry><refsect1><para>
en: Translators can use <command>po4a-display-man</command> to see how their translation of a man page will be rendered to the end users, without recompiling and reinstalling the whole project.
ru: Переводчики могут посмотреть, как в итоге будет выглядеть их перевод man-страницы, с помощью <command>po4a-display-man</command>. При этом перекомпилировать или переустанавливать весь проект не потребуется.

note: type: Content of: <refentry><refsect1><para>
en: This script only works with man pages written directly in <emphasis remap='I'>nroff</emphasis> and handled by the po4a's <emphasis remap='I'>man</emphasis> module.  Manual pages generated from other formats, like DocBook or POD, are not supported.  See <citerefentry><refentrytitle>po4a-display-pod</refentrytitle><manvolnum>1</manvolnum></citerefentry> for an equivalent supporting <emphasis remap='I'>POD</emphasis> documents.
ru: Этот скрипт работает только с man-страницами написанными непосредственно в формате <emphasis remap='I'>nroff</emphasis> и обрабатываемых <emphasis remap='I'>man</emphasis>-модулем  po4a. Man-страницы сгенерированные из других форматов, таких как DocBook или POD, не поддерживаются.  См. <citerefentry><refentrytitle>po4a-display-pod</refentrytitle><manvolnum>1</manvolnum></citerefentry> для эквивалента, поддерживающего <emphasis remap='I'>POD</emphasis>-документы.

note: type: =head1
en: OPTIONS
ru: ПАРАМЕТРЫ

note: type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
en: <option>-p </option><replaceable>PO_FILE</replaceable>
ru: <option>-p </option><replaceable>PO_ФАЙЛ</replaceable>

note: type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
en: The PO file containing the translations.
ru: PO-файл, содержащий перевод.

note: type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
en: <option>-m </option><replaceable>MASTER_FILE</replaceable>
ru: <option>-m </option><replaceable>МАСТЕР_ДОКУМЕНТ</replaceable>

note: .br type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
en: The original man page.  It can be the absolute or relative path to the original man page (gzipped or not), the name of the man page or the name and section of the man page (using the man.section format).  When the master document is not provided with the <option>-m</option> option, <command>po4a-display-man</command> tries to find the original man page based on the line reference of the first string in the PO.
ru: Исходная man-страница. Это может быть абсолютный или относительный путь к исходной man-странице (как сжатой gzip, так и нет), имя man-страницы или её имя и раздел (в форме имя.номер_раздела). Если мастер-документ (master) не указан с помощью параметра <option>-m</option>, то <command>po4a-display-man</command> попытается определить исходную man-страницу на основе сносок в первой строке PO-файла.

note: type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
en: <option>-o </option><replaceable>PO4A_OPT</replaceable>
ru: <option>-o </option><replaceable>ПАРАМЕТРЫ_PO4A</replaceable>

note: type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
en: Some options to pass to <citerefentry><refentrytitle>po4a-translate</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
ru: Параметры, которые будут переданы <citerefentry><refentrytitle>po4a-translate</refentrytitle><manvolnum>1</manvolnum></citerefentry>.

note: type: =head1
en: SEE ALSO
ru: СМОТРИТЕ ТАКЖЕ

note: type: Content of: <refentry><refsect1><para>
en: <citerefentry> <refentrytitle>po4a-display-pod</refentrytitle><manvolnum>1</manvolnum> </citerefentry>
ru: <citerefentry> <refentrytitle>po4a-display-man</refentrytitle><manvolnum>1</manvolnum> </citerefentry>

note: type: Content of: <refentry><refsect1><title>
en: AUTHOR
ru: АВТОР

note: type: Content of: <refentry><refsect1><para>
en: Thomas Huriaux
ru: Томас Юрио (Thomas Huriaux)

note: type: Content of: <refentry><refnamediv><refpurpose>
en: display of a translated POD file according to a PO
ru: отобразить страницу, переводимого в данный момент POD-файла, в соответствии с PO-файлом

note: type: Content of: <refentry><refsynopsisdiv><cmdsynopsis>
en: <command>po4a-display-pod</command> <arg choice='plain'><option>-p </option></arg> <arg choice='plain'><replaceable>PO_FILE</replaceable></arg> <arg choice='plain'><option>-m </option></arg> <arg choice='plain'><replaceable>POD_FILE</replaceable></arg> <arg choice='opt'><arg choice='plain'><option>-o </option></arg><arg choice='plain'><replaceable>PO4A_OPT</replaceable></arg></arg>
ru: <command>po4a-display-man</command> <arg choice='plain'><option>-p </option></arg> <arg choice='plain'><replaceable>PO_ФАЙЛ</replaceable></arg> <arg choice='plain'><option>-m </option></arg> <arg choice='plain'><replaceable>POD_ФАЙЛ</replaceable></arg> <arg choice='opt'><arg choice='plain'><option>-o </option></arg><arg choice='plain'><replaceable>ПАРАМЕТРЫ_PO4A</replaceable></arg></arg>

note: type: Content of: <refentry><refsect1><para>
en: Translators can use <command>po4a-display-pod</command> to see how their translation of a man page will be rendered to the end users, without recompiling and reinstalling the whole project.  Most of the time, the POD file is only available in source package or embedded in Perl script.
ru: С помощью <command>po4a-display-pod</command> переводчик может посмотреть, как будет выглядеть его перевод man-стараницы без перекомпиляции или переустановки всего проекта. Обычно, POD-файл находится только в пакете исходных текстов или встроен в сценарий Perl.

note: type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
en: <option>-m </option><replaceable>POD_FILE</replaceable>
ru: <option>-m </option><replaceable>POD_ФАЙЛ</replaceable>

note: type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
en: The original POD file used by po4a to generate PO file.
ru: Исходный POD-файл, использованный po4a для создания PO-файла.

note: type: Content of: <refentry><refsect1><para>
en: Florentin Duneau
ru: Флорентин Дюно (Florentin Duneau)

note: type: =head1
en: NAME
ru: НАЗВАНИЕ

note: type: textblock
en: po4a - update both the PO files and translated documents in one shot
ru: po4a - обновление PO-файлов и переведённой документации за один проход

note: type: =head1
en: SYNOPSIS
ru: СИНТАКСИС

note: type: textblock
en: B<po4a> [I<options>] I<config_file>
ru: B<po4a> [I<параметры>] I<файл_настроек>

note: type: textblock
en: po4a (PO for anything) eases the maintenance of documentation translation using the classical gettext tools. The main feature of po4a is that it decouples the translation of content from its document structure.  Please refer to the page L<po4a(7)> for a gentle introduction to this project.
ru: po4a (PO for anything, PO для всего) упрощает поддержку переводов документации, используя обычные инструменты gettext. Основная идея po4a состоит в том, что оно отделяет перевод содержимого от структуры документа. Пошаговое вводное руководство по работе с данным проектом можно посмотреть на странице L<po4a(7)>.

note: type: textblock
en: Minimal threshold for translation percentage to keep (i.e. write) the resulting file (default: 80). I.e. by default, files have to be translated at least at 80% to be written on disk.
ru: Минимальное пороговое значение, в процентах, для сохранения (например, для записи) результирующего файла (по умолчанию: 80). То есть, по умолчанию, для того чтобы файл был записан, необходимо перевести как минимум 80%.

note: type: textblock
en: Show a short help message.
ru: Отобразить короткую справку.

note: type: textblock
en: Charset of the files containing the documents to translate. Note that all master documents must use the same charset.
ru: Кодировка файлов переводимых документов. Обратите внимание, что все мастер-документы должны использовать одну и ту же кодировку.

note: type: textblock
en: Charset of the files containing the localized documents. Note that all translated documents will use the same charset.
ru: Кодировка файлов локализованных документов. Обратите внимание, что все переведённые документы должны использовать одну и ту же кодировку.

note: type: textblock
en: Charset of the addenda. Note that all the addenda should be in the same charset.
ru: Кодировка дополнений. Обратите внимание, что все дополнения должны иметь одну и ту же кодировку.

note: type: textblock
en: Display the version of the script and exit.
ru: Отобразить версию и завершить работу сценария.

note: type: textblock
en: Increase the verbosity of the program.
ru: Увеличить количество выводимой пояснительной информации.

note: type: textblock
en: Decrease the verbosity of the program.
ru: Уменьшить количество выводимой пояснительной информации.

note: type: textblock
en: Output some debugging information.
ru: Вывод отладочной информации.

note: type: textblock
en: Extra option(s) to pass to the format plugin. See the documentation of each plugin for more information about the valid options and their meanings. For example, you could pass '-o tablecells' to the AsciiDoc parser, while the text parser would accept '-o tabs=split'.
ru: Дополнительные параметры, передаваемые модулю формата. См. описание возможных параметров и их значений в документации каждого конкретного модуля. Например, вы можете указать '-o tablecells' парсеру AsciiDoc, в то время как парсер text принимал бы '-o tabs=split'.

note: type: textblock
en: Always generate the POT and PO files, even if B<po4a> considers it is not necessary.
ru: Всегда создавать POT и PO-файлы, даже если B<po4a> считает, что это не требуется.

note: type: textblock
en: The default behavior (when B<--force> is not specified) is the following:
ru: Поведение по умолчанию (когда параметр B<--force> не установлен) следующее:

note: type: textblock
en: If the POT file already exists, it is regenerated if a master document or the configuration file is more recent (unless B<--no-update> is provided).  The POT file is also written in a temporary document and B<po4a> verifies that the changes are really needed.
ru: Если POT-файл уже существует, он создаётся повторно, если мастер-документ или файл настроек был недавно изменён (и если не задан параметр B<--no-update>). POT-файл также записывается во временный документ и B<po4a> проверяет, что изменения действительно необходимы.

note: type: textblock
en: Also, a translation is regenerated only if its master document, the PO file, one of its addenda or the configuration file is more recent.  To avoid trying to regenerate translations which do not pass the threshold test (see B<--keep>), a file with the F<.po4a-stamp> extension can be created (see B<--stamp>).
ru: Кроме того, перевод обновляется (regenerated) только если его мастер-документ, PO-файл, один из его дополнений или файл настроек были недавно обновлены. Чтобы избежать попыток обновления переводов, которые не преодолели порогового значения (см. B<--keep>), можно создать файл с расширением F<.po4a-stamp> (см. B<--stamp>).

note: type: textblock
en: If a master document includes files, you should use the B<--force> flag because the modification time of these included files are not taken into account.
ru: Если мастер-документ включает файлы, вам необходимо использовать флаг B<--force>, потому что время изменения включённых файлов не принимается во внимание.

note: type: textblock
en: The PO files are always re-generated based on the POT with B<msgmerge -U>.
ru: PO-файлы всегда обновляются из POT-файлов с помощью B<msgmerge -U>.

note: type: textblock
en: Tells B<po4a> to create stamp files when a translation is not generated because it does not reach the threshold. These stamp files are named according to the expected translated document, with the F<.po4a-stamp> extension.
ru: Указывает B<po4a> создать файлы-заглушки, если перевод не создаётся, поскольку он не преодолел порогового значения. Эти файлы будут называться также как и переведённый документ, с расширением F<.po4a-stamp>.

note: type: textblock
en: Note: This only activates the creation of the F<.po4a-stamp> files. The stamp files are always used if they exist, and they are removed with B<--rm-translations> or when the file is finally translated.
ru: Примечание: Параметр активирует только создание F<.po4a-stamp> файлов. Файлы-заглушки используются всегда если они существуют, и удаляются при выполнении B<--rm-translations> или когда файл полностью переведён.

note: type: textblock
en: Do not generate the translated documents, only update the POT and PO files.
ru: Не регенерировать переведённые документы, только обновлять POT и PO-файлы.

note: type: textblock
en: Do not change the POT and PO files, only the translation may be updated.
ru: Не менять POT и PO-файлы, только обновить переводы.

note: type: textblock
en: Keeps the existing translation files even if the translation doesn't meet the threshold specified by B<--keep>.  This option does not create new translation files with few content, but it will save existing translations which decay because of changes to the master files.
ru: Не удалять файлы перевода даже если перевод не соответствует пороговому значению, заданному B<--keep>. Этот параметр указывает po4a не создавать новые переведённые файлы с недостаточным количеством переведённого материала, а сохранять старые переводы, которые находятся в упадке из-за изменений в мастер-документах.

note: type: textblock
en: WARNING: This flag changes the po4a behavior in a rather drastic way: your translated files will not get updated at all until the translation improves. Only use this flag if you prefer shipping an outdated translated documentation rather than only shipping an accurate untranslated documentation.
ru: ПРЕДУПРЕЖДЕНИЕ: этот флаг изменяет поведение po4a достаточно радикальным образом: ваши переведённые файлы не будут обновляться вообще, пока перевод не улучшится. Используйте этот ключ только если вам больше по нраву поставлять устаревшую, но переведённою документацию, нежели только точную, но непереведённую.

note: type: textblock
en: Remove the translated files (implies B<--no-translations>).
ru: Удалить переведённые файлы (подразумевает B<--no-translations>).

note: type: textblock
en: This flag does nothing since 0.41, and may be removed in later releases.
ru: Этот флаг ничего не делает начиная с 0.41 и может быть удалён в последующих версиях.

note: type: =item
en: B<--translate-only> I<translated-file>
ru: B<--translate-only> I<переводимый-файл>

note: type: textblock
en: 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 PO and POT files.  This option can be used multiple times.
ru: Перевести только указанный файл. Это может быть полезно, чтобы ускорить обработку, когда конфигурационный файл содержит значительное количество файлов. Заметим, что этот параметр не обновляет PO и POT-файлы. Этот параметр может быть указан несколько раз.

note: type: =item
en: B<--variable> I<var>B<=>I<value>
ru: B<--variable> I<переменная>B<=>I<значение>

note: type: textblock
en: Define a variable that will be expanded in the B<po4a> configuration file.  Every occurrence of I<$(var)> will be replaced by I<value>.  This option can be used multiple times.
ru: Определяет переменную которая будет использоваться в файле настроек B<po4a>. Каждое появление I<$(переменная)> будет замещено на I<значение>. Данный параметр можно использовать несколько раз.

note: type: =item
en: B<--srcdir> I<SRCDIR>
ru: B<--srcdir> I<ИСХОДНЫЙ_КАТАЛОГ>

note: type: textblock
en: Set the base directory for all input documents specified in the B<po4a> configuration file.
ru: Задаёт базовый каталог для всех входных документов, указанных в файле настроек B<po4a>.

note: type: textblock
en: If both I<destdir> and I<srcdir> are specified, input files are searched in the following directories, in order: I<destdir>, the current directory and I<srcdir>. Output files are written to I<destdir> if specified, or to the current directory.
ru: Если заданы оба параметра I<destdir> и I<srcdir>, то po4a будет искать входные файлы в следующих каталогах (в порядке перечисления): в I<destdir>, в текущем каталоге и в I<srcdir>. Выходные файлы будут записываться в I<destdir>, если этот параметр задан, иначе — в текущий каталог.

note: type: =item
en: B<--destdir> I<DESTDIR>
ru: B<--destdir> I<КАТАЛОГ_НАЗНАЧЕНИЯ>

note: type: textblock
en: Set the base directory for all the output documents specified in the B<po4a> configuration file (see B<--srcdir> above).
ru: Задаёт базовый каталог для всех выходных документов, указанных в файле настроек B<po4a> (см. описание B<--srcdir> выше).

note: type: =head2
en: Options modifying the POT header
ru: Параметры, изменяющие заголовок POT-файла

note: type: =item
en: B<--porefs> I<type>
ru: B<--porefs> I<тип>

note: type: textblock
en: Specify the reference format. Argument I<type> can be one of B<never> to not produce any reference, B<file> to only specify the file without the line number, B<counter> to replace line number by an increasing counter, and B<full> to include complete references (default: full).
ru: Задаёт формат сносок в комментариях PO-файла. Аргумент l<тип> может быть одним из: B<never> — не выводить никаких сносок, B<noline> — не выводить номера строк (точнее, все номера строк будут заменены на 1), B<counter> — заменяет номера строк инкрементным счётчиком и B<full> — включает полноценные сноски (по умолчанию: B<full>).

note: type: =item
en: B<--wrap-po> B<no>|B<newlines>|I<number> (default: 76)
ru: B<--wrap-po> B<no>|B<newlines>|I<число> (по умолчанию: 76)

note: type: textblock
en: Specify how the po file should be wrapped. This gives the choice between either files that are nicely wrapped but could lead to git conflicts, or files that are easier to handle automatically, but harder to read for humans.
ru: Задаёт, как должны переносится строки в PO-файле. С помощью этого параметра можно выбрать или чтобы в файлах были удобно расставлены переносы строк, хотя это и может привести к конфликтам в git, или чтобы файлы больше подходили для автоматической обработки, хотя это и снизит удобство чтения оных людьми.

note: type: textblock
en: Historically, the gettext suite has reformatted the po files at the 77th column for cosmetics. This option specifies the behavior of po4a. If set to a numerical value, po4a will wrap the po file after this column and after newlines in the content. If set to B<newlines>, po4a will only split the msgid and msgstr after newlines in the content. If set to B<no>, po4a will not wrap the po file at all.  The reference comments are always wrapped by the gettext tools that we use internally.
ru: Исторически, gettext переносил строки в PO-файлах на 77-м столбце по косметическим соображениям. Этот параметр задаёт поведение po4a. Если в нём указано число, po4a будет переносить строки в PO-файле после данного столбца и после символов перевода строки в содержимом. Если указано B<newlines>, то po4a будет разделять msgid и msgstr на строки только в местах перевода строк в самом их содержимом. Если же указано B<no>, то po4a вообще не будет переносить строки в PO-файле. Строки комментариев со ссылками на местоположение строки в исходном документе всегда разбиваются на строки по усмотрению инструментов gettext, которые используются внутри po4a.

note: type: textblock
en: Language of the source files containing the documents to translate. Note that all master documents must use the same language.
ru: Язык файлов переводимых документов. Обратите внимание, что все мастер-документы должны быть на одном языке.

note: type: textblock
en: Set the report address for msgid bugs. By default, the created POT files have no Report-Msgid-Bugs-To fields.
ru: Установить адрес для сообщений об ошибках в msgid. По умолчанию, созданные POT-файлы не имеют поля Report-Msgid-Bugs-To.

note: type: =item
en: B<--copyright-holder> I<string>
ru: B<--copyright-holder> I<строка>

note: type: textblock
en: Set the copyright holder in the POT header. The default value is "Free Software Foundation, Inc."
ru: Указать владельца авторских прав в заголовке POT файла. Значение по умолчанию: «Free Software Foundation, Inc.»

note: type: =item
en: B<--package-name> I<string>
ru: B<--package-name> I<строка>

note: type: textblock
en: Set the package name for the POT header. The default is "PACKAGE".
ru: Указать имя пакета в заголовке POT-файла. Значение по умолчанию: «PACKAGE».

note: type: =item
en: B<--package-version> I<string>
ru: B<--package-version> I<строка>

note: type: textblock
en: Set the package version for the POT header. The default is "VERSION".
ru: Указать версию пакета в заголовке POT-файла. Значение по умолчанию: «VERSION».

note: type: =head2
en: Options to modify the PO files
ru: Параметры, изменяющие PO-файлы

note: type: =item
en: B<--msgmerge-opt> I<options>
ru: B<--msgmerge-opt> I<параметры>

note: type: textblock
en: Extra options for B<msgmerge>(1).
ru: Дополнительные параметры для B<msgmerge>(1).

note: type: textblock
en: Note: B<$lang> will be extended to the current language.
ru: Примечание: B<$lang> будет заменён на текущий язык.

note: type: textblock
en: This option adds B<--previous> to the options passed to B<msgmerge>.  It requires B<gettext> 0.16 or later, and is activated by default.
ru: Данный параметр добавляет B<--previous> к параметрам, передаваемым B<msgmerge>. Для жтого требуется B<gettext> версии 0.16 или выше; он активирован по умолчанию.

note: type: =head1
en: CONFIGURATION FILE
ru: ФАЙЛ НАСТРОЕК

note: type: textblock
en: po4a expects a configuration file as argument. This file must contain the following elements:
ru: po4a ожидает, что в качестве аргумента ему будет передан файл настроек. Этот файл должен содержать следующие данные:

note: type: textblock
en: The path to the PO files and the list of languages existing in the project;
ru: Путь к PO-файлам и список языков, доступных в проекте;

note: type: textblock
en: Optionally, some global options and so-called configuration aliases that are used as templates to configure individual master files;
ru: Опционально, некоторые глобальные параметры и, так называемые, псевдонимы настроек (configuration aliases), которые можно использовать в качестве шаблонов для настройки отдельных мастер-файлов;

note: type: textblock
en: The list of each master file to translate, along with specific parameters.
ru: Список всех мастер-файлов, которые нужно переводить, и специфические параметры для оных.

note: type: textblock
en: All lines contain a command between square braces, followed by its parameters.  Comments begin with the char '#' and run until the end of the line. You can escape the end of line to spread a command over several lines.
ru: Каждая строка файла должна содержать директиву, заключённую в квадратные скобки, и её параметры. Комментарии начинаются с символа «#» и продолжаются до конца строки. Конец строки может быть экранирован (с помощью обратного слеша C<\>), в таком случае комментарий может быть растянут на несколько строк.

note: type: textblock
en: Some full examples are presented on this page, while other examples can be found in the C<t/cfg> directory of the source distribution.
ru: Несколько полноценных примеров представлены на этой страницы; дополнительные примеры можно найти в каталоге C<t/cfg> дистрибутива с исходными кодами.

note: type: =head2
en: Finding the PO and POT files
ru: Поиск POT и PO-файлов

note: type: textblock
en: The simplest solution is to explicitly give the path to POT and PO files, as follows:
ru: Самое простое решение — явно задать путь к POT и PO-файлам следующим образом:

note: type: verbatim
en:  [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po
ru:  [po4a_paths] man/po/project.pot ru:man/po/ru.po fr:man/po/fr.po

note: type: textblock
en: This specifies the path to the POT file first, and then the paths to the German and French PO files.
ru: Это задаст пути к POT-файлу, а также к русскому и французскому PO-файлам.

note: type: textblock
en: The same information can be written as follows to reduce the risk of copy/paste errors:
ru: Тоже самое может быть записано следующим образом, дабы уменьшить риск ошибок при копировании/вставке:

note: type: verbatim
en:  [po4a_langs] fr de
     [po4a_paths] man/po/project.pot $lang:man/po/$lang.po
ru:  [po4a_langs] fr ru
     [po4a_paths] man/po/project.pot $lang:man/po/$lang.po

note: type: textblock
en: The C<$lang> component is automatically expanded using the provided languages list, reducing the risk of copy/paste error when a new language is added.
ru: Вместо C<$lang> будет автоматически подставлен, код языка из списка, что уменьшает риск ошибок, вызванных копированием/вставкой при добавлении нового языка.

note: type: textblock
en: You can further compact the same information by only providing the path to the directory containing your translation project, as follows.
ru: Также можно ещё сильнее сократить эту же информацию, задав путь к каталогу с переводами следующим образом.

note: type: textblock
en: The provided directory must contain a set of PO files, each named F<XX.po> with C<XX> the ISO 639-1 of the language used in this file. The directory must also contain a single POT file, with the C<.pot> file extension. For the first run, this file can be empty but it must exist (po4a cannot guess the name to use before the extension).
ru: Указанный каталог должен содержать набор PO-файлов, каждый из которых имеет имя вида F<XX.po>, где C<XX> — это код языка перевода в соответствии с ISO 639-1. В каталоге также должен быть один единственный POT-файл, с расширением C<.pot>. Во время первого запуска этот файл может быть пустым, но он должен существовать (po4a не может сам угадать, какое имя файла ему вставить перед расширением).

note: type: textblock
en: Note that you must choose only one between C<po_directory> and C<po4a_paths>. The first one (C<po_directory>) is more compact, further reduces the risk of copy/paste error, but forces you to use the expected project structure and file names. The second one (C<po4a_paths>), is more explicit, probably more readable, and advised when you setup your first project with po4a.
ru: Заметьте, что вы можете выбрать только одно: или C<po_directory>, или C<po4a_paths>. Первый вариант (C<po_directory>) более компактен, что снижает риск ошибок из-за копирования/вставки, но заставляет вас использовать предопределённые имена файлов и структуру проекта. Второй (C<po4a_paths>) — более явный, вероятно, более читаемый и рекомендованный в случае, если вы впервые используете po4a для своего проекта.

note: type: =head3
en: Centralized or split PO files?
ru: Централизованные или раздельные PO-файлы?

note: type: textblock
en: By default, po4a produces one single PO file per target language, containing the whole content of your translation project. As your project grows, the size of these files may become problematic. When using weblate, it is possible to specify priorities for each translation segment (i.e., msgid) so that the important ones get translated first. Still, some translation teams prefer to split the content in several files.
ru: По умолчанию po4a создаёт один большой PO-файл для каждого языка, содержащий весь ваш перевод. С разрастанием вашего проекта размер этих файлов может стать проблемой. При использовании Weblate возможно задать приоритеты каждому сегменту перевода (т.е. msgid), чтобы важные строки переводились первыми, хотя некоторые команды всё же предпочитают разделять перевод на несколько файлов.

note: type: textblock
en: To have one PO file per master file, you simply have to use the string C<$master> in the name of your PO files on the C<[po4a_paths]> line, as follows.
ru: Чтобы использовать отдельный PO-файл для каждого мастер-файла, просто добавьте C<$master> в имя своего PO-файла в директиве C<[po4a_paths]>.

note: type: textblock
en: In split mode, B<po4a> builds a temporary compendium during the PO update, to share the translations between all the PO files. If two PO files have different translations for the same string, B<po4a> will mark this string as fuzzy and will submit both translations in all the PO files containing this string. When unfuzzied by the translator, the translation is automatically used in every PO files.
ru: В раздельном режиме B<po4a> создаёт временный сборник всех переводов во время обновления PO-файлов, чтобы объединить перевод одинаковых строк из различных PO-файлов. Если два PO-файла имеют различные переводы для одной и той же строки, B<po4a> пометит данные переводы как неточные и добавит оба варианта в каждый PO-файл, содержащий эту строку. Затем, когда переводчик снимет пометку «неточно» хотя бы в одном PO-файле, перевод данной строки будет обновлён во всех PO-файлах автоматически.

note: type: =head2
en: Specifying the documents to translate
ru: Задание документов для перевода

note: type: textblock
en: You must also list the documents that should be translated. For each master file, you must specify the format parser to use, the location of the translated document to produce, and optionally some configuration. Here is an example:
ru: Вы также должны перечислить список документов, которые следует переводить. Для каждого мастер-файла нужно указать, какой использовать парсер формата, местоположение, куда записывать переведённые документы, а также, по необходимости, некоторые дополнительные параметры, например:

note: type: verbatim
en:  [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \
                  de:doc/de/mein_kram.sgml
     [type: man] script fr:doc/fr/script.1 de:doc/de/script.1
     [type: docbook] doc/script.xml fr:doc/fr/script.xml \
                 de:doc/de/script.xml
ru:  [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \
                  ru:doc/ru/mein_kram.sgml
     [type: man] script fr:doc/fr/script.1 ru:doc/ru/script.1
     [type: docbook] doc/script.xml fr:doc/fr/script.xml \
                 ru:doc/ru/script.xml

note: type: textblock
en: But again, these complex lines are difficult to read and modify, e.g. when adding a new language. It is much simpler to reorganize things using the C<$lang> template as follows:
ru: Но, опять же, такие тяжеловесные конструкции сложно читать и изменять, например, когда нужно добавить новый язык. Намного проще будет реорганизовать всё это с помощью шаблонов с C<$lang>:

note: type: =head2
en: Specifying options
ru: Задание параметров

note: type: textblock
en: There is two types of options: I<po4a options> are default values to the po4a command line options while I<format options> are used to change the behavior of the format parsers. As a I<po4a options>, you could for example specify in your configuration file that the default value of the B<--keep> command line parameter is 50% instead of 80%. I<Format options> are documented on the specific page of each parsing module, e.g. L<Locale::Po4a::Xml(3pm)>. You could for example pass B<nostrip> to the XML parser to not strip the spaces around the extracted strings.
ru: Есть два вида параметров: I<параметры po4a>, которые задают значения по умолчанию для параметров командной строки самого po4a, и I<параметры форматов>, которые изменяют поведение парсера конкретного формата. I<Параметром po4a> будет являться, например, если вы зададите в своём файле настроек, что значение по умолчанию параметра командной строки B<--keep> будет 50% вместо 80%. I<Параметры форматов> описаны на справочной странице каждого отдельного модуля парсера конкретного формата, например L<Locale::Po4a::Xml(3pm)>. Вы, например, можете передать B<nostrip> парсеру XML, чтобы он не убирал пробелы у извлекаемых им строк.

note: type: textblock
en: You can pass these options for a specific master file, or even for a specific translation of that file, using C<opt:> and C<opt_XX:> for the C<XX> language.  In the following example, the B<nostrip> option is passed to the XML parser (for all languages), while the threshold will be reduced to 0% for the French translation (that is thus always kept).
ru: Вы можете передать эти параметры для конкретного мастер-файла или даже для перевода файла на конкретный язык, используя C<opt:> и C<opt_XX:> для языка C<XX>. В примере ниже, параметр B<nostrip>  передаётся парсеру XML (для всех языков), а порог завершения перевода будет уменьшен до 0% только для французского (чтобы он никогда не отбрасывался).

note: type: textblock
en: In any case, these configuration chunks must be located at the end of the line.  The declaration of files must come first, then the addendum if any (see below), and then only the options. The grouping of configuration chunks is not very important, since elements are internally concatenated as strings. The following examples are all equivalent:
ru: В любом случае, такие настройки должны находится в конце строки. Имена файлов должны идти вначале, затем дополнение, если есть (см. ниже), и только затем параметры. Группировка разных частей строки параметров не очень важна, ибо внутри себя po4a просто соединяет их все в одну строку. Следующие варианты абсолютно эквивалентны:

note: type: textblock
en: Note that language specific options are not used when building the POT file. It is for example impossible to pass B<nostrip> to the parser only when building the French translation, because the same POT file is used to update every languages. So the only options that can be language-specific are the ones that are used when producing the translation, as the C<--keep> option.
ru: Заметьте, что параметры, специфичные для отдельных языков не используются во время создания POT-файла. Например, невозможно передать B<nostrip> парсеру только для французского перевода, так как тот же самый POT-файл используется для обновления всех языков. Так что специфичными для языка могут быть только те параметры, которые используются во время создания перевода, как параметр C<--keep>.

note: type: =head3
en: Configuration aliases
ru: Настройка псевдонимов (aliases)

note: type: textblock
en: To pass the same options to several files, the best is to define a type alias as follows. In the next example, C<--keep 0> is passed to every Italian translation using this C<test> type, that is an extension of the C<man> type.
ru: Наилучшим способом передать одинаковые параметры различным файлам будет определить псевдоним (alias) типа, как это показано ниже. В примере C<--keep 0> передаётся всех документов на итальянский с помощью типа C<test>, который является расширением типа C<man>.

note: type: textblock
en: You can also extend an existing type reusing the same name for the alias as follows. This is not interpreted as as an erroneous recursive definition.
ru: Вы также можете расширить существующий тип, использовав то же самое имя для псевдонима. Это не будет считаться ошибкой рекурсивного определения.

note: type: =head3
en: Global default options
ru: Глобальные параметры по умолчанию

note: type: textblock
en: You can also use C<[options]> lines to define options that must be used for all files, regardless of their type.
ru: Вы также можете использовать строки с директивой C<[options]>, чтобы определить параметры, которые должны использоваться для всех файлов, независимо от их типа.

note: type: textblock
en: As with the command line options, you can abbreviate the parameters passed in the configuration file:
ru: Как и параметры командной строки, параметры передаваемые в файле настроек можно сокращать:

note: type: =head3
en: Option priorities
ru: Приоритет параметров

note: type: textblock
en: The options of every sources are concatenated, ensuring that the default values can easily be overridden by more specific options. The order is as follows:
ru: Параметры из каждого источника соединяются в одну строку, что гарантирует, что значения по умолчанию могут быть переопределены более специфическими параметрами. Порядок приоритетов следующий:

note: type: textblock
en: C<[options]> lines provide default values that can be overridden by any other source.
ru: Директивы C<[options]> задают значения по умолчанию, которые могут быть переопределены любым другим источником.

note: type: textblock
en: Type aliases are then used. Language specific settings override the ones applicable to all languages.
ru: Затем идут псевдонимы типов.При этом настройки, специфичные для конкретных языков переопределяют те что применяются ко всем языкам.

note: type: textblock
en: Settings that are specific to a given master file override both the default ones and the ones coming from the type alias. In this case also, language specific settings override the global ones.
ru: Настройки, специфичные для конкретного мастер-файла переопределяют и настройки по умолчанию и те что заданы в псевдонимах типов. В данном случае настройки, специфичные для языков, также переопределяют общие.

note: type: textblock
en: Finally, parameters provided on the B<po4a> command line override any settings from the configuration file.
ru: Наконец, параметры, переданные в командной строке переопределяют любые параметры из файла настройки.

note: type: =head3
en: Example
ru: Пример

note: type: textblock
en: Here is an example showing how to quote the spaces and quotes:
ru: Пример, показывающий, как следует экранировать пробелы и кавычки:

note: type: =head2
en: Addendum: Adding extra content in the translation
ru: Дополнение (addendum): добавление дополнительного содержимого в перевод

note: type: textblock
en: If you want to add an extra section to the translation, for example to give credit to the translator, then you need to define an addendum to the line defining your master file. Please refer to the page L<po4a(7)> for more details on the syntax of addendum files.
ru: Если вы хотите добавить дополнительный раздел в перевод, например отдать дань уважения переводчику, тогда вам нужно указать дополнение, при определении мастер-документа. Подробности о синтаксисе файлов-дополнений можно получить на справочной странице L<po4a(7)>.

note: type: textblock
en: You can also use language templates as follow:
ru: Вы также можете использовать шаблоны языков:

note: type: textblock
en: If an addendum fails to apply, the translation is discarded.
ru: Если дополнение не получается применить, то весь перевод отбрасывается.

note: type: =head3
en: Modifiers for the addendum declaration
ru: Модификаторы объявления дополнений

note: type: textblock
en: Addendum modifiers can simplify the configuration file in the case where not all languages provide an addendum, or when the list of addenda changes from one language to the other. The modifier is a single char located before the file name.
ru: Модификаторы дополнений могут делать файл настройки проще, когда не все языки имеют дополнение или когда список дополнений меняется от языка к языку. Модификатор — это один символ, стоящий перед именем файла.

note: type: textblock
en: Include I<addendum_path> if this file does exist, otherwise do nothing.
ru: Использовать файл I<путь_к_дополнению>, если этот файл существует, в противном случае — ничего не делать.

note: type: textblock
en: I<addendum_path> is not a regular addendum but a file containing a list of addenda, one by line.  Each addendum may be preceded by modifiers.
ru: I<путь_к_дополнению> является не обычным дополнением, а файлом содержащим список дополнений, по одному в каждой строке. Каждое такое дополнение также могут предварять свои модификаторы.

note: type: textblock
en: I<addendum_path> is discarded, it is not loaded and will not be loaded by any further addendum specification.
ru: I<путь_к_дополнению> отбрасывается, он не загружается и не будет загружаться никакими будущими определениями дополнений.

note: type: textblock
en: The following includes an addendum in any language, but if only it exists. No error is reported if the addendum does not exist.
ru: Ниже приводится дополнение на любом языке, но только если оно существует. Если дополнение не существует, об ошибке не сообщается.

note: type: textblock
en: The following includes a list of addendum for every language:
ru: Следующий пример задаёт список дополнений для каждого языка:

note: type: =head2
en: Filtering the translated strings
ru: Фильтрация переведённых строк

note: type: textblock
en: Sometimes, you want to hide some strings from the translation process. To that extend, you can give a C<pot_in> parameter to your master file to specify the name of the file to use instead of the real master when building the POT file. Here is an example:
ru: Иногда, вам хочется скрыть некоторые строки от переводчиков. Для этого вы можете задать параметр C<pot_in> в определении мастер-файла, дабы указать имя файла, из которого следует извлекать строки для создания POT-файла для перевода вместо настоящего мастер-файла. Например:

note: type: textblock
en: With this setting, the strings to translate will be extracted from the F<book-filtered.xml> (that must be produced before calling B<po4a>) while the translated files will be built from F<book.xml>. As a result, any string that is part of F<book.xml> but not in F<book-filtered.xml> will not be included in the PO files, preventing the translators from providing a translation for them. So these strings will be left unmodified when producing the translated documents.  This naturally decreases the level of translation, so you may need the C<--keep> option to ensure that the document is produced anyway.
ru: С такими настройками строки для перевода будут извлекаться из F<book-filtered.xml> (который должен быть создан до вызова B<po4a>), а переведённые документы будут собираться на основе F<book.xml>. В результате, все строки, которые есть только в F<book.xml>, но не в F<book-filtered.xml> не будут включены в PO-файлы, что предотвратит возможность того, что переводчики переведут что-то, что не должно быть переведено. Таким образом, эти строки останутся без изменений во время создания переведённых документов. Это, конечно, снижает фактический уровень готовности перевода, так что вам придётся снизить значение параметра C<--keep>, дабы документ всё равно создавался.

note: type: =head1
en: AUTHORS
ru: АВТОРЫ

note: type: =head1
en: COPYRIGHT AND LICENSE
ru: АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИИ

note: type: textblock
en: This program is free software; you may redistribute it and/or modify it under the terms of GPL (see the COPYING file).
ru: Данная программа является свободным программным обеспечением; вы можете распространять и/или изменять её на условиях Универсальной общественной лицензии (GPL) GNU (см. файл COPYING).

note: type: textblock
en: po4a-gettextize - convert an original file (and its translation) to a PO file
ru: po4a-gettextize - преобразует оригинальный файл (и его перевод) в PO-файл

note: type: textblock
en: (I<XX.po> is the output, all others are inputs)
ru: (I<XX.po> является выходным файлом, всё остальное является входными параметрами)

note: type: textblock
en: Format of the documentation you want to handle. Use the B<--help-format> option to see the list of available formats.
ru: Формат документации которой вы хотите обработать. Используйте параметр B<--help-format>, чтобы просмотреть список доступных форматов.

note: type: textblock
en: File containing the master document to translate. You can use this option multiple times if you want to gettextize multiple documents.
ru: Файл содержащий мастер-документ для перевода. Вы можете использовать этот параметр несколько раз, если вы хотите создать один PO-файл сразу для нескольких документов.

note: type: textblock
en: Charset of the file containing the document to translate.
ru: Кодировка файла, содержащаяся в документе для перевода.

note: type: textblock
en: File containing the localized (translated) document. If you provided multiple master files, you may wish to provide multiple localized file by using this option more than once.
ru: Файл, содержащий локализованный (переведённый) документ. Если вы указали несколько мастер-файлов, может возникнуть необходимость предоставить несколько файлов локализации, указав данный параметр несколько раз.

note: type: textblock
en: Charset of the file containing the localized document.
ru: Кодировка файла, содержащего переведённый документ.

note: type: textblock
en: File where the message catalog should be written. If not given, the message catalog will be written to the standard output.
ru: Файл в который будет записан каталог сообщений. Если не задан, то каталог сообщений будет записан в стандартный вывод.

note: type: textblock
en: List the documentation formats understood by po4a.
ru: Выводит список поддерживаемых po4a форматов.

note: type: =head2
en: Converting a manual translation to po4a
ru: Преобразование уже существующего перевода в po4a

note: type: verbatim
en:     Original         Translation
ru:     Оригинал           Перевод

note: type: verbatim
en:   chapter            chapter
        paragraph          paragraph
        paragraph          paragraph
        paragraph        chapter
      chapter              paragraph
        paragraph          paragraph
ru:   глава              глава
        параграф           параграф
        параграф           параграф
        параграф         глава
      глава                параграф
        параграф           параграф

note: type: =head3
en: Hints and tricks for the gettextization process
ru: Подсказки и хитрости для процесса gettextization

note: type: textblock
en: Do not hesitate to kill any original content that would not exist in the translated version. This content will be automatically reintroduced afterward, when synchronizing the PO file with the document.
ru: Не стесняйтесь уничтожать любое оригинальное содержание, которого не будет в переведенной версии. Это содержание будет автоматически восстановлено впоследствии, при синхронизации PO-файла с документом.

note: type: textblock
en: Sometimes, the paragraph content does match, but not their types. Fixing it is rather format-dependent. In POD and man, it often comes from the fact that one of them contains a line beginning with a white space while the other does not.  In those formats, such paragraph cannot be wrapped and thus become a different type. Just remove the space and you are fine. It may also be a typo in the tag name in XML.
ru: Иногда содержимое абзацев совпадает, но не их типы. То, как именно разрешить эту ситуацию, зависит от формата. В POD и man это зачастую происходит из-за того, что один из них начинается с пробела, а другой — нет. Для этих форматов в таком абзаце (начинающемся с пробела) запрещён перенос строк и, таким образом, он рассматривается, как имеющий другой тип. Просто удалите пробел и всё будет в порядке. Это также может быть вызвано, например, опечаткой в имени тега в XML.

note: type: textblock
en: Likewise, two paragraphs may get merged together in POD when the separating line contains some spaces, or when there is no empty line between the B<=item> line and the content of the item.
ru: Аналогично, два абзаца могут слиться в один в POD, когда разделяющая их строка содержит пробелы или когда между B<=item> и содержимым элемента нет пустой строки.

note: type: textblock
en: po4a-normalize - normalize a documentation file by parsing it in po4a, and writing it back
ru: po4a-normalize - нормализует файл документации, выполняя синтаксический разбор в po4a, и записывая файл снова без какого-либо перевода

note: type: textblock
en: B<po4a-normalize> B<-f> I<fmt> I<master.doc>
ru: B<po4a-normalize> B<-f> I<формат> I<мастер_докумант.doc>

note: type: textblock
en: The po4a (PO for anything) project goal is to ease translations (and more interestingly, the maintenance of translations) using gettext tools on areas where they were not expected like documentation.
ru: Целью проекта po4a (PO for anything, PO везде и для всего) является облегчение процесса перевода (и что более важно — поддержки перевода), используя инструменты gettext в тех случаях, когда их применение может выглядеть неожиданным, например для документации.

note: type: textblock
en: The B<po4a-normalize> script is a debugging tool used to make sure that po4a don't change the document when it's not supposed to. Only use it if you're developing a new module, or if you doubt the sanity of the tools.
ru: Сценарий B<po4a-normalize> — это отладочный инструмент, использующийся для того, чтобы убедиться что po4a не изменяет документ когда это не предполагается. Его использование предполагается только при разработке новых модулей или когда требуется убедится в корректности работы инструментов po4a.

note: type: textblock
en: The generated document will be written to F<po4a-normalize.output> while the generated POT file will be written to F<po4a-normalize.po> by default, but you can use the B<--localized> and B<--pot> options to change that.
ru: Сгенерированный документ будет записан в F<po4a-normalize.output>, а сгенерированный PO-файл будет записан в F<po4a-normalize.po>, но вы можете изменить это поведение с помощью параметров B<--localized> и B<--pot>.

note: type: textblock
en: Create an blank translated document.  The generated translated document will be generated assuming all messages are translated by a space or new line.
ru: Создаёт пустой переведённый документ. Этот документ будет создан, будто все сообщения переведены одним символом пробела или новой строки.

note: type: textblock
en: This is useful to check what parts of the document cannot be translated.
ru: Это можно применять для проверки того, какие части документа не могут быть переведены.

note: type: textblock
en: Name of the normalized file to produce (I<po4a-normalize.output> by default).
ru: Имя нормализованного файла для создания (по умолчанию I<po4a-normalize.output>).

note: type: textblock
en: Pot file to produce (I<po4a-normalize.po> by default).
ru: Результирующий pot файл (по умолчанию I<po4a-normalize.po>).

note: type: textblock
en: po4a-translate - convert a PO file back to documentation format
ru: po4a-translate - преобразует PO-файлы обратно в формат документации

note: type: textblock
en: B<po4a-translate> B<-f> I<fmt> B<-m> I<master.doc> B<-p> I<XX.po> B<-l> I<XX.doc>
ru: B<po4a-translate> B<-f> I<формат> B<-m> I<мастер_документ.doc> B<-p> I<XX.po> B<-l> I<XX.doc>

note: type: textblock
en: (I<XX.doc> is the output, all others are inputs)
ru: (I<XX.doc> является выходным параметром, все остальные являются входными)

note: type: textblock
en: The B<po4a-translate> script is in charge of converting the translation (which was done in a PO file) back into the documentation format. The provided PO file should be the translation of the POT file which was produced by L<po4a-gettextize(1)>.
ru: Скрипт B<po4a-translate> отвечает за преобразование перевода (который был выполнен в PO-файле) обратно в формат документации. Данный PO-файл должен являться переводом POT-файла, созданного с помощью L<po4a-gettextize(1)>.

note: type: textblock
en: Add a file to the resulting file (to put translator's name or a section "About this translation", for example). The first line of the file to insert should be a PO4A header indicating where it should be added (see section B<HOWTO add extra text to translations> in L<po4a(7)>).
ru: Файл дополнения, который будет добавлен в итоговый файл (например, для того, чтобы добавить имена переводчиков или раздел «Об этом переводе»). Первая строка в файле должна являться заголовком PO4A, указывающим местоположение, куда именно следует подставить данный файл (см. раздел B<КАК добавить дополнительный текст в перевод> в L<po4a(7))>.

note: type: textblock
en: File containing the master document to translate.
ru: Файл, содержащий мастер-документ для перевода.

note: type: textblock
en: File where the localized (translated) document should be written.
ru: Файл, в который локализованный (переведённый) документ должен быть записан.

note: type: textblock
en: File from which the message catalog should be read.
ru: Файл, из которого будет читаться каталог сообщений (message catalog).

note: type: textblock
en: Minimal threshold for translation percentage to keep (i.e. write) the resulting file (default: 80). I.e. by default, files have to be translated at least at 80% to get written.
ru: Минимальное пороговое значение, в процентах, для сохранения (например, для записи) результирующего файла (по умолчанию: 80). То есть, по умолчанию, для того чтобы файл был записан, необходимо перевести как минимум 80%.

note: type: textblock
en: Column at which we should wrap the resulting file.
ru: Номер столбца, по которому должен выполняться автоматический перенос текста.

note: type: =item
en: B<--porefs> I<type>[,B<wrap>|B<nowrap>]
ru: B<--porefs> I<тип>[,B<wrap>|B<nowrap>]

note: type: textblock
en: Argument can be followed by a comma and either B<wrap> or B<nowrap> keyword.  References are written by default on a single line.  The B<wrap> option wraps references on several lines, to mimic B<gettext> tools (B<xgettext> and B<msgmerge>).  This option will become the default in a future release, because it is more sensible.  The B<nowrap> option is available so that users who want to keep the old behavior can do so.
ru: Аргумент может быть дополнен запятой и одним из ключевых слов: B<wrap> или B<nowrap>. Сноски по умолчанию записываются в одну строку. Опция B<wrap> разбивает их на несколько строк, подражая утилитам B<gettext> (B<xgettext> и B<msgmerge>). Этот вариант будет поведением по умолчанию в будущих версиях, так как в таком виде сноски лучше заметны. Опция B<nowrap> доступна для тех пользователей, которые хотят оставить старое поведение.

note: type: textblock
en: Historically, the gettext suite has reformatted the po files at the 77th column for cosmetics. This option specifies the behavior of po4a. If set to a numerical value, po4a will wrap the po file after this column and after newlines in the content. If set to B<newlines>, po4a will only split the msgid and msgstr after newlines in the content. If set to B<no>, po4a will not wrap the po file at all.  The wrapping of the reference comments is controlled by the B<--porefs> option.
ru: Исторически сложилось так, что пакет gettext из косметических соображений переформатирует файлы po в 77-й колонке. Эта опция определяет поведение po4a. Если установлено числовое значение, po4a будет делать перенос в файле po после этой колонки и после новых строк в содержимом. Если установлено значение B<newlines>, po4a будет разделять msgid и msgstr только после новых строк в содержимом. Если установлено значение B<no>, po4a не будет делать переносы в po-файле вообще. Перенос в комментариях ссылок контролируется параметром B<--porefs>.

note: type: textblock
en: Note that this option has no impact on how the msgid and msgstr are wrapped, ie on how newlines are added to the content of these strings.
ru: Замечание: этот параметр ни как не влияет на то, как будут расставлены переносы строк внутри самих msgid и msgstr, т.е. на то, как переносы строк будут добавляться к их содержимому.

note: type: =head1
en: Adding content (beside translations) to generated files
ru: Добавление материалов (кроме перевода) в создаваемые файлы

note: type: textblock
en: To add some extra content to the generated document beside what you translated (like the name of the translator, or an "About this translation" section), you should use the B<--addendum> option.
ru: Чтобы добавить дополнительное содержимое в создаваемый документ в дополнение к собственно переводу (например: имя переводчика, или раздел "Об этом переводе"), вам необходимо использовать параметр B<--addendum>.

note: type: textblock
en: The first line of the addendum must be a header indicating where to put it in the document (it can be before or after a given part of the document).  The rest of the file will be added verbatim to the resulting file without further processing.
ru: В первой строке файла дополнения должен содержаться заголовок, указывающий где именно в документе оно (дополнение) должно находиться (может располагаться до или после заданного раздела документа). Оставшаяся часть данного файла будет добавлена дословно в итоговый без каких-либо преобразований.

note: type: textblock
en: Note that if po4a-translate fails to add one of the given files, it discards the whole translation (because the missing file could be the one indicating the author, what would prevent the users to contact him to report bugs in the translation).
ru: Заметим, что если po4a-translate не сможет добавить один из указанных файлов, то весь перевод будет отброшен (потому что пропущенный файл может оказаться тем, в котором указан автор и его контактные данные, что в свою очередь привело бы к невозможности для пользователей связаться с ним и сообщить об ошибке в переводе).

note: type: textblock
en: The header has a pretty rigid syntax. For more information on how to use this feature and how it works, please refer to the L<po4a(7)> man page.
ru: Заголовок имеет довольно жёсткий синтаксис. Для получения более подробной информации о том, как использовать данные возможности и как они работают, обратитесь к man-странице L<po4a(7)>.

note: type: textblock
en: po4a-updatepo - update the translation (in PO format) of documentation
ru: po4a-updatepo - обновляет перевод документации (в PO-формате)

note: type: textblock
en: B<po4a-updatepo> B<-f> I<fmt> (B<-m> I<master.doc>)+ (B<-p> I<XX.po>)+
ru: B<po4a-updatepo> B<-f> I<формат> (B<-m> I<мастер_документ.doc>)+ (B<-p> I<XX.po>)+

note: type: textblock
en: (I<XX.po> are the outputs, all others are inputs)
ru: (I<XX.po> является выходным файлом, всё остальное является входными параметрами)

note: type: textblock
en: The B<po4a-updatepo> script is in charge of updating PO files to make them reflect the changes made to the original documentation file. For that, it converts the documentation file to a POT file, and call L<msgmerge(1)> on this new POT and on the provided PO files.
ru: Скрипт B<po4a-updatepo> отвечает за обновление PO-файлов, чтобы в них отражались изменения, выполненные в оригинальном файле документации. Для этого он преобразует файл документации в POT-файл и вызывает L<msgmerge(1)> для нового POT-файла и предоставленного PO-файлов.

note: type: textblock
en: It is possible to give more than one PO file (if you want to update several languages at once), and several documentation files (if you want to store the translations of several documents in the same PO file).
ru: Возможно указать более одного PO-файла (если вы хотите обновить несколько языков сразу), и несколько файлов документации (если вы хотите хранить переводы нескольких документов в одном PO-файле).

note: type: textblock
en: File(s) containing the master document to translate.
ru: Файл(ы), содержащий мастер-документ для перевода.

note: type: textblock
en: Charset of the files containing the document to translate. Note that all files must have the same charset.
ru: Кодировка файлов, содержащих документ для перевода. Обратите внимание, что все файлы должны иметь одну и ту же кодировку.

note: type: textblock
en: PO file(s) to update. If these files do not exist, they are created by B<po4a-updatepo>.
ru: PO-файл(ы), которые будут обновлены. Если эти файлы не существуют, B<po4a-updatepo> создаст их.

note: type: textblock
en: msguntypot - update PO files when a typo is fixed in POT file
ru: msguntypot - обновляет PO-файлы при исправлении опечаток в POT-файле

note: type: textblock
en: B<msguntypot> B<-o> I<old_pot> B<-n> I<new_pot> I<pofiles> ...
ru: B<msguntypot> B<-o> I<старый_pot> B<-n> I<новый_pot> I<po-файлы> ...

note: type: textblock
en: When you fix a trivial error which surely doesn't affect translations (e.g.  a typo) in a POT file, you should unfuzzy the corresponding msgstr in the translated PO files to avoid so extra work to the translators.
ru: При исправлении тривиальных ошибок, которые не влияют на перевод (например, опечатки), в POT-файле, необходимо снять пометку «неточный перевод» с соответствующей строки msgstr в переведённых PO-файлах, чтобы не нагружать переводчиков дополнительной работой данного рода.

note: type: textblock
en: This task is difficult and error prone when done manually, and this tool is there to help doing so correctly. You just need to provide the two versions of the POT file: before the edition and after as marked in the above synopsis, and it all becomes automatic.
ru: При выполнении вручную, эта задача сложна и чревата ошибками; данный инструмент предназначен для того чтобы делать это корректно. Вам просто необходимо предоставить две версии POT-файла: до редактирования и после, как указано выше, и всё будет сделано автоматически.

note: type: =head1
en: HOW TO USE IT
ru: КАК ЭТИМ ПОЛЬЗОВАТЬСЯ

note: type: textblock
en: In short, when you discover a typo in one of your [english] message, do the following:
ru: Если коротко, то когда вы обнаружили опечатку в одном из сообщений [английских], выполните следующие действия:

note: type: =item
en: - Regenerate your POT and PO files.
ru: - Выполните обновление ваших POT и PO-файлов.

note: type: verbatim
en:   make -C po/ update-po # for message program translations
      debconf-updatepo      # for debconf translations
      po4a po4a.conf        # for po4a based documentation translations
ru:   make -C po/ update-po # для переводов сообщений программ
      debconf-updatepo      # для переводов debconf
      po4a po4a.conf        # для переводов документации управляемых po4a

note: type: textblock
en: or something else, depending on your project's building settings. You know how to make sure your POT and PO files are uptodate, don't you??
ru: или что-то подобное, в зависимости от конфигурации сборки вашего проекта. Вы же знаете, как убедиться, что POT и PO-файлы в актуальном состоянии, не так ли?

note: type: =item
en: - Make a copy of your POT file.
ru: - Сделайте копию вашего POT-файла.

note: type: =item
en: - Make a copy of all your PO files.
ru: - Сделайте копии всех ваших PO-файлов.

note: type: =item
en: - Fix your typo.
ru: - Исправьте опечатки.

note: type: textblock
en: $EDITOR the_file_in_which_there_is_a_typo
ru: $EDITOR файл_в_котором_присутствуют_опечатки

note: type: textblock
en: See above.
ru: См. выше.

note: type: textblock
en: At this point, the typo fix fuzzied all the translations, and this unfortunate change is the only one between the PO files of your main directory and the one from the fridge. Here is how to solve this.
ru: На данный момент, исправление опечаток приводит к тому что все переводы помечаются как неточные, и это изменение является единственным различием между PO-файлом вашего основного каталога и тем, что хранится в po_fridge. Ниже приведён метод решения этой проблемы.

note: type: =item
en: - Discard fuzzy translation, restore the ones from the fridge.
ru: - Снять пометку неточного перевода, восстановив его из хранилища (fridge).

note: type: =item
en: - Manually merge the PO files with the new POT file, but taking the useless fuzzy into account.
ru: - Вручную объедините PO-файлы с новым POT-файлом, учитывая бесполезные неточные переводы.

note: type: =item
en: - Cleanups.
ru: - Очистка.

note: type: textblock
en: You're done. The typo was eradicated from msgstr of both your POT and PO files, and the PO files were not fuzzyied in the process. Your translators love you already.
ru: Всё выполнено. Опечатка была ликвидирована из строки msgstr, а также из POT и PO-файлов, и в PO-файлах отсутствуют пометки о неточном переводе. Ваши переводчики скажут вам спасибо за это.

note: type: textblock
en: Despite its name, this tool is not part of the gettext tool suite. It is instead part of po4a. More precisely, it's a random Perl script using the fine po4a modules. For more information about po4a, please see:
ru: Несмотря на своё название, этот инструмент не входит в комплект gettext. Это часть po4a. Точнее, это сценарий Perl использующий модули po4a. Более подробную информацию о po4a можно найти здесь:

note: type: verbatim
en:  Martin Quinson (mquinson#debian,org)
ru:  Мартин Кенсон (Martin Quinson) (mquinson#debian,org)

note: type: textblock
en: po4a - framework to translate documentation and other materials
ru: po4a - платформа для перевода документации и других материалов

note: type: =head1
en: Introduction
ru: Введение

note: type: textblock
en: po4a (PO for anything) eases the maintenance of documentation translation using the classical gettext tools. The main feature of po4a is that it decouples the translation of content from its document structure.
ru: Ниже приводится дополнение на любом языке, но только если оно существует. Если дополнение не существует, об ошибке не сообщается.

note: type: textblock
en: This document serves as an introduction to the po4a project with a focus on potential users considering whether to use this tool and on the curious wanting to understand why things are the way they are.
ru: Этот документ служит введением в проект po4a, ориентированным на потенциальных пользователей, рассматривающих возможность использования этого инструмента, и на любознательных, желающих понять, почему все происходит именно так, как происходит.

note: type: =head1
en: Why po4a?
ru: Почему именно po4a?

note: type: textblock
en: The philosophy of Free Software is to make the technology truly available to everyone. But licensing is not the only consideration: untranslated free software is useless for non-English speakers. Therefore, we still have some work to do to make software available to everybody.
ru: Философия свободного программного обеспечения (ПО) состоит в том, чтобы сделать технологии по-настоящему доступными всем. Но лицензирование — это не единственное, о чём стоит задуматься: непереведённое свободное ПО бесполезно для неанглоговорящих пользователей. И нам предстоит ещё кое-какая работа, чтобы сделать его доступным по-настоящему для всех.

note: type: textblock
en: This situation is well understood by most projects and everybody is now convinced of the necessity to translate everything. Yet, the actual translations represent a huge effort of many individuals, crippled by small technical difficulties.
ru: Эта ситуация хорошо понятна большинству проектов, и все сейчас убеждены в необходимости переводить все. Тем не менее, фактические переводы представляют собой огромную работу многих людей, которая осложняется небольшими техническими трудностями.

note: type: textblock
en: Thankfully, Open Source software is actually very well translated using the gettext tool suite. These tools are used to extract the strings to translate from a program and present the strings to translate in a standardized format (called PO files, or translation catalogs). A whole ecosystem of tools has emerged to help the translators actually translate these PO files. The result is then used by gettext at run time to display translated messages to the end users.
ru: К счастью, у ПО с открытым исходным кодом достаточно хорошие переводы, которые удобно поддерживать благодаря инструментам из пакета gettext. Они извлекают строки для перевода из программ, и предоставляют их переводчикам в единообразном формате (называемом PO-файлы, или translation catalogs, каталоги переводов).Целая экосистема различных инструментов выросла вокруг оных, дабы помочь переводчикам собственно переводить эти PO-файлы. Результат их работы затем используется библиотекой gettext во время исполнения программы, чтобы отображать переведённые сообщения пользователю.

note: type: textblock
en: Regarding documentation, however, the situation still somewhat disappointing.  At first translating documentation may seem to be easier than translating a program as it would seem that you just have to copy the documentation source file and start translating the content. However, when the original documentation is modified, keeping track of the modifications quickly turns into a nightmare for the translators. If done manually, this task is unpleasant and error prone.
ru: Что касается документации, то здесь ситуация все еще несколько неутешительна.  Поначалу перевод документации может показаться проще, чем перевод программы, поскольку кажется, что нужно просто скопировать исходный файл документации и начать переводить содержимое. Однако, когда в исходную документацию вносятся изменения, отслеживание этих изменений быстро превращается в кошмар для переводчиков. Если выполнять эту задачу вручную, она становится неприятной и чреватой ошибками.

note: type: textblock
en: Outdated translations are often worse than no translation at all. End-users can be tricked by documentation describing an old behavior of the program.  Furthermore, they cannot interact directly with the maintainers since they don't speak English. Additionally, the maintainer cannot fix the problem as they don't know every language in which their documentation is translated.  These difficulties, often caused by poor tooling, can undermine the motivation of volunteer translators, further aggravating the problem.
ru: Устаревшие переводы часто хуже, чем отсутствие перевода вообще. Конечные пользователи могут быть обмануты документацией, описывающей старое поведение программы.  Более того, они не могут напрямую взаимодействовать с сопровождающими, поскольку те не говорят по-английски. Кроме того, сопровождающий не может устранить проблему, поскольку не знает всех языков, на которые переведена документация.  Эти трудности, часто вызванные плохим инструментарием, могут подорвать мотивацию добровольных переводчиков, что еще больше усугубляет проблему.

note: type: textblock
en: B<The goal of the po4a project is to ease the work of documentation translators>.  In particular, it makes documentation translations I<maintainable>.
ru: B<Цель проекта po4a - облегчить работу переводчиков документации>.  В частности, он делает переводы документации I<поддерживаемыми>.

note: type: textblock
en: The idea is to reuse and adapt the gettext approach to this field. As with gettext, texts are extracted from their original locations and presented to translators as PO translation catalogs. The translators can leverage the classical gettext tools to monitor the work to do, collaborate and organize as teams. po4a then injects the translations directly into the documentation structure to produce translated source files that can be processed and distributed just like the English files. Any paragraph that is not translated is left in English in the resulting document, ensuring that the end users never see an outdated translation in the documentation.
ru: Идея заключается в повторном использовании и адаптации подхода gettext к этой области. Как и в gettext, тексты извлекаются из оригинальных мест и представляются переводчикам в виде каталогов переводов PO. Переводчики могут использовать классические инструменты gettext для контроля за выполнением работы, сотрудничества и организации команд. po4a затем вставляет переводы непосредственно в структуру документации для создания переведенных исходных файлов, которые можно обрабатывать и распространять так же, как и английские файлы. Любой абзац, который не переведен, остается на английском языке в итоговом документе, гарантируя, что конечные пользователи никогда не увидят в документации устаревший перевод.

note: type: textblock
en: This automates most of the grunt work of the translation maintenance.  Discovering the paragraphs needing an update becomes very easy, and the process is completely automated when elements are reordered without further modification. Specific verification can also be used to reduce the chance of formatting errors that would result in a broken document.
ru: Это автоматизирует большую часть тяжелой работы по обслуживанию перевода.  Обнаружить абзацы, нуждающиеся в обновлении, становится очень просто, а процесс полностью автоматизирован, когда элементы перестраиваются без дополнительных изменений. Конкретная проверка также может быть использована для снижения вероятности ошибок форматирования, которые приведут к поломке документа.

note: type: textblock
en: Please also see the B<FAQ> below in this document for a more complete list of the advantages and disadvantages of this approach.
ru: Полный список достоинств и недостатков этого подхода перечислен в разделе «B<Часто задаваемые вопросы>» ниже в этом документе.

note: type: =head2
en: Supported formats
ru: Поддерживаемые форматы

note: type: textblock
en: Currently, this approach has been successfully implemented to several kinds of text formatting formats:
ru: На данный момент этот подход был успешно воплощён для нескольких форматов:

note: type: =item
en: man (mature parser)
ru: man (зрелый парсер)

note: type: textblock
en: The good old manual pages' format, used by so many programs out there. po4a support is very welcome here since this format is somewhat difficult to use and not really friendly to newbies.
ru: Старый добрый формат man-страниц, который используют так много программ. Поддержка po4a приходится здесь очень кстати, ибо этот формат в некоторой степени сложен, и не особо дружелюбен к новичкам.

note: type: textblock
en: The L<Locale::Po4a::Man(3pm)|Man> module also supports the mdoc format, used by the BSD man pages (they are also quite common on Linux).
ru: Модуль L<Locale::Po4a::Man(3pm)|Man> также поддерживает формат mdoc, используемый в BSD man pages (они также довольно распространены в Linux).

note: type: =item
en: AsciiDoc (mature parser)
ru: AsciiDoc (зрелый парсер)

note: type: textblock
en: This format is a lightweight markup format intended to ease the authoring of documentation. It is for example used to document the git system. Those manpages are translated using po4a.
ru: Этот формат представляет собой легкий формат разметки, предназначенный для облегчения составления документации. Например, он используется для документирования системы git. Эти manpages переведены с помощью po4a.

note: type: textblock
en: See L<Locale::Po4a::AsciiDoc> for details.
ru: Подробнее см. в разделе L<Locale::Po4a::AsciiDoc>.

note: type: =item
en: pod (mature parser)
ru: pod (зрелый парсер)

note: type: textblock
en: This is the Perl Online Documentation format. The language and extensions themselves are documented using this format in addition to most existing Perl scripts. It makes easy to keep the documentation close to the actual code by embedding them both in the same file. It makes programmer's life easier, but unfortunately, not the translator's, until you use po4a.
ru: Это формат встроенной документации языка Perl (Perl Online Documentation). Сам язык и его расширения документируются с помощью этого формата, а также и большинство существующих сценариев perl. Это делает проще поддержать документацию близкой к исходному коду, так как они вместе находятся в одном и том же файле. Это делает проще жизнь программиста, но, к сожалению, не жизнь переводчика.

note: type: textblock
en: See L<Locale::Po4a::Pod> for details.
ru: Подробнее см. в разделе L<Locale::Po4a::Pod>.

note: type: =item
en: sgml (mature parser)
ru: sgml (зрелый парсер)

note: type: textblock
en: Even if superseded by XML nowadays, this format is still used for documents which are more than a few screens long. It can even be used for complete books.  Documents of this length can be very challenging to update. B<diff> often reveals useless when the original text was re-indented after update.  Fortunately, po4a can help you after that process.
ru: Даже если он и заменён XML в наши дни, этот формат всё ещё используется в тех документах, что длиннее нескольких экранов. Он может даже использоваться для целых книг. Обновление переводов таких длинных документов может быть настоящим вызовом. В частности, B<diff> зачастую показывает себя абсолютно бесполезным, когда в исходном тексте изменяются отступы после обновления. К счастью, po4a может с этим помочь.

note: type: textblock
en: Currently, only DebianDoc and DocBook DTD are supported, but adding support for a new one is really easy. It is even possible to use po4a on an unknown SGML DTD without changing the code by providing the needed information on the command line. See L<Locale::Po4a::Sgml(3pm)> for details.
ru: На данный момент поддерживаются только DebianDoc и DocBook DTD, но добавлять поддержку новых DTD достаточно просто. Возможно даже использование po4a для перевода неизвестного SGML DTD, вообще не вмешиваясь в исходный код; достаточно только предоставить всю необходимую информацию в командной строке. См. подробности в L<Locale::Po4a::Sgml(3pm)>.

note: type: =item
en: TeX / LaTeX (mature parser)
ru: TeX / LaTeX (зрелый парсер)

note: type: textblock
en: The LaTeX format is a major documentation format used in the Free Software world and for publications.
ru: Формат LaTeX — это основной формат публикаций, используемый в мире Свободного ПО.

note: type: textblock
en: The L<Locale::Po4a::LaTeX(3pm)|LaTeX> module was tested with the Python documentation, a book and some presentations.
ru: Модуль L<Locale::Po4a::LaTeX(3pm)|LaTeX> был проверен на документации Python, одной книге и нескольких презентациях.

note: type: =item
en: text (mature parser)
ru: text (зрелый парсер)

note: type: textblock
en: The Text format is the base format for many formats that include long blocks of text, including Markdown, fortunes, YAML front matter section, debian/changelog, and debian/control.
ru: Формат Text является базовым для многих форматов, включающих длинные блоки текста, включая Markdown, fortunes, YAML front matter section, debian/changelog и debian/control.

note: type: textblock
en: This supports the common format used in Static Site Generators, READMEs, and other documentation systems. See L<Locale::Po4a::Text(3pm)|Text> for details.
ru: Поддерживает общий формат, используемый в генераторах статических сайтов, README и других системах документации. Подробности смотрите в разделе L<Locale::Po4a::Text(3pm)|Text>.

note: type: =item
en: xml and XHMTL (probably mature parser)
ru: xml and XHMTL (похоже, зрелый парсер)

note: type: textblock
en: The XML format is a base format for many documentation formats.
ru: Формат XML является базовым для многих форматов документации.

note: type: textblock
en: Currently, the DocBook DTD (see L<Locale::Po4a::Docbook(3pm)> for details) and XHTML are supported by po4a.
ru: На данный момент, po4a поддерживает DocBook DTD (cм. L<Locale::Po4a::Docbook(3pm)>) и XHTML.

note: type: =item
en: BibTex (probably mature parser)
ru: BibTex (похоже, зрелый парсер)

note: type: textblock
en: The BibTex format is used alongside LaTex for formatting lists of references (bibliographies).
ru: Формат BibTex используется наряду с LaTex для форматирования списков ссылок (библиографий).

note: type: textblock
en: See L<Locale::Po4a::BibTex> for details.
ru: Подробнее см. в разделе L<Locale::Po4a::BibTex>.

note: type: =item
en: Docbook (probably mature parser)
ru: Docbook (похоже, зрелый парсер)

note: type: textblock
en: A XML-based markup language that uses semantic tags to describe documents.
ru: Язык разметки на основе XML, использующий семантические теги для описания документов.

note: type: textblock
en: See L<Locale::Po4a:Docbook> for greater details.
ru: Более подробную информацию см. в L<Locale::Po4a:Docbook>.

note: type: =item
en: Guide XML (probably mature parser)
ru: Guide XML (похоже, зрелый парсер)

note: type: textblock
en: A XML documentation format. This module was developed specifically to help with supporting and maintaining translations of Gentoo Linux documentation up until at least March 2016 (Based on the Wayback Machine). Gentoo have since moved to the DevBook XML format.
ru: Формат документации XML. Этот модуль был разработан специально для помощи в поддержке и сопровождении переводов документации Gentoo Linux по крайней мере до марта 2016 года (по данным Wayback Machine). С тех пор Gentoo перешла на XML-формат DevBook.

note: type: textblock
en: See L<Locale::Po4a:Guide> for greater details.
ru: Более подробную информацию смотрите в L<Locale::Po4a:Guide>.

note: type: =item
en: Wml (probably mature parser)
ru: Wml (похоже, зрелый парсер)

note: type: textblock
en: The Web Markup Language, do not mixup WML with the WAP stuff used on cell phones.  This module relies on the Xhtml module, which itself relies on the XmL module.
ru: Язык веб-разметки, не путайте WML с WAP, используемым в мобильных телефонах.  Этот модуль основан на модуле Xhtml, который сам основан на модуле XmL.

note: type: textblock
en: See L<Locale::Po4a::Wml> for greater details.
ru: Более подробную информацию смотрите в разделе L<Locale::Po4a::Wml>.

note: type: =item
en: Yaml (probably mature parser)
ru: Yaml (похоже, зрелый парсер)

note: type: textblock
en: A strict superset of JSON. YAML is often used as systems or configuration projects.  YAML is at the core of Red Hat's Ansible.
ru: Строгий суперсет JSON. YAML часто используется в качестве системных или конфигурационных проектов.  YAML лежит в основе программы Ansible компании Red Hat.

note: type: textblock
en: See L<Locale::Po4a::Yaml> for greater details.
ru: Более подробную информацию см. в разделе L<Locale::Po4a::Yaml>.

note: type: =item
en: RubyDoc (probably mature parser)
ru: RubyDoc (похоже, зрелый парсер)

note: type: textblock
en: The Ruby Document (RD) format, originally the default documentation format for Ruby and Ruby projects before converted to RDoc in 2002. Though apparently the Japanese version of the Ruby Reference Manual still use RD.
ru: Формат Ruby Document (RD), первоначально формат документации по умолчанию для Ruby и Ruby-проектов до преобразования в RDoc в 2002 году. Хотя, по-видимому, японская версия справочного руководства по Ruby все еще использует RD.

note: type: textblock
en: See L<Locale::Po4a::RubyDoc> for greater details.
ru: Более подробную информацию см. в разделе L<Locale::Po4a::Yaml>.

note: type: =item
en: Halibut (probably experimental parser)
ru: Halibut (похоже, экспериментальный парсер)

note: type: textblock
en: A documentation production system, with elements similar to TeX, debiandoc-sgml, TeXinfo, and others, developed by Simon Tatham, the developer of PuTTY.
ru: Система создания документации, с элементами, похожими на TeX, debiandoc-sgml, TeXinfo и другие, разработанная Саймоном Тэтхемом, разработчиком PuTTY.

note: type: textblock
en: See L<Locale::Po4a:Halibut> for greater details.
ru: Более подробную информацию см. в разделе L<Locale::Po4a:Halibut>.

note: type: =item
en: Ini (probably experimental parser)
ru: Ini (похоже, экспериментальный парсер)

note: type: textblock
en: Configuration file format popularized by MS-DOS.
ru: Формат файла конфигурации, популярный в MS-DOS.

note: type: textblock
en: See L<Locale::Po4a::Ini> for greater details.
ru: Более подробную информацию смотрите в разделе L<Locale::Po4a::Ini>.

note: type: =item
en: texinfo (very highly experimental parser)
ru: texinfo (крайне экспериментальный парсер)

note: type: textblock
en: All of the GNU documentation is written in this format (it's even one of the requirements to become an official GNU project). The support for L<Locale::Po4a::Texinfo(3pm)|Texinfo> in po4a is still at the beginning.  Please report bugs and feature requests.
ru: Вся документация GNU написана в этом формате (вообще говоря, это одно из необходимых условий, чтобы стать официальным проектом GNU). Поддержка L<Locale::Po4a::Texinfo(3pm)|Texinfo> в po4a пока в зачаточном состоянии. Пожалуйста сообщайте об ошибках и запрашивайте новые возможности, когда требуется.

note: type: =item
en: Others supported formats
ru: Другие поддерживаемые форматы

note: type: textblock
en: Po4a can also handle some more rare or specialized formats, such as the documentation of compilation options for the 2.4+ Linux kernels (L<Locale::Po4a::KernelHelp>) or the diagrams produced by the dia tool (L<Locale::Po4a:Dia>). Adding a new format is often very easy and the main task is to come up with a parser for your target format. See L<Locale::Po4a::TransTractor(3pm)> for more information about this.
ru: Po4a также может обрабатывать некоторые более редкие или специализированные форматы, такие как документация опций компиляции для ядер Linux 2.4+ (L<Locale::Po4a::KernelHelp>) или диаграммы, создаваемые инструментом dia (L<Locale::Po4a:Dia>). Добавление нового формата часто очень просто, и главная задача состоит в том, чтобы придумать парсер для вашего целевого формата. Подробнее об этом см. в L<Locale::Po4a::TransTractor(3pm)>.

note: type: =item
en: Unsupported formats
ru: Не поддерживаемые форматы

note: type: textblock
en: Unfortunately, po4a still lacks support for several documentation formats. Many of them would be easy to support in po4a. This includes formats not just used for documentation, such as, package descriptions (deb and rpm), package installation scripts questions, package changelogs, and all the specialized file formats used by programs such as game scenarios or wine resource files.
ru: К сожалению, в po4a всё ещё нет поддержки нескольких форматов документации. Поддержку многих из них было бы не так сложно добавить. И это включает не только форматы документации, но и, например, описание пакетов (deb и rpm), вопросы, задаваемые интерактивными сценариями установки пакетов, файлы changelogs для пакетов, и все специализированные форматы файлов, которые используются в программах, такие как сценарии игр или файлы ресурсов wine.

note: type: =head1
en: Using po4a
ru: Использование po4a

note: type: textblock
en: Historically, po4a was built around four scripts, each fulfilling a specific task. L<po4a-gettextize(1)> helps bootstrapping translations and optionally converting existing translation projects to po4a. L<po4a-updatepo(1)> reflects the changes to the original documentation into the corresponding po files.  L<po4a-translate(1)> builds translated source file from the original file and the corresponding PO file. In addition, L<po4a-normalize(1)> is mostly useful to debug the po4a parsers, as it produces an untranslated document from the original one. It makes it easier to spot the glitches introduced by the parsing process.
ru: Исторически po4a был построен на основе четырех скриптов, каждый из которых выполнял определенную задачу. L<po4a-gettextize(1)> помогает загружать переводы и, по желанию, конвертировать существующие проекты переводов в po4a. L<po4a-updatepo(1)> отражает изменения в оригинальной документации в соответствующих po-файлах.  L<po4a-translate(1)> создает переведенный исходный файл из исходного файла и соответствующего PO-файла. Кроме того, L<po4a-normalize(1)> в основном полезен для отладки парсеров po4a, так как он создает непереведенный документ из исходного. Это облегчает поиск ошибок, вносимых процессом синтаксического анализа.

note: type: textblock
en: The rest of this section gives an overview of how use the scripts' interface of po4a. Most users will probably prefer to use the all-in-one tool, that is described in the documentation of L<po4a(1)>.
ru: В остальной части этого раздела приводится обзор использования интерфейса скриптов po4a. Большинство пользователей, вероятно, предпочтут использовать инструмент "все в одном", который описан в документации L<po4a(1)>.

note: type: =head2
en: Graphical overview of the po4a scripts
ru: Наглядный обзор сценариев po4a

note: type: textblock
en: The following schema gives an overview of how each po4a script can be used.  Here, F<master.doc> is an example name for the documentation to be translated; F<XX.doc> is the same document translated in the language XX while F<doc.XX.po> is the translation catalog for that document in the XX language. Documentation authors will mostly be concerned with F<master.doc> (which can be a manpage, an XML document, an asciidoc file or similar); the translators will be mostly concerned with the PO file, while the end users will only see the F<XX.doc> file.
ru: Следующая схема дает представление о том, как можно использовать каждый сценарий po4a.  Здесь F<master.doc> - это пример названия документации, подлежащей переводу; F<XX.doc> - это тот же документ, переведенный на язык XX, а F<doc.XX.po> - это каталог переводов для этого документа на язык XX. Авторы документации в основном будут иметь дело с F<master.doc> (который может быть manpage, XML-документом, файлом asciidoc или подобным); переводчики в основном будут иметь дело с PO-файлом, а конечные пользователи будут видеть только файл F<XX.doc>.

note: type: verbatim
en:                                    master.doc
                                           |
                                           V
         +<-----<----+<-----<-----<--------+------->-------->-------+
         :           |                     |                        :
    {translation}    |         { update of master.doc }             :
         :           |                     |                        :
       XX.doc        |                     V                        V
     (optional)      |                 master.doc ->-------->------>+
         :           |                   (new)                      |
         V           V                     |                        |
      [po4a-gettextize]   doc.XX.po -->+   |                        |
              |            (old)       |   |                        |
              |              ^         V   V                        |
              |              |     [po4a-updatepo]                  |
              V              |           |                          V
       translation.pot       ^           V                          |
              |              |        doc.XX.po                     |
              |              |         (fuzzy)                      |
       { translation }       |           |                          |
              |              ^           V                          V
              |              |     {manual editing}                 |
              |              |           |                          |
              V              |           V                          V
          doc.XX.po --->---->+<---<-- doc.XX.po    addendum     master.doc
          (initial)                 (up-to-date)  (optional)   (up-to-date)
              :                          |            |             |
              :                          V            |             |
              +----->----->----->------> +            |             |
                                         |            |             |
                                         V            V             V
                                         +------>-----+------<------+
                                                      |
                                                      V
                                               [po4a-translate]
                                                      |
                                                      V
                                                    XX.doc
                                                 (up-to-date)
ru:                                    мастер.doc
                                           |
                                           V
          +<----<----+<-----<-----<--------+------->-------->-------+
          :          |                     |                        :
       {перевод}     |         { обновление мастер.doc }            :
          :          |                     |                        :
        XX.doc       |                     V                        V
    (необязательно)  |                 мастер.doc ->-------->------>+
          :          |                  (новый)                     |
          V          V                     |                        |
      [po4a-gettextize]   doc.XX.po -->+   |                        |
              |           (старый)     |   |                        |
              |              ^         V   V                        |
              |              |     [po4a-updatepo]                  |
              V              |           |                          V
          перевод.pot        ^           V                          |
              |              |        doc.XX.po                     |
              |              |       (неточный)                     |
         { перевод }         |           |                          |
              |              ^           V                          V
              |              | {ручное редактирование}              |
              |              |           |                          |
              V              |           V                          V
          doc.XX.po --->---->+<---<-- doc.XX.po    дополнение     мастер.doc
         (начальный)                (актуальный) (необязательно) (актуальный)
              :                          |            |             |
              :                          V            |             |
              +----->----->----->------> +            |             |
                                         |            |             |
                                         V            V             V
                                         +------>-----+------<------+
                                                      |
                                                      V
                                               [po4a-translate]
                                                      |
                                                      V
                                                    XX.doc
                                                 (актуальный)

note: type: textblock
en: This schema is complicated, but in practice only the right part (involving L<po4a-updatepo(1)> and L<po4a-translate(1)>) is used once the project is setup and configured.
ru: Эта схема сложна, но на практике только правая часть (включающая L<po4a-updatepo(1)> и L<po4a-translate(1)>) используется после установки и настройки проекта.

note: type: textblock
en: The left part depicts how L<po4a-gettextize(1)> can be used to convert an existing translation project to the po4a infrastructure. This script takes an original document and its translated counterpart, and tries to build the corresponding PO file. Such manual conversion is rather cumbersome (see the L<po4a-gettextize(1)> documentation for more details), but it is only needed once to convert your existing translations. If you don't have any translation to convert, you can forget about this and focus on the right part of the schema.
ru: В левой части показано, как L<po4a-gettextize(1)> можно использовать для преобразования существующего проекта перевода в инфраструктуру po4a. Этот скрипт берет оригинальный документ и его переведенный аналог и пытается построить соответствующий PO-файл. Такое ручное преобразование довольно громоздко (подробнее см. документацию L<po4a-gettextize(1)>), но оно необходимо только один раз для преобразования существующих переводов. Если у вас нет переводов для преобразования, вы можете забыть об этом и сосредоточиться на нужной части схемы.

note: type: textblock
en: On the top right part, the action of the original author is depicted, updating the documentation. The middle right part depicts the automatic actions of L<po4a-updatepo(1)>. The new material is extracted and compared against the exiting translation. The previous translation is used for the parts that didn't change, while partially modified parts are connected to the previous translation with a "fuzzy" marker indicating that the translation must be updated. New or heavily modified material is left untranslated.
ru: В верху правой части, изображены действия автора оригинала — обновление документации. В середине правой части показывает автоматические действия, производимые L<po4a-updatepo(1)>. Новые материалы извлекаются и сравниваются с существующим переводом. Для тех частей, которые не были изменены используется уже существующий перевод, а те части, которые были изменены частично соединяются с уже существующим переводом, но с пометкой «неточно» (fuzzy), указывающей, что перевод должен быть обновлён. Новые или сильно изменённые части оказываются непереведёнными.

note: type: textblock
en: Then, the I<manual editing> reported depicts the action of the translators, that modify the PO files to provide translations to every original string and paragraph. This can be done using either a specific editor such as the B<GNOME Translation Editor>, KDE's B<Lokalize> or B<poedit>, or using an online localization platform such as B<weblate> or B<pootle>. The translation result is a set of PO files, one per language. Please refer to the gettext documentation for more details.
ru: Затем, в разделе I<ручное редактирование> описываются действия переводчиков, которые изменяют файлы PO, чтобы обеспечить перевод каждой оригинальной строки и абзаца. Это может быть сделано с помощью специального редактора, такого как B<GNOME Translation Editor>, KDE's B<Lokalize> или B<poedit>, или с помощью онлайн-платформы локализации, такой как B<weblate> или B<pootle>. Результатом перевода является набор PO-файлов, по одному на каждый язык. Более подробную информацию см. в документации gettext.

note: type: textblock
en: The bottom part of the figure shows how L<po4a-translate(1)> creates a translated source document from the F<master.doc> original document and the F<doc.XX.po> translation catalog that was updated by the translators. The structure of the document is reused, while the original content is replaced by its translated counterpart. Optionally, an addendum can be used to add some extra text to the translation. This is often used to add the name of the translator to the final document. See below for details.
ru: В нижней части рисунка показано, как L<po4a-translate(1)> создает переведенный исходный документ из исходного документа F<master.doc> и каталога переводов F<doc.XX.po>, который был обновлен переводчиками. Структура документа используется повторно, а оригинальное содержание заменяется его переведенным аналогом. По желанию можно использовать дополнение, чтобы добавить к переводу дополнительный текст. Это часто используется для добавления имени переводчика в окончательный документ. Подробности см. ниже.

note: type: textblock
en: As noted before, the L<po4a(1)> program combines the effects of the separated scripts, updating the PO files and the translated document in one invocation.  The underlying logic remains the same.
ru: Как уже отмечалось, программа L<po4a(1)> объединяет результаты отдельных сценариев, обновляя PO-файлы и переведенный документ за один вызов.  Основополагающая логика остается прежней.

note: type: =head2
en: Starting a new translation
ru: Начало нового перевода

note: type: textblock
en: If you use L<po4a(1)>, there is no specific step to start a translation. You just have to list the languages in the configuration file, and the missing PO files are automatically created. Naturally, the translator then have to provide translations for every content used in your documents. L<po4a(1)> also creates a POT file, that is a PO template file. Potential translators can translate your project into a new language by renaming this file and providing the translations in their language.
ru: Если вы используете L<po4a(1)>, то для начала перевода не требуется никаких специальных шагов. Вам просто нужно перечислить языки в конфигурационном файле, и недостающие PO-файлы будут созданы автоматически. Естественно, переводчик должен будет затем предоставить переводы для каждого содержимого, используемого в ваших документах. L<po4a(1)> также создает файл POT, то есть файл шаблона PO. Потенциальные переводчики могут перевести ваш проект на новый язык, переименовав этот файл и предоставив переводы на своем языке.

note: type: textblock
en: If you prefer to use the individual scripts separately, you should use L<po4a-gettextize(1)> as follows to create the POT file. This file can then be copied into F<XX.po> to initiate a new translation.
ru: Если вы предпочитаете использовать отдельные скрипты по отдельности, то для создания файла POT следует использовать L<po4a-gettextize(1)> следующим образом. Затем этот файл можно скопировать в F<XX.po>, чтобы инициировать новый перевод.

note: type: verbatim
en:   $ po4a-gettextize --format <format> --master <master.doc> --po <translation.pot>
ru:   $ po4a-gettextize --format <формат> --master <мастер.doc> --po <переводы.pot>

note: type: textblock
en: The master document is used in input, while the POT file is the output of this process.
ru: Мастер-документ используется на входе, а файл POT является выходом этого процесса.

note: type: =head2
en: Integrating changes to the original document
ru: Интеграция изменений в исходный документ

note: type: textblock
en: The script to use for that is L<po4a-updatepo(1)> (please refer to its documentation for details):
ru: Для этого следует использовать скрипт L<po4a-updatepo(1)> (подробности см. в документации к нему):

note: type: verbatim
en:   $ po4a-updatepo --format <format> --master <new_master.doc> --po <old_doc.XX.po>
ru:   $ po4a-updatepo --format <формат> --master <новый_мастер.doc> --po <старый_doc.XX.po>

note: type: textblock
en: The master document is used in input, while the PO file is updated: it is used both in input and output.
ru: Мастер-документ используется на входе, а файл PO обновляется: он используется как на входе, так и на выходе.

note: type: =head2
en: Generating a translated document
ru: Генерация переведённого документа

note: type: textblock
en: Once you're done with the translation, you want to get the translated documentation and distribute it to users along with the original one.  For that, use the L<po4a-translate(1)> program as follows:
ru: Когда вы закончите с переводом, вы захотите получить переведённую документацию и распространять её своим пользователям вместе с оригиналом. Для этого используйте программу L<po4a-translate(1)> следующим образом:

note: type: verbatim
en:   $ po4a-translate --format <format> --master <master.doc> --po <doc.XX.po> --localized <XX.doc>
ru:   $ po4a-translate --format <формат> --master <мастер.doc> --po <doc.XX.po> --localized <XX.doc>

note: type: textblock
en: Both the master and PO files are used in input, while the localized file is the output of this process.
ru: Мастер-документ и PO файлы используются на входе, а локализованный файл является выходом этого процесса.

note: type: =head2
en: Using addenda to add extra text to translations
ru: Использование дополнений для добавления дополнительного текста к переводам

note: type: textblock
en: Adding new text to the translation is probably the only thing that is easier in the long run when you translate files manually :). This happens when you want to add an extra section to the translated document, not corresponding to any content in the original document. The classical use case is to give credits to the translation team, and to indicate how to report translation-specific issues.
ru: Добавление нового текста в перевод - это, пожалуй, единственное, что в долгосрочной перспективе проще, когда вы переводите файлы вручную :). Это происходит, когда вы хотите добавить в переведенный документ дополнительный раздел, не соответствующий какому-либо содержанию в оригинальном документе. Классический вариант использования - отдать должное команде переводчиков и указать, как сообщать о проблемах, связанных с переводом.

note: type: textblock
en: With po4a, you have to specify B<addendum> files, that can be conceptually viewed as patches applied to the localized document after processing. Each addendum must be provided as a separate file, which format is however very different from the classical patches. The first line is a I<header line>, defining the insertion point of the addendum (with an unfortunately cryptic syntax -- see below) while the rest of the file is added verbatim at the determined position.
ru: В po4a необходимо указать файлы B<addendum>, которые концептуально можно рассматривать как патчи, накладываемые на локализованный документ после обработки. Каждое дополнение должно быть представлено в виде отдельного файла, формат которого, однако, сильно отличается от классических патчей. Первая строка - это I<строка заголовка>, определяющая точку вставки дополнения (с, к сожалению, загадочным синтаксисом - см. ниже), в то время как остальная часть файла добавляется дословно в определенную позицию.

note: type: textblock
en: The header line must begin with the string B<PO4A-HEADER:>, followed by a semi-colon separated list of I<key>B<=>I<value> fields.
ru: Строка заголовка должна начинаться со строки B<PO4A-HEADER:>, за которой следует список полей I<key>B<=>I<value>, разделенных запятой.

note: type: textblock
en: For example, the following header declares an addendum that must be placed at the very end of the translation.
ru: Например, следующий заголовок объявляет о дополнении, которое должно быть помещено в самый конец перевода.

note: type: verbatim
en:  PO4A-HEADER: position=About this document; mode=after; endboundary=</section>
ru:  PO4A-HEADER: position=Об этом документе; mode=after; endboundary=</section>

note: type: verbatim
en:  PO4A-HEADER: position=About this document; mode=after; beginboundary=<section>
ru:  PO4A-HEADER: position=Об этом документе; mode=after; beginboundary=<section>

note: type: =head3
en: Hint and tricks about addenda
ru: Советы и хитрости при использовании дополнений

note: type: textblock
en: Remember that these are regexp. For example, if you want to match the end of a nroff section ending with the line C<.fi>, do not use C<.fi> as B<endboundary>, because it will match with C<the[ fi]le>, which is obviously not what you expect. The correct B<endboundary> in that case is: C<^\.fi$>.
ru: Запомните, что это регулярные выражения. Например, если вы хотите сопоставить конец секции nroff, которая заканчивается строкой C<.fi>, то не используйте C<.fi> как B<endboundary>, ибо в данном случае также будет сопоставлена строка C<the[ fi]le>, что, очевидно, не то, что вы ожидаете. Правильный B<endboundary> в этом случае будет: C<^\.fi$>.

note: type: verbatim
en:  PO4A-HEADER: position=About this document; mode=after; beginboundary=<section>
     PO4A-HEADER: position=About this document ; mode=after; beginboundary=<section>
ru:  PO4A-HEADER: position=Об этом документе; mode=after; beginboundary=<section>
     PO4A-HEADER: position=Об этом документе ; mode=after; beginboundary=<section>

note: type: textblock
en: Although this context search may be considered to operate roughly on each line of the B<translated> document, it actually operates on the internal data string of the translated document. This internal data string may be a text spanning a paragraph containing multiple lines or may be a XML tag itself alone. The exact I<insertion point> of the addendum must be before or after the internal data string and can not be within the internal data string.
ru: Хотя и можно считать, что этот контекстный поиск, грубо говоря, перебирает текст B<перевода> построчно, но на самом деле он работает со строками во внутреннем представлении данных документов. Этой строкой может быть, например, текст целого абзаца, разбитый на несколько фактических строк или один XML-тег сам по себе. Непосредственная I<точка вставки> дополнения должна быть до или после такой строки во внутреннем представлении и не может быть вставлена в середину оной.

note: type: =head3
en: Addenda examples
ru: Примеры дополнений

note: type: textblock
en: If you want to add something after the following nroff section:
ru: Если вы хотите добавить что-то после следующего раздела nroff (формат man-страниц):

note: type: verbatim
en:   .SH "AUTHORS"
ru:   .SH "АВТОРЫ"

note: type: textblock
en: You should select a two step approach by setting B<mode=after>. Then you should narrow down search to the line after B<AUTHORS> with the B<position> argument regex. Then, you should match the beginning of the next section (i.e., B<^\.SH>) with the B<beginboundary> argument regex. That is to say:
ru: Вам следует выбрать подход с двумя регулярными выражениями, т.е. задать B<mode=after>. Затем сузьте поиск до строк идущих после B<АВТОРЫ> с помощью регулярного выражения в аргументе B<position>. После этого вы должны сопоставить начало следующей секции (например, с помощью B<^\.SH>) в аргументе B<beginboundary>. Короче говоря:

note: type: verbatim
en:  PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\.SH
ru:  PO4A-HEADER: mode=after; position=АВТОРЫ; beginboundary=\. SH

note: type: textblock
en: If you want to add something right after a given line (e.g. after the line "Copyright Big Dude"), use a B<position> matching this line, B<mode=after> and give a B<beginboundary> matching any line.
ru: Если вы хотите добавить что-то сразу после конкретной строки (например, после «Copyright Большая Шишка»), используйте значение B<position>, соответствующее этой строке, задайте B<mode=after>, а B<beginboundary> — значение, соответствие любой строке.

note: type: verbatim
en:  PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^
ru:  PO4A-HEADER:mode=after;position=Copyright Большая Шишка, 2004;beginboundary=^

note: type: textblock
en: If you want to add something at the end of the document, give a B<position> matching any line of your document (but only one line. Po4a won't proceed if it's not unique), and give an B<endboundary> matching nothing. Don't use simple strings here like B<"EOF">, but prefer those which have less chance to be in your document.
ru: Если вы хотите добавить что-то в конец документа, то присвойте B<position> регулярное выражение, сопоставляемое любой строке вашего документа (но только одна строке; po4a выдаст ошибку, если она будет не уникальна), и задайте B<endboundary> не соответствующее ни чему. Лучше не использовать здесь простые строки, например B<"EOF">, а отдать предпочтение тем, у которых меньше шансов оказаться в вашем документе.

note: type: verbatim
en:  PO4A-HEADER:mode=after;position=About this document;beginboundary=FakePo4aBoundary
ru:  PO4A-HEADER:mode=after;position=О программе;beginboundary=FakePo4aBoundary

note: type: =head3
en: More detailed example
ru: Более подробный пример

note: type: textblock
en: Original document (POD formatted):
ru: Исходный документ (формат POD):

note: type: verbatim
en:  |=head1 NAME
     |
     |dummy - a dummy program
     |
     |=head1 AUTHOR
     |
     |me
ru:  |=head1 NAME
     |
     |dummy - a dummy program
     |
     |=head1 AUTHOR
     |
     |Me <me@example.com>

note: type: textblock
en: Then, the following addendum will ensure that a section (in French) about the translator is added at the end of the file (in French, "TRADUCTEUR" means "TRANSLATOR", and "moi" means "me").
ru: Тогда следующее дополнение обеспечит добавление раздела о переводчике (на русском) в конец файла.

note: type: verbatim
en:  |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head
     |
     |=head1 TRADUCTEUR
     |
     |moi
     |
ru:  |PO4A-HEADER:mode=after;position=АВТОР;beginboundary=^=head
     |
     |=head1 ПЕРЕВОД
     |
     |Я <me@example.ru>
     |

note: type: textblock
en: To put your addendum before the AUTHOR, use the following header:
ru: Чтобы поместить своё дополнение перед «АВТОР», используйте следующий заголовок:

note: type: verbatim
en:  PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1
ru:  PO4A-HEADER:mode=after;position=ИМЯ;beginboundary=^=head1

note: type: textblock
en: This works because the next line matching the B<beginboundary> /^=head1/ after the section "NAME" (translated to "NOM" in French), is the one declaring the authors. So, the addendum will be put between both sections. Note that if another section is added between NAME and AUTHOR sections later, po4a will wrongfully put the addenda before the new section.
ru: Это работает, так как следующая сопоставляемая B<beginboundary> /^=head1/ строка после раздела «NAME» (переведённого как «ИМЯ» на русский) и начинает раздел с перечислением авторов. Таким образом, дополнение будет помещено между этими двумя разделами. Заметьте, что если в дальнейшем какой-либо другой раздел будет добавлен между разделами «ИМЯ» и «АВТОР», то данный пример будет работать не корректно, ибо дополнение будет вставляться перед этим новым разделом.

note: type: textblock
en: To avoid this you may accomplish the same using B<mode>=I<before>:
ru: Чтобы избежать этого, можете использовать аналогичный заголовок с B<mode>=I<before>:

note: type: verbatim
en:  PO4A-HEADER:mode=before;position=^=head1 AUTEUR
ru:  PO4A-HEADER:mode=before;position=^=head1 АВТОР

note: type: =head1
en: How does it work?
ru: Как это работает?

note: type: textblock
en: This chapter gives you a brief overview of the po4a internals, so that you may feel more confident to help us maintaining and improving it. It may also help you understanding why it does not do what you expected, and how to solve your problems.
ru: В этой главе даётся краткий обзор внутренних компонентов po4a так, чтобы вы могли чувствовать себя увереннее, если вы захотите помочь нам сопровождать и улучшать его. Это также может помочь вам понять, почему он не делаете того, что вы ожидали, и как решить ваши проблемы.

note: type: textblock
en: The po4a architecture is object oriented. The L<Locale::Po4a::TransTractor(3pm)|TransTractor> class is the common ancestor to all po4a parsers. This strange name comes from the fact that it is at the same time in charge of translating document and extracting strings.
ru: Архитектура po4a объектно-ориентирована. Общим предком всех классов-парсеров po4a является L<Locale::Po4a::TransTractor(3pm)|TransTractor>. Своё странное имя он получил оттого, что он одновременно отвечает и за перевод документа и извлечение строк.

note: type: textblock
en: More formally, it takes a document to translate plus a PO file containing the translations to use as input while producing two separate outputs: Another PO file (resulting of the extraction of translatable strings from the input document), and a translated document (with the same structure than the input one, but with all translatable strings replaced with content of the input PO). Here is a graphical representation of this:
ru: Если точнее, TransTractor берёт документ для перевода плюс PO-файл с переводами, кои являются его входными данными, и производит два отдельных набора выходных данных: другой PO-файл (как результат извлечения переводимых строк из входного документа) и переведённый документ (с той же структурой, что и входной, но со всеми переводимыми строками заменёнными содержимым входного PO-файла). Ниже приведено графическое представление этого процесса:

note: type: verbatim
en:    Input document --\                             /---> Output document
                         \      TransTractor::       /       (translated)
                          +-->--   parse()  --------+
                         /                           \
       Input PO --------/                             \---> Output PO
                                                             (extracted)
ru:    Входной документ -\                            /---> Выходной документ
                          \      TransTractor::      /       (переведённый)
                          +-->--   parse()  --------+
                         /                           \
       Входной PO ------/                             \---> Выходной PO
                                                             (извлечённый)

note: type: textblock
en: This little bone is the core of all the po4a architecture. If you omit the input PO and the output document, you get B<po4a-gettextize>. If you provide both input and disregard the output PO, you get B<po4a-translate>. The B<po4a> calls TransTractor twice and calls B<msgmerge -U> between these TransTractor invocations to provide one-stop solution with a single configuration file.  Please see L<Locale::Po4a::TransTractor(3pm)> for more details.
ru: Эта маленькая косточка и является ядром всей архитектуры po4a. Если вы уберёте входной PO и выходной документ, вы получите B<po4a-gettextize>. Если предоставите оба набора входных данных и проигнорируете выходной PO, вы получите B<po4a-translate>. B<po4a> вызывает TransTractor дважды и вызывает B<msgmerge -U> между оными вызовами, дабы это было комплексное решение с одним файлом настроек. См. подробности в L<Locale::Po4a::TransTractor(3pm)>.

note: type: =head1
en: Open-source projects using po4a
ru: Проекты с открытым исходным кодом, использующие po4a

note: type: textblock
en: adduser (man): users and groups management tool.
ru: adduser (man): инструмент по управлению пользователями и группами.

note: type: textblock
en: apt (man, docbook): Debian package manager.
ru: apt (man, docbook): менеджер пакетов Debian.

note: type: textblock
en: aptitude (docbook, svg): terminal-based package manager for Debian
ru: aptitude (docbook, svg): консольный менеджер пакетов для Debian

note: type: textblock
en: L<F-Droid website|https://gitlab.com/fdroid/fdroid-website> (markdown): installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform.
ru: L<F-Droid website|https://gitlab.com/fdroid/fdroid-website> (markdown): устанавливаемый каталог свободных и открытых приложений (Free and Open Source Software) для платформы Android.

note: type: textblock
en: L<git|https://github.com/jnavila/git-manpages-l10n> (asciidoc): distributed version-control system for tracking changes in source code.
ru: L<git|https://github.com/jnavila/git-manpages-l10n> (asciidoc): распределённая система контроля изменений исходного кода.

note: type: =head1
en: FAQ
ru: Часто задаваемые вопросы

note: type: =head2
en: How do you pronounce po4a?
ru: Как вы произносите po4a?

note: type: =head2
en: What about the other translation tools for documentation using gettext?
ru: Как насчёт других инструментов перевода документации, использующих gettext?

note: type: textblock
en: This is the tool developed by KDE people to handle DocBook XML. AFAIK, it was the first program to extract strings to translate from documentation to PO files, and inject them back after translation.
ru: Это инструмент, разработанный командой KDE для работы с DocBook XML. На сколько я знаю, это была первая программа, которая извлекала переводимые строки из документации в PO-файлы и подставляла их обратно после перевода.

note: type: textblock
en: It can only handle XML, and only a particular DTD. I'm quite unhappy with the handling of lists, which end in one big msgid. When the list become big, the chunk becomes harder to swallow.
ru: Она может обрабатывать только XML и только с определённым DTD. Мне не очень нравится, как она обрабатывает списки, которые представляются одним большим msgid. Когда список становится большим, весь этот кусок становится сложно переработать.

note: type: textblock
en: This program done by Denis Barbier is a sort of precursor of the po4a SGML module, which more or less deprecates it. As the name says, it handles only the DebianDoc DTD, which is more or less a deprecated DTD.
ru: Эта программа, созданная Денисом Барбье, является своего рода предшественником модуля SGML в po4a, который более или менее делает её устаревшей. Как становится ясно из названия, она обрабатывает только DTD DebianDoc, который также относительно устарел.

note: type: textblock
en: The main advantages of po4a over them are the ease of extra content addition (which is even worse there) and the ability to achieve gettextization.
ru: Основные преимущества po4a перед оными — это простота добавления дополнительного содержипого (по крайней мере там это реализовано ещё хуже) и возможность проведения геттекстизации.

note: type: =head2
en: SUMMARY of the advantages of the gettext based approach
ru: РЕЗЮМЕ преимуществ подхода, основанного на gettext

note: type: textblock
en: The translations are not stored along with the original, which makes it possible to detect if translations become out of date.
ru: Переводы хранятся отдельно от оригиналов, что позволяет определить, устарели ли первые.

note: type: textblock
en: The translations are stored in separate files from each other, which prevents translators of different languages from interfering, both when submitting their patch and at the file encoding level.
ru: Переводы на разные языки хранятся в отдельных файлах, что не даёт разноязычным переводчикам мешать друг другу, как при отправке ими патчей, так и на уровне кодировок файлов.

note: type: textblock
en: It is based internally on B<gettext> (but B<po4a> offers a very simple interface so that you don't need to understand the internals to use it).  That way, we don't have to re-implement the wheel, and because of their wide use, we can think that these tools are more or less bug free.
ru: Внутренне устройство основано на B<gettext> (но B<po4a> предлагает простой интерфейс, так что вам не нужно понимать его внутреннее устройство, чтобы просто пользоваться им). Таким образом, нам не приходится заново изобретать колесо, а, так как B<gettext> широко используется, мы можем считать, что в нём остаётся относительно мало программных ошибок.

note: type: textblock
en: Nothing changed for the end-user (beside the fact translations will hopefully be better maintained). The resulting documentation file distributed is exactly the same.
ru: Для конечного пользователя ничего не меняется (помимо того факта, что, надо надеяться, перевод будет лучше поддерживаться). Полученный файл документации распространяется точно так же.

note: type: textblock
en: No need for translators to learn a new file syntax and their favorite PO file editor (like Emacs' PO mode, Lokalize or Gtranslator) will work just fine.
ru: Переводчикам не нужно изучать новый синтаксис файлов, и их любимого редактора PO-файлов (например, PO-режим Emacs, Lokalize или Gtranslator) будет вполне достаточно.

note: type: textblock
en: gettext offers a simple way to get statistics about what is done, what should be reviewed and updated, and what is still to do. Some example can be found at those addresses:
ru: gettext предлагает простой способ получить статистику о том, что готово, что должно быть проверено и обновлено, а что ещё предстоит сделать. Некоторые примеры можно найти по следующим ссылкам:

note: type: textblock
en: But everything isn't green, and this approach also has some disadvantages we have to deal with.
ru: Но не всё так радужно, и этот подход также имеет некоторые недостатки, с которыми нам приходится смириться.

note: type: textblock
en: Addenda are… strange at the first glance.
ru: Дополнения… странные на первый взгляд.

note: type: textblock
en: You can't adapt the translated text to your preferences, like splitting a paragraph here, and joining two other ones there. But in some sense, if there is an issue with the original, it should be reported as a bug anyway.
ru: Вы не можете приспособить переведённый текст к своим предпочтениям, например, разделить какой-то абзац здесь-то или объединили два в один там-то. Но в некотором смысле, если есть проблема в оригинале, об этом должно быть сообщено, как об ошибке.

note: type: textblock
en: Even with an easy interface, it remains a new tool people have to learn.
ru: Даже при том, что интерфейс является простым, po4a остаётся новым инструментом, который людям придётся изучать.

note: type: textblock
en: One of my dreams would be to integrate somehow po4a to Gtranslator or Lokalize. When a documentation file is opened, the strings are automatically extracted, and a translated file + po file can be written to disk. If we manage to do an MS Word (TM) module (or at least RTF) professional translators may even use it.
ru: Одна моя мечта состоит в том, чтобы каким-то образом интегрировать po4a в Gtranslator или Lokalize. Тогда при открытии файла документации, строки автоматически извлекались бы, а когда он сохранялся, переведённый файл и PO-файл мог ли бы записываться на диск. Если бы нам удалось сделать модуль MS Word (TM) (или, по крайней мере, RTF), то даже профессиональные переводчики могли бы использовать po4a.

note: type: textblock
en: The documentation of the individual po4a scripts: L<po4a-gettextize(1)>, L<po4a-updatepo(1)>, L<po4a-translate(1)>, L<po4a-normalize(1)>.
ru: Документация отдельных сценариев po4a: L<po4a-gettextize(1)>, L<po4a-normalizeupdatepo(1)>, L<po4a-translate(1)>, L<po4a(7-normalize(1)>.

note: type: textblock
en: The parsers of each formats, in particular to see the options accepted by each of them: L<Locale::Po4a::AsciiDoc(3pm)> L<Locale::Po4a::Dia(3pm)>, L<Locale::Po4a::Guide(3pm)>, L<Locale::Po4a::Ini(3pm)>, L<Locale::Po4a::KernelHelp(3pm)>, L<Locale::Po4a::Man(3pm)>, L<Locale::Po4a::RubyDoc(3pm)>, L<Locale::Po4a::Texinfo(3pm)>, L<Locale::Po4a::Text(3pm)>, L<Locale::Po4a::Xhtml(3pm)>, L<Locale::Po4a::Yaml(3pm)>, L<Locale::Po4a::BibTeX(3pm)>, L<Locale::Po4a::Docbook(3pm)>, L<Locale::Po4a::Halibut(3pm)>, L<Locale::Po4a::LaTeX(3pm)>, L<Locale::Po4a::Pod(3pm)>, L<Locale::Po4a::Sgml(3pm)>, L<Locale::Po4a::TeX(3pm)>, L<Locale::Po4a::Wml(3pm)>, L<Locale::Po4a::Xml(3pm)>.
ru: Парсеры для каждого отдельного формата, в особенности обратите внимани на параметры, принимаемые каждым из них: L<Locale::Po4a::AsciiDoc(3pm)> L<Locale::Po4a::Dia(3pm)>, L<Locale::Po4a::Guide(3pm)>, L<Locale::Po4a::Ini(3pm)>, L<Locale::Po4a::KernelHelp(3pm)>, L<Locale::Po4a::Man(3pm)>, L<Locale::Po4a::RubyDoc(3pm)>, L<Locale::Po4a::Texinfo(3pm)>, L<Locale::Po4a::Text(3pm)>, L<Locale::Po4a::Xhtml(3pm)>, L<Locale::Po4a::Yaml(3pm)>, L<Locale::Po4a::BibTeX(3pm)>, L<Locale::Po4a::Docbook(3pm)>, L<Locale::Po4a::Halibut(3pm)>, L<Locale::Po4a::LaTeX(3pm)>, L<Locale::Po4a::Pod(3pm)>, L<Locale::Po4a::Sgml(3pm)>, L<Locale::Po4a::TeX(3pm)>, L<Locale::Po4a::Wml(3pm)>, L<Locale::Po4a::Xml(3pm)>.

note: type: verbatim
en:  Denis Barbier <barbier,linuxfr.org>
     Martin Quinson (mquinson#debian.org)
ru:  Денис Барбье (Denis Barbier) <barbier,linuxfr.org>
     Мартин Кенсон (Martin Quinson) (mquinson#debian.org)

note: type: textblock
en: Locale::Po4a::AsciiDoc - convert AsciiDoc documents from/to PO files
ru: Locale::Po4a::AsciiDoc: преобразование документов AsciiDoc в/из PO-файлы

note: type: textblock
en: Locale::Po4a::AsciiDoc is a module to help the translation of documentation in the AsciiDoc format.
ru: Locale::Po4a::AsciiDoc — это модуль, предназначенным для помощи в переводе документации в формате AsciiDoc.

note: type: =head1
en: OPTIONS ACCEPTED BY THIS MODULE
ru: ПАРАМЕТРЫ ПРИНИМАЕМЫЕ ЭТИМ МОДУЛЕМ

note: type: textblock
en: These are this module's particular options:
ru: Ниже приведены специфические для данного модуля параметры:

note: type: textblock
en: The name of a file containing definitions for po4a, as defined in the B<INLINE CUSTOMIZATION> section.  You can use this option if it is not possible to put the definitions in the document being translated.
ru: Имя файла с po4a-определениями (definitions), которые описаны в разделе B<ВСТРОЕННЫЕ НАСТРОЙКИ ПОВЕДЕНИЯ>. Вы можете использовать этот параметр, если добавить эти определения непосредственно в переводимый документ не является возможным.

note: type: textblock
en: In a definitions file, lines must not start by two slashes, but directly by B<po4a:>.
ru: В файле с определениями строки должны начинаться не, как комментарии, с двух слешей, а сразу с B<po4a:>.

note: type: textblock
en: Space-separated list of attribute entries you want to translate.  By default, no attribute entries are translatable.
ru: Список атрибутов, разделённых пробелом, значения которых должны переводиться. По умолчанию ни какие атрибуты не считаются переводимыми.

note: type: textblock
en: Space-separated list of macro definitions.
ru: Список определений макросов (macro definitions), разделённых пробелом.

note: type: textblock
en: Space-separated list of style definitions.
ru: Список определений стилей (style definitions), разделённых пробелами.

note: type: textblock
en: By default, the targets of block images are translatable to give opportunity to make the content point to translated images. This can be stopped by setting this option.
ru: По умолчанию, дабы дать переводчикам возможность вставлять в документ локализованные версии изображений, ссылки на них являются переводимыми строками. Это можно изменить, указав данный параметр.

note: type: textblock
en: This option is a flag that enables sub-table segmentation into cell content.  The segmentation is limited to cell content, without any parsing inside of it.
ru: Этот параметр является флагом, при указании которого таблицы будут разбиты на ячейки. Разбиение ограничивается только ячейками без какого-либо разбора их содержимого.

note: type: =head1
en: INLINE CUSTOMIZATION
ru: ВСТРОЕННЫЕ НАСТРОЙКИ ПОВЕДЕНИЯ

note: type: textblock
en: The AsciiDoc module can be customized with lines starting by B<//po4a:>.  These lines are interpreted as commands to the parser.  The following commands are recognized:
ru: Поведение модуля AsciiDoc может быть настроено строками в документе начинающимися с B<//po4a:>. Эти строки рассматриваются, как команды данному парсеру. Возможно задать следующие команды:

note: type: =item
en: B<//po4a: macro >I<name>B<[>I<attribute list>B<]>
ru: B<//po4a: macro >I<имя>B<[>I<список атрибутов>B<]>

note: type: textblock
en: If a plus sign (B<+>) is prepended to I<name>, then the macro and its arguments are translated as a whole.  There is no need to define attribute list in this case, but brackets must be present.
ru: Если в начало I<имени> добавлен знак плюс (B<+>), то макрос и все его аргументы переводятся как единое целое. В этом случае нет необходимости задавать список аргументов, но скобки всё равно должны присутствовать.

note: type: =item
en: B<//po4a: style >B<[>I<attribute list>B<]>
ru: B<//po4a: style >B<[>I<список атрибутов>B<]>

note: type: textblock
en: If a plus sign (B<+>) is prepended to the style name, then the attribute list is translated as a whole.  There is no need to define translatable attributes.
ru: Если в начало имени стиля добавлен знак плюс (B<+>), то весь список атрибутов переводится как единое целое. В этом случае нет необходимости задавать список атрибутов.

note: type: textblock
en: If a minus sign (B<->) is prepended to the style name, then this attribute is not translated.
ru: Если в начало имени стиля добавлен знак минус (B<->), то его атрибуты не будут переводиться.

note: type: =item
en: B<//po4a: entry >I<name>
ru: B<//po4a: entry >I<имя>

note: type: textblock
en: This declares an attribute entry as being translatable.  By default, they are not translated.
ru: Этот параметр объявляет значение атрибута переводимым. По умолчанию все оные не являются таковыми.

note: type: =head1
en: STATUS OF THIS MODULE
ru: СОСТОЯНИЕ ЭТОГО МОДУЛЯ

note: type: textblock
en: Tested successfully on simple AsciiDoc files.
ru: Успешно протестирован на простых файлах AsciiDoc.

note: type: verbatim
en:  Nicolas François <nicolas.francois@centraliens.net>
     Denis Barbier <barbier@linuxfr.org>
ru:  Николя Франсуа (Nicolas François) <nicolas.francois@centraliens.net>
     Денис Барбье (Denis Barbier) <barbier@linuxfr.org>

note: type: verbatim
en:  Copyright © 2005-2008 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.
     Copyright © 2012 Denis BARBIER <barbier@linuxfr.org>.
     Copyright © 2017 Martin Quinson <mquinson#debian.org>.
ru:  Copyright © 2005-2008 Николя Франсуа (Nicolas FRANÇOIS) <nicolas.francois@centraliens.net>.
     Copyright © 2012 Денис Барбье (Denis BARBIER) <barbier@linuxfr.org>.
     Copyright © 2017 Мартин Кенсон (Martin Quinson) <mquinson#debian.org>.

note: type: textblock
en: Locale::Po4a::BibTeX - convert BibTeX documents from/to PO files
ru: Locale::Po4a::BibTeX: преобразование документов BibTeX из/в PO-файлы

note: type: textblock
en: Locale::Po4a::BibTeX is a module to help the translation of bibliographies in the BibTeX format into other [human] languages.
ru: Locale::Po4a::BibTeX — это модуль, предназначенным для помощи в переводе библиографий в формате BibTeX на другие [человеческие] языки.

note: type: textblock
en: Fields values are extracted and proposed for translation.
ru: Для перевода извлекаются значения полей записей.

note: type: textblock
en: NONE.
ru: НИКАКИХ.

note: type: textblock
en: It is a very simple module, but still young.
ru: Это очень простой модуль, однако он всё ещё сырой.

note: type: verbatim
en:  Nicolas François <nicolas.francois@centraliens.net>
ru:  Николя Франсуа (Nicolas François) <nicolas.francois@centraliens.net>

note: type: verbatim
en:  Copyright © 2006 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.
ru:  Copyright © 2006 Николя Франсуа (Nicolas FRANÇOIS) <nicolas.francois@centraliens.net>.

note: type: textblock
en: Locale::Po4a::Chooser - manage po4a modules
ru: Locale::Po4a::Chooser: управление модулями форматов po4a

note: type: textblock
en: Locale::Po4a::Chooser is a module to manage po4a modules. Previously, all po4a binaries used to know all po4a modules (pod, man, sgml, etc). This made the addition of a new module boring, because you had to make sure that the documentation is synchronized in all modules, and that each of them can access the new module.
ru: Locale::Po4a::Chooser — это модуль, для управления другими модулями po4a. Раньше все программы po4a работали напрямую со всеми модулями po4a (pod, man, sgml, и т.д.). Это делало добавление новых модулей занудным делом, ибо в те времена вам надо было постоянно проверять, что документация во всех модулях синхронизирована и что каждый из них имеет доступ к новому модулю.

note: type: textblock
en: Now, you just have to call the Locale::Po4a::Chooser::new() function, passing the name of module as argument.
ru: Теперь вы можете просто вызвать функцию Locale::Po4a::Chooser::new(), передавая имя модуля в качестве аргумента.

note: type: textblock
en: The function Locale::Po4a::Chooser::list() lists the available formats, and exits with the value passed as argument. So, we call Locale::Po4a::Chooser::list(0) when requested for the list of formats, and Locale::Po4a::Chooser::list(1) when passed an invalid format name.
ru: Функция Locale::Po4a::Chooser::list() выводит список всех доступных модулей форматов и завершает работу (через exit()) с кодом, переданном ей в качестве аргумента. Так что, чтобы вывести список всех доступных модулей, мы вызываем Locale::Po4a::Chooser::list(0), а чтобы завершить работу, когда запрошен не верный формат — Locale::Po4a::Chooser::list(1).

note: type: =item
en: About po4a:
ru: О po4a:

note: type: =item
en: About modules:
ru: О модуля:

note: type: verbatim
en:  Denis Barbier <barbier@linuxfr.org>
     Martin Quinson (mquinson#debian.org)
ru:  Денис Барбье (Denis Barbier) <barbier@linuxfr.org>
     Мартин Кенсон (Martin Quinson) (mquinson#debian.org)

note: type: textblock
en: Locale::Po4a::Common - common parts of the po4a scripts and utils
ru: Locale::Po4a::Common: общий код сценариев и утилит po4a

note: type: textblock
en: Locale::Po4a::Common contains common parts of the po4a scripts and some useful functions used along the other modules.
ru: Locale::Po4a::Common содержит общий код сценариев po4a, а также некоторые полезные функции используемые в других модулях.

note: type: textblock
en: If needed, you can disable the use of Text::WrapI18N as such:
ru: В случае необходимости можно отключить Text::WrapI18N следующим образом:

note: type: textblock
en: instead of:
ru: вместо:

note: type: =head1
en: FUNCTIONS
ru: ФУНКЦИИ

note: type: verbatim
en:  Jordi Vilalta <jvprat@gmail.com>
ru:  Жорди Вилальта (Jordi Vilalta) <jvprat@gmail.com>

note: type: textblock
en: Locale::Po4a::Dia - convert uncompressed Dia diagrams from/to PO files
ru: Locale::Po4a::Dia: преобразование несжатых диаграмм Dia из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Dia is a module to help the translation of diagrams in the uncompressed Dia format into other [human] languages.
ru: Locale::Po4a::Dia — это модуль, предназначенным для помощи в переводе диаграмм в несжатом формате Dia в на другие [человеческие] языки.

note: type: verbatim
en: You can get Dia (the graphical editor for these diagrams) from:
      http://www.gnome.org/projects/dia/
ru: Вы можете скачать Dia (графический редактор диаграмм) с:
      http://www.gnome.org/projects/dia/

note: type: =head1
en: TRANSLATING WITH PO4A::DIA
ru: ПЕРЕВОД С ПОМОЩЬЮ PO4A::DIA

note: type: textblock
en: This module only translates uncompressed Dia diagrams.  You can save your uncompressed diagrams with Dia itself, unchecking the "Compress diagram files" at the "Save Diagram" dialog.
ru: Этот модуль переводит только несжатые диаграммы Dia. Вы можете сохранить свою диаграмму в несжатом формате с помощью самого Dia, сняв флажок «Сжимать сохраняемые файлы» в диалоге «Сохранить как…».

note: type: verbatim
en: Another way is to uncompress the dia files from command line with:
      gunzip < original.dia > uncompressed.dia
ru: Другой способ распаковать файл dia — через командную строку:
      gunzip < original.dia > uncompressed.dia

note: type: textblock
en: This module is fully functional, as it relies in the L<Locale::Po4a::Xml> module. This only defines the translatable tags (E<lt>dia:stringE<gt>), and filters the internal strings (the content of the E<lt>dia:diagramdataE<gt> tag), not interesting for translation.
ru: Этот модуль полностью функционален так как он полагается на модуль L<Locale::Po4a::Xml>. Этот модуль только объявляет переводимые теги (E<lt>dia:stringE<gt>) и фильтрует внутренние строки (содержимое тегов E<lt>dia:diagramdataE<gt>), не представляющие интереса для переводчиков.

note: type: textblock
en: Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>
ru: Copyright © 2004 Жорди Вилальта (Jordi Vilalta) <jvprat@gmail.com>

note: type: textblock
en: Locale::Po4a::Docbook - convert DocBook XML documents from/to PO files
ru: Locale::Po4a::Docbook: преобразование документов DocBook XML из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Docbook is a module to help the translation of DocBook XML documents into other [human] languages.
ru: Locale::Po4a::Docbook — это модуль, предназначенным для помощи в переводе документов DocBook XML на другие [человеческие] языки.

note: type: textblock
en: This module is fully functional, as it relies in the L<Locale::Po4a::Xml> module. This only defines the translatable tags and attributes.
ru: Этот модуль полностью функционален так как он полагается на модуль L<Locale::Po4a::Xml>. Этот модуль только объявляет переводимые теги и атрибуты.

note: type: textblock
en: The only known issue is that it doesn't handle entities yet, and this includes the file inclusion entities, but you can translate most of those files alone (except the typical entities files), and it's usually better to maintain them separated.
ru: Единственная проблема в том, что он пока не поддерживает объектов-подстановок (entities), в том числе объектов-подстановок включения файлов, но вы можете переводить большинство этих файлов отдельно. И зачастую это упростит сопровождение оных.

note: type: =head2
en: OVERRIDE THE DEFAULT BEHAVIOR WITH COMMAND LINE OPTIONS
ru: ПЕРЕОПРЕДЕЛЕНИЕ ПОВЕДЕНИЯ ПО УМОЛЧАНИЮ ПАРАМЕТРАМИ КОМАНДНОЙ СТРОКИ

note: type: textblock
en: The default behavior of system provided modules is set to be on the safe side.
ru: Поведение системного модуля по умолчанию настроено из соображений, что на всякий случай необходимо подстраховаться.

note: type: textblock
en: For example, the default of B<< <author> >> tag is aiming it to appear under B<< <para> >>.  But you may be using it only under B<< <bookinfo> >>.  For this case, you may want to translate it independently for each author.
ru: Например, по умолчанию тег B<< <author> >> ожидает, что он будет находиться в секции B<< <para> >>. Но вы можете использовать его непосредственно под B<< <bookinfo> >>. В этом случае вы, возможно, захотите переводить его её независимо для каждого автора.

note: type: textblock
en: If you don't like the default behavior of the xml module and its derivative modules, you can provide command line options to change their behavior.  For example, you can add the following to the po4a configuration file:
ru: Если поведение по умолчанию модуля xml и унаследованных от него модулей вас не устраивает, вы можете передать некоторые параметры командной строки, дабы изменить данное поведение. Например, вы можете добавить следующее в файл настроек po4a:

note: type: textblock
en: This overrides the default behavior for B<< <bookinfo> >> and B<< <author> >>, set B<< <bookinfo> >> and B<< <author> >> to break input data stream on these tags, set B<< <bookinfo> >> not to translate its tagged content, and set B<< <author> >> to translate its tagged content.
ru: Это переопределит поведение по умолчанию для B<< <bookinfo> >> и B<< <author> >>, сделает так что B<< <bookinfo> >> и B<< <author> >> будут разбивать входной поток данный на этих тегах, установит, что содержимое тега B<< <bookinfo> >> не должно переводиться и что содержимое B<< <author> >>, напротив, должно переводиться.

note: type: verbatim
en:  Copyright © 2004 Jordi Vilalta  <jvprat@gmail.com>
     Copyright © 2007-2009 Nicolas François <nicolas.francois@centraliens.net>
ru:  Copyright © 2004 Жорди Вилальта (Jordi Vilalta)  <jvprat@gmail.com>
     Copyright © 2007-2009 Николя Франсуа (Nicolas François) <nicolas.francois@centraliens.net>

note: type: textblock
en: Locale::Po4a::Guide - convert Guide XML documents from/to PO files
ru: Locale::Po4a::Guide: преобразование документов Guide XML из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Guide is a module to help in the translation of the Gentoo Linux documentation in the Guide XML format into other [human] languages.
ru: Locale::Po4a::Guide — это модуль, предназначенным для помощи в переводе документации Gentoo Linux в формате Guide XML на другие [человеческие] языки.

note: type: textblock
en: This format is documented here: http://www.gentoo.org/doc/en/xml-guide.xml
ru: Этот формат описан по адресу: http://www.gentoo.org/doc/en/xml-guide.xml

note: type: textblock
en: The only known issue is that it doesn't include files with the <include href="..."> tag, but you can translate all those files alone, and it's usually better to have them separated.
ru: Единственная известная проблема в том, что он не включает файлы с помощью тега <include href="...">, но вы можете переводить все эти файлы отдельно. И обычно даже лучше оставить их таковыми.

note: type: textblock
en: Locale::Po4a::Halibut - convert Halibut documents and derivates from/to PO files
ru: Locale::Po4a::Halibut: преобразование документов Halibut и производных форматов из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Halibut is a module to help the translation of Halibut documents into other [human] languages.
ru: Locale::Po4a::Halibut — это модуль, предназначенным для помощи в переводе документов Halibut на другие [человеческие] языки.

note: type: textblock
en: This module contains the definitions of common Halibut commands and environments.
ru: Этот модуль содержит определения общих команд и элементов среды Halibut.

note: type: textblock
en: This module is still beta.  Please send feedback and feature requests.
ru: Этот модуль всё ещё находится в бета-стадии. Пожалуйста присылайте отзывы и запросы новых возможностей.

note: type: =head1
en: CAVEAT
ru: ПРЕДУПРЕЖДЕНИЕ

note: type: textblock
en: Some constructs are badly supported. The known ones are documented below.
ru: Некоторые конструкции поддерживаются плохо, известные перечислены ниже.

note: type: =head2
en: Verbatim blocks
ru: Дословные блоки

note: type: textblock
en: The verbatim block is not considered as a whole. Each line will be translated separately.
ru: Дословные блоки не рассматриваются, как цельные. Каждая строка будет переводиться отдельно.

note: type: textblock
en: Copyright © 2004-2008 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.
ru: Copyright © 2004-2008 Николя Франсуа (Nicolas FRANÇOIS) <nicolas.francois@centraliens.net>.

note: type: textblock
en: This program is free software; you may redistribute it and/or modify it under the terms of GPL (see COPYING file).
ru: Эта программа свободна; вы можете перераспространять и/или изменять её на условиях Стандартной общественной лицензии GNU (см. файл COPYING).

note: type: textblock
en: Locale::Po4a::Ini - convert INI files from/to PO files
ru: Locale::Po4a::Ini: преобразование Ini-файлов из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Ini is a module to help the translation of INI files into other [human] languages.
ru: Locale::Po4a::Ini — это модуль, предназначенным для помощи в переводе файлов Ini на другие [человеческие] языки.

note: type: textblock
en: The module searches for lines of the following format and extracts the quoted text:
ru: Этот модуль ищет строки следующего формата и извлекает текст заключённый в кавычки:

note: type: textblock
en: identificator="text than can be translated"
ru: identificator="текст, который может быть переведён"

note: type: textblock
en: NOTE: If the text is not quoted, it will be ignored.
ru: Замечание: Если текст не заключён в кавычки, он будет проигнорирован.

note: type: verbatim
en:  Razvan Rusu <rrusu@bitdefender.com>
     Costin Stroie <cstroie@bitdefender.com>
ru:  Рэзван Русу (Razvan Rusu) <rrusu@bitdefender.com>
     Костин Стройе (Costin Stroie) <cstroie@bitdefender.com>

note: type: textblock
en: Locale::Po4a::KernelHelp - convert kernel configuration help from/to PO files
ru: Locale::Po4a::KernelHelp: преобразование справочных страниц конфигурации ядра ОС из/в PO-файлы

note: type: textblock
en: Locale::Po4a::KernelHelp is a module to help the translation of documentation for the Linux kernel configuration options into other [human] languages.
ru: Locale::Po4a::KernelHelp — это модуль, предназначенным для перевода документации параметров сборки ядра Linux на другие [человеческие] языки.

note: type: textblock
en: This module is just written, and needs more tests. Most of the needed work will concern the tools used to parse this file (and configure the kernel), so that they accept to read the documentation from another (translated)  file.
ru: Этот модуль только написан и требует больше тестов. Основная требуемая работа касается изменения утилит, которые используют эти файлы (в частности, конфигураторы ядра), чтобы они читали справку из других (переведённых) файлов.

note: type: textblock
en: Locale::Po4a::LaTeX - convert LaTeX documents and derivates from/to PO files
ru: Locale::Po4a::LaTeX: преобразование документов LaTeX и производных форматов из/в PO-файлы

note: type: textblock
en: Locale::Po4a::LaTeX is a module to help the translation of LaTeX documents into other [human] languages. It can also be used as a base to build modules for LaTeX-based documents.
ru: Locale::Po4a::LaTeX — это модуль, предназначенным для помощи в переводе документов LaTeX на другие [человеческие] языки. Он также используется другими модулями для документов основанных на LaTeX.

note: type: textblock
en: This module contains the definitions of common LaTeX commands and environments.
ru: Этот модуль содержит определения общих команд и элементов среды LaTeX.

note: type: textblock
en: See the L<Locale::Po4a::TeX(3pm)|Locale::Po4a::TeX> manpage for the list of recognized options.
ru: Смотрите список поддерживаемых параметров в man-странице L<Locale::Po4a::TeX(3pm)|Locale::Po4a::TeX>.

note: type: textblock
en: Copyright © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.
ru: Copyright © 2004, 2005 Николя Франсуа (Nicolas FRANÇOIS) <nicolas.francois@centraliens.net>.

note: type: textblock
en: Locale::Po4a::Man - convert manual pages from/to PO files
ru: Locale::Po4a::Man: преобразование man-страниц из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Man is a module to help the translation of documentation in the nroff format (the language of manual pages) into other [human] languages.
ru: Locale::Po4a::Man — это модуль, предназначенным для помощи в переводе документации в формате nroff (язык разметки man-страниц) на другие [человеческие] языки.

note: type: =head1
en: TRANSLATING WITH PO4A::MAN
ru: ПЕРЕВОД С ПОМОЩЬЮ PO4A::MAN

note: type: textblock
en: This module tries pretty hard to make translator's life easier. For that, the text presented to translators isn't a verbatim copy of the text found in the man page. Indeed, the cruder parts of the nroff format are hidden, so that translators can't mess up with them.
ru: Этот модуль старается как только может, чтобы облегчить жизнь переводчика. Чтобы добиться этого, передаваемый переводчику текст не является дословной копией содержимого man-страницы. Фактически, большинство сырых элементов формата nroff скрыты от глаз переводчика так, чтобы он не смог их испортить.

note: type: =head2
en: Text wrapping
ru: Перенос текста

note: type: textblock
en: Unindented paragraphs are automatically rewrapped for the translator.  This can lead to some minor difference in the generated output, since the rewrapping rules used by groff aren't very clear. For example, two spaces after a parenthesis are sometimes preserved.
ru: Абзацы без отступов будут автоматически переформатированы для переводчика. Это может привести к некоторым незначительным отличиям в выходных файлах, т.к. правила форматирования используемые groff не совсем чёткие. Например, иногда резервируется два пробела после скобок.

note: type: textblock
en: Anyway, the difference will only be about the position of the extra spaces in wrapped paragraph, and I think it's worth.
ru: В любом случае, отличия будут только в положении дополнительных пробелов в переформатированном абзаце и, как мне кажется, это мелочь.

note: type: =head2
en: Font specification
ru: Определение шрифтов

note: type: textblock
en: The first change is about font change specifications.  In nroff, there are several ways to specify if a given word should be written in small, bold or italics. In the text to translate, there is only one way, borrowed from the POD (Perl online documentation) format:
ru: Первое изменение — это изменение способа определения шрифтов. В nroff, существует несколько способов определить, каким должен быть шрифт, маленьким, жирным или курсивом. В переводимом тексте, существует только один способ, позаимствованный из формата POD (Perl online documentation):

note: type: =item
en: IE<lt>textE<gt> -- italic text
ru: IE<lt>текстE<gt> -- курсив

note: type: textblock
en: equivalent to \fItext\fP or ".I text"
ru: эквивалентен \fIтекст\fP или ".I текст"

note: type: =item
en: BE<lt>textE<gt> -- bold text
ru: BE<lt>текстE<gt> -- жирный

note: type: textblock
en: equivalent to \fBtext\fP or ".B text"
ru: эквивалентен \fBтекст\fP или ".B текст"

note: type: =item
en: RE<lt>textE<gt> -- roman text
ru: RE<lt>текстE<gt> -- обычный (man использует термин «roman» )

note: type: textblock
en: equivalent to \fRtext\fP
ru: эквивалентен \fRтекст\fP

note: type: =item
en: CWE<lt>textE<gt> -- constant width text
ru: CWE<lt>текстE<gt> -- моноширинный

note: type: textblock
en: equivalent to \f(CWtext\fP or ".CW text"
ru: эквивалентен \f(CWтекст\fP или ".CW текст"

note: type: textblock
en: Remark: The CW face is not available for all groff devices. It is not recommended to use it. It is provided for your convenience.
ru: Замечание: Начертание CW доступно не на всех groff устройствах. Такое начертание не рекомендуется использовать. Предоставляется только для вашего удобства.

note: type: =head2
en: Automatic characters transliteration
ru: Автоматическая транслитерация символов

note: type: textblock
en: Po4a automatically transliterate some characters to ease the translation or the review of the translation.  Here is the list of the transliterations:
ru: Po4a автоматически производит транслитерацию некоторых символов для облегчения перевода или последующей проверки оного. Ниже приведён список таких транслитераций:

note: type: =item
en: hyphens
ru: дефисы

note: type: textblock
en: Hyphens (-) and minus signs (\-) in man pages are all transliterated as simple dashes (-) in the PO file.  Then all dash are transliterated into roff minus signs (\-) when the translation is inserted into the output document.
ru: Дефис (-) и знак минуса (\-) в man страницах транслитерируются в простое тире (-) в PO-файле. Затем все тире транслитерируются в знак минуса roff (\-) при формировании выходного документа.

note: type: textblock
en: Translators can force an hyphen by using the roff glyph '\[hy]' in their translations.
ru: Переводчики могут принудительно использовать roff дефис '\[hy]' в своих переводах.

note: type: =item
en: non-breaking spaces
ru: неразрывные пробелы

note: type: textblock
en: Translators can use non-breaking spaces in their translations.  These non-breaking spaces (0xA0 in latin1) will be transliterated into a roff non-breaking space ('\ ').
ru: Переводчики могут использовать неразрывные пробелы. Такие неразрывные пробелы (0xA0 в latin1) будут транслитерированы в неразрывные пробелы roff ('\ ').

note: type: =item
en: quotes transliterations
ru: транслитерация кавычек

note: type: textblock
en: `` and '' are respectively tranliterated into \*(lq and \*(rq.
ru: `` и '' будут соответственно транслитерированы в \*(lq и \*(rq.

note: type: textblock
en: To avoid these transliterations, translators can insert a zero width roff character (i.e., using `\&` or '\&' respectively).
ru: Чтобы избежать подобной транслитерации, переводчики могут вставить roff символ нулевой ширины (т.е., использовать `\&` или '\&' соответственно).

note: type: =head2
en: Putting 'E<lt>' and 'E<gt>' in translations
ru: Вставка 'E<lt>' и 'E<gt>' в перевод

note: type: textblock
en: Since these chars are used to delimit parts under font modification, you can't use them verbatim. Use EE<lt>ltE<gt> and EE<lt>gtE<gt> instead (as in POD, one more time).
ru: Поскольку эти символы используются для разделения частей при изменении шрифта, вы не можете использовать их буквально. Используйте вместо них EE<lt>ltE<gt> и EE<lt>gtE<gt> (так же как в POD).

note: type: textblock
en: Activate debugging for some internal mechanisms of this module.  Use the source to see which parts can be debugged.
ru: Включение отладки некоторых внутренних механизмов данного модуля. Какие части имеют отладочные закладки смотрите в исходном коде.

note: type: textblock
en: Increase verbosity.
ru: Увеличение количества выводимой служебной информации.

note: type: textblock
en: This is the default value.  The module will fail when a .de, .ie or .if section is encountered.
ru: Значение по умолчанию. Модуль будет приводить к останову при встрече с секциями .de, .ie или .if.

note: type: textblock
en: Indicates that the .de, .ie or .if sections must be copied as is from the original to the translated document.
ru: Указывает на то, чтобы секции de, .ie или .if были скопированы как есть из оригинала в переведённый документ.

note: type: textblock
en: Indicates that the .de, .ie or .if sections will be proposed for the translation.  You should only use this option if a translatable string is contained in one of these section. Otherwise, I<verbatim> should be preferred.
ru: Указывает, чтобы секции .de, .ie или .if были предложены для перевода. Данное значение необходимо использовать, если эти секции содержат кукую-либо переводимую строку. В противном случае, следует использовать I<verbatim>.

note: type: textblock
en: This option is only useful for mdoc pages.
ru: Данный параметр может быть полезен только для mdoc страниц.

note: type: textblock
en: It selects a stricter support of the mdoc format by telling po4a not to translate the 'NAME' section.  mdoc pages whose 'NAME' section is translated won't generate any header or footer.
ru: Позволяет использовать более строгий формат mdoc, в частности, указывая po4a не переводить название секции 'NAME'. Для страниц mdoc, с переведённой секцией 'NAME', не будут создаваться собственные верхние и нижние колонтитулы.

note: type: verbatim
en: According to the groff_mdoc page, the NAME, SYNOPSIS and DESCRIPTION
    sections are mandatory.
    There are no known issues with translated SYNOPSIS or DESCRIPTION section,
    but you can also specify these sections this way:
     -o mdoc=NAME,SYNOPSIS,DESCRIPTION
ru: Согласно странице справки groff_mdoc, секции NAME, SYNOPSIS и DESCRIPTION обязательны.
    Однако, какие-либо проблемы при переводе названий секций SYNOPSIS или DESCRIPTION, на данный момент не известны,
    но вы также можете предотвратить перевод имён данных секций следующим образом:
     -o mdoc=NAME,SYNOPSIS,DESCRIPTION

note: type: verbatim
en: This mdoc issue can also be solved with an addendum like this one:
     PO4A-HEADER:mode=before;position=^.Dd
     .TH DOCUMENT_TITLE 1 "Month day, year" OS "Section Name"
ru: Эти проблемы mdoc также можно решить с помощью файла дополнения:
     PO4A-HEADER:mode=before;position=^.Dd
     .TH НАЗВАНИЕ_ДОКУМЕНТА 1 "Месяц, день, год" OS "Имя man-раздела"

note: type: textblock
en: Note: if a macro is not supported by po4a and if you consider that it is a standard roff macro, you should submit it to the po4a development team.
ru: Замечание: если макрос не поддерживается po4a и вы считаете, что это стандартный макрос roff, сообщите, пожалуйста, об этом команде разработчиков po4a.

note: type: textblock
en: B<untranslated> indicates that this macro (at its arguments) don't have to be translated.
ru: B<untranslated> указывает, что данные макросы (указанные в аргументе) не требуют перевода.

note: type: textblock
en: B<noarg> is like B<untranslated>, except that po4a will verify that no argument is added to this macro.
ru: B<noarg> подобен B<untranslated>, с той разницей что po4a будет проверять чтобы аргументы не передавались данному макросу.

note: type: textblock
en: B<translate_joined> indicates that po4a must propose to translate the arguments of the macro.
ru: B<translate_joined> указывает, что po4a должен отметить для перевода аргументы данного макроса.

note: type: textblock
en: With B<translate_each>, the arguments will also be proposed for the translation, except that each one will be translated separately.
ru: С B<translate_each>, аргументы будут также отмечены для перевода, но каждый из них будет переводиться отдельно.

note: type: textblock
en: This option takes as argument a list of comma-separated couples I<begin>:I<end>, where I<begin> and I<end> are commands that delimit the begin and end of a section that should not be rewrapped.
ru: Данный параметр принимает в качестве аргумента разделённый замятыми список пар I<begin>:I<end>, где I<begin> и I<end> являются командами, которые определяют начало и конец секции, которая не должна быть переформатирована (rewrapped).

note: type: textblock
en: This option specifies a list of comma-separated macros that must not split the current paragraph. The string to translate will then contain I<foo E<lt>.bar baz quxE<gt> quux>, where I<bar> is the command that should be inlined, and I<baz qux> its arguments.
ru: Данный параметр определяет разделённый запятыми список макросов, которые не должны разбивать текущий абзац. Переводимая строка будет содержать I<foo E<lt>.bar baz quxE<gt> quux>, где I<bar> — это команда, переданная B<inline>, а I<baz> и I<qux> — её аргументы.

note: type: textblock
en: This option indicates how po4a should behave when an unknown macro is found.  By default, po4a fails with a warning.  It can take the following values: B<failed> (the default value), B<untranslated>, B<noarg>, B<translate_joined>, or B<translate_each> (see above for an explanation of these values).
ru: Этот параметр определяет поведение po4a когда встречается неизвестный макрос.  По умолчанию po4a завершает работу выводя предупреждение.  Он может принимать следующие значения: I<failed> (значение по умолчанию), I<untranslated>, I<noarg>, I<translate_joined>, I<translate_each>. (См. описание этих значений выше).

note: type: =head1
en: AUTHORING MAN PAGES COMPLIANT WITH PO4A::MAN
ru: СОЗДАНИЕ MAN-СТРАНИЦ СОВМЕСТИМЫХ С PO4A::MAN

note: type: textblock
en: This module is still very limited, and will always be, because it's not a real nroff interpreter. It would be possible to do a real nroff interpreter, to allow authors to use all the existing macros, or even to define new ones in their pages, but we didn't want to. It would be too difficult, and we thought it wasn't necessary. We do think that if manpages' authors want to see their productions translated, they may have to adapt to ease the work of translators.
ru: Данный модуль очень ограничен и будет таким всегда, т.к. он не является интерпретатором nroff. Конечно, было бы возможно создать настоящий интерпретатор nroff, чтобы предоставить авторам возможность использовать все существующие макросы или даже объявлять новые, но мы не хотим этим заниматься. Это было бы слишком сложной задачей и, как мы считаем, в этом нет необходимости. Мы считаем, что если авторы man-страниц хотят видеть свои творения переведёнными, то они могут их адаптировать, чтобы облегчить работу переводчикам.

note: type: textblock
en: So, the man parser implemented in po4a have some known limitations we are not really inclined to correct, and which will constitute some pitfalls you'll have to avoid if you want to see translators taking care of your documentation.
ru: Таким образом у парсера, реализованного в po4a, есть несколько известных ограничений, которые мы не собираемся устранять. Эти ограничения содержат некоторые ловушки, которые вам придётся избегать, если вы хотите чтобы переводчики позаботились о вашей документации.

note: type: =head2
en: Don't program in nroff
ru: Не программируйте на nroff

note: type: textblock
en: nroff is a complete programming language, with macro definition, conditionals and so on. Since this parser isn't a fully featured nroff interpreter, it will fail on pages using these facilities (There are about 200 such pages on my box).
ru: nroff это полноценный язык программирования, с возможностью определения макросов, условными операторами и так далее. Так как этот парсер не является полнофункциональным интерпретатором nroff, он не сможет обработать страницы, использующие подобные возможности (у меня есть около 200 таких страниц).

note: type: =head2
en: Use the plain macro set
ru: Используйте простой набор макросов

note: type: textblock
en: There are still some macros which are not supported by po4a::man. This is only because I failed to find any documentation about them. Here is the list of unsupported macros used on my box. Note that this list isn't exhaustive since the program fails on the first encountered unsupported macro. If you have any information about some of these macros, I'll happily add support for them. Because of these macros, about 250 pages on my box are inaccessible to po4a::man.
ru: Есть ещё несколько макросов, которые не поддерживаются po4a::man только потому, что я не смог отыскать документацию по ним. Ниже приведён список таковых макросов используемых на моём компьютере. Обратите внимание, что этот список не является полным, т.к. программа завершает работу при первой встрече с неподдерживаемым макросом. Если у вас есть информация о каком либо из них, я с удовольствием добавлю поддержку оного. Из-за таких макросов po4a::man не может обработать корректно порядка 250 страниц на моём компьютере.

note: type: =head2
en: Hiding text from po4a
ru: Скрытие текста от po4a

note: type: textblock
en: Sometimes, the author knows that some parts are not translatable, and should not be extracted by po4a. For example, an option may accept an I<other> argument, and I<other> may also appear as the last item of a list. In the first case, I<other> should be not be translatable. And in the second case, I<other> should be translated.
ru: Иногда автор знает, что некоторые части не подлежат переводу и не должны извлекаться программой po4a. Например, параметр может принимать аргумент I<other>, и I<other> может также обозначать последний аргумент списка. В первом случае, I<other> не должно быть переведено. А во втором случае — должно.

note: type: textblock
en: In such case, the author can avoid po4a to extract some strings, using some special groff constructs:
ru: В этом случае, автор может заставить po4a воздержаться от извлечения некоторых строк, с помощью определённых groff конструкций:

note: type: textblock
en: (this will require the B<-o groff_code=verbatim> option)
ru: (это потребует параметра B<-o groff_code=verbatim>)

note: type: verbatim
en: A new macro can also be defined to automate this:
     .de IR_untranslated
     .    IR \\$@
     ..
ru: Можно также определить новый макрос, чтобы автоматизировать этот процесс:
     .de IR_untranslated
     .    IR \\$@
     ..

note: type: textblock
en: (this will require the options B<-o groff_code=verbatim> and B<-o untranslated=IR_untranslated>; with this construct, the B<.if !'po4a'hide'> conditional is not strictly needed since po4a will not parse the internal of the macro definition)
ru: (это потребует параметров B<-o groff_code=verbatim> и B<-o untranslated=IR_untranslated>; с этой конструкцией условный оператор B<.if !'po4a'hide'>, строго говоря, не обязателен т.к. po4a не будет пытаться разобрать внутреннюю часть макроопределения)

note: type: verbatim
en: or using an alias:
     .als IR_untranslated IR
ru: или использовать псевдоним:
     .als IR_untranslated IR

note: type: textblock
en: This will require the B<-o untranslated=als,IR_untranslated> option.
ru: Это потребует параметра B<-o untranslated=als,IR_untranslated>.

note: type: =head2
en: Conclusion
ru: Заключение

note: type: textblock
en: To summarise this section, keep simple, and don't try to be clever while authoring your man pages. A lot of things are possible in nroff, and not supported by this parser. For example, don't try to mess with \c to interrupt the text processing (like 40 pages on my box do). Or, be sure to put the macro arguments on the same line that the macro itself. I know that it's valid in nroff, but would complicate too much the parser to be handled.
ru: Подводя итоги выше сказанному, делайте всё просто и не пытайтесь умничать, когда готовите свои man-страницы. В nroff есть много возможностей, и многие из них не поддерживаются этим парсером. Например, не пытайтесь связываться с \c, чтобы остановить исполнение (как делают 40 страниц на моей машине). И убедитесь, что оставляете аргументы макроса на той же строке, что и он сам. Я знаю, что обратное допустимо в nroff, но это сильно осложнит работу парсера.

note: type: textblock
en: Of course, another possibility is to use another format, more translator friendly (like POD using po4a::pod, or one of the XML family like SGML), but thanks to po4a::man it isn't needed anymore. That being said, if the source format of your documentation is POD, or XML, it may be clever to translate the source format and not this generated one. In most cases, po4a::man will detect generated pages and issue a warning. It will even refuse to process POD generated pages, because those pages are perfectly handled by po4a::pod, and because their nroff counterpart defines a lot of new macros I didn't want to write support for. On my box, 1432 of the 4323 pages are generated from POD and will be ignored by po4a::man.
ru: Конечно, другая возможность — это использовать другой формат, более дружелюбный к переводчикам (например POD с po4a::pod или один из XML-семейства, например SGML), но благодаря po4a::man в этом больше нет необходимости. Как говорится, если исходный формат вашей документации POD или XML, то будет мудро переводить исходный формат, а не то что из него сгенерировано. В большинстве случаев, po4a::man определяет сгенерированные страницы и выводит предупреждение. Он даже откажется обрабатывать сгенерированные из POD страницы, потому что такие страницы идеально обрабатываются с помощью po4a::pod и потому что nroff в них определяет уйму новых макросов, для которых у меня нет ни какого желания писать поддержку. На моей машине, 1432 из 4323 страниц сгенерированы из POD и будут проигнорированы po4a::man.

note: type: textblock
en: In most cases, po4a::man will detect the problem and refuse to process the page, issuing an adapted message. In some rare cases, the program will complete without warning, but the output will be wrong. Such cases are called "bugs" ;) If you encounter such case, be sure to report this, along with a fix when possible…
ru: В большинстве случаев po4a::man будет находить проблему и прекратит обработку страницы, выводя удовлетворительное сообщение. В некоторых редких случаях программа завершится без предупреждений, но вывод будет ошибочным. Такие случаи называются «Багами» ;) Если вы столкнётесь с подобными ситуациями, обязательно сообщайте о них, по возможности с исправлениями…

note: type: textblock
en: This module can be used for most of the existing man pages.
ru: Этот модуль можно использовать с большинством существующих man страниц.

note: type: textblock
en: Some tests are regularly run on Linux boxes:
ru: Некоторые проверки регулярно проводятся на машинах с Linux:

note: type: textblock
en: one third of the pages are refused because they were generated from another format supported by po4a (e.g. POD or SGML).
ru: треть всех страниц отвергаются, потому что они были сгенерированы из других форматов поддерживаемых po4a (например, POD или SGML).

note: type: textblock
en: 10% of the remaining pages are rejected with an error (e.g. a groff macro is not supported).
ru: 10% оставшихся страниц отвергаются с какой-либо ошибкой (например из-за того, что макросы groff не поддерживаются).

note: type: textblock
en: Then, less than 1% of the pages are accepted silently by po4a, but with significant issues (i.e. missing words, or new words inserted)
ru: Затем, менее 1% страниц проходят все проверки po4a без сообщений об ошибках, но в результате имеют значительные проблемы (например, пропущенные или лишние слова)

note: type: textblock
en: The other pages are usually handled without differences more important than spacing differences or line rewrapped (font issues in less than 10% of the processed pages).
ru: Все остальные страницы обычно обрабатываются без каких-либо проблем более значительных, нежели изменения пробелов или переносов строк (проблемы со шрифтами в менее, чем 10% обработанных страниц).

note: type: textblock
en: Locale::Po4a::Po - PO file manipulation module
ru: Locale::Po4a::Po: модуль манипуляции PO-файлами

note: type: verbatim
en:     # Read PO file
        $pofile->read('file.po');
ru:     # Прочитать PO-файл
        $pofile->read('file.po');

note: type: verbatim
en:     # Add an entry
        $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',
                      'flags' => "wrap", 'reference'=>'file.c:46');
ru:     # Добавить запись
        $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',
                      'flags' => "wrap", 'reference'=>'file.c:46');

note: type: verbatim
en:     # Extract a translation
        $pofile->gettext("Hello"); # returns 'bonjour'
ru:     # Извлечь перевод
        $pofile->gettext("Hello"); # returns 'bonjour'

note: type: verbatim
en:     # Write back to a file
        $pofile->write('otherfile.po');
ru:     # Записать обратно в файл
        $pofile->write('otherfile.po');

note: type: textblock
en: the column at which we should wrap (default: 76).
ru: количество символов в строке, после которых должен выполняться автоматический перенос текста (по умолчанию: 76).

note: type: textblock
en: the string in original language.
ru: строка в исходном языке.

note: type: textblock
en: the translation.
ru: перевод.

note: type: textblock
en: an indication of where this string was found. Example: file.c:46 (meaning in 'file.c' at line 46). It can be a space-separated list in case of multiple occurrences.
ru: указание, где была найдена эта строка. Например: file.c:46 (строка 46 из файла «file.c»). Может быть разделённым пробелами списком в случае нескольких включений.

note: type: textblock
en: a comment added here manually (by the translators). The format here is free.
ru: добавленный вручную комментарий (переводчиком). Формат может быть произвольным.

note: type: textblock
en: a comment which was automatically added by the string extraction program. See the B<--add-comments> option of the B<xgettext> program for more information.
ru: комментарий, добавленный программой извлечения строк. См. параметр B<--add-comments> для программы B<xgettext> для более детальной информации.

note: type: textblock
en: space-separated list of all defined flags for this entry.
ru: разделённый пробелами список определённых для данной записи флагов.

note: type: textblock
en: Valid flags are: B<c-text>, B<python-text>, B<lisp-text>, B<elisp-text>, B<librep-text>, B<smalltalk-text>, B<java-text>, B<awk-text>, B<object-pascal-text>, B<ycp-text>, B<tcl-text>, B<wrap>, B<no-wrap> and B<fuzzy>.
ru: Могут встречаться следующие флаги: B<c-text>, B<python-text>, B<lisp-text>, B<elisp-text>, B<librep-text>, B<smalltalk-text>, B<java-text>, B<awk-text>, B<object-pascal-text>, B<ycp-text>, B<tcl-text>, B<wrap>, B<no-wrap> и B<fuzzy>.

note: type: textblock
en: See the gettext documentation for their meaning.
ru: См. документацию gettext для описания их значений.

note: type: textblock
en: Locale::Po4a::Pod - convert POD data from/to PO files
ru: Locale::Po4a::Pod: преобразование POD-данных из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Sgml - convert SGML documents from/to PO files
ru: Locale::Po4a::SGML: преобразование документов SGML из/в PO-файлы

note: type: =head1
en: TRANSLATING WITH PO4A::TEX
ru: ПЕРЕВОД С ПОМОЩЬЮ PO4A::TEX

note: type: =item
en: B<% po4a: command> I<command1> B<alias> I<command2>
ru: B<% po4a: command> I<команда1> B<псевдоним> I<команда2>

note: type: =head1
en: INTERNAL FUNCTIONS used to write derivative parsers
ru: ВНУТРЕННИЕ ФУНКЦИИ, используемые при создании производных парсеров

note: type: =head1
en: TODO LIST
ru: Список TODO

note: type: textblock
en: Locale::Po4a::Texinfo - convert Texinfo documents and derivates from/to PO files
ru: Locale::Po4a::Texinfo: преобразование документов Texinfo и производных форматов из/в PO-файлы

note: type: textblock
en: Locale::Po4a::Texinfo is a module to help the translation of Texinfo documents into other [human] languages.
ru: Locale::Po4a::Texinfo — это модуль, предназначенным для помощи в переводе документов Texinfo на другие [человеческие] языки.

note: type: textblock
en: This module contains the definitions of common Texinfo commands and environments.
ru: Этот модуль содержит объявления общих команд и элементов среды Texinfo.

note: type: textblock
en: Copyright © 2004-2007 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.
ru: Copyright © 2004-2007 Николя Франсуа (Nicolas FRANÇOIS) <nicolas.francois@centraliens.net>.

note: type: textblock
en: Locale::Po4a::Text - convert text documents from/to PO files
ru: Locale::Po4a::Text: преобразование обычных текстовых документов из/в PO-файлы

note: type: textblock
en: a document to translate;
ru: документ для перевода;

note: type: textblock
en: a PO file containing the translations to use.
ru: PO-файл, содержащий перевод.

note: type: verbatim
en:    Input document --\                             /---> Output document
                         \                           /       (translated)
                          +-> parse() function -----+
                         /                           \
       Input PO --------/                             \---> Output PO
                                                             (extracted)
ru:    Входной документ --\                             /---> Выходной документ
                          \                           /       (переведённый)
                           +-> функция parse() ------+
                          /                           \
      Входной PO --------/                             \---> Выходной PO
                                                              (извлечённый)

note: type: verbatim
en:  Denis Barbier <barbier@linuxfr.org>
     Martin Quinson (mquinson#debian.org)
     Jordi Vilalta <jvprat@gmail.com>
ru:  Денис Барбье (Denis Barbier) <barbier@linuxfr.org>
     Мартин Кенсон (Martin Quinson) (mquinson#debian.org)
     Жорди Вилальта (Jordi Vilalta) <jvprat@gmail.com>

note: type: textblock
en: Locale::Po4a::Wml - convert WML (web markup language) documents from/to PO files
ru: Locale::Po4a::Wml: преобразование документов Wml (web markup language, язык разметки web) в/из PO-файлы

note: type: textblock
en: Locale::Po4a::Wml is a module to help the translation of WML documents into other [human] languages. Do not mixup the WML we are speaking about here (web markup language) and the WAP crap used on cell phones.
ru: Locale::Po4a::Wml — это модуль, предназначенный для помощи в переводе документации в формате WML на другие [человеческие] языки. Не путайте WML (web markup language), о котором здесь говорится с WAP-хламом, который используется на мобильных телефонах.

note: type: textblock
en: Please note that this module relies upon the Locale::Po4a::Xhtml module, which also relies upon the Locale::Po4a::Xml module.  This means that all tags for web page expressions are assumed to be written in the XHTML syntax.
ru: Пожалуйста замете, что этот модуль полагается на Locale::Po4a::Xhtml, который в свою очередь полагается на Locale::Po4a::Xml. Это значит, что все теги для отображения веб-страницы должны быть записаны согласно синтаксису XHTML.

note: type: textblock
en: This module works for some simple documents, but is still young.  Currently, the biggest issue of the module is probably that it cannot handle documents that contain non-XML inline tags such as <email "foo@example.org">, which are often defined in the WML.  Improvements will be added in the future releases.
ru: Этот модуль работает для некоторых простых документов, однако он всё ещё сырой. На данный момент самая большая проблема модуля в том, что он не может работать с документами содержащими встроенные теги не соответствующие XML, как например <email "foo@example.org">, которые часто встречаются в WML. Улучшения ожидаются в будущих версиях.

note: type: verbatim
en:  Martin Quinson (mquinson#debian.org)
     Noriada Kobayashi <nori1@dolphin.c.u-tokyo.ac.jp>
ru:  Мартин Кенсон (Martin Quinson) (mquinson#debian.org)
     Норитада Кобаяси (Noriada Kobayashi) <nori1@dolphin.c.u-tokyo.ac.jp>

note: type: textblock
en: Locale::Po4a::Xhtml - convert XHTML documents from/to PO files
ru: Locale::Po4a::Xhtml: преобразование документов XHTML в/из PO-файлы

note: type: textblock
en: Locale::Po4a::Xhtml is a module to help the translation of XHTML documents into other [human] languages.
ru: Locale::Po4a::Xhtml — это модуль, предназначенный для помощи в переводе документации в формате XHTML на другие [человеческие] языки.

note: type: =item
en: B<includessi>[B<=>I<rootpath>]
ru: B<includessi>[B<=>I<базовый_путь>]

note: type: textblock
en: Include files specified by an include SSI (Server Side Includes) element (e.g. <!--#include virtual="/foo/bar.html" -->).
ru: Включать файлы указанные в качестве SSI (Server Side Includes, Включения на Стороне Сервера) элемента (например <!--#include virtual="/foo/bar.html" -->).

note: type: textblock
en: B<Note:> You should use it only for static files.
ru: B<Замечание:> используйте это только для статических файлов.

note: type: textblock
en: An additional I<rootpath> parameter can be specified. It specifies the root path to find files included by a B<virtual> attribute.
ru: Может быть указан дополнительный аргумент I<базовый_путь>, который задаёт путь, относительно которого будут искаться файлы указанные атрибутом B<virtual>.

note: type: verbatim
en:  Yves Rütschlé <po4a@rutschle.net>
     Nicolas François <nicolas.francois@centraliens.net>
ru:  Ив Рючле (Yves Rütschlé) <po4a@rutschle.net>
     Николя Франсуа (Nicolas François) <nicolas.francois@centraliens.net>

note: type: verbatim
en:  Copyright © 2004 Yves Rütschlé <po4a@rutschle.net>
     Copyright © 2007-2008 Nicolas François <nicolas.francois@centraliens.net>
ru:  Copyright © 2004 Ив Рючле (Yves Rütschlé) <po4a@rutschle.net>
     Copyright © 2007-2008 Николя Франсуа (Nicolas François) <nicolas.francois@centraliens.net>

note: type: textblock
en: Locale::Po4a::Xml - convert XML documents and derivates from/to PO files
ru: Locale::Po4a::Xml: преобразование документов XML и производных форматов в/из PO-файлы

note: type: textblock
en: Locale::Po4a::Xml is a module to help the translation of XML documents into other [human] languages. It can also be used as a base to build modules for XML-based documents.
ru: Locale::Po4a::Xml — это модуль, предназначенный для помощи в переводе документации в формате XML на другие [человеческие] языки. Его также можно использовать в качестве базы для создания других модулей для документов других форматов, основанных на XML.

note: type: =head1
en: TRANSLATING WITH PO4A::XML
ru: ПЕРЕВОД С ПОМОЩЬЮ PO4A::XML

note: type: textblock
en: This module can be used directly to handle generic XML documents.  This will extract all tag's content, and no attributes, since it's where the text is written in most XML based documents.
ru: Этот модуль может непосредственно обрабатывать документы XML общего вида. Он будет извлекать содержимое всех тегов, но не атрибутов т.к. именно в них содержится текст в большинстве документов основанных на XML.

note: type: textblock
en: There are some options (described in the next section) that can customize this behavior.  If this doesn't fit to your document format you're encouraged to write your own module derived from this, to describe your format's details.  See the section B<WRITING DERIVATE MODULES> below, for the process description.
ru: Есть нескоько параметров (описанных в следующей секции), которые могут изменить поведение. Если для вашего формата документации этого недостаточно, то мы рекомендуем вам написать свой собственный модуль производный от данного, дабы лучше описать детали своего формата. Как это сделать, см. в секции B<НАПИСАНИЕ ПРОИЗВОДНЫХ МОДУЛЕЙ> ниже.

note: type: textblock
en: The global debug option causes this module to show the excluded strings, in order to see if it skips something important.
ru: Глобальный параметр `debug` делает так, что данный модуль будет показывать отброшенные строки, чтобы дать возможность пользователю посмотреть, не пропустил ли он что-то важное.

note: type: textblock
en: Prevents it to strip the spaces around the extracted strings.
ru: Не обрезать начальные и конечные пробелы в извлекаемых строках.

note: type: textblock
en: Canonicalizes the string to translate, considering that whitespaces are not important, and wraps the translated document. This option can be overridden by custom tag options. See the B<translated> option below.
ru: Приводить переводимые строки к каноническому виду (учитывая, что пробелы не важны) и расставляет переносы строк в документе. Действие этого параметра можно отменить специфическими параметрами для тегов. Смотрите описание параметра B<translated> ниже.

note: type: textblock
en: Attributes are wrapped by default. This option disables wrapping.
ru: По умолчанию в атрибуты могут добавляться переносы строк. Этот параметр отключает оное поведение.

note: type: textblock
en: It makes the tags and attributes searching to work in a case insensitive way.  If it's defined, it will treat E<lt>BooKE<gt>laNG and E<lt>BOOKE<gt>Lang as E<lt>bookE<gt>lang.
ru: Этот параметр делает поиск тегов и атрибутов нечувствительным к регистру. Если он задан, то и «E<lt>BooKE<gt>laNG», и «E<lt>BOOKE<gt>Lang» будут сопоставлены «E<lt>bookE<gt>lang».

note: type: textblock
en: Escape quotes in output strings.  Necessary, for example, for creating string resources for use by Android build tools.
ru: Экранировать кавычки в выходных строках. Необходимо, например, для создания строковых ресурсов, используемых инструментами сборки для Android.

note: type: textblock
en: See also: https://developer.android.com/guide/topics/resources/string-resource.html
ru: Смотрите также: https://developer.android.com/guide/topics/resources/string-resource.html

note: type: textblock
en: When defined, external entities are included in the generated (translated)  document, and for the extraction of strings.  If it's not defined, you will have to translate external entities separately as independent documents.
ru: Когда этот параметр задан, из внешних сущностей (entities) будут извлечены строки для перевода, и они, сущности, будут включены в сгенерированный (переведённый) документ. В противном случае, вам придётся переводить внешние сущности отдельно как независимые документы.

note: type: textblock
en: This option defines the behavior of the module when it encounters invalid XML syntax (a closing tag which does not match the last opening tag).  It can take the following values:
ru: Данный параметр определяет поведение модуля, когда он встречается с недопустимым XML синтаксисом (Например, закрывающий тег, не соответствующий последнему открывающему тегу). Он может принимать следующие значения:

note: type: textblock
en: This is the default value.  The module will exit with an error.
ru: Это значение по умолчанию. Модуль будет завершать работу с ошибкой.

note: type: textblock
en: The module will continue, and will issue a warning.
ru: Модуль выдаст предупреждение и продолжит работу.

note: type: textblock
en: The module will continue without any warnings.
ru: Модуль продолжит работу без каких-либо предупреждений.

note: type: textblock
en: Be careful when using this option.  It is generally recommended to fix the input file.
ru: Используйте данный параметр с осторожностью. Вообще говоря, рекомендуется исправить исходный файл.

note: type: textblock
en: Note: This option is deprecated.
ru: Замечание: Использование этого параметра нежелательно (deprecated).

note: type: textblock
en: String that will try to match with the first line of the document's doctype (if defined). If it doesn't, a warning will indicate that the document might be of a bad type.
ru: Строка, которая будет сопоставляться с первой строкой doctype документа (если задан). Если они не совпадают, то будет выведено предупреждение, что документ может быть неправильного типа.

note: type: textblock
en: String indicating the path (e.g. E<lt>bbbE<gt>E<lt>aaaE<gt>) of a tag where a lang="..." attribute shall be added. The language will be defined as the basename of the PO file without any .po extension.
ru: Строка, задающая путь (например, E<lt>bbbE<gt>E<lt>aaaE<gt>) к тегу, в который следует добавить атрибут lang="E<lt>языкE<gt>", где E<lt>языкE<gt> — это имя PO-файла без расширения «.po».

note: type: textblock
en: Note: This option is deprecated.  You should use the B<translated> and B<untranslated> options instead.
ru: Замечание: Использование этого параметра нежелательно (deprecated). Вместо него вам следует использовать параметры B<translated> и B<untranslated>.

note: type: textblock
en: Space-separated list of tags you want to translate or skip.  By default, the specified tags will be excluded, but if you use the "tagsonly" option, the specified tags will be the only ones included.  The tags must be in the form E<lt>aaaE<gt>, but you can join some (E<lt>bbbE<gt>E<lt>aaaE<gt>) to say that the content of the tag E<lt>aaaE<gt> will only be translated when it's into a E<lt>bbbE<gt> tag.
ru: Список тегов, разделённых пробелами, которые вы хотите переводить или, наоборот, исключить из перевода. По умолчанию указанные теги будут исключены, но если вы укажите также параметр «tagsonly», то будут включены только указанные теги. Теги должны быть заданы в формате E<lt>aaaE<gt>. Вы также можете объединить несколько тегов подряд (E<lt>bbbE<gt>E<lt>aaaE<gt>), чтобы указать, что содержимое тега E<lt>aaaE<gt> будет переводимым только если он находится внутри тега E<lt>bbbE<gt>.

note: type: textblock
en: Example: WE<lt>chapterE<gt>E<lt>titleE<gt>
ru: Пример: WE<lt>chapterE<gt>E<lt>titleE<gt>

note: type: textblock
en: Space-separated list of tag's attributes you want to translate.  You can specify the attributes by their name (for example, "lang"), but you can prefix it with a tag hierarchy, to specify that this attribute will only be translated when it's in the specified tag. For example: E<lt>bbbE<gt>E<lt>aaaE<gt>lang specifies that the lang attribute will only be translated if it's in an E<lt>aaaE<gt> tag, and it's in a E<lt>bbbE<gt> tag.
ru: Список атрибутов тегов, разделённых пробелами, которые вы хотите переводить. Вы можете задавать атрибуты просто по их имени (например, «lang»), но вы также можете предварять их иерархией тегов, чтобы указать, что они должны быть переводимыми только когда они относятся к конкретным тегам. Например: E<lt>bbbE<gt>E<lt>aaaE<gt>lang указывает, что «lang» будет переводиться только если он находится внутри тега E<lt>aaaE<gt>, который в свою очередь находится внутри тега E<lt>bbbE<gt>.

note: type: textblock
en: Do not translate attributes in inline tags.  Instead, replace all attributes of a tag by po4a-id=<id>.
ru: Не переводить атрибуты во встроенных (inline) тегах. Вместо этого заменять все атрибуты тегов на po4a-id=<id>.

note: type: textblock
en: This is useful when attributes shall not be translated, as this simplifies the strings for translators, and avoids typos.
ru: Это полезно, когда атрибуты не должны переводиться, так как это упрощает строки, что проще для переводчиков, и позволяет избегать опечаток.

note: type: textblock
en: Space-separated list of tags which should not be treated as tags.  These tags are treated as inline, and do not need to be closed.
ru: Список тегов, разделённых пробелами, которые не должны обрабатываться как теги. Эти теги обрабатываются как встроенные (inline), и не требуют того, чтобы они обязательно были закрытыми.

note: type: textblock
en: Space-separated list of tags which should break the sequence.  By default, all tags break the sequence.
ru: Список тегов, разделённых пробелами, которые должны обрывать переводимые строку. По умолчанию все теги являются таковыми.

note: type: textblock
en: The tags must be in the form <aaa>, but you can join some (<bbb><aaa>), if a tag (<aaa>) should only be considered when it's within another tag (<bbb>).
ru: Теги должны быть заданы в виде <aaa>, но их также можно объединять (<bbb><aaa>) в случае, если тег <aaa> должен учитываться только если он находится внутри тега <bbb>.

note: type: textblock
en: Please note a tag should be listed in only one of the B<break>, B<inline> B<placeholder>, or B<customtag> setting string.
ru: Учтите, что любой конкретный тег может быть задан только в одном из списков: B<break>, B<inline>, B<placeholder> или B<customtag>.

note: type: textblock
en: Space-separated list of tags which should be treated as inline.  By default, all tags break the sequence.
ru: Список тегов, разделённых пробелами, которые должны обрабатываться как встроенные (inline). По умолчанию все теги обрывают переводимую строку (не являются встроенными).

note: type: textblock
en: Space-separated list of tags which should be treated as placeholders.  Placeholders do not break the sequence, but the content of placeholders is translated separately.
ru: Список тегов, разделённых пробелами, которые должны обрабатываться как местозаполнители (placeholder). Метки-заполнители не обрывают переводимую строку, но их содержимое переводится отдельно.

note: type: textblock
en: The location of the placeholder in its block will be marked with a string similar to:
ru: Местоположение местозаполнителей в их блоке будет помечены строкой на подобии следующей:

note: type: textblock
en: Space separated list of tags that the module should not try to set by default in any category.
ru: Список тегов, разделённых пробелами, которые по умолчанию не будут отнесены к какой-либо категории данным модулем.

note: type: textblock
en: If you have a tag which has its default setting by the subclass of this module but you want to set alternative setting, you need to list that tag as a part of the B<nodefault> setting string.
ru: Если в вашем документе есть теги, у которых есть какие-либо настройки по умолчанию, установленные модулями созданными на основе данного, то это поведение можно изменить, указав их в B<nodefault>.

note: type: textblock
en: Support C preprocessor directives.  When this option is set, po4a will consider preprocessor directives as paragraph separators.  This is important if the XML file must be preprocessed because otherwise the directives may be inserted in the middle of lines if po4a consider it belong to the current paragraph, and they won't be recognized by the preprocessor.  Note: the preprocessor directives must only appear between tags (they must not break a tag).
ru: Поддержка директив препроцессора Си. Когда этот параметр установлен, po4a будет считать директивы препроцессора разделителями абзацев. Это важно, когда XML-файл должен быть обработан препроцессором, ибо в противном случае директивы могут быть вставлены в середину переводимых строк, если po4a решит, что они принадлежат текущему параграфу, так что они могут быть не распознаны при последующей обработке. Замечание: директивы должны располагаться между тегами (они не могут разбивать тег).

note: type: textblock
en: Space-separated list of tags you want to translate.
ru: Список тегов, разделённых пробелами, которые должны быть переведены.

note: type: textblock
en: You can also specify some tag options by putting some characters in front of the tag hierarchy.  This overrides the default behavior specified by the global B<wrap> and B<defaulttranslateoption> option.
ru: Вы также можете задавать некоторые специальные опции для тегов, добавив символ перед данным иерархическим списком. Это переопределяет поведение, заданное глобальными параметрами B<wrap> и B<defaulttranslateoption>.

note: type: textblock
en: Tags should be translated and content can be re-wrapped.
ru: Теги будут переводиться и переносы строк будут расставляться автоматически.

note: type: textblock
en: Tags should be translated and content should not be re-wrapped.
ru: Теги будут переводиться и переносы строк не будут изменяться.

note: type: textblock
en: Tags should be translated inline.
ru: Теги будут переводиться как встроенные (inline).

note: type: textblock
en: Tags should be translated as placeholders.
ru: Теги будут переводиться как местозаполнители (placeholders).

note: type: textblock
en: Internally, the XML parser only cares about these four options: I<w> I<W> I<i> I<p>.
ru: Внутри себя парсер XML использует только эти четыре опции: I<w> I<W> I<i> I<p>.

note: type: textblock
en: You can verify actual internal parameter behavior by invoking B<po4a> with B<--debug> option.
ru: Вы можете просмотреть, какие именно используются внутренние параметры поведения, запустив B<po4a> с параметром B<--debug>.

note: type: textblock
en: Please note a tag should be listed in either B<translated> or B<untranslated> setting string.
ru: Учтите, что тег может присутствовать только в одном из списков: или в B<translated>, или в B<untranslated>.

note: type: textblock
en: Space-separated list of tags you do not want to translate.
ru: Список тегов, разделённых пробелами, которые не должны быть переведены.

note: type: textblock
en: The default categories for tags that are not in any of the translated, untranslated, break, inline, or placeholder.
ru: Категория по умолчанию для тегов, которые не относятся ни к одной другой категории: переводимых, непереводимых, разделяющих, встроенных или местозаполнителей.

note: type: textblock
en: This is a set of letters as defined in B<translated> and this setting is only valid for translatable tags.
ru: Это набор символов, определённых в B<translated>, и эти настройки действительны только для переводимых тегов.

note: type: =head1
en: WRITING DERIVATIVE MODULES
ru: СОЗДАНИЕ ПРОИЗВОДНЫХ МОДУЛЕЙ

note: type: =head2
en: DEFINE WHAT TAGS AND ATTRIBUTES TO TRANSLATE
ru: ОПРЕДЕЛЕНИЕ, КАКИЕ ТЕГИ И АТТРИБУТЫ НУЖНО ПЕРЕВОДИТЬ

note: type: textblock
en: The simplest customization is to define which tags and attributes you want the parser to translate.  This should be done in the initialize function.  First you should call the main initialize, to get the command-line options, and then, append your custom definitions to the options hash.  If you want to treat some new options from command line, you should define them before calling the main initialize:
ru: Самое простое, что вы можете изменить — это задать парсеру, какие теги и атрибуты вы хотите переводить. Это должно быть сделано в функции инициализации. Во-первых, вы должны вызвать основную функцию инициализации, чтобы получить параметры командной строки, а затем добавить свои специализированные определения в хеш параметров. Если вы хотите обрабатывать свои параметры командной строки, то необходимо определить их до вызова основной функции инициализации:

note: type: textblock
en: You should use the B<_default_inline>, B<_default_break>, B<_default_placeholder>, B<_default_translated>, B<_default_untranslated>, and B<_default_attributes> options in derivative modules. This allow users to override the default behavior defined in your module with command line options.
ru: В производных модулях вам стоит использовать параметры B<_default_inline>, B<_default_break>, B<_default_placeholder>, B<_default_translated>, B<_default_untranslated>, и B<_default_attributes>. Это позволит пользователю переопределить поведение по умолчанию, заданное вашем модулем из командной строки.

note: type: textblock
en: If you don't like the default behavior of this xml module and its derivative modules, you can provide command line options to change their behavior.
ru: Если вас не устраивает поведение xml-модуля или его производных по умолчанию, то вы можете задать параметры командной строки, которые его изменят.

note: type: textblock
en: See L<Locale::Po4a::Docbook(3pm)|Locale::Po4a::Docbook>,
ru: См. L<Locale::Po4a::Docbook(3pm)|Locale::Po4a::Docbook>,

note: type: =head2
en: OVERRIDING THE found_string FUNCTION
ru: ПЕРЕОПРЕДЕЛЕНИЕ ФУНКЦИИ found_string

note: type: textblock
en: Another simple step is to override the function "found_string", which receives the extracted strings from the parser, in order to translate them.  There you can control which strings you want to translate, and perform transformations to them before or after the translation itself.
ru: Другой простой шаг, который вы можете предпринять — это переопределить функцию «found_string», которая получает от парсера извлечённые строки, которые нужно перевести. Здесь вы можете контролировать, какие строки вы хотите переводить и преобразовать их произвольным образом до или после перевода.

note: type: textblock
en: It receives the extracted text, the reference on where it was, and a hash that contains extra information to control what strings to translate, how to translate them and to generate the comment.
ru: Она принимает извлечённый текст, местоположение, откуда он был извлечён и хеш с дополнительной информацией, которая позволит контролировать, какие строки следует переводить, как их переводить и какой комментарий следует добавить для переводчика.

note: type: textblock
en: The content of these options depends on the kind of string it is (specified in an entry of this hash):
ru: Содержимое этих параметров зависит от того, что именно это за строка (указано в вышеупомянутом хеше):

note: type: textblock
en: The found string is the content of a translatable tag. The entry "tag_options" contains the option characters in front of the tag hierarchy in the module "tags" option.
ru: Найденная строка является содержимым переводимого тега. По ключу «tag_options» в хеше будет указан символ опции, заданный перед иерархией тегов в параметре «tags».

note: type: textblock
en: Means that the found string is the value of a translatable attribute. The entry "attribute" has the name of the attribute.
ru: Найденная строка является значением переводимого атрибута. Имя атрибута будет доступно в хеше по ключу «attribute».

note: type: textblock
en: It must return the text that will replace the original in the translated document. Here's a basic example of this function:
ru: Она должна возвращать текст перевода, который заменит исходную строку (значение функции «translate()» из Locale::Po4a::TransTractor, прим. переводчика). Базовый пример подобной функции:

note: type: textblock
en: There's another simple example in the new Dia module, which only filters some strings.
ru: Другой простой пример можно посмотреть в модуле перевода диаграмм Dia, который только фильтрует некоторые строки.

note: type: =head2
en: MODIFYING TAG TYPES (TODO)
ru: ИЗМЕНЕНИЕ ТИПОВ ТЕГОВ (TODO)

note: type: textblock
en: This is a more complex one, but it enables a (almost) total customization.  It's based on a list of hashes, each one defining a tag type's behavior. The list should be sorted so that the most general tags are after the most concrete ones (sorted first by the beginning and then by the end keys). To define a tag type you'll have to make a hash with the following keys:
ru: Хотя этот подход и сложнее, зато он позволяет обрабатывать документ (практически) как угодно. В основе оного лежит список хешей каждый из которых определяет поведение «типа тега». Список должен быть отсортирован так, чтобы самые общие теги следовали после самых конкретных (сначала отсортированы по началу ключей (B<begining>), а затем по завершению (B<end>)). Для того чтобы определить тип тега, нужно создать хеш со следующими ключами:

note: type: textblock
en: Specifies the beginning of the tag, after the "E<lt>".
ru: Задаёт начало тега, то что следует после символа «E<lt>».

note: type: textblock
en: Specifies the end of the tag, before the "E<gt>".
ru: Задаёт окончание тега, то что следует перед символом «E<gt>».

note: type: textblock
en: It says if this is a breaking tag class.  A non-breaking (inline) tag is one that can be taken as part of the content of another tag.  It can take the values false (0), true (1) or undefined.  If you leave this undefined, you'll have to define the f_breaking function that will say whether a concrete tag of this class is a breaking tag or not.
ru: Задаёт, является ли данный класс тегов прерывающим. Не прерывающие (встроенные, inline) теги — это теги, которые могут являться частью или содержимым других тегов. Значениями данного ключа могут быть false (0), true (1) или он может быть не определён (undefined). В последнем случае вы должны будете определить функцию f_breaking, которая будет выдавать, является ли конкретный тег прерывающим или нет.

note: type: textblock
en: It's a function that will tell if the next tag is a breaking one or not.  It should be defined if the B<breaking> option is not.
ru: Это функция, которая должна возвращать, является ли следующие тег прерывающим или нет. Она должна быть определена, когда B<breaking> не определено..

note: type: textblock
en: If you leave this key undefined, the generic extraction function will have to extract the tag itself.  It's useful for tags that can have other tags or special structures in them, so that the main parser doesn't get mad.  This function receives a boolean that says if the tag should be removed from the input stream or not.
ru: Если вы не определите этот ключ, то для экстракции самого тега будет использована базовая функция. Это полезно для тегов, которые могут иметь внутри себя другие теги или специальные структуры так, чтобы основной парсер на это не ругался. Эта функция принимает логическое значение, которое говорит, должен ли тег быть удалён из входного потока или нет.

note: type: textblock
en: This function receives the tag (in the get_string_until() format) and returns the translated tag (translated attributes or all needed transformations) as a single string.
ru: Эта функция принимает текущий тег (в формате get_string_until()) и возвращает переведённый тег (включая переведённые атрибуты и все необходимые преобразования исходного тега) в виде одной строки.

note: type: =head2
en: WORKING WITH TAGS
ru: РАБОТА С ТЕГАМИ

note: type: textblock
en: This function returns the path to the current tag from the document's root, in the form E<lt>htmlE<gt>E<lt>bodyE<gt>E<lt>pE<gt>.
ru: Эта функция возвращает путь от корня документа до текущего тега в формате E<lt>htmlE<gt>E<lt>bodyE<gt>E<lt>pE<gt>.

note: type: textblock
en: An additional array of tags (without brackets) can be passed as argument.  These path elements are added to the end of the current path.
ru: Дополнительный массив тегов (без угловых скобок) может быть передан в качестве необязательного аргумента. Эти теги будут добавлены в конец текущего пути.

note: type: textblock
en: This function returns the index from the tag_types list that fits to the next tag in the input stream, or -1 if it's at the end of the input file.
ru: Эта функция возвращает порядковый номер типа тега в списке tag_types, который соответствует следующему тегу во входном потоке или -1 при достижении конца входного файла.

note: type: textblock
en: Here, the tag has structure started by E<lt> and end by E<gt> and it can contain multiple lines.
ru: В данном случае структура тега начинается с E<lt> и заканчивается E<gt> и может содержать несколько строк.

note: type: textblock
en: This works on the array C<< @{$self->{TT}{doc_in}} >> holding input document data and reference indirectly via C<< $self->shiftline() >> and C<< $self->unshiftline($$) >>.
ru: Это делается через обработку массива C<< @{$self->{TT}{doc_in}} >>, содержащего исходные данные документа, посредством получения неявных ссылок на него через C<< $self->shiftline() >> и C<< $self->unshiftline($$) >>.

note: type: textblock
en: This function returns the next tag from the input stream without the beginning and end, in an array form, to maintain the references from the input file.  It has two parameters: the type of the tag (as returned by tag_type) and a boolean, that indicates if it should be removed from the input stream.
ru: Эта функция возвращает следующий тег из потока ввода без начальной и конечной строки (beginning и end) в виде массива, дабы сохранить их местоположение в исходном файле. Она принимает два параметра: тип тега (как в tag_type) и булево значение, которое указывает, удалять ли этот тег из потока ввода.

note: type: textblock
en: This function returns the name of the tag passed as an argument, in the array form returned by extract_tag.
ru: Эта функция возвращает имя тега переданного в качестве аргумента в виде такого же массива, как и в extract_tag.

note: type: textblock
en: This function returns a boolean that says if the next tag in the input stream is a breaking tag or not (inline tag).  It leaves the input stream intact.
ru: Эта функция возвращает булево значение, которое указывает, является ли следующий тег в потоке ввода разделяющим (breaking) или нет (встроенным, inline). Она не изменяет поток ввода.

note: type: textblock
en: This function translates the next tag from the input stream.  Using each tag type's custom translation functions.
ru: Эта функция переводит следующий тег из потока ввода. Она использует специфические для каждого типа тега функции перевода (см. f_translate).

note: type: textblock
en: This function returns a string value that says if the first argument (a tag hierarchy) matches any of the tags from the second argument (a list of tags or tag hierarchies). If it doesn't match, it returns 0. Else, it returns the matched tag's options (the characters in front of the tag) or 1 (if that tag doesn't have options).
ru: Эта функция возвращает строковое значение, которое указывает, сопоставляется ли её первый аргумент (иерархия тегов) какому-либо тегу из её второго аргумента (список тегов или иерархий тегов). Если не сопоставляются, то она возвращает 0. Иначе она возвращает опции сопоставленного тега (символ указанный перед этим тегом или иерархией, см. параметр «tags» ) или 1 (если у тега нет опции).

note: type: =head2
en: WORKING WITH ATTRIBUTES
ru: РАБОТА С АТТРИБУТАМИ

note: type: =head2
en: WORKING WITH TAGGED CONTENTS
ru: РАБОТА С СОДЕРЖИМЫМ ТЕГОВ

note: type: textblock
en: This function gets the text until the next breaking tag (not inline) from the input stream.  Translate it using each tag type's custom translation functions.
ru: Эта функция возвращает текст до следующего разделяющего тега (не встроенного) из потока ввода. Переводите его с помощью специфической функции перевода для конкретного типа тега.

note: type: =head2
en: WORKING WITH THE MODULE OPTIONS
ru: РАБОТА С ПАРАМЕТРАМИ МОДУЛЯ

note: type: textblock
en: This function fills the internal structures that contain the tags, attributes and inline data with the options of the module (specified in the command-line or in the initialize function).
ru: Эта функция заполняет внутренние структуры с информацией о тегах, атрибутах и встроенных данных на основе параметров модуля (переданных в командной строке или в функцию инициализации).

note: type: =head2
en: GETTING TEXT FROM THE INPUT DOCUMENT
ru: ПОЛУЧЕНИЕ ТЕКСТА ИЗ ИСХОДНОГО ДОКУМЕНТА

note: type: textblock
en: This function returns an array with the lines (and references) from the input document until it finds the first argument.  The second argument is an options hash. Value 0 means disabled (the default) and 1, enabled.
ru: Эта функция возвращает строки исходного документа (и их расположение), расположенные до первого вхождения, строки или регулярного выражения, переданного в первом аргументе. Второй аргумент является хешем дополнительных параметров для функции, для которых значение 0 означает, что она отключена, а значение 1 — включена.

note: type: textblock
en: The valid options are:
ru: Допустимы следующие дополнительные параметры:

note: type: textblock
en: This makes the returned array to contain the searched text
ru: Искомый текст будет включён в возвращаемый массив

note: type: textblock
en: This removes the returned stream from the input
ru: Найденный текст будет удалён из потока ввода

note: type: textblock
en: This ensures that the searched text is outside any quotes
ru: Дополнительно удостоверится, что искомый текст не включён в какие-либо кавычки

note: type: textblock
en: This denotes that the first argument is a regular expression rather than an plain string
ru: Обозначает, что первый аргумент является регулярным выражением, а не простой строкой

note: type: textblock
en: This function receives as argument the reference to a paragraph (in the format returned by get_string_until), skips his heading spaces and returns them as a simple string.
ru: Эта функция принимает ссылку на абзац (в формате возвращённом get_string_until), пропускает начальные пробелы и возвращает их (пробелы) в виде строки.

note: type: textblock
en: This function returns a simple string with the text from the argument array (discarding the references).
ru: Эта функция возвращает простую строку с текстом, составленным из массива строк и местоположений оных в исходном файле, отбрасывая последние.

note: type: textblock
en: This module can translate tags and attributes.
ru: Этот модуль может переводить теги и атрибуты.

note: type: textblock
en: DOCTYPE (ENTITIES)
ru: DOCTYPE (СУЩНОСТИ)

note: type: textblock
en: There is a minimal support for the translation of entities. They are translated as a whole, and tags are not taken into account. Multilines entities are not supported and entities are always rewrapped during the translation.
ru: Перевод сущностей (entities) на данный момент поддерживается на минимальном уровне. Они переводятся как единое целое, а теги не принимаются во внимание. Многострочные сущности не поддерживаются и во время перевода все переносы строк расставляются заново.

note: type: textblock
en: MODIFY TAG TYPES FROM INHERITED MODULES (move the tag_types structure inside the $self hash?)
ru: ИЗМЕНЯЙТЕ ТИПЫ ТЕГОВ В ПРОИЗВОДНЫХ МОДУЛЯХ (переместите структуру tag_types непосредственно в хеш $self?)

note: type: verbatim
en:  Jordi Vilalta <jvprat@gmail.com>
     Nicolas François <nicolas.francois@centraliens.net>
ru:  Жорди Вилальта (Jordi Vilalta) <jvprat@gmail.com>
     Николя Франсуа (Nicolas François) <nicolas.francois@centraliens.net>

note: type: verbatim
en:  Copyright © 2004 Jordi Vilalta  <jvprat@gmail.com>
     Copyright © 2008-2009 Nicolas François <nicolas.francois@centraliens.net>
ru:  Copyright © 2004 Жорди Вилальта (Jordi Vilalta)  <jvprat@gmail.com>
     Copyright © 2008-2009 Николя Франсуа (Nicolas François) <nicolas.francois@centraliens.net>
