# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the po4a package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: po4a 0.72\n" "Report-Msgid-Bugs-To: devel@lists.po4a.org\n" "POT-Creation-Date: 2024-05-26 00:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: Attribute 'xml:lang' of: #: share/doc/po4a-display-man.xml:1 share/doc/po4a-display-pod.xml:1 msgid "en" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:2 msgid "2006-04-08" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:3 msgid "PO4A-DISPLAY-MAN" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:4 share/doc/po4a-display-pod.xml:4 msgid "1" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:5 msgid "2020-04-19" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:6 share/doc/po4a-display-man.xml:7 #: share/doc/po4a-display-pod.xml:6 share/doc/po4a-display-pod.xml:7 msgid "Po4a Tools" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:8 msgid "po4a-display-man" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:9 msgid "display a translated man page according to a PO" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:10 msgid "" "po4a-display-man " " PO_FILE MASTER_FILE PO4A_OPT" msgstr "" #. type: =head1 #: share/doc/po4a-display-man.xml:11 share/doc/po4a-display-pod.xml:11 po4a:5 #: po4a-gettextize:6 po4a-normalize:5 po4a-translate:6 po4a-updatepo:6 #: msguntypot:5 lib/Locale/Po4a/AsciiDoc.pm:3 lib/Locale/Po4a/BibTeX.pm:3 #: lib/Locale/Po4a/Chooser.pm:3 lib/Locale/Po4a/Common.pm:3 #: lib/Locale/Po4a/Dia.pm:3 lib/Locale/Po4a/Docbook.pm:3 #: lib/Locale/Po4a/Guide.pm:3 lib/Locale/Po4a/Halibut.pm:3 #: lib/Locale/Po4a/Ini.pm:3 lib/Locale/Po4a/KernelHelp.pm:3 #: lib/Locale/Po4a/LaTeX.pm:3 lib/Locale/Po4a/Man.pm:3 lib/Locale/Po4a/Po.pm:9 #: lib/Locale/Po4a/Pod.pm:7 lib/Locale/Po4a/RubyDoc.pm:3 #: lib/Locale/Po4a/Sgml.pm:3 lib/Locale/Po4a/TeX.pm:3 #: lib/Locale/Po4a/Texinfo.pm:3 lib/Locale/Po4a/Text.pm:3 #: lib/Locale/Po4a/TransTractor.pm:3 lib/Locale/Po4a/Wml.pm:3 #: lib/Locale/Po4a/Xhtml.pm:3 lib/Locale/Po4a/Xml.pm:3 #: lib/Locale/Po4a/Yaml.pm:3 msgid "DESCRIPTION" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:12 msgid "" "Translators can use po4a-display-man to see how their " "translation of a man page will be rendered to the end users, without " "recompiling and reinstalling the whole project." msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:13 msgid "" "This script only works with man pages written directly in nroff and handled by the po4a's man module. Manual pages generated from other formats, " "like DocBook or POD, are not supported. See " "po4a-display-pod1 " "for an equivalent supporting POD documents." msgstr "" #. type: =head1 #: share/doc/po4a-display-man.xml:14 share/doc/po4a-display-pod.xml:13 po4a:28 #: po4a-gettextize:11 po4a-normalize:9 po4a-translate:9 po4a-updatepo:11 msgid "OPTIONS" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:15 share/doc/po4a-display-pod.xml:14 msgid "PO_FILE" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:16 share/doc/po4a-display-pod.xml:15 msgid "The PO file containing the translations." msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:17 msgid "MASTER_FILE" msgstr "" #. .br #. type: Content of: #: share/doc/po4a-display-man.xml:18 msgid "" "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, " "po4a-display-man tries to find the original man page " "based on the line reference of the first string in the PO." msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:19 share/doc/po4a-display-pod.xml:18 msgid "PO4A_OPT" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:20 share/doc/po4a-display-pod.xml:19 msgid "" "Some options to pass to " "po4a-translate1." msgstr "" #. type: =head1 #: share/doc/po4a-display-man.xml:21 share/doc/po4a-display-pod.xml:20 po4a:189 #: po4a-gettextize:76 po4a-normalize:36 po4a-translate:50 po4a-updatepo:53 #: msguntypot:29 doc/po4a.7.pod:190 lib/Locale/Po4a/Chooser.pm:7 #: lib/Locale/Po4a/Dia.pm:12 lib/Locale/Po4a/Docbook.pm:15 #: lib/Locale/Po4a/Guide.pm:10 lib/Locale/Po4a/Halibut.pm:14 #: lib/Locale/Po4a/Ini.pm:8 lib/Locale/Po4a/KernelHelp.pm:7 #: lib/Locale/Po4a/LaTeX.pm:8 lib/Locale/Po4a/Man.pm:107 #: lib/Locale/Po4a/Pod.pm:21 lib/Locale/Po4a/RubyDoc.pm:14 #: lib/Locale/Po4a/TeX.pm:118 lib/Locale/Po4a/Texinfo.pm:14 #: lib/Locale/Po4a/Xhtml.pm:15 lib/Locale/Po4a/Xml.pm:187 #: lib/Locale/Po4a/Yaml.pm:15 msgid "SEE ALSO" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:22 msgid "" " " "po4a-display-pod1 " "" msgstr "" #. type: Content of: #: share/doc/po4a-display-man.xml:23 share/doc/po4a-display-pod.xml:22 msgid "AUTHOR" msgstr "" #. type: Content of: <refentry><refsect1><para> #: share/doc/po4a-display-man.xml:24 msgid "Thomas Huriaux" msgstr "" #. type: Content of: <refentry><refentryinfo> #: share/doc/po4a-display-pod.xml:2 msgid "<date>2009-03-16</date>" msgstr "" #. type: Content of: <refentry><refmeta><refentrytitle> #: share/doc/po4a-display-pod.xml:3 msgid "PO4A-DISPLAY-POD" msgstr "" #. type: Content of: <refentry><refmeta><refmiscinfo> #: share/doc/po4a-display-pod.xml:5 msgid "2009-03-16" msgstr "" #. type: Content of: <refentry><refnamediv><refname> #: share/doc/po4a-display-pod.xml:8 msgid "po4a-display-pod" msgstr "" #. type: Content of: <refentry><refnamediv><refpurpose> #: share/doc/po4a-display-pod.xml:9 msgid "display of a translated POD file according to a PO" msgstr "" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> #: share/doc/po4a-display-pod.xml:10 msgid "" "<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>" msgstr "" #. type: Content of: <refentry><refsect1><para> #: share/doc/po4a-display-pod.xml:12 msgid "" "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." msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> #: share/doc/po4a-display-pod.xml:16 msgid "<option>-m </option><replaceable>POD_FILE</replaceable>" msgstr "" #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> #: share/doc/po4a-display-pod.xml:17 msgid "The original POD file used by po4a to generate PO file." msgstr "" #. type: Content of: <refentry><refsect1><para> #: share/doc/po4a-display-pod.xml:21 msgid "" "<citerefentry> " "<refentrytitle>po4a-display-man</refentrytitle><manvolnum>1</manvolnum> " "</citerefentry>" msgstr "" #. type: Content of: <refentry><refsect1><para> #: share/doc/po4a-display-pod.xml:23 msgid "Florentin Duneau" msgstr "" #. type: =head1 #: po4a:1 po4a-gettextize:1 po4a-normalize:1 po4a-translate:1 po4a-updatepo:1 #: msguntypot:1 doc/po4a.7.pod:1 lib/Locale/Po4a/AsciiDoc.pm:1 #: lib/Locale/Po4a/BibTeX.pm:1 lib/Locale/Po4a/Chooser.pm:1 #: lib/Locale/Po4a/Common.pm:1 lib/Locale/Po4a/Dia.pm:1 #: lib/Locale/Po4a/Docbook.pm:1 lib/Locale/Po4a/Guide.pm:1 #: lib/Locale/Po4a/Halibut.pm:1 lib/Locale/Po4a/Ini.pm:1 #: lib/Locale/Po4a/KernelHelp.pm:1 lib/Locale/Po4a/LaTeX.pm:1 #: lib/Locale/Po4a/Man.pm:1 lib/Locale/Po4a/Po.pm:1 lib/Locale/Po4a/Pod.pm:1 #: lib/Locale/Po4a/RubyDoc.pm:1 lib/Locale/Po4a/Sgml.pm:1 #: lib/Locale/Po4a/TeX.pm:1 lib/Locale/Po4a/Texinfo.pm:1 #: lib/Locale/Po4a/Text.pm:1 lib/Locale/Po4a/TransTractor.pm:1 #: lib/Locale/Po4a/Wml.pm:1 lib/Locale/Po4a/Xhtml.pm:1 lib/Locale/Po4a/Xml.pm:1 #: lib/Locale/Po4a/Yaml.pm:1 msgid "NAME" msgstr "" #. type: textblock #: po4a:2 msgid "po4a - update both the PO files and translated documents in one shot" msgstr "" #. type: =head1 #: po4a:3 po4a-gettextize:3 po4a-normalize:3 po4a-translate:3 po4a-updatepo:3 #: msguntypot:3 lib/Locale/Po4a/Po.pm:3 lib/Locale/Po4a/Pod.pm:3 #: lib/Locale/Po4a/TransTractor.pm:24 msgid "SYNOPSIS" msgstr "" #. type: textblock #: po4a:4 msgid "B<po4a> [I<options>] I<config_file>" msgstr "" #. type: textblock #: po4a:6 po4a-gettextize:7 msgid "" "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." msgstr "" #. type: textblock #: po4a:7 msgid "" "Upon execution, B<po4a> parses all documentation files specified in its " "configuration file. It updates the PO files (containing the translation) to " "reflect any change to the documentation, and produce a translated " "documentation by injecting the content's translation (found in the PO files) " "into the structure of the original master document." msgstr "" #. type: textblock #: po4a:8 msgid "" "At first, the PO files only contain the strings to translate from the " "original documentation. This file format allows the translators to manually " "provide a translation for each paragraph extracted by B<po4a>. If the " "documentation is modified after translation, B<po4a> marks the corresponding " "translations as \"fuzzy\" in the PO file to request a manual review by the " "translators. The translators can also provide so-called \"addendum\", that " "are extra content stating for example who did the translation and how to " "report bugs." msgstr "" #. type: verbatim #: po4a:9 #, no-wrap msgid "" " master documents ---+---->-------->---------+\n" " (doc authoring) | |\n" " V (po4a executions) >-----+--> translated\n" " | | | documents\n" " existing PO files -->--> updated PO files >-+ |\n" " ^ | |\n" " | V |\n" " +----------<---------<-------+ ^\n" " (manual translation process) |\n" " |\n" " addendum -->--------------------------------------+\n" "\n" msgstr "" #. type: textblock #: po4a:10 msgid "" "The workflow of B<po4a> is asynchronous, as suited to open-source " "projects. The documentation writers author the master documents at their own " "pace. The translators review and update the translations in the PO " "files. The maintainers rerun B<po4a> on need, to reflect any change to the " "original documentation to the PO files, and to produce updated documentation " "translations, by injecting the latest translation into the latest document " "structure." msgstr "" #. type: textblock #: po4a:11 msgid "" "By default, a given translated document is produced when at least 80% of its " "content is translated. The untranslated text is kept in the original " "language. The produced documentation thus mixes languages if the " "translation is not complete. You can change the 80% threshold with the " "I<--keep> option described below. Note however that discarding translations " "as soon as they are not 100% may be discouraging for the translators whose " "work will almost never be shown to the users, while showing \"translations\" " "that are too incomplete may be troubling for the end users." msgstr "" #. type: textblock #: po4a:12 msgid "" "Storing the translated documentation files in the version control system is " "probably a bad idea, since they are automatically generated. The precious " "files are the PO files, that contain the hard work of your fellow " "translators. Also, some people find it easier to interact with the " "translators through an online platform such as S<weblate>, but this is " "naturally fully optional." msgstr "" #. type: =head2 #: po4a:13 msgid "Quick start tutorial" msgstr "" #. type: textblock #: po4a:14 msgid "" "Let's assume you maintain a program named B<foo> which has a man page " "F<man/foo.1> written in English (the bridge language in most open-source " "projects, but B<po4a> can be used from or to any language). Some times ago, " "someone provided a German translation named F<man/foo.de.1> and " "disappeared. This is a problem because you just got a bug report saying " "that your documentation contains a gravely misleading information that must " "be fixed in all languages, but you don't speak German so you can only modify " "the original, not the translation. Now, another contributor wants to " "contribute a translation to Japanese, a language that you don't master " "either." msgstr "" #. type: textblock #: po4a:15 msgid "" "It is time to convert your documentation to B<po4a> to solve your " "documentation maintenance nightmares. You want to update the doc when " "needed, you want to ease the work of your fellow translators, and you want " "to ensure that your users never see any outdated and thus misleading " "documentation." msgstr "" #. type: textblock #: po4a:16 msgid "" "The conversion includes two steps: setup the po4a infrastructure, and " "convert the previous German translation to salvage the previous work. This " "latter part is done using S<po4a-gettextize>, as follows. As detailed in the " "documentation of L<po4a-gettextize(1)>, this process rarely fully automatic, " "but once it's done, the B<de.po> file containing the German translation can " "be integrated in your po4a workflow." msgstr "" #. type: verbatim #: po4a:17 #, no-wrap msgid "" " po4a-gettextize --format man --master foo.1 --localized foo.de.1 --po " "de.po\n" "\n" msgstr "" #. type: textblock #: po4a:18 msgid "" "Let's now configure po4a. With the appropriate file layout, your " "configuration file could be as simple as this:" msgstr "" #. type: verbatim #: po4a:19 #, no-wrap msgid "" " [po_directory] man/po4a/\n" "\n" msgstr "" #. type: verbatim #: po4a:20 #, no-wrap msgid "" " [type: man] man/foo.1 $lang:man/translated/foo.$lang.1\n" "\n" msgstr "" #. type: textblock #: po4a:21 msgid "" "It specifies that all PO files (containing the work of the translators) are " "in the F<man/po4a/> directory, and that you have only one master file, " "F<man/foo.1>. If you had several master files, you would have several lines " "similar to the second one. Each such line also specify where to write the " "corresponding translation files. Here, the German translation of " "F<man/foo.1> is in F<man/translated/foo.de.1>." msgstr "" #. type: textblock #: po4a:22 msgid "" "The last thing we need to complete the configuration of B<po4a> is a POT " "file containing the template material that should be used to start a new " "translation. Simply create an empty file with the S<.pot> extension in the " "specified S<po_directory> (e.g. F<man/po4a/foo.pot>), and B<po4a> will fill " "it with the expected content." msgstr "" #. type: textblock #: po4a:23 msgid "Here is a recap of the files in this setup:" msgstr "" #. type: verbatim #: po4a:24 #, no-wrap msgid "" " ├── man/\n" " │ ├── foo.1 <- The original man page, in English\n" " │ ├── po4a/\n" " │ │ ├── de.po <- The German PO translation, from gettextization\n" " │ │ └── foo.pot <- The POT template of future translations (empty at " "first)\n" " │ └── translated/ <- Directory where the translations will be created\n" " └── po4a.cfg <- The configuration file\n" "\n" msgstr "" #. type: textblock #: po4a:25 msgid "" "Once setup, executing B<po4a> will parse your documentation, update the POT " "template file, use it to update the PO translation files, and use them to " "update the documentation translation files. All in one command:" msgstr "" #. type: verbatim #: po4a:26 #, no-wrap msgid "" " po4a --verbose po4a.cfg\n" "\n" msgstr "" #. type: textblock #: po4a:27 msgid "" "This is it. B<po4a> is now fully configured. Once you've fixed your error in " "F<man/foo.1>, the offending paragraph in the German translation will be " "replaced by the fixed text in English. Mixing languages is not optimal, but " "it's the only way to remove errors in translations that you don't even " "understand, and ensure that the content presented to the users is never " "misleading. Updating the German translation is also much easier in the " "corresponding PO file, so the language mix-up may not last long. Finally, " "when a Japanese translator wants to contribute a new translation, she should " "rename the S<foo.pot> into S<ja.po> and complete the translation. Once you " "have this file, just drop it in F<man/po4a/po/>. A translated page will " "appear as F<man/translated/foo.ja.1> (provided that enough content is " "translated) when you run B<po4a> again." msgstr "" #. type: =item #: po4a:29 po4a-translate:28 msgid "B<-k>, B<--keep>" msgstr "" #. type: textblock #: po4a:30 msgid "" "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." msgstr "" #. type: =item #: po4a:31 po4a-normalize:12 po4a-translate:30 msgid "B<-w>, B<--width>" msgstr "" #. type: textblock #: po4a:32 po4a-normalize:13 po4a-translate:31 msgid "" "Column at which we should wrap the resulting file if the format supports it " "(default: 76)." msgstr "" #. type: =item #: po4a:33 po4a-gettextize:26 po4a-normalize:22 po4a-translate:32 #: po4a-updatepo:28 msgid "B<-h>, B<--help>" msgstr "" #. type: textblock #: po4a:34 po4a-gettextize:27 po4a-normalize:23 po4a-translate:33 #: po4a-updatepo:29 msgid "Show a short help message." msgstr "" #. type: =item #: po4a:35 po4a-gettextize:16 po4a-normalize:28 po4a-translate:18 #: po4a-updatepo:16 msgid "B<-M>, B<--master-charset>" msgstr "" #. type: textblock #: po4a:36 msgid "" "Charset of the files containing the documents to translate. Note that all " "master documents must use the same charset." msgstr "" #. type: =item #: po4a:37 po4a-gettextize:20 po4a-translate:22 msgid "B<-L>, B<--localized-charset>" msgstr "" #. type: textblock #: po4a:38 msgid "" "Charset of the files containing the localized documents. Note that all " "translated documents will use the same charset." msgstr "" #. type: =item #: po4a:39 po4a-translate:14 msgid "B<-A>, B<--addendum-charset>" msgstr "" #. type: textblock #: po4a:40 po4a-translate:15 msgid "" "Charset of the addenda. Note that all the addenda should be in the same " "charset." msgstr "" #. type: =item #: po4a:41 po4a-gettextize:32 po4a-normalize:34 po4a-translate:36 #: po4a-updatepo:32 msgid "B<-V>, B<--version>" msgstr "" #. type: textblock #: po4a:42 po4a-gettextize:33 po4a-normalize:35 po4a-translate:37 #: po4a-updatepo:33 msgid "Display the version of the script and exit." msgstr "" #. type: =item #: po4a:43 po4a-gettextize:34 po4a-translate:38 po4a-updatepo:34 msgid "B<-v>, B<--verbose>" msgstr "" #. type: textblock #: po4a:44 po4a-gettextize:35 po4a-translate:39 po4a-updatepo:35 msgid "Increase the verbosity of the program." msgstr "" #. type: =item #: po4a:45 msgid "B<-q>, B<--quiet>" msgstr "" #. type: textblock #: po4a:46 msgid "Decrease the verbosity of the program." msgstr "" #. type: =item #: po4a:47 po4a-gettextize:36 po4a-translate:40 po4a-updatepo:36 msgid "B<-d>, B<--debug>" msgstr "" #. type: textblock #: po4a:48 po4a-gettextize:37 po4a-translate:41 po4a-updatepo:37 msgid "Output some debugging information." msgstr "" #. type: =item #: po4a:49 po4a-gettextize:24 po4a-normalize:10 po4a-translate:26 #: po4a-updatepo:20 msgid "B<-o>, B<--option>" msgstr "" #. type: textblock #: po4a:50 po4a-gettextize:25 po4a-normalize:11 po4a-translate:27 #: po4a-updatepo:21 msgid "" "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'." msgstr "" #. type: =item #: po4a:51 msgid "B<-f>, B<--force>" msgstr "" #. type: textblock #: po4a:52 msgid "" "Always generate the POT and PO files, even if B<po4a> considers it is not " "necessary." msgstr "" #. type: textblock #: po4a:53 msgid "The default behavior (when B<--force> is not specified) is the following:" msgstr "" #. type: textblock #: po4a:54 msgid "" "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." msgstr "" #. type: textblock #: po4a:55 msgid "" "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>)." msgstr "" #. type: textblock #: po4a:56 msgid "" "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." msgstr "" #. type: textblock #: po4a:57 msgid "The PO files are always re-generated based on the POT with B<msgmerge -U>." msgstr "" #. type: =item #: po4a:58 msgid "B<--stamp>" msgstr "" #. type: textblock #: po4a:59 msgid "" "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." msgstr "" #. type: textblock #: po4a:60 msgid "" "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." msgstr "" #. type: =item #: po4a:61 msgid "B<--no-translations>" msgstr "" #. type: textblock #: po4a:62 msgid "Do not generate the translated documents, only update the POT and PO files." msgstr "" #. type: =item #: po4a:63 msgid "B<--no-update>" msgstr "" #. type: textblock #: po4a:64 msgid "Do not change the POT and PO files, only the translation may be updated." msgstr "" #. type: =item #: po4a:65 msgid "B<--keep-translations>" msgstr "" #. type: textblock #: po4a:66 msgid "" "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." msgstr "" #. type: textblock #: po4a:67 msgid "" "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." msgstr "" #. type: =item #: po4a:68 msgid "B<--rm-translations>" msgstr "" #. type: textblock #: po4a:69 msgid "Remove the translated files (implies B<--no-translations>)." msgstr "" #. type: =item #: po4a:70 msgid "B<--no-backups>" msgstr "" #. type: textblock #: po4a:71 po4a:73 msgid "This flag does nothing since 0.41, and may be removed in later releases." msgstr "" #. type: =item #: po4a:72 msgid "B<--rm-backups>" msgstr "" #. type: =item #: po4a:74 msgid "B<--translate-only> I<translated-file>" msgstr "" #. type: textblock #: po4a:75 msgid "" "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." msgstr "" #. type: =item #: po4a:76 msgid "B<--variable> I<var>B<=>I<value>" msgstr "" #. type: textblock #: po4a:77 msgid "" "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." msgstr "" #. type: =item #: po4a:78 msgid "B<--srcdir> I<SRCDIR>" msgstr "" #. type: textblock #: po4a:79 msgid "" "Set the base directory for all input documents specified in the B<po4a> " "configuration file." msgstr "" #. type: textblock #: po4a:80 msgid "" "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." msgstr "" #. type: =item #: po4a:81 msgid "B<--destdir> I<DESTDIR>" msgstr "" #. type: textblock #: po4a:82 msgid "" "Set the base directory for all the output documents specified in the B<po4a> " "configuration file (see B<--srcdir> above)." msgstr "" #. type: =head2 #: po4a:83 msgid "Options modifying the POT header" msgstr "" #. type: =item #: po4a:84 lib/Locale/Po4a/Po.pm:14 msgid "B<--porefs> I<type>" msgstr "" #. type: textblock #: po4a:85 po4a-translate:43 po4a-updatepo:39 lib/Locale/Po4a/Po.pm:15 msgid "" "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)." msgstr "" #. type: =item #: po4a:86 po4a-updatepo:41 lib/Locale/Po4a/Po.pm:16 msgid "B<--wrap-po> B<no>|B<newlines>|I<number> (default: 76)" msgstr "" #. type: textblock #: po4a:87 po4a-updatepo:42 lib/Locale/Po4a/Po.pm:17 msgid "" "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." msgstr "" #. type: textblock #: po4a:88 lib/Locale/Po4a/Po.pm:18 msgid "" "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." msgstr "" #. type: textblock #: po4a:89 po4a-updatepo:44 lib/Locale/Po4a/Po.pm:19 msgid "" "Note that this option has no impact on how the msgid and msgstr are wrapped, " "i.e. on how newlines are added to the content of these strings." msgstr "" #. type: =item #: po4a:90 msgid "B<--master-language>" msgstr "" #. type: textblock #: po4a:91 msgid "" "Language of the source files containing the documents to translate. Note " "that all master documents must use the same language." msgstr "" #. type: =item #: po4a:92 po4a-gettextize:38 po4a-updatepo:45 lib/Locale/Po4a/Po.pm:20 msgid "B<--msgid-bugs-address> I<email@address>" msgstr "" #. type: textblock #: po4a:93 po4a-gettextize:39 po4a-updatepo:46 lib/Locale/Po4a/Po.pm:21 msgid "" "Set the report address for msgid bugs. By default, the created POT files " "have no Report-Msgid-Bugs-To fields." msgstr "" #. type: =item #: po4a:94 po4a-gettextize:40 po4a-updatepo:47 lib/Locale/Po4a/Po.pm:22 msgid "B<--copyright-holder> I<string>" msgstr "" #. type: textblock #: po4a:95 po4a-gettextize:41 po4a-updatepo:48 lib/Locale/Po4a/Po.pm:23 msgid "" "Set the copyright holder in the POT header. The default value is \"Free " "Software Foundation, Inc.\"" msgstr "" #. type: =item #: po4a:96 po4a-gettextize:42 po4a-updatepo:49 lib/Locale/Po4a/Po.pm:24 msgid "B<--package-name> I<string>" msgstr "" #. type: textblock #: po4a:97 po4a-gettextize:43 po4a-updatepo:50 lib/Locale/Po4a/Po.pm:25 msgid "Set the package name for the POT header. The default is \"PACKAGE\"." msgstr "" #. type: =item #: po4a:98 po4a-gettextize:44 po4a-updatepo:51 lib/Locale/Po4a/Po.pm:26 msgid "B<--package-version> I<string>" msgstr "" #. type: textblock #: po4a:99 po4a-gettextize:45 po4a-updatepo:52 lib/Locale/Po4a/Po.pm:27 msgid "Set the package version for the POT header. The default is \"VERSION\"." msgstr "" #. type: =head2 #: po4a:100 msgid "Options to modify the PO files" msgstr "" #. type: =item #: po4a:101 po4a-updatepo:26 msgid "B<--msgmerge-opt> I<options>" msgstr "" #. type: textblock #: po4a:102 po4a-updatepo:27 msgid "Extra options for B<msgmerge>(1)." msgstr "" #. type: textblock #: po4a:103 msgid "Note: B<$lang> will be extended to the current language." msgstr "" #. type: =item #: po4a:104 po4a-updatepo:22 msgid "B<--no-previous>" msgstr "" #. type: textblock #: po4a:105 msgid "" "This option removes B<--previous> from the options passed to B<msgmerge>. " "This is necessary to support versions of B<gettext> earlier than 0.16." msgstr "" #. type: =item #: po4a:106 po4a-updatepo:24 msgid "B<--previous>" msgstr "" #. type: textblock #: po4a:107 po4a-updatepo:25 msgid "" "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." msgstr "" #. type: =head1 #: po4a:108 msgid "CONFIGURATION FILE" msgstr "" #. type: textblock #: po4a:109 msgid "" "po4a expects a configuration file as argument. This file must contain the " "following elements:" msgstr "" #. type: textblock #: po4a:110 msgid "The path to the PO files and the list of languages existing in the project;" msgstr "" #. type: textblock #: po4a:111 msgid "" "Optionally, some global options and so-called configuration aliases that are " "used as templates to configure individual master files;" msgstr "" #. type: textblock #: po4a:112 msgid "The list of each master file to translate, along with specific parameters." msgstr "" #. type: textblock #: po4a:113 msgid "" "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." msgstr "" #. type: textblock #: po4a:114 msgid "" "Some full examples are presented on this page, while other examples can be " "found in the C<t/cfg> directory of the source distribution." msgstr "" #. type: =head2 #: po4a:115 msgid "Finding the PO and POT files" msgstr "" #. type: textblock #: po4a:116 msgid "" "The simplest solution is to explicitly give the path to POT and PO files, as " "follows:" msgstr "" #. type: verbatim #: po4a:117 #, no-wrap msgid "" " [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po\n" "\n" msgstr "" #. type: textblock #: po4a:118 msgid "" "This specifies the path to the POT file first, and then the paths to the " "German and French PO files." msgstr "" #. type: textblock #: po4a:119 msgid "" "The same information can be written as follows to reduce the risk of " "copy/paste errors:" msgstr "" #. type: verbatim #: po4a:120 #, no-wrap msgid "" " [po4a_langs] fr de\n" " [po4a_paths] man/po/project.pot $lang:man/po/$lang.po\n" "\n" msgstr "" #. type: textblock #: po4a:121 msgid "" "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." msgstr "" #. type: textblock #: po4a:122 msgid "" "You can further compact the same information by only providing the path to " "the directory containing your translation project, as follows." msgstr "" #. type: verbatim #: po4a:123 #, no-wrap msgid "" " [po_directory] man/po/\n" "\n" msgstr "" #. type: textblock #: po4a:124 msgid "" "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)." msgstr "" #. type: textblock #: po4a:125 msgid "" "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." msgstr "" #. type: =head3 #: po4a:126 msgid "Centralized or split PO files?" msgstr "" #. type: textblock #: po4a:127 msgid "" "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." msgstr "" #. type: textblock #: po4a:128 msgid "" "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." msgstr "" #. type: verbatim #: po4a:129 #, no-wrap msgid "" " [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po\n" "\n" msgstr "" #. type: textblock #: po4a:130 msgid "" "With this line, po4a will produce separate POT and PO files for each " "document to translate. For example, if you have 3 documents and 5 " "languages, this will result in 3 POT files and 15 PO files. These files are " "named as specified on the C<po4a_paths> template, with C<$master> " "substituted to the basename of each document to translate. In case of name " "conflict, you can specify the POT file to use as follows, with the C<pot=> " "parameter." msgstr "" #. type: textblock #: po4a:131 msgid "" "This feature can also be used to group several translated files into the " "same POT file. The following example only produces 2 POT files: " "F<l10n/po/foo.pot> (containing the material from F<foo/gui.xml>) and " "F<l10n/po/bar.pot> (containing the material from both F<bar/gui.xml> and " "F<bar/cli.xml>)." msgstr "" #. type: verbatim #: po4a:132 #, no-wrap msgid "" " [po4a_langs] de fr ja\n" " [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po\n" " [type: xml] foo/gui.xml $lang:foo/gui.$lang.xml pot=foo\n" " [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml pot=bar\n" " [type: xml] bar/cli.xml $lang:bar/cli.$lang.xml pot=bar\n" "\n" msgstr "" #. type: textblock #: po4a:133 msgid "" "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." msgstr "" #. type: =head2 #: po4a:134 msgid "Specifying the documents to translate" msgstr "" #. type: textblock #: po4a:135 msgid "" "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. File " "names should be quoted or escaped if they contain spaces. Here is an " "example:" msgstr "" #. type: verbatim #: po4a:136 #, no-wrap msgid "" " [type: sgml] \"doc/my stuff.sgml\" \"fr:doc/fr/mon truc.sgml\" " "de:doc/de/mein\\ kram.sgml\n" " [type: man] script fr:doc/fr/script.1 de:doc/de/script.1\n" " [type: docbook] doc/script.xml fr:doc/fr/script.xml \\\n" " de:doc/de/script.xml\n" "\n" msgstr "" #. type: textblock #: po4a:137 msgid "" "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:" msgstr "" #. type: verbatim #: po4a:138 #, no-wrap msgid "" " [type: sgml] doc/my_stuff.sgml $lang:doc/$lang/my_stuff.sgml\n" " [type: man] script.1 $lang:po/$lang/script.1\n" " [type: docbook] doc/script.xml $lang:doc/$lang/script.xml\n" "\n" msgstr "" #. type: =head2 #: po4a:139 msgid "Specifying options" msgstr "" #. type: textblock #: po4a:140 msgid "" "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." msgstr "" #. type: textblock #: po4a:141 msgid "" "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)." msgstr "" #. type: verbatim #: po4a:142 #, no-wrap msgid "" " [type:xml] toto.xml $lang:toto.$lang.xml opt:\"-o nostrip\" opt_fr:\"--keep " "0\"\n" "\n" msgstr "" #. type: textblock #: po4a:143 msgid "" "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:" msgstr "" #. type: verbatim #: po4a:144 #, no-wrap msgid "" " [type:xml] toto.xml $lang:toto.$lang.xml opt:\"--keep 20\" opt:\"-o " "nostrip\" opt_fr:\"--keep 0\"\n" " [type:xml] toto.xml $lang:toto.$lang.xml opt:\"--keep 20 -o nostrip\" " "opt_fr:\"--keep 0\"\n" " [type:xml] toto.xml $lang:toto.$lang.xml opt:--keep opt:20 opt:-o " "opt:nostrip opt_fr:--keep opt_fr:0\n" "\n" msgstr "" #. type: textblock #: po4a:145 msgid "" "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." msgstr "" #. type: =head3 #: po4a:146 msgid "Configuration aliases" msgstr "" #. type: textblock #: po4a:147 msgid "" "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." msgstr "" #. type: verbatim #: po4a:148 #, no-wrap msgid "" " [po4a_alias:test] man opt_it:\"--keep 0\"\n" " [type: test] man/page.1 $lang:man/$lang/page.1\n" "\n" msgstr "" #. type: textblock #: po4a:149 msgid "" "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." msgstr "" #. type: verbatim #: po4a:150 #, no-wrap msgid "" " [po4a_alias:man] man opt_it:\"--keep 0\"\n" " [type: man] man/page.1 $lang:man/$lang/page.1\n" "\n" msgstr "" #. type: =head3 #: po4a:151 msgid "Global default options" msgstr "" #. type: textblock #: po4a:152 msgid "" "You can also use C<[options]> lines to define options that must be used for " "all files, regardless of their type." msgstr "" #. type: verbatim #: po4a:153 #, no-wrap msgid "" " [options] --keep 20 --option nostrip\n" "\n" msgstr "" #. type: textblock #: po4a:154 msgid "" "As with the command line options, you can abbreviate the parameters passed " "in the configuration file:" msgstr "" #. type: verbatim #: po4a:155 #, no-wrap msgid "" " [options] -k 20 -o nostrip\n" "\n" msgstr "" #. type: =head3 #: po4a:156 msgid "Option priorities" msgstr "" #. type: textblock #: po4a:157 msgid "" "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:" msgstr "" #. type: textblock #: po4a:158 msgid "" "C<[options]> lines provide default values that can be overridden by any " "other source." msgstr "" #. type: textblock #: po4a:159 msgid "" "Type aliases are then used. Language specific settings override the ones " "applicable to all languages." msgstr "" #. type: textblock #: po4a:160 msgid "" "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." msgstr "" #. type: textblock #: po4a:161 msgid "" "Finally, parameters provided on the B<po4a> command line override any " "settings from the configuration file." msgstr "" #. type: =head3 #: po4a:162 msgid "Example" msgstr "" #. type: textblock #: po4a:163 msgid "Here is an example showing how to quote the spaces and quotes:" msgstr "" #. type: verbatim #: po4a:164 #, no-wrap msgid "" " [po_directory] man/po/\n" " \n" msgstr "" #. type: verbatim #: po4a:165 #, no-wrap msgid "" " [options] --master-charset UTF-8\n" " \n" msgstr "" #. type: verbatim #: po4a:166 #, no-wrap msgid "" " [po4a_alias:man] man opt:\"-o \\\"mdoc=NAME,SEE ALSO\\\"\"\n" " [type:man] t-05-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \\\n" " opt:\"-k 75\" opt_it:\"-L UTF-8\" opt_fr:--verbose\n" "\n" msgstr "" #. type: =head2 #: po4a:167 msgid "Addendum: Adding extra content in the translation" msgstr "" #. type: textblock #: po4a:168 msgid "" "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." msgstr "" #. type: verbatim #: po4a:169 #, no-wrap msgid "" " [type: pod] script fr:doc/fr/script.1 \\\n" " add_fr:doc/l10n/script.fr.add\n" "\n" msgstr "" #. type: textblock #: po4a:170 msgid "You can also use language templates as follow:" msgstr "" #. type: verbatim #: po4a:171 #, no-wrap msgid "" " [type: pod] script $lang:doc/$lang/script.1 \\\n" " add_$lang:doc/l10n/script.$lang.add\n" "\n" msgstr "" #. type: textblock #: po4a:172 msgid "If an addendum fails to apply, the translation is discarded." msgstr "" #. type: =head3 #: po4a:173 msgid "Modifiers for the addendum declaration" msgstr "" #. type: textblock #: po4a:174 msgid "" "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." msgstr "" #. type: =item #: po4a:175 msgid "B<?>" msgstr "" #. type: textblock #: po4a:176 msgid "Include I<addendum_path> if this file does exist, otherwise do nothing." msgstr "" #. type: =item #: po4a:177 msgid "B<@>" msgstr "" #. type: textblock #: po4a:178 msgid "" "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." msgstr "" #. type: =item #: po4a:179 msgid "B<!>" msgstr "" #. type: textblock #: po4a:180 msgid "" "I<addendum_path> is discarded, it is not loaded and will not be loaded by " "any further addendum specification." msgstr "" #. type: textblock #: po4a:181 msgid "" "The following includes an addendum in any language, but if only it " "exists. No error is reported if the addendum does not exist." msgstr "" #. type: verbatim #: po4a:182 #, no-wrap msgid "" " [type: pod] script $lang:doc/$lang/script.1 " "add_$lang:?doc/l10n/script.$lang.add\n" "\n" msgstr "" #. type: textblock #: po4a:183 msgid "The following includes a list of addendum for every language:" msgstr "" #. type: verbatim #: po4a:184 #, no-wrap msgid "" " [type: pod] script $lang:doc/$lang/script.1 " "add_$lang:@doc/l10n/script.$lang.add\n" "\n" msgstr "" #. type: =head2 #: po4a:185 msgid "Filtering the translated strings" msgstr "" #. type: textblock #: po4a:186 msgid "" "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:" msgstr "" #. type: verbatim #: po4a:187 #, no-wrap msgid "" " [type:docbook] book.xml \\\n" " pot_in:book-filtered.xml \\\n" " $lang:book.$lang.xml\n" "\n" msgstr "" #. type: textblock #: po4a:188 msgid "" "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." msgstr "" #. type: textblock #: po4a:190 msgid "L<po4a-gettextize(1)>, L<po4a(7)>." msgstr "" #. type: =head1 #: po4a:191 po4a-gettextize:78 po4a-normalize:38 po4a-translate:52 #: po4a-updatepo:55 msguntypot:32 doc/po4a.7.pod:196 #: lib/Locale/Po4a/AsciiDoc.pm:56 lib/Locale/Po4a/BibTeX.pm:11 #: lib/Locale/Po4a/Chooser.pm:12 lib/Locale/Po4a/Common.pm:28 #: lib/Locale/Po4a/Dia.pm:14 lib/Locale/Po4a/Docbook.pm:17 #: lib/Locale/Po4a/Guide.pm:12 lib/Locale/Po4a/Halibut.pm:16 #: lib/Locale/Po4a/Ini.pm:10 lib/Locale/Po4a/KernelHelp.pm:9 #: lib/Locale/Po4a/LaTeX.pm:10 lib/Locale/Po4a/Man.pm:109 #: lib/Locale/Po4a/Po.pm:93 lib/Locale/Po4a/Pod.pm:23 #: lib/Locale/Po4a/RubyDoc.pm:16 lib/Locale/Po4a/Sgml.pm:53 #: lib/Locale/Po4a/TeX.pm:120 lib/Locale/Po4a/Texinfo.pm:16 #: lib/Locale/Po4a/Text.pm:45 lib/Locale/Po4a/TransTractor.pm:157 #: lib/Locale/Po4a/Wml.pm:11 lib/Locale/Po4a/Xhtml.pm:17 #: lib/Locale/Po4a/Xml.pm:189 lib/Locale/Po4a/Yaml.pm:17 msgid "AUTHORS" msgstr "" #. type: verbatim #: po4a:192 po4a-gettextize:79 po4a-normalize:39 po4a-translate:53 #: po4a-updatepo:56 lib/Locale/Po4a/Man.pm:110 #, no-wrap msgid "" " Denis Barbier <barbier@linuxfr.org>\n" " Nicolas François <nicolas.francois@centraliens.net>\n" " Martin Quinson (mquinson#debian.org)\n" "\n" msgstr "" #. type: =head1 #: po4a:193 po4a-gettextize:80 po4a-normalize:40 po4a-translate:54 #: po4a-updatepo:57 msguntypot:34 lib/Locale/Po4a/AsciiDoc.pm:58 #: lib/Locale/Po4a/BibTeX.pm:13 lib/Locale/Po4a/Chooser.pm:14 #: lib/Locale/Po4a/Common.pm:30 lib/Locale/Po4a/Dia.pm:16 #: lib/Locale/Po4a/Docbook.pm:19 lib/Locale/Po4a/Guide.pm:14 #: lib/Locale/Po4a/Halibut.pm:18 lib/Locale/Po4a/Ini.pm:12 #: lib/Locale/Po4a/KernelHelp.pm:11 lib/Locale/Po4a/LaTeX.pm:12 #: lib/Locale/Po4a/Man.pm:111 lib/Locale/Po4a/Pod.pm:25 #: lib/Locale/Po4a/RubyDoc.pm:18 lib/Locale/Po4a/Sgml.pm:58 #: lib/Locale/Po4a/TeX.pm:122 lib/Locale/Po4a/Texinfo.pm:18 #: lib/Locale/Po4a/Text.pm:47 lib/Locale/Po4a/Wml.pm:13 #: lib/Locale/Po4a/Xhtml.pm:19 lib/Locale/Po4a/Xml.pm:191 #: lib/Locale/Po4a/Yaml.pm:19 msgid "COPYRIGHT AND LICENSE" msgstr "" #. type: textblock #: po4a:194 po4a-gettextize:81 po4a-normalize:41 po4a-translate:55 #: po4a-updatepo:58 msgid "Copyright 2002-2023 by SPI, inc." msgstr "" #. type: textblock #: po4a:195 po4a-gettextize:82 po4a-normalize:42 po4a-translate:56 #: po4a-updatepo:59 msguntypot:36 lib/Locale/Po4a/AsciiDoc.pm:60 #: lib/Locale/Po4a/BibTeX.pm:15 lib/Locale/Po4a/Chooser.pm:16 #: lib/Locale/Po4a/Common.pm:32 lib/Locale/Po4a/Dia.pm:18 #: lib/Locale/Po4a/Docbook.pm:21 lib/Locale/Po4a/Guide.pm:16 #: lib/Locale/Po4a/Halibut.pm:20 lib/Locale/Po4a/Ini.pm:14 #: lib/Locale/Po4a/KernelHelp.pm:13 lib/Locale/Po4a/LaTeX.pm:14 #: lib/Locale/Po4a/Man.pm:113 lib/Locale/Po4a/Pod.pm:27 #: lib/Locale/Po4a/Sgml.pm:60 lib/Locale/Po4a/TeX.pm:124 #: lib/Locale/Po4a/Texinfo.pm:20 lib/Locale/Po4a/Text.pm:50 #: lib/Locale/Po4a/Wml.pm:15 lib/Locale/Po4a/Xhtml.pm:21 #: lib/Locale/Po4a/Xml.pm:193 lib/Locale/Po4a/Yaml.pm:21 msgid "" "This program is free software; you may redistribute it and/or modify it " "under the terms of GPL v2.0 or later (see the COPYING file)." msgstr "" #. type: textblock #: po4a-gettextize:2 msgid "" "po4a-gettextize - convert an original file (and its translation) to a PO " "file" msgstr "" #. type: textblock #: po4a-gettextize:4 msgid "" "B<po4a-gettextize> B<-f> I<fmt> B<-m> I<master.doc> B<-l> I<XX.doc> B<-p> " "I<XX.po>" msgstr "" #. type: textblock #: po4a-gettextize:5 msgid "(I<XX.po> is the output, all others are inputs)" msgstr "" #. type: textblock #: po4a-gettextize:8 msgid "" "The B<po4a-gettextize> script helps you converting your previously existing " "translations into a po4a-based workflow. This is only to be done once to " "salvage an existing translation while converting to po4a, not on a regular " "basis after the conversion of your project. This tedious process is " "explained in details in Section 'Converting a manual translation to po4a' " "below." msgstr "" #. type: textblock #: po4a-gettextize:9 msgid "" "You must provide both a master file (e.g., the source in English) and an " "existing translated file (e.g., a previous translation attempt without " "po4a). If you provide more than one master or translation files, they will " "be used in sequence, but it may be easier to gettextize each page or chapter " "separately and then use B<msgmerge> to merge all produced PO files. As you " "wish." msgstr "" #. type: textblock #: po4a-gettextize:10 msgid "" "If the master document has non-ASCII characters, the new generated PO file " "will be in UTF-8. If the master document is completely in ASCII, the " "generated PO will use the encoding of the translated input document." msgstr "" #. type: =item #: po4a-gettextize:12 po4a-normalize:26 po4a-translate:10 po4a-updatepo:12 msgid "B<-f>, B<--format>" msgstr "" #. type: textblock #: po4a-gettextize:13 po4a-normalize:27 po4a-translate:11 po4a-updatepo:13 msgid "" "Format of the documentation you want to handle. Use the B<--help-format> " "option to see the list of available formats." msgstr "" #. type: =item #: po4a-gettextize:14 po4a-translate:16 po4a-updatepo:14 msgid "B<-m>, B<--master>" msgstr "" #. type: textblock #: po4a-gettextize:15 msgid "" "File containing the master document to translate. You can use this option " "multiple times if you want to gettextize multiple documents." msgstr "" #. type: textblock #: po4a-gettextize:17 po4a-normalize:29 po4a-translate:19 msgid "Charset of the file containing the document to translate." msgstr "" #. type: =item #: po4a-gettextize:18 po4a-normalize:30 po4a-translate:20 msgid "B<-l>, B<--localized>" msgstr "" #. type: textblock #: po4a-gettextize:19 msgid "" "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." msgstr "" #. type: textblock #: po4a-gettextize:21 po4a-translate:23 msgid "Charset of the file containing the localized document." msgstr "" #. type: =item #: po4a-gettextize:22 po4a-translate:24 po4a-updatepo:18 msgid "B<-p>, B<--po>" msgstr "" #. type: textblock #: po4a-gettextize:23 msgid "" "File where the message catalog should be written. If not given, the message " "catalog will be written to the standard output." msgstr "" #. type: =item #: po4a-gettextize:28 po4a-normalize:24 po4a-translate:34 po4a-updatepo:30 msgid "B<--help-format>" msgstr "" #. type: textblock #: po4a-gettextize:29 po4a-normalize:25 po4a-translate:35 po4a-updatepo:31 msgid "List the documentation formats understood by po4a." msgstr "" #. type: =item #: po4a-gettextize:30 msgid "B<-k> B<--keep-temps>" msgstr "" #. type: textblock #: po4a-gettextize:31 msgid "" "Keep the temporary master and localized POT files built before merging. " "This can be useful to understand why these files get desynchronized, leading " "to gettextization problems." msgstr "" #. type: =head2 #: po4a-gettextize:46 msgid "Converting a manual translation to po4a" msgstr "" #. type: textblock #: po4a-gettextize:47 msgid "" "B<po4a-gettextize> synchronizes the master and localized files to extract " "their content into a PO file. The content of the master file gives the " "B<msgid> while the content of the localized file gives the B<msgstr>. This " "process is somewhat fragile: the Nth string of the translated file is " "supposed to be the translation of the Nth string in the original." msgstr "" #. type: textblock #: po4a-gettextize:48 msgid "" "Gettextization works best if you manage to retrieve the exact version of the " "original document that was used for translation. Even so, you may need to " "fiddle with both master and localized files to align their structure if it " "was changed by the original translator, so working on files' copies is " "advised." msgstr "" #. type: textblock #: po4a-gettextize:49 msgid "" "Internally, each po4a parser reports the syntactical type of each extracted " "strings. This is how desynchronization are detected during the " "gettextization. In the example depicted below, it is very unlikely that the " "4th string in translation (of type 'chapter') is the translation of the 4th " "string in original (of type 'paragraph'). It is more likely that a new " "paragraph was added to the original, or that two original paragraphs were " "merged together in the translation." msgstr "" #. type: verbatim #: po4a-gettextize:50 #, no-wrap msgid "" " Original Translation\n" "\n" msgstr "" #. type: verbatim #: po4a-gettextize:51 #, no-wrap msgid "" " chapter chapter\n" " paragraph paragraph\n" " paragraph paragraph\n" " paragraph chapter\n" " chapter paragraph\n" " paragraph paragraph\n" "\n" msgstr "" #. type: textblock #: po4a-gettextize:52 msgid "" "B<po4a-gettextize> will verbosely diagnose any structure " "desynchronization. When this happens, you should manually edit the files to " "add fake paragraphs or remove some content here and there until the " "structure of both files actually match. Some tricks are given below to " "salvage the most of the existing translation while doing so." msgstr "" #. type: textblock #: po4a-gettextize:53 msgid "" "If you are lucky enough to have a perfect match in the file structures out " "of the box, building a correct PO file is a matter of seconds. Otherwise, " "you will soon understand why this process has such an ugly name :) Even so, " "gettextization often remains faster than translating everything again. I " "gettextized the French translation of the whole Perl documentation in one " "day despite the I<many> synchronization issues. Given the amount of text " "(2MB of original text), restarting the translation without first salvaging " "the old translations would have required several months of work. In " "addition, this grunt work is the price to pay to get the comfort of " "po4a. Once converted, the synchronization between master documents and " "translations will always be fully automatic." msgstr "" #. type: textblock #: po4a-gettextize:54 msgid "" "After a successful gettextization, the produced documents should be manually " "checked for undetected disparities and silent errors, as explained below." msgstr "" #. type: =head3 #: po4a-gettextize:55 msgid "Hints and tricks for the gettextization process" msgstr "" #. type: textblock #: po4a-gettextize:56 msgid "" "The gettextization stops as soon as a desynchronization is detected. When " "this happens, you need to edit the files as much as needed to re-align the " "files' structures. B<po4a-gettextize> is rather verbose when things go " "wrong. It reports the strings that don't match, their positions in the text, " "and the type of each of them. Moreover, the PO file generated so far is " "dumped as F<gettextization.failed.po> for further inspection." msgstr "" #. type: textblock #: po4a-gettextize:57 msgid "" "Here are some tricks to help you in this tedious process and ensure that you " "salvage the most of the previous translation:" msgstr "" #. type: textblock #: po4a-gettextize:58 msgid "" "Remove all extra content of the translations, such as the section giving " "credits to the translators. They should be added separately to B<po4a> as " "addenda (see L<po4a(7)>)." msgstr "" #. type: textblock #: po4a-gettextize:59 msgid "" "When editing the files to align their structures, prefer editing the " "translation if possible. Indeed, if the changes to the original are too " "intrusive, the old and new versions will not be matched during the first " "po4a run after gettextization (see below). Any unmatched translation will be " "dumped anyway. That being said, you still want to edit the original " "document if it's too hard to get the gettextization to proceed otherwise, " "even if it means that one paragraph of the translation is dumped. The " "important thing is to get a first PO file to start with." msgstr "" #. type: textblock #: po4a-gettextize:60 msgid "" "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." msgstr "" #. type: textblock #: po4a-gettextize:61 msgid "" "You should probably inform the original author of any structural change in " "the translation that seems justified. Issues in the original document should " "reported to the author. Fixing them in your translation only fixes them for " "a part of the community. Plus, it is impossible to do so when using po4a ;) " "But you probably want to wait until the end of the conversion to B<po4a> " "before changing the original files." msgstr "" #. type: textblock #: po4a-gettextize:62 msgid "" "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." msgstr "" #. type: textblock #: po4a-gettextize:63 msgid "" "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." msgstr "" #. type: textblock #: po4a-gettextize:64 msgid "" "Sometimes, the desynchronization message seems odd because the translation " "is attached to the wrong original paragraph. It is the sign of an undetected " "issue earlier in the process. Search for the actual desynchronization point " "by inspecting the file F<gettextization.failed.po> that was produced, and " "fix the problem where it really is." msgstr "" #. type: textblock #: po4a-gettextize:65 msgid "" "Other issues may come from duplicated strings in either the original or " "translation. Duplicated strings are merged in PO files, with two " "references. This constitutes a difficulty for the gettextization algorithm, " "that is a simple one to one pairing between the B<msgid>s of both the master " "and the localized files. It is however believed that recent versions of po4a " "deal properly with duplicated strings, so you should report any remaining " "issue that you may encounter." msgstr "" #. type: =head2 #: po4a-gettextize:66 msgid "Reviewing files produced by B<po4a-gettextize>" msgstr "" #. type: textblock #: po4a-gettextize:67 msgid "" "Any file produced by B<po4a-gettextize> should be manually reviewed, even " "when the script terminates successfully. You should skim over the PO file, " "ensuring that the B<msgid> and B<msgstr> actually match. It is not necessary " "to ensure that the translation is perfectly correct yet, as all entries are " "marked as fuzzy translations anyway. You only need to check for obvious " "matching issues because badly matched translations will be dumped in " "subsequent steps while you want to salvage them." msgstr "" #. type: textblock #: po4a-gettextize:68 msgid "" "Fortunately, this step does not require to master the target languages as " "you only want to recognize similar elements in each B<msgid> and its " "corresponding B<msgstr>. As a speaker of French, English, and some German " "myself, I can do this for all European languages at least, even if I cannot " "say one word of most of these languages. I sometimes manage to detect " "matching issues in non-Latin languages by looking at string length, phrase " "structures (does the amount of interrogation marks match?) and other clues, " "but I prefer when someone else can review those languages." msgstr "" #. type: textblock #: po4a-gettextize:69 msgid "" "If you detect a mismatch, edit the original and translation files as if " "B<po4a-gettextize> reported an error, and try again. Once you have a decent " "PO file for your previous translation, backup it until you get po4a working " "correctly." msgstr "" #. type: =head2 #: po4a-gettextize:70 msgid "Running B<po4a> for the first time" msgstr "" #. type: textblock #: po4a-gettextize:71 msgid "" "The easiest way to setup po4a is to write a B<po4a.conf> configuration file, " "and use the integrated B<po4a> program (B<po4a-updatepo> and " "B<po4a-translate> are deprecated). Please check the \"CONFIGURATION FILE\" " "Section in L<po4a(1)> documentation for more details." msgstr "" #. type: textblock #: po4a-gettextize:72 msgid "" "When B<po4a> runs for the first time, the current version of the master " "documents will be used to update the PO files containing the old " "translations that you salvaged through gettextization. This can take quite a " "long time, because many of the B<msgid>s of from the gettextization do not " "exactly match the elements of the POT file built from the recent master " "files. This forces gettext to search for the closest one using a costly " "string proximity algorithm. For example, the first run over the Perl " "documentation's French translation (5.5 MB PO file) took about 48 hours " "(yes, two days) while the subsequent ones only take seconds." msgstr "" #. type: =head2 #: po4a-gettextize:73 msgid "Moving your translations to production" msgstr "" #. type: textblock #: po4a-gettextize:74 msgid "" "After this first run, the PO files are ready to be reviewed by " "translators. All entries were marked as fuzzy in the PO file by " "B<po4a-gettextization>, forcing their careful review before use. Translators " "should take each entry to verify that the salvaged translation actually " "match the current original text, update the translation on need, and remove " "the fuzzy markers." msgstr "" #. type: textblock #: po4a-gettextize:75 msgid "" "Once enough fuzzy markers are removed, B<po4a> will start generating the " "translation files on disk, and you're ready to move your translation " "workflow to production. Some projects find it useful to rely on weblate to " "coordinate between translators and maintainers, but that's beyond B<po4a>' " "scope." msgstr "" #. type: textblock #: po4a-gettextize:77 msgid "" "L<po4a(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, " "L<po4a(7)>." msgstr "" #. type: textblock #: po4a-normalize:2 msgid "" "po4a-normalize - normalize a documentation file by parsing it in po4a, and " "writing it back" msgstr "" #. type: textblock #: po4a-normalize:4 msgid "B<po4a-normalize> B<-f> I<fmt> I<master.doc>" msgstr "" #. type: textblock #: po4a-normalize:6 po4a-translate:7 po4a-updatepo:7 #: lib/Locale/Po4a/AsciiDoc.pm:4 lib/Locale/Po4a/BibTeX.pm:4 #: lib/Locale/Po4a/Dia.pm:4 lib/Locale/Po4a/Docbook.pm:4 #: lib/Locale/Po4a/Guide.pm:4 lib/Locale/Po4a/Halibut.pm:4 #: lib/Locale/Po4a/LaTeX.pm:4 lib/Locale/Po4a/Man.pm:4 #: lib/Locale/Po4a/RubyDoc.pm:4 lib/Locale/Po4a/Sgml.pm:4 #: lib/Locale/Po4a/TeX.pm:4 lib/Locale/Po4a/Texinfo.pm:4 #: lib/Locale/Po4a/Text.pm:4 lib/Locale/Po4a/TransTractor.pm:4 #: lib/Locale/Po4a/Wml.pm:4 lib/Locale/Po4a/Xhtml.pm:4 lib/Locale/Po4a/Xml.pm:4 msgid "" "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." msgstr "" #. type: textblock #: po4a-normalize:7 msgid "" "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." msgstr "" #. type: textblock #: po4a-normalize:8 msgid "" "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." msgstr "" #. type: =item #: po4a-normalize:14 msgid "B<-b>, B<--blank>" msgstr "" #. type: textblock #: po4a-normalize:15 msgid "" "Create a blank translated document. The generated translated document will " "be generated assuming all messages are translated by a space or new line." msgstr "" #. type: textblock #: po4a-normalize:16 msgid "This is useful to check what parts of the document cannot be translated." msgstr "" #. type: textblock #: po4a-normalize:17 po4a-normalize:21 msgid "Both B<--blank> and B<--capitalize> can't be specified at the same time." msgstr "" #. type: =item #: po4a-normalize:18 msgid "B<-C>, B<--capitalize>" msgstr "" #. type: textblock #: po4a-normalize:19 msgid "" "Create a translated document and corresponding po-file with original strings " "translated as their capitalized versions." msgstr "" #. type: textblock #: po4a-normalize:20 msgid "" "This is useful to check what parts of the document cannot be translated and " "generate test data for po4a." msgstr "" #. type: textblock #: po4a-normalize:31 msgid "" "Name of the normalized file to produce (I<po4a-normalize.output> by " "default)." msgstr "" #. type: =item #: po4a-normalize:32 msgid "B<-p>, B<--pot>" msgstr "" #. type: textblock #: po4a-normalize:33 msgid "Pot file to produce (I<po4a-normalize.po> by default)." msgstr "" #. type: textblock #: po4a-normalize:37 msgid "L<po4a-gettextize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" msgstr "" #. type: textblock #: po4a-translate:2 msgid "po4a-translate - convert a PO file back to documentation format" msgstr "" #. type: textblock #: po4a-translate:4 msgid "" "B<po4a-translate> B<-f> I<fmt> B<-m> I<master.doc> B<-p> I<XX.po> B<-l> " "I<XX.doc>" msgstr "" #. type: textblock #: po4a-translate:5 msgid "(I<XX.doc> is the output, all others are inputs)" msgstr "" #. type: textblock #: po4a-translate:8 msgid "" "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)>." msgstr "" #. type: =item #: po4a-translate:12 msgid "B<-a>, B<--addendum>" msgstr "" #. type: textblock #: po4a-translate:13 msgid "" "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)>)." msgstr "" #. type: textblock #: po4a-translate:17 msgid "File containing the master document to translate." msgstr "" #. type: textblock #: po4a-translate:21 msgid "File where the localized (translated) document should be written." msgstr "" #. type: textblock #: po4a-translate:25 msgid "File from which the message catalog should be read." msgstr "" #. type: textblock #: po4a-translate:29 msgid "" "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." msgstr "" #. type: =item #: po4a-translate:42 po4a-updatepo:38 msgid "B<--porefs> I<type>[,B<wrap>|B<nowrap>]" msgstr "" #. type: textblock #: po4a-translate:44 po4a-updatepo:40 msgid "" "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." msgstr "" #. type: =head1 #: po4a-translate:45 msgid "Adding content (beside translations) to generated files" msgstr "" #. type: textblock #: po4a-translate:46 msgid "" "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." msgstr "" #. type: textblock #: po4a-translate:47 msgid "" "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." msgstr "" #. type: textblock #: po4a-translate:48 msgid "" "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)." msgstr "" #. type: textblock #: po4a-translate:49 msgid "" "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." msgstr "" #. type: textblock #: po4a-translate:51 msgid "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" msgstr "" #. type: textblock #: po4a-updatepo:2 msgid "po4a-updatepo - update the translation (in PO format) of documentation" msgstr "" #. type: textblock #: po4a-updatepo:4 msgid "B<po4a-updatepo> B<-f> I<fmt> (B<-m> I<master.doc>)+ (B<-p> I<XX.po>)+" msgstr "" #. type: textblock #: po4a-updatepo:5 msgid "(I<XX.po> are the outputs, all others are inputs)" msgstr "" #. type: textblock #: po4a-updatepo:8 msgid "" "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." msgstr "" #. type: textblock #: po4a-updatepo:9 msgid "" "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)." msgstr "" #. type: textblock #: po4a-updatepo:10 msgid "" "If the master document has non-ASCII characters, this script will convert " "the PO files to UTF-8 (if they weren't already), for a transparent handling " "of non-standard characters." msgstr "" #. type: textblock #: po4a-updatepo:15 msgid "File(s) containing the master document to translate." msgstr "" #. type: textblock #: po4a-updatepo:17 msgid "" "Charset of the files containing the document to translate. Note that all " "files must have the same charset." msgstr "" #. type: textblock #: po4a-updatepo:19 msgid "" "PO file(s) to update. If these files do not exist, they are created by " "B<po4a-updatepo>." msgstr "" #. type: textblock #: po4a-updatepo:23 msgid "" "This option removes B<--previous> from the options passed to B<msgmerge>. " "This helps supporting old versions of B<gettext> (before v0.16)." msgstr "" #. type: textblock #: po4a-updatepo:43 msgid "" "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." msgstr "" #. type: textblock #: po4a-updatepo:54 msgid "" "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, " "L<po4a(7)>" msgstr "" #. type: textblock #: msguntypot:2 msgid "msguntypot - update PO files when a typo is fixed in POT file" msgstr "" #. type: textblock #: msguntypot:4 msgid "B<msguntypot> B<-o> I<old_pot> B<-n> I<new_pot> I<pofiles> ..." msgstr "" #. type: textblock #: msguntypot:6 msgid "" "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." msgstr "" #. type: textblock #: msguntypot:7 msgid "" "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." msgstr "" #. type: =head1 #: msguntypot:8 msgid "HOW TO USE IT" msgstr "" #. type: textblock #: msguntypot:9 msgid "" "In short, when you discover a typo in one of your [english] message, do the " "following:" msgstr "" #. type: =item #: msguntypot:10 msguntypot:19 msgid "- Regenerate your POT and PO files." msgstr "" #. type: verbatim #: msguntypot:11 #, no-wrap msgid "" " make -C po/ update-po # for message program translations\n" " debconf-updatepo # for debconf translations\n" " po4a po4a.conf # for po4a based documentation translations\n" "\n" msgstr "" #. type: textblock #: msguntypot:12 msgid "" "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??" msgstr "" #. type: =item #: msguntypot:13 msgid "- Make a copy of your POT file." msgstr "" #. type: verbatim #: msguntypot:14 #, no-wrap msgid "" " cp myfile.pot myfile.pot.orig\n" "\n" msgstr "" #. type: =item #: msguntypot:15 msgid "- Make a copy of all your PO files." msgstr "" #. type: verbatim #: msguntypot:16 #, no-wrap msgid "" " mkdir po_fridge; cp *.po po_fridge\n" "\n" msgstr "" #. type: =item #: msguntypot:17 msgid "- Fix your typo." msgstr "" #. type: textblock #: msguntypot:18 msgid "$EDITOR the_file_in_which_there_is_a_typo" msgstr "" #. type: textblock #: msguntypot:20 msgid "See above." msgstr "" #. type: textblock #: msguntypot:21 msgid "" "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." msgstr "" #. type: =item #: msguntypot:22 msgid "- Discard fuzzy translation, restore the ones from the fridge." msgstr "" #. type: verbatim #: msguntypot:23 #, no-wrap msgid "" " cp po_fridge/*.po .\n" "\n" msgstr "" #. type: =item #: msguntypot:24 msgid "" "- Manually merge the PO files with the new POT file, but taking the useless " "fuzzy into account." msgstr "" #. type: verbatim #: msguntypot:25 #, no-wrap msgid "" " msguntypot -o myfile.pot.orig -n myfile.pot *.po\n" "\n" msgstr "" #. type: =item #: msguntypot:26 msgid "- Cleanups." msgstr "" #. type: verbatim #: msguntypot:27 #, no-wrap msgid "" " rm -rf myfile.pot.orig po_fridge\n" "\n" msgstr "" #. type: textblock #: msguntypot:28 msgid "" "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." msgstr "" #. type: textblock #: msguntypot:30 msgid "" "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:" msgstr "" #. type: textblock #: msguntypot:31 msgid "L<po4a(7)>" msgstr "" #. type: verbatim #: msguntypot:33 #, no-wrap msgid "" " Martin Quinson (mquinson#debian,org)\n" "\n" msgstr "" #. type: textblock #: msguntypot:35 msgid "Copyright 2005 by SPI, inc." msgstr "" #. type: textblock #: doc/po4a.7.pod:2 msgid "po4a - framework to translate documentation and other materials" msgstr "" #. type: =head1 #: doc/po4a.7.pod:3 msgid "Introduction" msgstr "" #. type: textblock #: doc/po4a.7.pod:4 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:5 msgid "" "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." msgstr "" #. type: =head1 #: doc/po4a.7.pod:6 msgid "Why po4a?" msgstr "" #. type: textblock #: doc/po4a.7.pod:7 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:8 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:9 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:10 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:11 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:12 msgid "" "B<The goal of the po4a project is to ease the work of documentation " "translators>. In particular, it makes documentation translations " "I<maintainable>." msgstr "" #. type: textblock #: doc/po4a.7.pod:13 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:14 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:15 msgid "" "Please also see the B<FAQ> below in this document for a more complete list " "of the advantages and disadvantages of this approach." msgstr "" #. type: =head2 #: doc/po4a.7.pod:16 msgid "Supported formats" msgstr "" #. type: textblock #: doc/po4a.7.pod:17 msgid "" "Currently, this approach has been successfully implemented to several kinds " "of text formatting formats:" msgstr "" #. type: =item #: doc/po4a.7.pod:18 msgid "man (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:19 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:20 msgid "" "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)." msgstr "" #. type: =item #: doc/po4a.7.pod:21 msgid "AsciiDoc (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:22 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:23 msgid "See L<Locale::Po4a::AsciiDoc> for details." msgstr "" #. type: =item #: doc/po4a.7.pod:24 msgid "pod (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:25 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:26 msgid "See L<Locale::Po4a::Pod> for details." msgstr "" #. type: =item #: doc/po4a.7.pod:27 msgid "sgml (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:28 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:29 msgid "" "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." msgstr "" #. type: =item #: doc/po4a.7.pod:30 msgid "TeX / LaTeX (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:31 msgid "" "The LaTeX format is a major documentation format used in the Free Software " "world and for publications." msgstr "" #. type: textblock #: doc/po4a.7.pod:32 msgid "" "The L<Locale::Po4a::LaTeX(3pm)|LaTeX> module was tested with the Python " "documentation, a book and some presentations." msgstr "" #. type: =item #: doc/po4a.7.pod:33 msgid "text (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:34 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:35 msgid "" "This supports the common format used in Static Site Generators, READMEs, and " "other documentation systems. See L<Locale::Po4a::Text(3pm)|Text> for " "details." msgstr "" #. type: =item #: doc/po4a.7.pod:36 msgid "xml and XHMTL (probably mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:37 msgid "The XML format is a base format for many documentation formats." msgstr "" #. type: textblock #: doc/po4a.7.pod:38 msgid "" "Currently, the DocBook DTD (see L<Locale::Po4a::Docbook(3pm)> for details) " "and XHTML are supported by po4a." msgstr "" #. type: =item #: doc/po4a.7.pod:39 msgid "BibTex (probably mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:40 msgid "" "The BibTex format is used alongside LaTex for formatting lists of references " "(bibliographies)." msgstr "" #. type: textblock #: doc/po4a.7.pod:41 msgid "See L<Locale::Po4a::BibTex> for details." msgstr "" #. type: =item #: doc/po4a.7.pod:42 msgid "Docbook (probably mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:43 msgid "A XML-based markup language that uses semantic tags to describe documents." msgstr "" #. type: textblock #: doc/po4a.7.pod:44 msgid "See L<Locale::Po4a:Docbook> for greater details." msgstr "" #. type: =item #: doc/po4a.7.pod:45 msgid "Guide XML (probably mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:46 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:47 msgid "See L<Locale::Po4a:Guide> for greater details." msgstr "" #. type: =item #: doc/po4a.7.pod:48 msgid "Wml (probably mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:49 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:50 msgid "See L<Locale::Po4a::Wml> for greater details." msgstr "" #. type: =item #: doc/po4a.7.pod:51 msgid "Yaml (probably mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:52 msgid "" "A strict superset of JSON. YAML is often used as systems or configuration " "projects. YAML is at the core of Red Hat's Ansible." msgstr "" #. type: textblock #: doc/po4a.7.pod:53 msgid "See L<Locale::Po4a::Yaml> for greater details." msgstr "" #. type: =item #: doc/po4a.7.pod:54 msgid "RubyDoc (probably mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:55 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:56 msgid "See L<Locale::Po4a::RubyDoc> for greater details." msgstr "" #. type: =item #: doc/po4a.7.pod:57 msgid "Halibut (probably experimental parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:58 msgid "" "A documentation production system, with elements similar to TeX, " "debiandoc-sgml, TeXinfo, and others, developed by Simon Tatham, the " "developer of PuTTY." msgstr "" #. type: textblock #: doc/po4a.7.pod:59 msgid "See L<Locale::Po4a:Halibut> for greater details." msgstr "" #. type: =item #: doc/po4a.7.pod:60 msgid "Ini (probably experimental parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:61 msgid "Configuration file format popularized by MS-DOS." msgstr "" #. type: textblock #: doc/po4a.7.pod:62 msgid "See L<Locale::Po4a::Ini> for greater details." msgstr "" #. type: =item #: doc/po4a.7.pod:63 msgid "texinfo (very highly experimental parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:64 msgid "" "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." msgstr "" #. type: =item #: doc/po4a.7.pod:65 msgid "gemtext (very highly experimental parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:66 msgid "" "The native plain text format of the Gemini protocol. The extension \".gmi\" " "is commonly used. Support for this module in po4a is still in its infancy. " "If you find anything, please file a bug or feature request." msgstr "" #. type: =item #: doc/po4a.7.pod:67 msgid "Others supported formats" msgstr "" #. type: textblock #: doc/po4a.7.pod:68 msgid "" "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." msgstr "" #. type: =item #: doc/po4a.7.pod:69 msgid "Unsupported formats" msgstr "" #. type: textblock #: doc/po4a.7.pod:70 msgid "" "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." msgstr "" #. type: =head1 #: doc/po4a.7.pod:71 msgid "Using po4a" msgstr "" #. type: textblock #: doc/po4a.7.pod:72 msgid "" "The easiest way to use this tool in your project is to write a configuration " "file for the B<po4a> program, and only interact with this program. Please " "refer to its documentation, in L<po4a(1)>. The rest of this section provides " "more details for the advanced users of po4a wanting to deepen their " "understanding." msgstr "" #. type: =head2 #: doc/po4a.7.pod:73 msgid "Detailed schema of the po4a workflow" msgstr "" #. type: textblock #: doc/po4a.7.pod:74 msgid "" "Make sure to read L<po4a(1)> before this overly detailed section to get a " "simplified overview of the po4a workflow. Come back here when you want to " "get the full scary picture, with almost all details." msgstr "" #. type: textblock #: doc/po4a.7.pod:75 msgid "" "In the following schema, 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 AsciidDoc " "file, etc); the translators will be mostly concerned with the PO file, while " "the end users will only see the F<XX.doc> file." msgstr "" #. type: textblock #: doc/po4a.7.pod:76 msgid "" "Transitions with square brackets such as C<[po4a updates po]> represent the " "execution of a po4a tool while transitions with curly brackets such as " "C<{update of master.doc}> represent a manual modification of the project's " "files." msgstr "" #. type: verbatim #: doc/po4a.7.pod:77 #, no-wrap msgid "" " master.doc\n" " |\n" " V\n" " +<-----<----+<-----<-----<--------+------->-------->-------+\n" " : | | :\n" "{translation} | {update of master.doc} :\n" " : | | :\n" " XX.doc | V V\n" " (optional) | master.doc ->-------->------>+\n" " : | (new) |\n" " V V | |\n" " [po4a-gettextize] doc.XX.po -->+ | |\n" " | (old) | | |\n" " | ^ V V |\n" " | | [po4a updates po] |\n" " V | | V\n" " translation.pot ^ V |\n" " | | doc.XX.po |\n" " | | (fuzzy) |\n" " {translation} | | |\n" " | ^ V V\n" " | | {manual editing} |\n" " | | | |\n" " V | V V\n" " doc.XX.po --->---->+<---<-- doc.XX.po addendum master.doc\n" " (initial) (up-to-date) (optional) (up-to-date)\n" " : | | |\n" " : V | |\n" " +----->----->----->------> + | |\n" " | | |\n" " V V V\n" " +------>-----+------<------+\n" " |\n" " V\n" " [po4a updates translations]\n" " |\n" " V\n" " XX.doc\n" " (up-to-date)\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:78 msgid "" "Again, this schema is overly complicated. Check on L<po4a(1)> for a " "simplified overview." msgstr "" #. type: textblock #: doc/po4a.7.pod:79 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:80 msgid "" "On the top right part, the action of the original author is depicted, " "updating the documentation. The middle right part depicts the automatic " "updates of translation files: 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." msgstr "" #. type: textblock #: doc/po4a.7.pod:81 msgid "" "Then, the I<manual editing> block 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." msgstr "" #. type: textblock #: doc/po4a.7.pod:82 msgid "" "The bottom part of the figure shows how B<po4a> 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." msgstr "" #. type: textblock #: doc/po4a.7.pod:83 msgid "" "Upon invocation, B<po4a> updates both the translation files and the " "translated documentation files automatically." msgstr "" #. type: =head2 #: doc/po4a.7.pod:84 msgid "Starting a new translation project" msgstr "" #. type: textblock #: doc/po4a.7.pod:85 msgid "" "If you start from scratch, you just have to write a configuration file for " "po4a, and you are set. The relevant templates are created for the missing " "files, allowing your contributors to translate your project to their " "language. Please refer to L<po4a(1)> for a quick start tutorial and for all " "details." msgstr "" #. type: textblock #: doc/po4a.7.pod:86 msgid "" "If you have an existing translation, i.e. a documentation file that was " "translated manually, you can integrate its content in your po4a workflow " "using B<po4a-gettextize>. This task is a bit cumbersome (as described in the " "tool's manpage), but once your project is converted to po4a workflow, " "everything will be updated automatically." msgstr "" #. type: =head2 #: doc/po4a.7.pod:87 msgid "Updating the translations and documents" msgstr "" #. type: textblock #: doc/po4a.7.pod:88 msgid "" "Once setup, invoking B<po4a> is enough to update both the translation PO " "files and translated documents. You may pass the C<--no-translations> to " "B<po4a> to not update the translations (thus only updating the PO files) or " "C<--no-update> to not update the PO files (thus only updating the " "translations). This roughly corresponds to the individual B<po4a-updatepo> " "and B<po4a-translate> scripts which are now deprecated (see \"Why are the " "individual scripts deprecated\" in the FAQ below)." msgstr "" #. type: =head2 #: doc/po4a.7.pod:89 msgid "Using addenda to add extra text to translations" msgstr "" #. type: textblock #: doc/po4a.7.pod:90 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:91 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:92 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:93 msgid "" "For example, the following header declares an addendum that must be placed " "at the very end of the translation." msgstr "" #. type: verbatim #: doc/po4a.7.pod:94 #, no-wrap msgid "" " PO4A-HEADER: mode=eof\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:95 msgid "" "Things are more complex when you want to add your extra content in the " "middle of the document. The following header declares an addendum that must " "be placed after the XML section containing the string C<About this document> " "in translation." msgstr "" #. type: verbatim #: doc/po4a.7.pod:96 #, no-wrap msgid "" " PO4A-HEADER: position=About this document; mode=after; " "endboundary=</section>\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:97 msgid "" "In practice, when trying to apply an addendum, po4a searches for the first " "line matching the C<position> argument (this can be a regexp). Do not forget " "that po4a considers the B<translated> document here. This documentation is " "in English, but your line should probably read as follows if you intend your " "addendum to apply to the French translation of the document." msgstr "" #. type: verbatim #: doc/po4a.7.pod:98 #, no-wrap msgid "" " PO4A-HEADER: position=À propos de ce document; mode=after; " "endboundary=</section>\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:99 msgid "" "Once the C<position> is found in the target document, po4a searches for the " "next line after the C<position> that matches the provided " "C<endboundary>. The addendum is added right B<after> that line (because we " "provided an I<endboundary>, i.e. a boundary ending the current section)." msgstr "" #. type: textblock #: doc/po4a.7.pod:100 msgid "" "The exact same effect could be obtained with the following header, that is " "equivalent:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:101 #, no-wrap msgid "" " PO4A-HEADER: position=About this document; mode=after; " "beginboundary=<section>\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:102 msgid "" "Here, po4a searches for the first line matching C<< <section> >> after the " "line matching C<About this document> in the translation, and add the " "addendum B<before> that line since we provided a I<beginboundary>, i.e. a " "boundary marking the beginning of the next section. So this header line " "requires placing the addendum after the section containing C<About this " "document>, and instruct po4a that a section starts with a line containing " "the C<< <section> >> tag. This is equivalent to the previous example because " "what you really want is to add this addendum either after C<< </section> >> " "or before C<< <section> >>." msgstr "" #. type: textblock #: doc/po4a.7.pod:103 msgid "" "You can also set the insertion I<mode> to the value C<before>, with a " "similar semantic: combining C<mode=before> with an C<endboundary> will put " "the addendum just B<after> the matched boundary, that is the last potential " "boundary line before the C<position>. Combining C<mode=before> with an " "C<beginboundary> will put the addendum just B<before> the matched boundary, " "that is the last potential boundary line before the C<position>." msgstr "" #. type: verbatim #: doc/po4a.7.pod:104 #, no-wrap msgid "" " Mode | Boundary kind | Used boundary | Insertion point compared " "to the boundary\n" " " "========|===============|========================|=========================================\n" " 'before'| 'endboundary' | last before 'position' | Right after the selected " "boundary\n" " 'before'|'beginboundary'| last before 'position' | Right before the " "selected boundary\n" " 'after' | 'endboundary' | first after 'position' | Right after the selected " "boundary\n" " 'after' |'beginboundary'| first after 'position' | Right before the " "selected boundary\n" " 'eof' | (none) | n/a | End of file\n" "\n" msgstr "" #. type: =head3 #: doc/po4a.7.pod:105 msgid "Hint and tricks about addenda" msgstr "" #. type: textblock #: doc/po4a.7.pod:106 msgid "" "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$>." msgstr "" #. type: textblock #: doc/po4a.7.pod:107 msgid "" "White spaces ARE important in the content of the C<position> and " "boundaries. So the two following lines B<are different>. The second one will " "only be found if there is enough trailing spaces in the translated document." msgstr "" #. type: verbatim #: doc/po4a.7.pod:108 #, no-wrap msgid "" " PO4A-HEADER: position=About this document; mode=after; " "beginboundary=<section>\n" " PO4A-HEADER: position=About this document ; mode=after; " "beginboundary=<section>\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:109 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:110 msgid "" "Pass the C<-vv> argument to B<po4a> to understand how the addenda are added " "to the translation. It may also help to run B<po4a> in debug mode to see the " "actual internal data string when your addendum does not apply." msgstr "" #. type: =head3 #: doc/po4a.7.pod:111 msgid "Addenda examples" msgstr "" #. type: textblock #: doc/po4a.7.pod:112 msgid "If you want to add something after the following nroff section:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:113 #, no-wrap msgid "" " .SH \"AUTHORS\"\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:114 msgid "" "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:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:115 #, no-wrap msgid "" " PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\\.SH\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:116 msgid "" "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." msgstr "" #. type: verbatim #: doc/po4a.7.pod:117 #, no-wrap msgid "" " PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:118 msgid "" "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." msgstr "" #. type: verbatim #: doc/po4a.7.pod:119 #, no-wrap msgid "" " PO4A-HEADER:mode=after;position=About this " "document;beginboundary=FakePo4aBoundary\n" "\n" msgstr "" #. type: =head3 #: doc/po4a.7.pod:120 msgid "More detailed example" msgstr "" #. type: textblock #: doc/po4a.7.pod:121 msgid "Original document (POD formatted):" msgstr "" #. type: verbatim #: doc/po4a.7.pod:122 #, no-wrap msgid "" " |=head1 NAME\n" " |\n" " |dummy - a dummy program\n" " |\n" " |=head1 AUTHOR\n" " |\n" " |me\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:123 msgid "" "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\")." msgstr "" #. type: verbatim #: doc/po4a.7.pod:124 #, no-wrap msgid "" " |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head\n" " |\n" " |=head1 TRADUCTEUR\n" " |\n" " |moi\n" " |\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:125 msgid "To put your addendum before the AUTHOR, use the following header:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:126 #, no-wrap msgid "" " PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:127 msgid "" "This works because the next line matching the B<beginboundary> C</^=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." msgstr "" #. type: textblock #: doc/po4a.7.pod:128 msgid "To avoid this you may accomplish the same using B<mode>=I<before>:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:129 #, no-wrap msgid "" " PO4A-HEADER:mode=before;position=^=head1 AUTEUR\n" "\n" msgstr "" #. type: =head1 #: doc/po4a.7.pod:130 msgid "How does it work?" msgstr "" #. type: textblock #: doc/po4a.7.pod:131 msgid "" "This chapter gives you a brief overview of the po4a internals, so that you " "may feel more confident to help us to maintain and to improve it. It may " "also help you to understand why it does not do what you expected, and how to " "solve your problems." msgstr "" #. type: =head2 #: doc/po4a.7.pod:132 msgid "TransTractors and project architecture" msgstr "" #. type: textblock #: doc/po4a.7.pod:133 msgid "" "At the core of the po4a project, 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." msgstr "" #. type: textblock #: doc/po4a.7.pod:134 msgid "" "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 as " "the input one, but with all translatable strings replaced with content of " "the input PO). Here is a graphical representation of this:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:135 #, no-wrap msgid "" " Input document --\\ /---> Output document\n" " \\ TransTractor:: / (translated)\n" " +-->-- parse() --------+\n" " / \\\n" " Input PO --------/ \\---> Output PO\n" " (extracted)\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:136 msgid "" "This little bone is the core of all the po4a architecture. If you provide " "both input and disregard the output PO, you get B<po4a-translate>. If you " "disregard the output document instead, you get B<po4a-updatepo>. The B<po4a> " "uses a first TransTractor to get an up-to-date output POT file (disregarding " "the output documents), calls B<msgmerge -U> to update the translation PO " "files on disk, and builds a second TransTractor with these updated PO files " "to update the output documents. In short, B<po4a> provides one-stop solution " "to update what needs to be, using a single configuration file." msgstr "" #. type: textblock #: doc/po4a.7.pod:137 msgid "" "B<po4a-gettextize> also uses two TransTractors, but another way: It builds " "one TransTractor per language, and then build a new PO file using the msgids " "of the original document as msgids, and the msgids of the translated " "document as msgstrs. Much care is needed to ensure that the strings matched " "this way actually match, as described in L<po4a-gettextize(1)>." msgstr "" #. type: =head2 #: doc/po4a.7.pod:138 msgid "Format-specific parsers" msgstr "" #. type: textblock #: doc/po4a.7.pod:139 msgid "" "All po4a format parsers are implemented on top of the TransTractor. Some of " "them are very simple, such as the Text, Markdown and AsciiDoc ones. They " "load the lines one by one using C<TransTractor::shiftline()>, accumulate the " "paragraphs' content or whatever. Once a string is completely parsed, the " "parser uses C<TransTractor::translate()> to (1) add this string to the " "output PO file and (2) get the translation from the input PO file. The " "parser then pushes the result to the output file using " "C<TransTractor::pushline()>." msgstr "" #. type: textblock #: doc/po4a.7.pod:140 msgid "" "Some other parsers are more complex because they rely on an external parser " "to analyze the input document. The Xml, HTML, SGML and Pod parsers are built " "on top of SAX parsers. They declare callbacks to events such as \"I found a " "new title which content is the following\" to update the output document and " "output POT files according to the input content using " "C<TransTractor::translate()> and C<TransTractor::pushline()>. The Yaml " "parser is similar but different: it serializes a data structure produced by " "the YAML::Tiny parser. This is why the Yaml module of po4a fails to declare " "the reference lines: the location of each string in the input file is not " "kept by the parser, so we can only provide \"$filename:1\" as a string " "location. The SAX-oriented parsers use globals and other tricks to save the " "file name and line numbers of references." msgstr "" #. type: textblock #: doc/po4a.7.pod:141 msgid "" "One specific issue arises from file encodings and BOM markers. Simple " "parsers can forget about this issue, that is handled by " "C<TransTractor::read()> (used internally to get the lines of an input " "document), but the modules relying on an external parser must ensure that " "all files are read with an appropriate PerlIO decoding layer. The easiest is " "to open the file yourself, and provide an filehandle or directly the full " "string to your external parser. Check on C<Pod::read()> and C<Pod::parse()> " "for an example. The content read by the TransTractor is ignored, but a fresh " "filehandle is passed to the external parser. The important part is the C<< " "\"<:encoding($charset)\" >> mode that is passed to the B<open()> perl " "function." msgstr "" #. type: =head2 #: doc/po4a.7.pod:142 msgid "Po objects" msgstr "" #. type: textblock #: doc/po4a.7.pod:143 msgid "" "The L<Locale::Po4a::Po(3pm)|Po> class is in charge of loading and using PO " "and POT files. Basically, you can read a file, add entries, get translations " "with the B<gettext()> method, write the PO into a file. More advanced " "features such as merging a PO file against a POT file or validating a file " "are delegated to B<msgmerge> and B<msgfmt> respectively." msgstr "" #. type: =head2 #: doc/po4a.7.pod:144 msgid "Contributing to po4a" msgstr "" #. type: textblock #: doc/po4a.7.pod:145 msgid "" "Even if you have never contributed to any Open Source project in the past, " "you are welcome: we are willing to help and mentor you here. po4a is best " "maintained by its users nowadays. As we lack manpower, we try to make the " "project welcoming by improving the doc and the automatic tests to make you " "confident in contributing to the project. Please refer to the " "CONTRIBUTING.md file for more details." msgstr "" #. type: =head1 #: doc/po4a.7.pod:146 msgid "Open-source projects using po4a" msgstr "" #. type: textblock #: doc/po4a.7.pod:147 msgid "" "Here is a very partial list of projects that use po4a in production for " "their documentation. If you want to add your project to the list, just drop " "us an email (or a Merge Request)." msgstr "" #. type: textblock #: doc/po4a.7.pod:148 msgid "adduser (man): users and groups management tool." msgstr "" #. type: textblock #: doc/po4a.7.pod:149 msgid "apt (man, docbook): Debian package manager." msgstr "" #. type: textblock #: doc/po4a.7.pod:150 msgid "aptitude (docbook, svg): terminal-based package manager for Debian" msgstr "" #. type: textblock #: doc/po4a.7.pod:151 msgid "" "L<F-Droid website|https://gitlab.com/fdroid/fdroid-website> (markdown): " "installable catalog of FOSS (Free and Open Source Software) applications for " "the Android platform." msgstr "" #. type: textblock #: doc/po4a.7.pod:152 msgid "" "L<git|https://github.com/jnavila/git-manpages-l10n> (asciidoc): distributed " "version-control system for tracking changes in source code." msgstr "" #. type: textblock #: doc/po4a.7.pod:153 msgid "" "L<Linux manpages|https://salsa.debian.org/manpages-l10n-team/manpages-l10n> " "(man)" msgstr "" #. type: textblock #: doc/po4a.7.pod:154 msgid "" "This project provides an infrastructure for translating many manpages to " "different languages, ready for integration into several major distributions " "(Arch Linux, Debian and derivatives, Fedora)." msgstr "" #. type: textblock #: doc/po4a.7.pod:155 msgid "" "L<Stellarium|https://github.com/Stellarium/stellarium> (HTML): a free open " "source planetarium for your computer. po4a is used to translate the sky " "culture descriptions." msgstr "" #. type: textblock #: doc/po4a.7.pod:156 msgid "" "L<Jamulus|https://jamulus.io/> (markdown, yaml, HTML): a FOSS application " "for online jamming in real time. The website documentation is maintained in " "multiple languages using po4a." msgstr "" #. type: textblock #: doc/po4a.7.pod:157 msgid "" "Other item to sort out: L<https://gitlab.com/fdroid/fdroid-website/> " "L<https://github.com/fsfe/reuse-docs/pull/61>" msgstr "" #. type: =head1 #: doc/po4a.7.pod:158 msgid "FAQ" msgstr "" #. type: =head2 #: doc/po4a.7.pod:159 msgid "How do you pronounce po4a?" msgstr "" #. type: textblock #: doc/po4a.7.pod:160 msgid "" "I personally vocalize it as L<pouah|https://en.wiktionary.org/wiki/pouah>, " "which is a French onomatopoetic that we use in place of yuck :) I may have a " "strange sense of humor :)" msgstr "" #. type: =head2 #: doc/po4a.7.pod:161 msgid "Why are the individual scripts deprecated?" msgstr "" #. type: textblock #: doc/po4a.7.pod:162 msgid "" "Indeed, B<po4a-updatepo> and B<po4a-translate> are deprecated in favor of " "B<po4a>. The reason is that while B<po4a> can be used as a drop-in " "replacement to these scripts, there is quite a lot of code duplication " "here. Individual scripts last around 150 lines of codes while the B<po4a> " "program lasts 1200 lines, so they do a lot in addition of the common " "internals. The code duplication results in bugs occuring in both versions " "and needing two fixes. One example of such duplication are the bugs #1022216 " "in Debian and the issue #442 in GitHub that had the exact same fix, but one " "in B<po4a> and the other B<po4a-updatepo>." msgstr "" #. type: textblock #: doc/po4a.7.pod:163 msgid "" "In the long run, I would like to drop the individual scripts and only " "maintain one version of this code. The sure thing is that the individual " "scripts will not get improved anymore, so only B<po4a> will get the new " "features. That being said, there is no deprecation urgency. I plan to keep " "the individual scripts as long as possible, and at least until 2030. If your " "project still use B<po4a-updatepo> and B<po4a-translate> in 2030, you may " "have a problem." msgstr "" #. type: textblock #: doc/po4a.7.pod:164 msgid "" "We may also remove the deprecation of these scripts at some point, if a " "refactoring reduces the code duplication to zero. If you have an idea (or " "better: a patch), your help is welcome." msgstr "" #. type: =head2 #: doc/po4a.7.pod:165 msgid "What about the other translation tools for documentation using gettext?" msgstr "" #. type: textblock #: doc/po4a.7.pod:166 msgid "" "There are a few of them. Here is a possibly incomplete list, and more tools " "are coming at the horizon." msgstr "" #. type: =item #: doc/po4a.7.pod:167 msgid "B<poxml>" msgstr "" #. type: textblock #: doc/po4a.7.pod:168 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:169 msgid "" "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." msgstr "" #. type: =item #: doc/po4a.7.pod:170 msgid "B<po-debiandoc>" msgstr "" #. type: textblock #: doc/po4a.7.pod:171 msgid "" "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." msgstr "" #. type: =item #: doc/po4a.7.pod:172 msgid "B<xml2po.py>" msgstr "" #. type: textblock #: doc/po4a.7.pod:173 msgid "" "Used by the GIMP Documentation Team since 2004, works quite well even if, as " "the name suggests, only with XML files and needs specially configured " "makefiles." msgstr "" #. type: =item #: doc/po4a.7.pod:174 msgid "B<Sphinx>" msgstr "" #. type: textblock #: doc/po4a.7.pod:175 msgid "" "The Sphinx Documentation Project also uses gettext extensively to manage its " "translations. Unfortunately, it works only for a few text formats, rest and " "markdown, although it is perhaps the only tool that does this managing the " "whole translation process." msgstr "" #. type: textblock #: doc/po4a.7.pod:176 msgid "" "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." msgstr "" #. type: =head2 #: doc/po4a.7.pod:177 msgid "SUMMARY of the advantages of the gettext based approach" msgstr "" #. type: textblock #: doc/po4a.7.pod:178 msgid "" "The translations are not stored along with the original, which makes it " "possible to detect if translations become out of date." msgstr "" #. type: textblock #: doc/po4a.7.pod:179 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:180 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:181 msgid "" "Nothing changed for the end-user (beside the fact translations will " "hopefully be better maintained). The resulting documentation file " "distributed is exactly the same." msgstr "" #. type: textblock #: doc/po4a.7.pod:182 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:183 msgid "" "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:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:184 #, no-wrap msgid "" " - https://docs.kde.org/stable5/en/kdesdk/lokalize/project-view.html\n" " - http://www.debian.org/intl/l10n/\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:185 msgid "" "But everything isn't green, and this approach also has some disadvantages we " "have to deal with." msgstr "" #. type: textblock #: doc/po4a.7.pod:186 msgid "Addenda are somewhat strange at the first glance." msgstr "" #. type: textblock #: doc/po4a.7.pod:187 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:188 msgid "Even with an easy interface, it remains a new tool people have to learn." msgstr "" #. type: textblock #: doc/po4a.7.pod:189 msgid "" "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." msgstr "" #. type: textblock #: doc/po4a.7.pod:191 msgid "The documentation of the all-in-one tool that you should use: L<po4a(1)>." msgstr "" #. type: textblock #: doc/po4a.7.pod:192 msgid "" "The documentation of the individual po4a scripts: L<po4a-gettextize(1)>, " "L<po4a-updatepo(1)>, L<po4a-translate(1)>, L<po4a-normalize(1)>." msgstr "" #. type: textblock #: doc/po4a.7.pod:193 msgid "" "The additional helping scripts: L<msguntypot(1)>, L<po4a-display-man(1)>, " "L<po4a-display-pod(1)>." msgstr "" #. type: textblock #: doc/po4a.7.pod:194 msgid "" "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)>." msgstr "" #. type: textblock #: doc/po4a.7.pod:195 msgid "" "The implementation of the core infrastructure: " "L<Locale::Po4a::TransTractor(3pm)> (particularly important to understand the " "code organization), L<Locale::Po4a::Chooser(3pm)>, L<Locale::Po4a::Po(3pm)>, " "L<Locale::Po4a::Common(3pm)>. Please also check the F<CONTRIBUTING.md> file " "in the source tree." msgstr "" #. type: verbatim #: doc/po4a.7.pod:197 #, no-wrap msgid "" " Denis Barbier <barbier,linuxfr.org>\n" " Martin Quinson (mquinson#debian.org)\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:2 msgid "Locale::Po4a::AsciiDoc - convert AsciiDoc documents from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:5 msgid "" "Locale::Po4a::AsciiDoc is a module to help the translation of documentation " "in the AsciiDoc format." msgstr "" #. type: =head1 #: lib/Locale/Po4a/AsciiDoc.pm:6 lib/Locale/Po4a/BibTeX.pm:7 #: lib/Locale/Po4a/Man.pm:34 lib/Locale/Po4a/Po.pm:13 #: lib/Locale/Po4a/RubyDoc.pm:9 lib/Locale/Po4a/Sgml.pm:7 #: lib/Locale/Po4a/TeX.pm:11 lib/Locale/Po4a/Texinfo.pm:10 #: lib/Locale/Po4a/Text.pm:8 lib/Locale/Po4a/Wml.pm:7 #: lib/Locale/Po4a/Xhtml.pm:6 lib/Locale/Po4a/Xml.pm:9 #: lib/Locale/Po4a/Yaml.pm:7 msgid "OPTIONS ACCEPTED BY THIS MODULE" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:7 lib/Locale/Po4a/Man.pm:35 #: lib/Locale/Po4a/TeX.pm:12 lib/Locale/Po4a/Texinfo.pm:11 #: lib/Locale/Po4a/Text.pm:9 lib/Locale/Po4a/Xhtml.pm:7 #: lib/Locale/Po4a/Xml.pm:11 lib/Locale/Po4a/Yaml.pm:8 msgid "These are this module's particular options:" msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:8 lib/Locale/Po4a/TeX.pm:21 msgid "B<definitions>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:9 lib/Locale/Po4a/TeX.pm:22 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:10 msgid "" "In a definitions file, lines must not start by two slashes, but directly by " "B<po4a:>." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:11 msgid "B<entry>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:12 msgid "" "Space-separated list of attribute entries you want to translate. By " "default, no attribute entries are translatable." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:13 msgid "B<macro>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:14 msgid "Space-separated list of macro definitions." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:15 msgid "B<style>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:16 msgid "Space-separated list of style definitions." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:17 msgid "B<forcewrap>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:18 msgid "" "Enable automatic line wrapping in non-verbatim blocks, even if the result " "could be misinterpreted by AsciiDoc formatters." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:19 msgid "" "By default, po4a will not wrap the produced AsciiDoc files because a manual " "inspection is mandated to ensure that the wrapping does not change the " "formatting. Consider for instance the following list item:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/AsciiDoc.pm:20 #, no-wrap msgid "" " * a long sentence that is ending with a number 1. A second sentence.\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:21 msgid "" "If the wrapping leads to the following presentation, the item is split into " "a numbered sub-list. To make things worse, only the speakers of the language " "used in the translation can inspect the situation." msgstr "" #. type: verbatim #: lib/Locale/Po4a/AsciiDoc.pm:22 #, no-wrap msgid "" " * a long sentence that is ending with a number\n" " 1. A second sentence.\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:23 msgid "" "Note that not wrapping the files produced by po4a should not be a problem " "since those files are meant to be processed automatically. They should not " "be regarded as source files anyway." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:24 msgid "" "With this option, po4a will produce better-looking AsciiDoc files, but it " "may lead to possibly erroneous formatted outputs." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:25 msgid "B<noimagetargets>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:26 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:27 msgid "B<tablecells>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:28 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:29 msgid "B<compat>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:30 msgid "" "Switch parsing rules to compatibility with different tools. Available " "options are \"asciidoc\" or \"asciidoctor\". Asciidoctor has stricter " "parsing rules, such as equality of length of opening and closing block " "fences." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:31 msgid "B<nolinting>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:32 msgid "" "Disable linting messages. When the source code cannot be fixed for clearer " "document structure, these messages are useless." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:33 msgid "B<cleanspaces>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:34 msgid "" "Remove extra spaces from the source segments in no-wrap mode. This is useful " "when the translation tools are sensitive to the number of spaces." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:35 msgid "B<yfm_keys>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:36 lib/Locale/Po4a/Text.pm:31 msgid "" "Comma-separated list of keys to process for translation in the YAML Front " "Matter section. All other keys are skipped. Keys are matched with a " "case-sensitive match. If B<yfm_paths> and B<yfm_keys> are used together, " "values are included if they are matched by at least one of the " "options. Array values are always translated, unless the B<yfm_skip_array> " "option is provided." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:37 msgid "B<yfm_skip_array>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:38 lib/Locale/Po4a/Text.pm:38 msgid "Do not translate array values in the YAML Front Matter section." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:39 lib/Locale/Po4a/Text.pm:35 msgid "B<yfm_paths>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:40 lib/Locale/Po4a/Text.pm:36 msgid "" "Comma-separated list of hash paths to process for extraction in the YAML " "Front Matter section, all other paths are skipped. Paths are matched with a " "case-sensitive match. If B<yfm_paths> and B<yfm_keys> are used together, " "values are included if they are matched by at least one of the options. " "Arrays values are always returned unless the B<yfm_skip_array> option is " "provided." msgstr "" #. type: =head1 #: lib/Locale/Po4a/AsciiDoc.pm:41 lib/Locale/Po4a/TeX.pm:27 msgid "INLINE CUSTOMIZATION" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:42 msgid "" "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:" msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:43 msgid "B<//po4a: macro >I<name>B<[>I<attribute list>B<]>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:44 msgid "" "This describes in detail the parameters of a B<macro>; I<name> must be a " "valid macro name, and it ends with an underscore if the target must be " "translated." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:45 msgid "" "The I<attribute list> argument is a comma separated list which contains " "information about translatable arguments. This list contains either " "numbers, to define positional parameters, or named attributes." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:46 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:47 msgid "B<//po4a: style >B<[>I<attribute list>B<]>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:48 msgid "This describes in detail which attributes of a style must be translated." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:49 msgid "" "The I<attribute list> argument is a comma separated list which contains " "information about translatable arguments. This list contains either " "numbers, to define positional parameters, or named attributes. The first " "attribute is the style name, it will not be translated." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:50 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:51 msgid "" "If a minus sign (B<->) is prepended to the style name, then this attribute " "is not translated." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:52 msgid "B<//po4a: entry >I<name>" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:53 msgid "" "This declares an attribute entry as being translatable. By default, they " "are not translated." msgstr "" #. type: =head1 #: lib/Locale/Po4a/AsciiDoc.pm:54 lib/Locale/Po4a/BibTeX.pm:9 #: lib/Locale/Po4a/Dia.pm:10 lib/Locale/Po4a/Docbook.pm:6 #: lib/Locale/Po4a/Guide.pm:7 lib/Locale/Po4a/Halibut.pm:7 #: lib/Locale/Po4a/KernelHelp.pm:5 lib/Locale/Po4a/Man.pm:96 #: lib/Locale/Po4a/Pod.pm:9 lib/Locale/Po4a/RubyDoc.pm:6 #: lib/Locale/Po4a/Sgml.pm:34 lib/Locale/Po4a/TeX.pm:104 #: lib/Locale/Po4a/Texinfo.pm:8 lib/Locale/Po4a/Text.pm:43 #: lib/Locale/Po4a/Wml.pm:9 lib/Locale/Po4a/Xhtml.pm:12 #: lib/Locale/Po4a/Xml.pm:181 msgid "STATUS OF THIS MODULE" msgstr "" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:55 msgid "Tested successfully on simple AsciiDoc files." msgstr "" #. type: verbatim #: lib/Locale/Po4a/AsciiDoc.pm:57 #, no-wrap msgid "" " Nicolas François <nicolas.francois@centraliens.net>\n" " Denis Barbier <barbier@linuxfr.org>\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/AsciiDoc.pm:59 #, no-wrap msgid "" " Copyright © 2005-2008 Nicolas FRANÇOIS " "<nicolas.francois@centraliens.net>.\n" " Copyright © 2012 Denis BARBIER <barbier@linuxfr.org>.\n" " Copyright © 2017 Martin Quinson <mquinson#debian.org>.\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/BibTeX.pm:2 msgid "Locale::Po4a::BibTeX - convert BibTeX documents from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/BibTeX.pm:5 msgid "" "Locale::Po4a::BibTeX is a module to help the translation of bibliographies " "in the BibTeX format into other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/BibTeX.pm:6 msgid "Fields values are extracted and proposed for translation." msgstr "" #. type: textblock #: lib/Locale/Po4a/BibTeX.pm:8 lib/Locale/Po4a/Wml.pm:8 msgid "NONE." msgstr "" #. type: textblock #: lib/Locale/Po4a/BibTeX.pm:10 msgid "It is a very simple module, but still young." msgstr "" #. type: verbatim #: lib/Locale/Po4a/BibTeX.pm:12 lib/Locale/Po4a/Halibut.pm:17 #: lib/Locale/Po4a/LaTeX.pm:11 lib/Locale/Po4a/TeX.pm:121 #: lib/Locale/Po4a/Texinfo.pm:17 lib/Locale/Po4a/Text.pm:46 #, no-wrap msgid "" " Nicolas François <nicolas.francois@centraliens.net>\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/BibTeX.pm:14 #, no-wrap msgid "" " Copyright © 2006 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Chooser.pm:2 msgid "Locale::Po4a::Chooser - manage po4a modules" msgstr "" #. type: textblock #: lib/Locale/Po4a/Chooser.pm:4 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Chooser.pm:5 msgid "" "Now, you just have to call the Locale::Po4a::Chooser::new() function, " "passing the name of module as argument." msgstr "" #. type: textblock #: lib/Locale/Po4a/Chooser.pm:6 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Chooser.pm:8 msgid "About po4a:" msgstr "" #. type: textblock #: lib/Locale/Po4a/Chooser.pm:9 msgid "" "L<Locale::Po4a::Po(3pm)>, L<Locale::Po4a::TransTractor(3pm)>, " "L<po4a(7)|po4a.7>" msgstr "" #. type: =item #: lib/Locale/Po4a/Chooser.pm:10 msgid "About modules:" msgstr "" #. type: textblock #: lib/Locale/Po4a/Chooser.pm:11 msgid "" "L<Locale::Po4a::Dia(3pm)>, L<Locale::Po4a::Docbook(3pm)>, " "L<Locale::Po4a::Guide(3pm)>, L<Locale::Po4a::Halibut(3pm)>, " "L<Locale::Po4a::Ini(3pm)>, L<Locale::Po4a::KernelHelp(3pm)>, " "L<Locale::Po4a::LaTeX(3pm)>, L<Locale::Po4a::Man(3pm)>, " "L<Locale::Po4a::Pod(3pm)>, L<Locale::Po4a::RubyDoc(3pm)>, " "L<Locale::Po4a::Sgml(3pm)>, L<Locale::Po4a::TeX(3pm)>, " "L<Locale::Po4a::Texinfo(3pm)>, L<Locale::Po4a::Text(3pm)>, " "L<Locale::Po4a::Wml(3pm)>. L<Locale::Po4a::Xhtml(3pm)>, " "L<Locale::Po4a::Xml(3pm)>, L<Locale::Po4a::Wml(3pm)>, " "L<Locale::Po4a::Yaml(3pm)>." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Chooser.pm:13 lib/Locale/Po4a/KernelHelp.pm:10 #: lib/Locale/Po4a/Po.pm:94 lib/Locale/Po4a/Pod.pm:24 #: lib/Locale/Po4a/Sgml.pm:57 #, no-wrap msgid "" " Denis Barbier <barbier@linuxfr.org>\n" " Martin Quinson (mquinson#debian.org)\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Chooser.pm:15 msgid "Copyright © 2002-2005, 2014, 2017 SPI, Inc." msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:2 msgid "Locale::Po4a::Common - common parts of the po4a scripts and utils" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:4 msgid "" "Locale::Po4a::Common contains common parts of the po4a scripts and some " "useful functions used along the other modules." msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:5 msgid "If needed, you can disable the use of Text::WrapI18N as such:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Common.pm:6 #, no-wrap msgid "" " use Locale::Po4a::Common qw(nowrapi18n);\n" " use Locale::Po4a::Text;\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:7 msgid "instead of:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Common.pm:8 #, no-wrap msgid "" " use Locale::Po4a::Text;\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:9 msgid "" "The ordering is important here: as most Locale::Po4a modules load themselves " "Locale::Po4a::Common, the first time this module is loaded determines " "whether Text::WrapI18N is used." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Common.pm:10 msgid "FUNCTIONS" msgstr "" #. type: =head2 #: lib/Locale/Po4a/Common.pm:11 msgid "Showing output messages" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:12 msgid "show_version($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:13 msgid "" "Shows the current version of the script, and a short copyright message. It " "takes the name of the script as an argument." msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:14 msgid "wrap_msg($@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:15 msgid "" "This function displays a message the same way as sprintf() does, but wraps " "the result so that they look nice on the terminal." msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:16 msgid "wrap_mod($$@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:17 msgid "" "This function works like wrap_msg(), but it takes a module name as the first " "argument, and leaves a space at the left of the message." msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:18 msgid "wrap_ref_mod($$$@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:19 msgid "" "This function works like wrap_msg(), but it takes a file:line reference as " "the first argument, a module name as the second one, and leaves a space at " "the left of the message." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Common.pm:20 msgid "Wrappers for other modules" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:21 msgid "Locale::Gettext" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:22 msgid "" "When the Locale::Gettext module cannot be loaded, this module provide dummy " "(empty) implementation of the following functions. In that case, po4a " "messages won't get translated but the program will continue to work." msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:23 msgid "" "If Locale::gettext is present, this wrapper also calls " "setlocale(LC_MESSAGES, \"\") so callers don't depend on the POSIX module " "either." msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:24 msgid "bindtextdomain($$)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:25 msgid "textdomain($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:26 msgid "gettext($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:27 msgid "dgettext($$)" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Common.pm:29 lib/Locale/Po4a/Dia.pm:15 #: lib/Locale/Po4a/Docbook.pm:18 lib/Locale/Po4a/Guide.pm:13 #, no-wrap msgid "" " Jordi Vilalta <jvprat@gmail.com>\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Common.pm:31 msgid "Copyright © 2005 SPI, Inc." msgstr "" #. type: textblock #: lib/Locale/Po4a/Dia.pm:2 msgid "Locale::Po4a::Dia - convert uncompressed Dia diagrams from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Dia.pm:5 msgid "" "Locale::Po4a::Dia is a module to help the translation of diagrams in the " "uncompressed Dia format into other [human] languages." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Dia.pm:6 #, no-wrap msgid "" "You can get Dia (the graphical editor for these diagrams) from:\n" " http://www.gnome.org/projects/dia/\n" "\n" msgstr "" #. type: =head1 #: lib/Locale/Po4a/Dia.pm:7 msgid "TRANSLATING WITH PO4A::DIA" msgstr "" #. type: textblock #: lib/Locale/Po4a/Dia.pm:8 msgid "" "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." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Dia.pm:9 #, no-wrap msgid "" "Another way is to uncompress the dia files from command line with:\n" " gunzip < original.dia > uncompressed.dia\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Dia.pm:11 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Dia.pm:13 lib/Locale/Po4a/Docbook.pm:16 #: lib/Locale/Po4a/Guide.pm:11 lib/Locale/Po4a/Xhtml.pm:16 msgid "" "L<Locale::Po4a::TransTractor(3pm)>, L<Locale::Po4a::Xml(3pm)>, " "L<po4a(7)|po4a.7>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Dia.pm:17 lib/Locale/Po4a/Guide.pm:15 msgid "Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:2 msgid "Locale::Po4a::Docbook - convert DocBook XML documents from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:5 msgid "" "Locale::Po4a::Docbook is a module to help the translation of DocBook XML " "documents into other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:7 lib/Locale/Po4a/Guide.pm:8 #: lib/Locale/Po4a/Xhtml.pm:13 msgid "" "This module is fully functional, as it relies in the L<Locale::Po4a::Xml> " "module. This only defines the translatable tags and attributes." msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:8 msgid "" "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." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Docbook.pm:9 lib/Locale/Po4a/Xml.pm:106 msgid "OVERRIDE THE DEFAULT BEHAVIOR WITH COMMAND LINE OPTIONS" msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:10 msgid "" "The default behavior of system provided modules is set to be on the safe " "side." msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:11 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:12 msgid "" "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:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Docbook.pm:13 #, no-wrap msgid "" " opt:\"-k 0 -o nodefault=\\\"<bookinfo> <author>\\\" \\\n" " -o break=\\\"<bookinfo> <author>\\\" \\\n" " -o untranslated=\\\"<bookinfo>\\\" \\\n" " -o translated=\\\"<author>\\\"\"\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Docbook.pm:14 msgid "" "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." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Docbook.pm:20 #, no-wrap msgid "" " Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>\n" " Copyright © 2007-2009 Nicolas François <nicolas.francois@centraliens.net>\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Guide.pm:2 msgid "Locale::Po4a::Guide - convert Guide XML documents from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Guide.pm:5 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Guide.pm:6 msgid "This format is documented here: http://www.gentoo.org/doc/en/xml-guide.xml" msgstr "" #. type: textblock #: lib/Locale/Po4a/Guide.pm:9 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:2 msgid "" "Locale::Po4a::Halibut - convert Halibut documents and derivates from/to PO " "files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:5 msgid "" "Locale::Po4a::Halibut is a module to help the translation of Halibut " "documents into other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:6 msgid "" "This module contains the definitions of common Halibut commands and " "environments." msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:8 msgid "This module is still beta. Please send feedback and feature requests." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Halibut.pm:9 msgid "CAVEAT" msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:10 msgid "Some constructs are badly supported. The known ones are documented below." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Halibut.pm:11 msgid "Verbatim blocks" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Halibut.pm:12 #, no-wrap msgid "" " \\c foo\n" " \\c bar\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:13 msgid "" "The verbatim block is not considered as a whole. Each line will be " "translated separately." msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:15 lib/Locale/Po4a/LaTeX.pm:9 #: lib/Locale/Po4a/Texinfo.pm:15 msgid "" "L<Locale::Po4a::TeX(3pm)|Locale::Po4a::TeX>, " "L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, " "L<po4a(7)|po4a.7>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Halibut.pm:19 msgid "Copyright © 2004-2008 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>." msgstr "" #. type: textblock #: lib/Locale/Po4a/Ini.pm:2 msgid "Locale::Po4a::Ini - convert INI files from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Ini.pm:4 msgid "" "Locale::Po4a::Ini is a module to help the translation of INI files into " "other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Ini.pm:5 msgid "" "The module searches for lines of the following format and extracts the " "quoted text:" msgstr "" #. type: textblock #: lib/Locale/Po4a/Ini.pm:6 msgid "identificator=\"text than can be translated\"" msgstr "" #. type: textblock #: lib/Locale/Po4a/Ini.pm:7 msgid "NOTE: If the text is not quoted, it will be ignored." msgstr "" #. type: textblock #: lib/Locale/Po4a/Ini.pm:9 lib/Locale/Po4a/Yaml.pm:16 msgid "L<Locale::Po4a::TransTractor(3pm)>, L<po4a(7)|po4a.7>" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Ini.pm:11 #, no-wrap msgid "" " Razvan Rusu <rrusu@bitdefender.com>\n" " Costin Stroie <cstroie@bitdefender.com>\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Ini.pm:13 msgid "Copyright © 2006 BitDefender" msgstr "" #. type: textblock #: lib/Locale/Po4a/KernelHelp.pm:2 msgid "" "Locale::Po4a::KernelHelp - convert kernel configuration help from/to PO " "files" msgstr "" #. type: textblock #: lib/Locale/Po4a/KernelHelp.pm:4 msgid "" "Locale::Po4a::KernelHelp is a module to help the translation of " "documentation for the Linux kernel configuration options into other [human] " "languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/KernelHelp.pm:6 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/KernelHelp.pm:8 msgid "" "L<Pod::Parser>, L<Locale::Po4a::Man(3pm)>, L<Locale::Po4a::Pod(3pm)>, " "L<Locale::Po4a::TransTractor(3pm)>, L<po4a(7)|po4a.7>" msgstr "" #. type: textblock #: lib/Locale/Po4a/KernelHelp.pm:12 lib/Locale/Po4a/Pod.pm:26 msgid "Copyright © 2002 SPI, Inc." msgstr "" #. type: textblock #: lib/Locale/Po4a/LaTeX.pm:2 msgid "Locale::Po4a::LaTeX - convert LaTeX documents and derivates from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/LaTeX.pm:5 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/LaTeX.pm:6 msgid "" "This module contains the definitions of common LaTeX commands and " "environments." msgstr "" #. type: textblock #: lib/Locale/Po4a/LaTeX.pm:7 msgid "" "See the L<Locale::Po4a::TeX(3pm)|Locale::Po4a::TeX> manpage for the list of " "recognized options." msgstr "" #. type: textblock #: lib/Locale/Po4a/LaTeX.pm:13 lib/Locale/Po4a/TeX.pm:123 msgid "Copyright © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:2 msgid "Locale::Po4a::Man - convert manual pages from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:5 msgid "" "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." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Man.pm:6 msgid "TRANSLATING WITH PO4A::MAN" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:7 msgid "" "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." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:8 msgid "Text wrapping" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:9 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:10 msgid "" "Anyway, the difference will only be about the position of the extra spaces " "in wrapped paragraph, and I think it's worth." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:11 msgid "Font specification" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:12 msgid "" "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:" msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:13 msgid "IE<lt>textE<gt> -- italic text" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:14 msgid "equivalent to \\fItext\\fP or \".I text\"" msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:15 msgid "BE<lt>textE<gt> -- bold text" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:16 msgid "equivalent to \\fBtext\\fP or \".B text\"" msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:17 msgid "RE<lt>textE<gt> -- roman text" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:18 msgid "equivalent to \\fRtext\\fP" msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:19 msgid "CWE<lt>textE<gt> -- constant width text" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:20 msgid "equivalent to \\f(CWtext\\fP or \".CW text\"" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:21 msgid "" "Remark: The CW face is not available for all groff devices. It is not " "recommended to use it. It is provided for your convenience." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:22 msgid "Automatic characters transliteration" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:23 msgid "" "Po4a automatically transliterate some characters to ease the translation or " "the review of the translation. Here is the list of the transliterations:" msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:24 msgid "hyphens" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:25 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:26 msgid "" "Translators can force an hyphen by using the roff glyph '\\[hy]' in their " "translations." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:27 msgid "non-breaking spaces" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:28 msgid "" "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 ('\\ ')." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:29 msgid "quotes transliterations" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:30 msgid "`` and '' are respectively tranliterated into \\*(lq and \\*(rq." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:31 msgid "" "To avoid these transliterations, translators can insert a zero width roff " "character (i.e., using `\\&` or '\\&' respectively)." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:32 msgid "Putting 'E<lt>' and 'E<gt>' in translations" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:33 msgid "" "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)." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:36 lib/Locale/Po4a/Sgml.pm:8 #: lib/Locale/Po4a/TeX.pm:13 msgid "B<debug>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:37 lib/Locale/Po4a/TeX.pm:14 msgid "" "Activate debugging for some internal mechanisms of this module. Use the " "source to see which parts can be debugged." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:38 lib/Locale/Po4a/Sgml.pm:10 msgid "B<verbose>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:39 msgid "Increase verbosity." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:40 msgid "B<groff_code>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:41 msgid "" "This option controls the behavior of the module when it encounter a .de, .ie " "or .if section. It can take the following values:" msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:42 lib/Locale/Po4a/Xml.pm:27 msgid "I<fail>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:43 msgid "" "This is the default value. The module will fail when a .de, .ie or .if " "section is encountered." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:44 msgid "I<verbatim>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:45 msgid "" "Indicates that the .de, .ie or .if sections must be copied as is from the " "original to the translated document." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:46 msgid "I<translate>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:47 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:48 msgid "B<generated>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:49 msgid "" "This option specifies that the file was generated, and that po4a should not " "try to detect if the man pages was generated from another format. This " "option is mandatory to use po4a on generated man pages. Note that " "translating generated pages instead of sources ones is often more fragile, " "and thus a bad idea." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:50 msgid "B<mdoc>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:51 msgid "This option is only useful for mdoc pages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:52 msgid "" "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." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:53 #, no-wrap msgid "" "According to the groff_mdoc page, the NAME, SYNOPSIS and DESCRIPTION\n" "sections are mandatory.\n" "There are no known issues with translated SYNOPSIS or DESCRIPTION section,\n" "but you can also specify these sections this way:\n" " -o mdoc=NAME,SYNOPSIS,DESCRIPTION\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:54 #, no-wrap msgid "" "This mdoc issue can also be solved with an addendum like this one:\n" " PO4A-HEADER:mode=before;position=^.Dd\n" " .TH DOCUMENT_TITLE 1 \"Month day, year\" OS \"Section Name\"\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:55 msgid "" "The following options specify the behavior of a user-defined macro (with a " ".de request), or of a classical macro that is not supported by po4a. They " "take as argument a comma-separated list of macros. For example:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:56 #, no-wrap msgid "" " -o noarg=FO,OB,AR -o translate_joined=BA,ZQ,UX\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:57 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:58 lib/Locale/Po4a/Xml.pm:94 msgid "B<untranslated>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:59 msgid "" "B<untranslated> indicates that this macro (at its arguments) don't have to " "be translated." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:60 msgid "B<noarg>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:61 msgid "" "B<noarg> is like B<untranslated>, except that po4a will verify that no " "argument is added to this macro." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:62 msgid "B<translate_joined>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:63 msgid "" "B<translate_joined> indicates that po4a must propose to translate the " "arguments of the macro." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:64 msgid "B<translate_each>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:65 msgid "" "With B<translate_each>, the arguments will also be proposed for the " "translation, except that each one will be translated separately." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:66 lib/Locale/Po4a/TeX.pm:15 msgid "B<no_wrap>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:67 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:68 msgid "" "Note: no test is done to ensure that an I<end> command matches its I<begin> " "command; any ending command stop the no_wrap mode. If you have a I<begin> " "(respectively I<end>) macro that has no I<end> (respectively I<begin>), you " "can specify an existing I<end> (like fi) or I<begin> (like nf) as a " "counterpart. These macros (and their arguments) won't be translated." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:69 lib/Locale/Po4a/Xml.pm:59 msgid "B<inline>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:70 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:71 msgid "B<unknown_macros>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:72 msgid "" "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)." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Man.pm:73 msgid "AUTHORING MAN PAGES COMPLIANT WITH PO4A::MAN" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:74 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:75 msgid "" "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." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:76 msgid "Don't program in nroff" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:77 msgid "" "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)." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:78 msgid "Use the plain macro set" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:79 msgid "" "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." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:80 #, no-wrap msgid "" " .. .\" .AT .b .bank\n" " .BE ..br .Bu .BUGS .BY\n" " .ce .dbmmanage .do .En\n" " .EP .EX .Fi .hw .i\n" " .Id .l .LO .mf\n" " .N .na .NF .nh .nl\n" " .Nm .ns .NXR .OPTIONS .PB\n" " .pp .PR .PRE .PU .REq\n" " .RH .rn .S< .sh .SI\n" " .splitfont .Sx .T .TF .The\n" " .TT .UC .ul .Vb .zZ\n" "\n" msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:81 msgid "Hiding text from po4a" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:82 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:83 msgid "" "In such case, the author can avoid po4a to extract some strings, using some " "special groff constructs:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:84 #, no-wrap msgid "" " .if !'po4a'hide' .B other\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:85 msgid "(this will require the B<-o groff_code=verbatim> option)" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:86 #, no-wrap msgid "" "A new macro can also be defined to automate this:\n" " .de IR_untranslated\n" " . IR \\\\$@\n" " ..\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:87 lib/Locale/Po4a/Man.pm:90 #, no-wrap msgid "" " .IR_untranslated \\-q \", \" \\-\\-quiet\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:88 msgid "" "(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)" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Man.pm:89 #, no-wrap msgid "" "or using an alias:\n" " .als IR_untranslated IR\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:91 msgid "This will require the B<-o untranslated=als,IR_untranslated> option." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Man.pm:92 msgid "Conclusion" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:93 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:94 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:95 msgid "" "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…" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:97 msgid "This module can be used for most of the existing man pages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:98 msgid "Some tests are regularly run on Linux boxes:" msgstr "" #. type: =item #: lib/Locale/Po4a/Man.pm:99 lib/Locale/Po4a/Man.pm:101 #: lib/Locale/Po4a/Man.pm:103 lib/Locale/Po4a/Man.pm:105 #: lib/Locale/Po4a/Sgml.pm:36 lib/Locale/Po4a/Sgml.pm:42 #: lib/Locale/Po4a/Sgml.pm:45 lib/Locale/Po4a/Sgml.pm:49 msgid "*" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:100 msgid "" "one third of the pages are refused because they were generated from another " "format supported by po4a (e.g. POD or SGML)." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:102 msgid "" "10% of the remaining pages are rejected with an error (e.g. a groff macro is " "not supported)." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:104 msgid "" "Then, less than 1% of the pages are accepted silently by po4a, but with " "significant issues (i.e. missing words, or new words inserted)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:106 msgid "" "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)." msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:108 msgid "" "L<Locale::Po4a::Pod(3pm)>, L<Locale::Po4a::TransTractor(3pm)>, " "L<po4a(7)|po4a.7>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Man.pm:112 msgid "Copyright © 2002-2008 SPI, Inc." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:2 msgid "Locale::Po4a::Po - PO file manipulation module" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Po.pm:4 #, no-wrap msgid "" " use Locale::Po4a::Po;\n" " my $pofile=Locale::Po4a::Po->new();\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Po.pm:5 #, no-wrap msgid "" " # Read PO file\n" " $pofile->read('file.po');\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Po.pm:6 #, no-wrap msgid "" " # Add an entry\n" " $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',\n" " 'flags' => \"wrap\", 'reference'=>'file.c:46');\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Po.pm:7 #, no-wrap msgid "" " # Extract a translation\n" " $pofile->gettext(\"Hello\"); # returns 'bonjour'\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Po.pm:8 #, no-wrap msgid "" " # Write back to a file\n" " $pofile->write('otherfile.po');\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:10 msgid "" "Locale::Po4a::Po is a module that allows you to manipulate message " "catalogs. You can load and write from/to a file (which extension is often " "I<po>), you can build new entries on the fly or request for the translation " "of a string." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:11 msgid "" "For a more complete description of message catalogs in the PO format and " "their use, please refer to the info documentation of the gettext program " "(node \"`PO Files\"')." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:12 msgid "" "This module is part of the po4a project, which objective is to use PO files " "(designed at origin to ease the translation of program messages) to " "translate everything, including documentation (man page, info manual), " "package description, debconf templates, and everything which may benefit " "from this." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Po.pm:28 msgid "Functions concerning entire message catalogs" msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:29 msgid "new()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:30 msgid "" "Creates a new message catalog. If an argument is provided, it's the name of " "a PO file we should load." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:31 msgid "read($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:32 msgid "" "Reads a PO file (which name is given as argument). Previously existing " "entries in self are not removed, the new ones are added to the end of the " "catalog." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:33 lib/Locale/Po4a/TransTractor.pm:81 msgid "write($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:34 msgid "Writes the current catalog to the given file." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:35 msgid "write_if_needed($$)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:36 msgid "" "Like write, but if the PO or POT file already exists, the object will be " "written in a temporary file which will be compared with the existing file to " "check if the update is needed (this avoids to change a POT just to update a " "line reference or the POT-Creation-Date field)." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:37 msgid "filter($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:38 msgid "" "This function extracts a catalog from an existing one. Only the entries " "having a reference in the given file will be placed in the resulting " "catalog." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:39 msgid "" "This function parses its argument, converts it to a Perl function " "definition, evals this definition and filters the fields for which this " "function returns true." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:40 msgid "I love Perl sometimes ;)" msgstr "" #. type: =head1 #: lib/Locale/Po4a/Po.pm:41 msgid "Functions to use a message catalog for translations" msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:42 msgid "gettext($%)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:43 msgid "" "Request the translation of the string given as argument in the current " "catalog. The function returns the original (untranslated) string if the " "string was not found." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:44 msgid "" "After the string to translate, you can pass a hash of extra arguments. Here " "are the valid entries:" msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:45 lib/Locale/Po4a/Po.pm:75 #: lib/Locale/Po4a/TransTractor.pm:122 lib/Locale/Po4a/Xml.pm:14 msgid "B<wrap>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:46 msgid "" "boolean indicating whether we can consider that whitespaces in string are " "not important. If yes, the function canonizes the string before looking for " "a translation, and wraps the result." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:47 lib/Locale/Po4a/Po.pm:78 #: lib/Locale/Po4a/TransTractor.pm:124 msgid "B<wrapcol>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:48 msgid "the column at which we should wrap (default: 76)." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:49 msgid "stats_get()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:50 msgid "" "Returns statistics about the hit ratio of gettext since the last time that " "stats_clear() was called. Please note that it's not the same statistics than " "the one printed by msgfmt --statistic. Here, it's statistics about recent " "usage of the PO file, while msgfmt reports the status of the file. Example " "of use:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Po.pm:51 #, no-wrap msgid "" " [some use of the PO file to translate stuff]\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Po.pm:52 #, no-wrap msgid "" " ($percent,$hit,$queries) = $pofile->stats_get();\n" " print \"So far, we found translations for $percent\\% ($hit of " "$queries) of strings.\\n\";\n" "\n" msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:53 msgid "stats_clear()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:54 msgid "Clears the statistics about gettext hits." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Po.pm:55 msgid "Functions to build a message catalog" msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:56 msgid "push(%)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:57 msgid "" "Push a new entry at the end of the current catalog. The arguments should " "form a hash table. The valid keys are:" msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:58 msgid "B<msgid>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:59 msgid "the string in original language." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:60 msgid "B<msgstr>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:61 msgid "the translation." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:62 msgid "B<reference>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:63 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:64 lib/Locale/Po4a/TransTractor.pm:127 msgid "B<comment>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:65 msgid "a comment added here manually (by the translators). The format here is free." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:66 msgid "B<automatic>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:67 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:68 msgid "B<flags>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:69 msgid "space-separated list of all defined flags for this entry." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:70 msgid "" "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>." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:71 msgid "See the gettext documentation for their meaning." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:72 msgid "B<type>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:73 msgid "" "this is mostly an internal argument: it is used while gettextizing " "documents. The idea here is to parse both the original and the translation " "into a PO object, and merge them, using one's msgid as msgid and the other's " "msgid as msgstr. To make sure that things get ok, each msgid in PO objects " "are given a type, based on their structure (like \"chapt\", \"sect1\", \"p\" " "and so on in DocBook). If the types of strings are not the same, that means " "that both files do not share the same structure, and the process reports an " "error." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:74 msgid "" "This information is written as automatic comment in the PO file since this " "gives to translators some context about the strings to translate." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:76 msgid "" "boolean indicating whether whitespaces can be mangled in cosmetic " "reformattings. If true, the string is canonized before use." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:77 msgid "" "This information is written to the PO file using the B<wrap> or B<no-wrap> " "flag." msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:79 msgid "ignored; the key is kept for backward computability." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Po.pm:80 msgid "Miscellaneous functions" msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:81 msgid "count_entries()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:82 msgid "Returns the number of entries in the catalog (without the header)." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:83 msgid "count_entries_doc()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:84 msgid "" "Returns the number of entries in document. If a string appears multiple " "times in the document, it will be counted multiple times." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:85 msgid "msgid($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:86 msgid "Returns the msgid of the given number." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:87 msgid "msgid_doc($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:88 msgid "Returns the msgid with the given position in the document." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:89 msgid "type_doc($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:90 msgid "" "Returns the type of the msgid with the given position in the document. This " "is probably only useful to gettextization, and it's stored separately from " "{$msgid}{'type'} because the later location may be overwritten by another " "type when the $msgid is duplicated in the master document." msgstr "" #. type: =item #: lib/Locale/Po4a/Po.pm:91 msgid "get_charset()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Po.pm:92 msgid "" "Returns the character set specified in the PO header. If it hasn't been set, " "it will return \"UTF-8\"." msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:2 msgid "Locale::Po4a::Pod - convert POD data from/to PO files" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Pod.pm:4 #, no-wrap msgid "" " use Locale::Po4a::Pod;\n" " my $parser = Locale::Po4a::Pod->new();\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Pod.pm:5 #, no-wrap msgid "" " # Read POD from STDIN and write to STDOUT.\n" " $parser->parse_from_filehandle;\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Pod.pm:6 #, no-wrap msgid "" " # Read POD from file.pod and write to file.txt.\n" " $parser->parse_from_file ('file.pod', 'file.txt');\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:8 msgid "" "Locale::Po4a::Pod is a module to help the translation of documentation in " "the POD format (the preferred language for documenting Perl) into other " "[human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:10 msgid "" "I think that this module is rock stable, and there is only one known bug " "with F</usr/lib/perl5/Tk/MainWindow.pod> (and some other pages, see below) " "which contains:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Pod.pm:11 #, no-wrap msgid "" " C<\" #n\">\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:12 msgid "" "Lack of luck, in the po4a version, this was split on the space by the " "wrapping. As result, in the original version, the man page contains:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Pod.pm:13 #, no-wrap msgid "" " \" #n\"\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:14 msgid "and mine contains:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Pod.pm:15 #, no-wrap msgid "" " \"\" #n\"\"\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:16 msgid "which is logic since CE<lt>foobarE<gt> is rewritten \"foobar\"." msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:17 msgid "" "Complete list of pages having this problem on my box (from 564 pages; note " "that it depends on the chosen wrapping column):" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Pod.pm:18 #, no-wrap msgid "" " /usr/lib/perl5/Tk/MainWindow.pod\n" " /usr/share/perl/5.8.0/overload.pod\n" " /usr/share/perl/5.8.0/pod/perlapi.pod\n" " /usr/share/perl/5.8.0/pod/perldelta.pod\n" " /usr/share/perl/5.8.0/pod/perlfaq5.pod\n" " /usr/share/perl/5.8.0/pod/perlpod.pod\n" " /usr/share/perl/5.8.0/pod/perlre.pod\n" " /usr/share/perl/5.8.0/pod/perlretut.pod\n" "\n" msgstr "" #. type: =head1 #: lib/Locale/Po4a/Pod.pm:19 msgid "INTERNALS" msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:20 msgid "" "As a derived class from Pod::Parser, Locale::Po4a::Pod supports the same " "methods and interfaces. See L<Pod::Parser> for all the details; briefly, " "one creates a new parser with C<< Locale::Po4a::Pod->new() >> and then calls " "either parse_from_filehandle() or parse_from_file()." msgstr "" #. type: textblock #: lib/Locale/Po4a/Pod.pm:22 msgid "" "L<Pod::Parser>, L<Locale::Po4a::Man(3pm)>, " "L<Locale::Po4a::TransTractor(3pm)>, L<po4a(7)|po4a.7>" msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:2 msgid "Locale::Po4a::RubyDoc -- Convert Ruby Document data from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:5 msgid "" "Locale::Po4a::RubyDoc is a module to help the translation of documentation " "in the Ruby Document (RD) format (a language used to document Ruby) into " "other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:7 msgid "" "This module has been successfully tested on simple Ruby Document files " "covering a good part of the format syntax." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:8 msgid "" "A known limitation is that it fails to properly recognize the stacked " "structure of input Ruby Document: this implies that when, for instance, an " "EnumListItem consists of more than one Block, only the first Block is " "actually recognized as EnumListItem, while the subsequent ones are " "considered just as TextBlocks..." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:10 msgid "This module supports the following option:" msgstr "" #. type: =item #: lib/Locale/Po4a/RubyDoc.pm:11 msgid "B<puredoc>" msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:12 msgid "" "Handle files entirely made of Ruby Document formatted text (without any " "\"=begin\" line)." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:13 msgid "" "By default, this module only handles Ruby Document formatted text between " "\"=begin\" and \"=end\" lines (hence ignoring, among other things, " "everything that precedes the first \"=begin\" line)." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:15 msgid "L<Locale::Po4a::TransTractor(3pm)>" msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:17 msgid "Francesco Poli <invernomuto@paranoici.org>" msgstr "" #. type: verbatim #: lib/Locale/Po4a/RubyDoc.pm:19 #, no-wrap msgid "" " Copyright © 2016-2017 Francesco Poli <invernomuto@paranoici.org>\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:20 msgid "" "This work is free software; you can redistribute it and/or modify it under " "the terms of the GNU General Public License as published by the Free " "Software Foundation; either version 2 of the License, or (at your option) " "any later version." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:21 msgid "" "This work is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " "FOR A PARTICULAR PURPOSE. See the GNU General Public License for more " "details." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:22 msgid "" "You should have received a copy of the GNU General Public License along with " "this work; if not, write to the Free Software Foundation, Inc., 51 Franklin " "Street, Fifth Floor, Boston, MA 02110-1301 USA." msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:23 msgid "" "Parts of the code (such as many regular expressions) were adapted from the " "source of rdtool, under the terms of the GNU General Public License, version " "2 or later. These parts are originally:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/RubyDoc.pm:24 #, no-wrap msgid "" " Copyright © 2004 MoonWolf <moonwolf@moonwolf.com>\n" " Copyright © 2011-2012 Youhei SASAKI <uwabami@gfd-dennou.org>\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/RubyDoc.pm:25 msgid "" "The initialize code was adapted from the source of Locale::Po4a::Text, under " "the terms of the GNU General Public License, version 2 or later. This code " "was originally:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/RubyDoc.pm:26 #, no-wrap msgid "" " Copyright © 2005-2008 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:2 msgid "Locale::Po4a::Sgml - convert SGML documents from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:5 msgid "" "Locale::Po4a::Sgml is a module to help the translation of documentation in " "the SGML format into other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:6 msgid "" "This module uses B<onsgmls>(1) to parse the SGML files. Make sure it is " "installed. Also make sure that the DTD of the SGML files are installed in " "the system." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:9 msgid "" "Space-separated list of keywords indicating which category of extra debug " "messages should be shown. Possible values are: C<entities>, C<generic>, " "C<onsgml>, C<refs> and C<tag>." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:11 msgid "Give more information about what's going on." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:12 lib/Locale/Po4a/TeX.pm:60 msgid "B<translate>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:13 msgid "" "Space-separated list of extra tags (beside the DTD provided ones) whose " "content should form an extra msgid, i.e that should be translated." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:14 msgid "B<section>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:15 msgid "" "Space-separated list of extra tags (beside the DTD provided ones) " "containing other tags, some of them being of category B<translate>." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:16 msgid "B<indent>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:17 msgid "" "Space-separated list of tags which increase the indentation level. This will " "affect the identation in the resulting document." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:18 lib/Locale/Po4a/TeX.pm:23 #: lib/Locale/Po4a/Text.pm:19 msgid "B<verbatim>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:19 msgid "" "The layout within those tags should not be changed. The paragraph won't get " "wrapped, and no extra indentation space or new line will be added for " "cosmetic purpose." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:20 msgid "B<empty>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:21 msgid "Tags not needing to be closed." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:22 msgid "B<ignore>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:23 msgid "" "Tags ignored and considered as plain char data by po4a. That is to say that " "they can be part of an msgid. For example, E<lt>bE<gt> is a good candidate " "for this category since putting it in the B<translate> section would create " "a msgids with only its content, (and it's ususally not a whole sentence), " "which is bad." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:24 lib/Locale/Po4a/Xml.pm:48 msgid "B<attributes>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:25 msgid "" "A space-separated list of attributes that need to be translated. You can " "specify the attributes by their name (for example, C<lang>), but you can " "also prefix it with a tag hierarchy, to specify that this attribute will " "only be translated when it is into the specified tag. For example: C<< " "<bbb><aaa>lang >> specifies that the lang attribute will only be translated " "if it is in an C<< <aaa> >> tag, which is in a C<< <bbb> >> tag. The tag " "names are actually regular expressions so you can also write things like C<< " "<aaa|bbb>lang >> to only translate C<lang> attributes that are in an C<< " "<aaa> >> or a C<< <bbb> >> tag." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:26 msgid "B<qualify>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:27 msgid "" "A space-separated list of attributes for which the translation must be " "qualified by the attribute name, i.e. the text extracted for the " "transalation will include both the attributes name and it's value. e.g. for " "a tag like C<< <aaa lang_en=\"foo\"> >> translators will be presented with " "the string C<lang_en=\"foo\">. Note that this also automatically adds the " "given attribute into the B<attributes> list too." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:28 msgid "B<force>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:29 msgid "" "Proceed even if the DTD is unknown or if B<onsgmls> finds errors in the " "input file." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:30 msgid "B<include-all>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:31 msgid "" "By default, msgids containing only one entity (like C<&version;>) are " "skipped for the translators' comfort. Activating this option prevents this " "optimisation. It can be useful if the document contains a construction like " "C<< <title>Á >>, even if I doubt such things to ever " "happen..." msgstr "" #. type: =item #: lib/Locale/Po4a/Sgml.pm:32 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:33 msgid "" "Space-separated list of entities that won't be inlined. Use this option " "with caution: it may cause B (used internally) to add tags and " "render the output document invalid." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:35 msgid "" "The result is perfect. I.e., the generated documents are exactly the same as " "the originals. But there are still some problems:" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:37 msgid "" "The error output of B is redirected to /dev/null by default, which " "is clearly bad. I don't know how to avoid that." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:38 msgid "" "The problem is that I have to \"protect\" the conditional inclusions " "(i.e. the C! [ %foo [> and C<]]E> stuff) from " "B. Otherwise B eats them, and I don't know how to restore " "them in the final document. To prevent that, I rewrite them to " "C<{PO4A-beg-foo}> and C<{PO4A-end}>." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:39 msgid "" "The problem with this is that the C<{PO4A-end}> and such I add are invalid " "in the document (not in a EpE tag or so)." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:40 msgid "" "If you want to view the B output, just add the following to your " "command line (or po4a configuration line):" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Sgml.pm:41 #, no-wrap msgid "" " -o debug=onsgmls\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:43 msgid "" "It does work only with the DebianDoc and DocBook DTD. Adding support for a " "new DTD should be very easy. The mechanism is the same for every DTD, you " "just have to give a list of the existing tags and some of their " "characteristics." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:44 msgid "" "I agree, this needs some more documentation, but it is still considered as " "beta, and I hate to document stuff which may/will change." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:46 msgid "" "Warning, support for DTDs is quite experimental. I did not read any " "reference manual to find the definition of every tag. I did add tag " "definition to the module 'till it works for some documents I found on the " "net. If your document use more tags than mine, it won't work. But as I said " "above, fixing that should be quite easy." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:47 msgid "" "I did test DocBook against the SAG (System Administrator Guide) only, but " "this document is quite big, and should use most of the DocBook " "specificities." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:48 msgid "For DebianDoc, I tested some of the manuals from the DDP, but not all yet." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:50 msgid "" "In case of file inclusion, string reference of messages in PO files " "(i.e. lines like C<#: en/titletoc.sgml:9460>) will be wrong." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:51 msgid "" "This is because I preprocess the file to protect the conditional inclusion " "(i.e. the C! [ %foo [> and C<]]E> stuff) and some entities (like " "C<&version;>) from B because I want them verbatim to the generated " "document. For that, I make a temp copy of the input file and do all the " "changes I want to this before passing it to B for parsing." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:52 msgid "" "So that it works, I replace the entities asking for a file inclusion by the " "content of the given file (so that I can protect what needs to be in a " "subfile also). But nothing is done so far to correct the references (i.e., " "filename and line number) afterward. I'm not sure what the best thing to do " "is." msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:54 msgid "" "This module is an adapted version of sgmlspl (SGML postprocessor for the " "ONSGMLS parser) which was:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Sgml.pm:55 #, no-wrap msgid "" " Copyright © 1995 David Megginson \n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Sgml.pm:56 msgid "The adaptation for po4a was done by:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Sgml.pm:59 #, no-wrap msgid "" " Copyright © 1995 David Megginson .\n" " Copyright © 2002-2005 SPI, Inc.\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:2 msgid "Locale::Po4a::TeX - convert TeX documents and derivatives from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:5 msgid "" "Locale::Po4a::TeX is a module to help the translation of TeX documents into " "other [human] languages. It can also be used as a base to build modules for " "TeX-based documents." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:6 msgid "" "Users should probably use the LaTeX module, which inherits from the TeX " "module and contains the definitions of common LaTeX commands." msgstr "" #. type: =head1 #: lib/Locale/Po4a/TeX.pm:7 msgid "TRANSLATING WITH PO4A::TEX" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:8 msgid "" "This module can be used directly to handle generic TeX documents. This will " "split your document in smaller blocks (paragraphs, verbatim blocks, or even " "smaller like titles or indexes)." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:9 msgid "" "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 derivative module from this, to describe your " "format's details. See the section B below, for " "the process description." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:10 msgid "" "This module can also be customized by lines starting with \"% po4a:\" in the " "TeX file. This process is described in the B section." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:16 msgid "Comma-separated list of environments which should not be re-wrapped." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:17 msgid "" "Note that there is a difference between verbatim and no_wrap environments. " "There is no command and comments analysis in verbatim blocks." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:18 lib/Locale/Po4a/TeX.pm:25 #: lib/Locale/Po4a/TeX.pm:54 msgid "" "If this environment was not already registered, po4a will consider that this " "environment does not take any parameters." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:19 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:20 msgid "" "Colon-separated list of files that should not be included by \\input and " "\\include." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:24 msgid "Comma-separated list of environments which should be taken as verbatim." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:26 msgid "Use these options to override the default behavior of the defined commands." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:28 msgid "" "The TeX module can be customized with lines starting by B<% po4a:>. These " "lines are interpreted as commands to the parser. The following commands are " "recognized:" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:29 msgid "B<% po4a: command> I B I" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:30 msgid "" "Indicates that the arguments of the I command should be treated as " "the arguments of the I command." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:31 msgid "B<% po4a: command> I I" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:32 msgid "" "This describes in detail the parameters of the I command. This " "information will be used to check the number of arguments and their types." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:33 msgid "You can precede the I command by" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:34 msgid "an asterisk (B<*>)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:35 msgid "" "po4a will extract this command from paragraphs (if it is located at the " "beginning or the end of a paragraph). The translators will then have to " "translate the parameters that are marked as translatable." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:36 msgid "a plus (B<+>)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:37 msgid "" "As for an asterisk, the command will be extracted if it appear at an " "extremity of a block, but the parameters won't be translated separately. " "The translator will have to translate the command concatenated to all its " "parameters. This keeps more context, and is useful for commands with small " "words in parameter, which can have multiple meanings (and translations)." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:38 msgid "" "Note: In this case you don't have to specify which parameters are " "translatable, but po4a must know the type and number of parameters." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:39 msgid "a minus (B<->)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:40 msgid "" "In this case, the command won't be extracted from any block. But if it " "appears alone on a block, then only the parameters marked as translatable " "will be presented to the translator. This is useful for font commands. " "These commands should generally not be separated from their paragraph (to " "keep the context), but there is no reason to annoy the translator with them " "if a whole string is enclosed in such a command." msgstr "" #. type: verbatim #: lib/Locale/Po4a/TeX.pm:41 #, no-wrap msgid "" "The I argument is a set of [] (to indicate an optional\n" "argument) or {} (to indicate a mandatory argument).\n" "You can place an underscore (_) between these brackets to indicate that\n" "the parameter must be translated. For example:\n" " % po4a: command *chapter [_]{_}\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TeX.pm:42 #, no-wrap msgid "" "This indicates that the chapter command has two parameters: an optional\n" "(short title) and a mandatory one, which must both be translated.\n" "If you want to specify that the href command has two mandatory parameters,\n" "that you don't want to translate the URL (first parameter), and that you\n" "don't want this command to be separated from its paragraph (which allow\n" "the translator to move the link in the sentence), you can use:\n" " % po4a: command -href {}{_}\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:43 msgid "" "In this case, the information indicating which arguments must be translated " "is only used if a paragraph is only composed of this href command." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:44 msgid "B<% po4a: environment> I I" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TeX.pm:45 #, no-wrap msgid "" "This defines the parameters accepted by the I environment and specifies " "the ones to be translated.\n" "This information is later used to check the number of arguments of the\n" "\\begin command.\n" "The syntax of the I argument is the same as described for the\n" "others commands.\n" "The first parameter of the \\begin command is the name of the environment.\n" "This parameter must not be specified in the list of parameters. Here are\n" "some examples:\n" " % po4a: environment multicols {}\n" " % po4a: environment equation\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:46 msgid "" "As for the commands, I can be preceded by a plus (+) to indicate that " "the \\begin command must be translated with all its arguments." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:47 msgid "B<% po4a: separator> I B<\">IB<\">" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:48 msgid "" "Indicates that an environment should be split according to the given regular " "expression." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:49 msgid "" "The regular expression is delimited by quotes. It should not create any " "back-reference. You should use (?:) if you need a group. It may also need " "some escapes." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:50 msgid "" "For example, the LaTeX module uses the \"(?:&|\\\\\\\\)\" regular expression " "to translate separately each cell of a table (lines are separated by '\\\\' " "and cells by '&')." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:51 msgid "" "The notion of environment is expanded to the type displayed in the PO file. " "This can be used to split on \"\\\\\\\\\" in the first mandatory argument of " "the title command. In this case, the environment is title{#1}." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:52 msgid "B<% po4a: verbatim environment> I" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:53 msgid "" "Indicate that I is a verbatim environment. Comments and commands will " "be ignored in this environment." msgstr "" #. type: =head1 #: lib/Locale/Po4a/TeX.pm:55 msgid "WRITING DERIVATE MODULES" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:56 msgid "B" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:57 msgid "B" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:58 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:59 msgid "" "Add a string as a comment to be added around the next translated element. " "This is mostly useful to the texinfo module, as comments are automatically " "handled in TeX." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:61 msgid "" "Wrapper around Transtractor's translate, with pre- and post-processing " "filters." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:62 msgid "" "Comments of a paragraph are inserted as a PO comment for the first " "translated string of this paragraph." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:63 msgid "B($buffer)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:64 msgid "This function returns:" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:65 lib/Locale/Po4a/TeX.pm:93 msgid "A command name" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:66 msgid "" "If no command is found at the beginning of the given buffer, this string " "will be empty. Only commands that can be separated are considered. The " "%separated_command hash contains the list of these commands." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:67 lib/Locale/Po4a/TeX.pm:94 msgid "A variant" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:68 msgid "" "This indicates if a variant is used. For example, an asterisk (*) can be " "added at the end of sections command to specify that they should not be " "numbered. In this case, this field will contain \"*\". If there is no " "variant, the field is an empty string." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:69 msgid "An array of tuples (type of argument, argument)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:70 msgid "" "The type of argument can be either '{' (for mandatory arguments) or '[' (for " "optional arguments)." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:71 msgid "The remaining buffer" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:72 msgid "" "The rest of the buffer after the removal of this leading command and its " "arguments. If no command is found, the original buffer is not touched and " "returned in this field." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:73 msgid "B($buffer)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:74 msgid "The same as B, but for commands at the end of a buffer." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:75 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:76 msgid "" "Recursively translate a buffer by separating leading and trailing commands " "(those which should be translated separately) from the buffer." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:77 msgid "" "If a function is defined in %translate_buffer_env for the current " "environment, this function will be used to translate the buffer instead of " "translate_buffer()." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:78 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:79 msgid "Overloads Transtractor's read()." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:80 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:81 msgid "" "Recursively read a file, appending included files which are not listed in " "the @exclude_include array. Included files are searched using the " "B command from the Kpathsea library." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:82 msgid "" "Except from the file inclusion part, it is a cut and paste from " "Transtractor's read." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:83 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:84 msgid "" "Subroutine for parsing a file with po4a directives (definitions for new " "commands)." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:85 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:86 msgid "Parse a definition line of the form \"% po4a: \"." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:87 msgid "See the B section for more details." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:88 msgid "B" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:89 msgid "B" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:90 msgid "B" msgstr "" #. type: =head1 #: lib/Locale/Po4a/TeX.pm:91 lib/Locale/Po4a/TransTractor.pm:97 #: lib/Locale/Po4a/Xml.pm:134 msgid "INTERNAL FUNCTIONS used to write derivative parsers" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:92 msgid "" "Command and environment functions take the following arguments (in addition " "to the $self object):" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:95 msgid "An array of (type, argument) tuples" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:96 msgid "The current environment" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:97 msgid "" "The first 3 arguments are extracted by get_leading_command or " "get_trailing_command." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:98 msgid "" "Command and environment functions return the translation of the command with " "its arguments and a new environment." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:99 msgid "" "Environment functions are called when a \\begin command is found. They are " "called with the \\begin command and its arguments." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:100 msgid "" "The TeX module only proposes one command function and one environment " "function: generic_command and generic_environment." msgstr "" #. type: verbatim #: lib/Locale/Po4a/TeX.pm:101 #, no-wrap msgid "" "generic_command uses the information specified by\n" "register_generic_command or by adding definition to the TeX file:\n" " % po4a: command I I\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TeX.pm:102 #, no-wrap msgid "" "generic_environment uses the information specified by\n" "register_generic_environment or by adding definition to the TeX file:\n" " % po4a: environment I I\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:103 msgid "" "Both functions will only translate the parameters that were specified as " "translatable (with a '_'). generic_environment will append the name of the " "environment to the environment stack and generic_command will append the " "name of the command followed by an identifier of the parameter (like {#7} or " "[#2])." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:105 msgid "This module needs more tests." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:106 msgid "It was tested on a book and with the Python documentation." msgstr "" #. type: =head1 #: lib/Locale/Po4a/TeX.pm:107 lib/Locale/Po4a/Xml.pm:183 msgid "TODO LIST" msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:108 msgid "Automatic detection of new commands" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:109 msgid "" "The TeX module could parse the newcommand arguments and try to guess the " "number of arguments, their type and whether or not they should be " "translated." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:110 msgid "Translation of the environment separator" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:111 msgid "" "When \\item is used as an environment separator, the item argument is " "attached to the following string." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:112 msgid "Some commands should be added to the environment stack" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:113 msgid "" "These commands should be specified by couples. This can be used to specify " "commands beginning or ending a verbatim environment." msgstr "" #. type: =item #: lib/Locale/Po4a/TeX.pm:114 msgid "Others" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:115 msgid "Various other points are tagged TODO in the source." msgstr "" #. type: =head1 #: lib/Locale/Po4a/TeX.pm:116 msgid "KNOWN BUGS" msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:117 msgid "Various points are tagged FIXME in the source." msgstr "" #. type: textblock #: lib/Locale/Po4a/TeX.pm:119 msgid "" "L, " "L, " "L" msgstr "" #. type: textblock #: lib/Locale/Po4a/Texinfo.pm:2 msgid "" "Locale::Po4a::Texinfo - convert Texinfo documents and derivates from/to PO " "files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Texinfo.pm:5 msgid "" "Locale::Po4a::Texinfo is a module to help the translation of Texinfo " "documents into other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Texinfo.pm:6 msgid "" "This module contains the definitions of common Texinfo commands and " "environments." msgstr "" #. type: textblock #: lib/Locale/Po4a/Texinfo.pm:7 msgid "" "Only the comments starting with 'TRANSLATORS' are added to the PO files to " "guide the translators." msgstr "" #. type: textblock #: lib/Locale/Po4a/Texinfo.pm:9 msgid "" "This module is still beta and not ready for production use. Please send " "patches to contribute, not bug reports as we don't know how to deal with " "them." msgstr "" #. type: =item #: lib/Locale/Po4a/Texinfo.pm:12 msgid "no-warn" msgstr "" #. type: textblock #: lib/Locale/Po4a/Texinfo.pm:13 msgid "Do not warn about the current state of this module." msgstr "" #. type: textblock #: lib/Locale/Po4a/Texinfo.pm:19 msgid "Copyright © 2004-2007 Nicolas FRANÇOIS ." msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:2 msgid "Locale::Po4a::Text - convert text documents from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:5 msgid "" "Locale::Po4a::Text is a module to help the translation of text documents " "into other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:6 msgid "" "Paragraphs are split on empty lines (or lines containing only spaces or " "tabulations)." msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:7 msgid "" "If a paragraph contains a line starting by a space (or tabulation), this " "paragraph won't be rewrapped." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:10 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:11 msgid "" "Treat paragraphs that look like a colon-separated key-value pair as verbatim " "(with the C flag in the PO file). A key-value pair string is a " "string like C, containing one or more non-colon and non-space " "characters followed by a colon followed by at least one non-space character " "before the end of the line." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:12 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:13 msgid "Deactivate the detection of bullets." msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:14 msgid "" "By default, when a bullet is detected, the bullet paragraph is not " "considered as a verbatim paragraph (with the C flag in the PO " "file). Instead, the corresponding paragraph is rewrapped in the translation." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:15 msgid "BI" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:16 msgid "Specify how tabulations shall be handled. The I can be any of:" msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:17 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:18 msgid "Lines with tabulations introduce breaks in the current paragraph." msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:20 msgid "Paragraph containing tabulations will not be re-wrapped." msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:21 msgid "By default, tabulations are considered as spaces." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:22 msgid "BI" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:23 msgid "" "A regular expression matching lines which introduce breaks. The regular " "expression will be anchored so that the whole line must match." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:24 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:25 msgid "" "Handle the header and footer of released versions, which only contain non " "translatable information." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:26 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:27 msgid "" "Handle the fortunes format, which separate fortunes with a line which " "consists in '%' or '%%', and use '%%' as the beginning of a comment." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:28 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:29 msgid "Handle some special markup in Markdown-formatted texts." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:30 msgid "B (markdown-only)" msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:32 msgid "B (markdown only)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:33 msgid "" "Allow the YAML Front Matter parser to fail on malformated headers. This is " "particularly helpful when your file starts with a horizontal ruler instead " "of a YAML Front Matter, but you insist on using three dashes only for your " "ruler." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:34 msgid "B (markdown only)" msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:37 msgid "B (markdown-only)" msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:39 msgid "B[B<=>I]" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:40 msgid "" "Handle Debian's control files. A comma-separated list of fields to be " "translated can be provided." msgstr "" #. type: =item #: lib/Locale/Po4a/Text.pm:41 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:42 msgid "" "Prevent po4a from wrapping any lines. This means that every content is " "handled verbatim, even simple paragraphs." msgstr "" #. type: textblock #: lib/Locale/Po4a/Text.pm:44 msgid "Tested successfully on simple text files and NEWS.Debian files." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Text.pm:48 #, no-wrap msgid "" " Copyright © 2005-2008 Nicolas FRANÇOIS " ".\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Text.pm:49 #, no-wrap msgid "" " Copyright © 2008-2009, 2018 Jonas Smedegaard .\n" " Copyright © 2020 Martin Quinson .\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:2 msgid "Locale::Po4a::TransTractor - generic trans(lator ex)tractor." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:5 msgid "" "This class is the ancestor of every po4a parser used to parse a document, to " "search translatable strings, to extract them to a PO file and to replace " "them by their translation in the output document." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:6 msgid "More formally, it takes the following arguments as input:" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:7 lib/Locale/Po4a/TransTractor.pm:9 #: lib/Locale/Po4a/TransTractor.pm:12 lib/Locale/Po4a/TransTractor.pm:14 #: lib/Locale/Po4a/TransTractor.pm:114 lib/Locale/Po4a/TransTractor.pm:116 #: lib/Locale/Po4a/TransTractor.pm:118 lib/Locale/Po4a/TransTractor.pm:130 #: lib/Locale/Po4a/TransTractor.pm:132 lib/Locale/Po4a/TransTractor.pm:134 #: lib/Locale/Po4a/TransTractor.pm:149 lib/Locale/Po4a/TransTractor.pm:151 #: lib/Locale/Po4a/TransTractor.pm:153 msgid "-" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:8 msgid "a document to translate;" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:10 msgid "a PO file containing the translations to use." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:11 msgid "As output, it produces:" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:13 msgid "" "another PO file, resulting of the extraction of translatable strings from " "the input document;" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:15 msgid "" "a translated document, with the same structure than the one in input, but " "with all translatable strings replaced with the translations found in the PO " "file provided in input." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:16 msgid "Here is a graphical representation of this:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:17 #, no-wrap msgid "" " Input document --\\ /---> Output document\n" " \\ / (translated)\n" " +-> parse() function -----+\n" " / \\\n" " Input PO --------/ \\---> Output PO\n" " (extracted)\n" "\n" msgstr "" #. type: =head1 #: lib/Locale/Po4a/TransTractor.pm:18 msgid "FUNCTIONS YOUR PARSER SHOULD OVERRIDE" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:19 msgid "parse()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:20 msgid "" "This is where all the work takes place: the parsing of input documents, the " "generation of output, and the extraction of the translatable strings. This " "is pretty simple using the provided functions presented in the section " "B below. See also the B, which presents an " "example." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:21 msgid "" "This function is called by the process() function below, but if you choose " "to use the new() function, and to add content manually to your document, you " "will have to call this function yourself." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:22 msgid "docheader()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:23 msgid "" "This function returns the header we should add to the produced document, " "quoted properly to be a comment in the target language. See the section " "B, from L, for what " "it is good for." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:25 msgid "" "The following example parses a list of paragraphs beginning with " "\"

\". For the sake of simplicity, we assume that the document is well " "formatted, i.e. that '

' tags are the only tags present, and that this tag " "is at the very beginning of each paragraph." msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:26 #, no-wrap msgid "" " sub parse {\n" " my $self = shift;\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:27 #, no-wrap msgid "" " PARAGRAPH: while (1) {\n" " my ($paragraph,$pararef)=(\"\",\"\");\n" " my $first=1;\n" " my ($line,$lref)=$self->shiftline();\n" " while (defined($line)) {\n" " if ($line =~ m/

/ && !$first--; ) {\n" " # Not the first time we see

.\n" " # Reput the current line in input,\n" " # and put the built paragraph to output\n" " $self->unshiftline($line,$lref);\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:28 #, no-wrap msgid "" " # Now that the document is formed, translate it:\n" " # - Remove the leading tag\n" " $paragraph =~ s/^

//s;\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:29 #, no-wrap msgid "" " # - push to output the leading tag (untranslated) and the\n" " # rest of the paragraph (translated)\n" " $self->pushline( \"

\"\n" " . $self->translate($paragraph,$pararef)\n" " );\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:30 #, no-wrap msgid "" " next PARAGRAPH;\n" " } else {\n" " # Append to the paragraph\n" " $paragraph .= $line;\n" " $pararef = $lref unless(length($pararef));\n" " }\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:31 #, no-wrap msgid "" " # Reinit the loop\n" " ($line,$lref)=$self->shiftline();\n" " }\n" " # Did not get a defined line? End of input file.\n" " return;\n" " }\n" " }\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:32 msgid "" "Once you've implemented the parse function, you can use your document class, " "using the public interface presented in the next section." msgstr "" #. type: =head1 #: lib/Locale/Po4a/TransTractor.pm:33 msgid "PUBLIC INTERFACE for scripts using your parser" msgstr "" #. type: =head2 #: lib/Locale/Po4a/TransTractor.pm:34 msgid "Constructor" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:35 msgid "process(%)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:36 msgid "" "This function can do all you need to do with a po4a document in one " "invocation. Its arguments must be packed as a hash. ACTIONS:" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:37 msgid "a." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:38 msgid "Reads all the PO files specified in po_in_name" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:39 msgid "b." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:40 msgid "Reads all original documents specified in file_in_name" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:41 msgid "c." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:42 msgid "Parses the document" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:43 msgid "d." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:44 msgid "Reads and applies all the addenda specified" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:45 msgid "e." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:46 msgid "Writes the translated document to file_out_name (if given)" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:47 msgid "f." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:48 msgid "Writes the extracted PO file to po_out_name (if given)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:49 msgid "ARGUMENTS, beside the ones accepted by new() (with expected type):" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:50 msgid "file_in_name (@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:51 msgid "List of filenames where we should read the input document." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:52 msgid "file_in_charset ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:53 msgid "Charset used in the input document (if it isn't specified, use UTF-8)." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:54 msgid "file_out_name ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:55 msgid "Filename where we should write the output document." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:56 msgid "file_out_charset ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:57 msgid "Charset used in the output document (if it isn't specified, use UTF-8)." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:58 msgid "po_in_name (@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:59 msgid "" "List of filenames where we should read the input PO files from, containing " "the translation which will be used to translate the document." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:60 msgid "po_out_name ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:61 msgid "" "Filename where we should write the output PO file, containing the strings " "extracted from the input document." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:62 msgid "addendum (@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:63 msgid "List of filenames where we should read the addenda from." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:64 msgid "addendum_charset ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:65 msgid "Charset for the addenda." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:66 msgid "new(%)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:67 msgid "" "Create a new po4a document. Accepted options (in the hash passed as a " "parameter):" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:68 msgid "verbose ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:69 msgid "Sets the verbosity." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:70 msgid "debug ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:71 msgid "Sets the debugging." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:72 msgid "wrapcol ($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:73 msgid "The column at which we should wrap text in output document (default: 76)." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:74 msgid "The negative value means not to wrap lines at all." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:75 msgid "" "Also it accepts next options for underlying Po-files: B, " "B, B, B, " "B, B." msgstr "" #. type: =head2 #: lib/Locale/Po4a/TransTractor.pm:76 msgid "Manipulating document files" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:77 msgid "read($$)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:78 msgid "" "Add another input document data at the end of the existing array C<< " "@{$self->{TT}{doc_in}} >>. The argument is the filename to read. If a second " "argument is provided, it is the filename to use in the references." msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:79 #, no-wrap msgid "" "This array C<< @{$self->{TT}{doc_in}} >> holds this input document data as " "an\n" "array of strings with alternating meanings.\n" " * The string C<$textline> holding each line of the input text data.\n" " * The string C<< $filename:$linenum >> holding its location and called as\n" " \"reference\" (C starts with 1).\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:80 msgid "" "Please note that it does not parse anything. You should use the parse() " "function when you're done with packing input files into the document." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:82 msgid "Write the translated document to the given filename." msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:83 #, no-wrap msgid "" "This translated document data are provided by:\n" " * C<< $self->docheader() >> holding the header text for the plugin, and\n" " * C<< @{$self->{TT}{doc_out}} >> holding each line of the main translated " "text in the array.\n" "\n" msgstr "" #. type: =head2 #: lib/Locale/Po4a/TransTractor.pm:84 msgid "Manipulating PO files" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:85 msgid "readpo($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:86 msgid "" "Add the content of a file (which name is passed as argument) to the existing " "input PO. The old content is not discarded." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:87 msgid "writepo($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:88 msgid "Write the extracted PO file to the given filename." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:89 msgid "stats()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:90 msgid "" "Returns some statistics about the translation done so far. Please note that " "it's not the same statistics than the one printed by msgfmt " "--statistic. Here, it's stats about recent usage of the PO file, while " "msgfmt reports the status of the file. It is a wrapper to the " "Locale::Po4a::Po::stats_get function applied to the input PO file. Example " "of use:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:91 #, no-wrap msgid "" " [normal use of the po4a document...]\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:92 #, no-wrap msgid "" " ($percent,$hit,$queries) = $document->stats();\n" " print \"We found translations for $percent\\% ($hit from $queries) of " "strings.\\n\";\n" "\n" msgstr "" #. type: =head2 #: lib/Locale/Po4a/TransTractor.pm:93 msgid "Manipulating addenda" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:94 msgid "addendum($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:95 msgid "" "Please refer to L for more information on what addenda are, " "and how translators should write them. To apply an addendum to the " "translated document, simply pass its filename to this function and you are " "done ;)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:96 msgid "This function returns a non-null integer on error." msgstr "" #. type: =head2 #: lib/Locale/Po4a/TransTractor.pm:98 msgid "Getting input, providing output" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:99 msgid "" "Four functions are provided to get input and return output. They are very " "similar to shift/unshift and push/pop of Perl." msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:100 #, no-wrap msgid "" " * Perl shift returns the first array item and drop it from the array.\n" " * Perl unshift prepends an item to the array as the first array item.\n" " * Perl pop returns the last array item and drop it from the array.\n" " * Perl push appends an item to the array as the last array item.\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:101 msgid "" "The first pair is about input, while the second is about output. Mnemonic: " "in input, you are interested in the first line, what shift gives, and in " "output you want to add your result at the end, like push does." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:102 msgid "shiftline()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:103 msgid "" "This function returns the first line to be parsed and its corresponding " "reference (packed as an array) from the array C<< @{$self->{TT}{doc_in}} >> " "and drop these first 2 array items. Here, the reference is provided by a " "string C<< $filename:$linenum >>." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:104 msgid "unshiftline($$)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:105 msgid "" "Unshifts the last shifted line of the input document and its corresponding " "reference back to the head of C<< {$self->{TT}{doc_in}} >>." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:106 msgid "pushline($)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:107 msgid "Push a new line to the end of C<< {$self->{TT}{doc_out}} >>." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:108 msgid "popline()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:109 msgid "Pop the last pushed line from the end of C<< {$self->{TT}{doc_out}} >>." msgstr "" #. type: =head2 #: lib/Locale/Po4a/TransTractor.pm:110 msgid "Marking strings as translatable" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:111 msgid "One function is provided to handle the text which should be translated." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:112 msgid "translate($$$)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:113 msgid "Mandatory arguments:" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:115 msgid "A string to translate" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:117 msgid "The reference of this string (i.e. position in inputfile)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:119 msgid "" "The type of this string (i.e. the textual description of its structural " "role; used in Locale::Po4a::Po::gettextization(); see also " "L, section B)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:120 msgid "" "This function can also take some extra arguments. They must be organized as " "a hash. For example:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:121 #, no-wrap msgid "" " $self->translate(\"string\",\"ref\",\"type\",\n" " 'wrap' => 1);\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:123 msgid "" "boolean indicating whether we can consider that whitespaces in string are " "not important. If yes, the function canonizes the string before looking for " "a translation or extracting it, and wraps the translation." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:125 msgid "" "the column at which we should wrap (default: the value of B " "specified during creation of the TransTractor or 76)." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:126 msgid "The negative value will be substracted from the default." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:128 msgid "an extra comment to add to the entry." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:129 msgid "Actions:" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:131 msgid "Pushes the string, reference and type to po_out." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:133 msgid "" "Returns the translation of the string (as found in po_in) so that the parser " "can build the doc_out." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:135 msgid "" "Handles the charsets to recode the strings before sending them to po_out and " "before returning the translations." msgstr "" #. type: =head2 #: lib/Locale/Po4a/TransTractor.pm:136 msgid "Misc functions" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:137 msgid "verbose()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:138 msgid "" "Returns if the verbose option was passed during the creation of the " "TransTractor." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:139 msgid "debug()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:140 msgid "" "Returns if the debug option was passed during the creation of the " "TransTractor." msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:141 msgid "get_in_charset()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:142 msgid "This function return the charset that was provided as master charset" msgstr "" #. type: =item #: lib/Locale/Po4a/TransTractor.pm:143 msgid "get_out_charset()" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:144 msgid "" "This function will return the charset that should be used in the output " "document (usually useful to substitute the input document's detected charset " "where it has been found)." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:145 msgid "" "It will use the output charset specified in the command line. If it wasn't " "specified, it will use the input PO's charset, and if the input PO has the " "default \"CHARSET\", it will return the input document's charset, so that no " "encoding is performed." msgstr "" #. type: =head1 #: lib/Locale/Po4a/TransTractor.pm:146 msgid "FUTURE DIRECTIONS" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:147 msgid "" "One shortcoming of the current TransTractor is that it can't handle " "translated document containing all languages, like debconf templates, or " ".desktop files." msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:148 msgid "To address this problem, the only interface changes needed are:" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:150 msgid "take a hash as po_in_name (a list per language)" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:152 msgid "add an argument to translate to indicate the target language" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:154 msgid "" "make a pushline_all function, which would make pushline of its content for " "all languages, using a map-like syntax:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:155 #, no-wrap msgid "" " $self->pushline_all({ \"Description[\".$langcode.\"]=\".\n" " $self->translate($line,$ref,$langcode)\n" " });\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/TransTractor.pm:156 msgid "Will see if it's enough ;)" msgstr "" #. type: verbatim #: lib/Locale/Po4a/TransTractor.pm:158 #, no-wrap msgid "" " Denis Barbier \n" " Martin Quinson (mquinson#debian.org)\n" " Jordi Vilalta \n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Wml.pm:2 msgid "" "Locale::Po4a::Wml - convert WML (web markup language) documents from/to PO " "files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Wml.pm:5 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Wml.pm:6 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Wml.pm:10 msgid "" "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 , which " "are often defined in the WML. Improvements will be added in the future " "releases." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Wml.pm:12 #, no-wrap msgid "" " Martin Quinson (mquinson#debian.org)\n" " Noriada Kobayashi \n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Wml.pm:14 #, no-wrap msgid "" " Copyright © 2005 SPI, Inc.\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xhtml.pm:2 msgid "Locale::Po4a::Xhtml - convert XHTML documents from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xhtml.pm:5 msgid "" "Locale::Po4a::Xhtml is a module to help the translation of XHTML documents " "into other [human] languages." msgstr "" #. type: =item #: lib/Locale/Po4a/Xhtml.pm:8 msgid "B[B<=>I]" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xhtml.pm:9 msgid "" "Include files specified by an include SSI (Server Side Includes) element " "(e.g. )." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xhtml.pm:10 msgid "B You should use it only for static files." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xhtml.pm:11 msgid "" "An additional I parameter can be specified. It specifies the root " "path to find files included by a B attribute." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xhtml.pm:14 msgid "" "\"It works for me\", which means I use it successfully on my personal Web " "site. However, YMMV: please let me know if something doesn't work for you." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Xhtml.pm:18 #, no-wrap msgid "" " Yves Rütschlé \n" " Nicolas François \n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Xhtml.pm:20 #, no-wrap msgid "" " Copyright © 2004 Yves Rütschlé \n" " Copyright © 2007-2008 Nicolas François \n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:2 msgid "Locale::Po4a::Xml - convert XML documents and derivates from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:5 msgid "" "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." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Xml.pm:6 msgid "TRANSLATING WITH PO4A::XML" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:7 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:8 msgid "" "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 below, for " "the process description." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:10 msgid "" "The global debug option causes this module to show the excluded strings, in " "order to see if it skips something important." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:12 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:13 msgid "Prevents it to strip the spaces around the extracted strings." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:15 msgid "" "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 option below." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:16 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:17 msgid "Attributes are wrapped by default. This option disables wrapping." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:18 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:19 msgid "" "It makes the tags and attributes searching to work in a case insensitive " "way. If it's defined, it will treat EBooKElaNG and " "EBOOKELang as EbookElang." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:20 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:21 msgid "" "Escape quotes in output strings. Necessary, for example, for creating " "string resources for use by Android build tools." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:22 msgid "" "See also: " "https://developer.android.com/guide/topics/resources/string-resource.html" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:23 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:24 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:25 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:26 msgid "" "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:" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:28 msgid "This is the default value. The module will exit with an error." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:29 msgid "I" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:30 msgid "The module will continue, and will issue a warning." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:31 msgid "I" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:32 msgid "The module will continue without any warnings." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:33 msgid "" "Be careful when using this option. It is generally recommended to fix the " "input file." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:34 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:35 msgid "Note: This option is deprecated." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:36 msgid "" "Extracts only the specified tags in the B option. Otherwise, it will " "extract all the tags except the ones specified." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:37 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:38 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:39 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:40 msgid "" "String indicating the path (e.g. EbbbEEaaaE) 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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:41 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:42 msgid "" "Boolean indicating whether closing tags are optional (as in HTML). By " "default, missing closing tags raise an error handled according to " "B." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:43 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:44 msgid "" "Note: This option is deprecated. You should use the B and " "B options instead." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:45 msgid "" "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 " "EaaaE, but you can join some (EbbbEEaaaE) to say " "that the content of the tag EaaaE will only be translated when it's " "into a EbbbE tag." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:46 msgid "" "You can also specify some tag options by putting some characters in front of " "the tag hierarchy. For example, you can put I (wrap) or I (don't wrap) " "to override the default behavior specified by the global B option." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:47 lib/Locale/Po4a/Xml.pm:92 msgid "Example: WEchapterEEtitleE" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:49 msgid "" "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: " "EbbbEEaaaElang specifies that the lang attribute will only " "be translated if it's in an EaaaE tag, and it's in a EbbbE " "tag." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:50 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:51 msgid "" "Do not translate attributes in inline tags. Instead, replace all attributes " "of a tag by po4a-id=." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:52 msgid "" "This is useful when attributes shall not be translated, as this simplifies " "the strings for translators, and avoids typos." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:53 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:54 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:55 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:56 msgid "" "Space-separated list of tags which should break the sequence. By default, " "all tags break the sequence." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:57 lib/Locale/Po4a/Xml.pm:61 #: lib/Locale/Po4a/Xml.pm:66 lib/Locale/Po4a/Xml.pm:76 #: lib/Locale/Po4a/Xml.pm:96 msgid "" "The tags must be in the form , but you can join some (), if a " "tag () should only be considered when it's within another tag ()." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:58 msgid "" "Please note a tag should be listed in only one of the B, B " "B, or B setting string." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:60 msgid "" "Space-separated list of tags which should be treated as inline. By default, " "all tags break the sequence." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:62 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:63 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:64 msgid "" "The location of the placeholder in its block will be marked with a string " "similar to:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Xml.pm:65 #, no-wrap msgid "" " \n" "\n" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:67 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:68 msgid "" "By default, Processing Instructions (i.e., C? ... ?E> tags) are " "handled as inline tags. Pass this option if you want the PI to be handled " "as breaking tag. Note that unprocessed PHP tags are handled as Processing " "Instructions by the parser." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:69 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:70 msgid "" "Space separated list of tags that the module should not try to set by " "default in any category." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:71 msgid "" "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 setting string." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:72 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:73 msgid "" "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)." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:74 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:75 msgid "Space-separated list of tags you want to translate." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:77 msgid "" "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 and B option." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:78 msgid "I" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:79 msgid "Tags should be translated and content can be re-wrapped." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:80 msgid "I" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:81 msgid "Tags should be translated and content should not be re-wrapped." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:82 msgid "I" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:83 msgid "Tags should be translated inline." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:84 msgid "I

" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:85 msgid "Tags should be translated as placeholders." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:86 msgid "" "Internally, the XML parser only cares about these four options: I I " "I I

." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:87 msgid "" "* Tags listed in B are set to I or I depending on the B " "option." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:88 msgid "* Tags listed in B are set to I." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:89 msgid "* Tags listed in B are set to I

." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:90 msgid "* Tags listed in B are without any of these options set." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:91 msgid "" "You can verify actual internal parameter behavior by invoking B with " "B<--debug> option." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:93 msgid "" "Please note a tag should be listed in either B or " "B setting string." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:95 msgid "Space-separated list of tags you do not want to translate." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:97 msgid "" "Please note a translatable inline tag in an untranslated tag is treated as a " "translatable breaking tag, I setting is dropped and I or I is set " "depending on the B option." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:98 msgid "B" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:99 msgid "" "The default categories for tags that are not in any of the translated, " "untranslated, break, inline, or placeholder." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:100 msgid "" "This is a set of letters as defined in B and this setting is " "only valid for translatable tags." msgstr "" #. type: =head1 #: lib/Locale/Po4a/Xml.pm:101 msgid "WRITING DERIVATIVE MODULES" msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:102 msgid "DEFINE WHAT TAGS AND ATTRIBUTES TO TRANSLATE" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:103 msgid "" "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:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Xml.pm:104 #, no-wrap msgid "" " $self->{options}{'new_option'}='';\n" " $self->SUPER::initialize(%options);\n" " $self->{options}{'_default_translated'}.='

';\n" " $self->{options}{'attributes'}.=' <p>lang id';\n" " $self->{options}{'_default_inline'}.=' <br>';\n" " $self->treat_options;\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:105 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:107 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:108 msgid "See L<Locale::Po4a::Docbook(3pm)|Locale::Po4a::Docbook>," msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:109 msgid "OVERRIDING THE found_string FUNCTION" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:110 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:111 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:112 msgid "" "The content of these options depends on the kind of string it is (specified " "in an entry of this hash):" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:113 msgid "type=\"tag\"" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:114 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:115 msgid "type=\"attribute\"" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:116 msgid "" "Means that the found string is the value of a translatable attribute. The " "entry \"attribute\" has the name of the attribute." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:117 msgid "" "It must return the text that will replace the original in the translated " "document. Here's a basic example of this function:" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Xml.pm:118 #, no-wrap msgid "" " sub found_string {\n" " my ($self,$text,$ref,$options)=@_;\n" " $text = $self->translate($text,$ref,\"type \".$options->{'type'},\n" " 'wrap'=>$self->{options}{'wrap'});\n" " return $text;\n" " }\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:119 msgid "" "There's another simple example in the new Dia module, which only filters " "some strings." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:120 msgid "MODIFYING TAG TYPES (TODO)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:121 msgid "" "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:" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:122 msgid "B<beginning>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:123 msgid "Specifies the beginning of the tag, after the \"E<lt>\"." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:124 msgid "B<end>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:125 msgid "Specifies the end of the tag, before the \"E<gt>\"." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:126 msgid "B<breaking>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:127 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:128 msgid "B<f_breaking>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:129 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:130 msgid "B<f_extract>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:131 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:132 msgid "B<f_translate>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:133 msgid "" "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." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:135 msgid "WORKING WITH TAGS" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:136 msgid "get_path()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:137 msgid "" "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>." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:138 msgid "" "An additional array of tags (without brackets) can be passed as argument. " "These path elements are added to the end of the current path." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:139 msgid "tag_type()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:140 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:141 msgid "" "Here, the tag has structure started by E<lt> and end by E<gt> and it can " "contain multiple lines." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:142 lib/Locale/Po4a/Xml.pm:145 #: lib/Locale/Po4a/Xml.pm:152 lib/Locale/Po4a/Xml.pm:161 msgid "" "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($$) >>." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:143 msgid "extract_tag($$)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:144 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:146 msgid "get_tag_name(@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:147 msgid "" "This function returns the name of the tag passed as an argument, in the " "array form returned by extract_tag." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:148 msgid "breaking_tag()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:149 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:150 msgid "treat_tag()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:151 msgid "" "This function translates the next tag from the input stream. Using each tag " "type's custom translation functions." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:153 msgid "tag_in_list($@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:154 msgid "" "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)." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:155 msgid "WORKING WITH ATTRIBUTES" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:156 msgid "treat_attributes(@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:157 msgid "" "This function handles the translation of the tags' attributes. It receives " "the tag without the beginning / end marks, and then it finds the attributes, " "and it translates the translatable ones (specified by the module option " "B<attributes>). This returns a plain string with the translated tag." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:158 msgid "WORKING WITH TAGGED CONTENTS" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:159 msgid "treat_content()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:160 msgid "" "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." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:162 msgid "WORKING WITH THE MODULE OPTIONS" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:163 msgid "treat_options()" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:164 msgid "" "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)." msgstr "" #. type: =head2 #: lib/Locale/Po4a/Xml.pm:165 msgid "GETTING TEXT FROM THE INPUT DOCUMENT" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:166 msgid "get_string_until($%)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:167 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:168 msgid "The valid options are:" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:169 msgid "B<include>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:170 msgid "This makes the returned array to contain the searched text" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:171 msgid "B<remove>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:172 msgid "This removes the returned stream from the input" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:173 msgid "B<unquoted>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:174 msgid "This ensures that the searched text is outside any quotes" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:175 msgid "B<regex>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:176 msgid "" "This denotes that the first argument is a regular expression rather than an " "plain string" msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:177 msgid "skip_spaces(\\@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:178 msgid "" "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." msgstr "" #. type: =item #: lib/Locale/Po4a/Xml.pm:179 msgid "join_lines(@)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:180 msgid "" "This function returns a simple string with the text from the argument array " "(discarding the references)." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:182 msgid "This module can translate tags and attributes." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:184 msgid "DOCTYPE (ENTITIES)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:185 msgid "" "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." msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:186 msgid "" "MODIFY TAG TYPES FROM INHERITED MODULES (move the tag_types structure inside " "the $self hash?)" msgstr "" #. type: textblock #: lib/Locale/Po4a/Xml.pm:188 msgid "" "L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, " "L<po4a(7)|po4a.7>" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Xml.pm:190 #, no-wrap msgid "" " Jordi Vilalta <jvprat@gmail.com>\n" " Nicolas François <nicolas.francois@centraliens.net>\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Xml.pm:192 #, no-wrap msgid "" " Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>\n" " Copyright © 2008-2009 Nicolas François <nicolas.francois@centraliens.net>\n" "\n" msgstr "" #. type: textblock #: lib/Locale/Po4a/Yaml.pm:2 msgid "Locale::Po4a::Yaml - convert YAML files from/to PO files" msgstr "" #. type: textblock #: lib/Locale/Po4a/Yaml.pm:4 msgid "" "Locale::Po4a::Yaml is a module to help the translation of Yaml files into " "other [human] languages." msgstr "" #. type: textblock #: lib/Locale/Po4a/Yaml.pm:5 msgid "" "The module extracts the value of YAML hashes and arrays. Hash keys are not " "extracted." msgstr "" #. type: textblock #: lib/Locale/Po4a/Yaml.pm:6 msgid "NOTE: This module parses the YAML file with YAML::Tiny." msgstr "" #. type: =item #: lib/Locale/Po4a/Yaml.pm:9 msgid "B<keys>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Yaml.pm:10 msgid "" "Space-separated list of hash keys to process for extraction, all other keys " "are skipped. Keys are matched with a case-sensitive match. If B<paths> and " "B<keys> are used together, values are included if they are matched by at " "least one of the options. Arrays values are always returned unless the " "B<skip_array> option is provided." msgstr "" #. type: =item #: lib/Locale/Po4a/Yaml.pm:11 msgid "B<paths>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Yaml.pm:12 msgid "" "Comma-separated list of hash paths to process for extraction, all other " "paths are skipped. Paths are matched with a case-sensitive match. If " "B<paths> and B<keys> are used together, values are included if they are " "matched by at least one of the options. Arrays values are always returned " "unless the B<skip_array> option is provided." msgstr "" #. type: =item #: lib/Locale/Po4a/Yaml.pm:13 msgid "B<skip_array>" msgstr "" #. type: textblock #: lib/Locale/Po4a/Yaml.pm:14 msgid "Do not translate array values." msgstr "" #. type: verbatim #: lib/Locale/Po4a/Yaml.pm:18 #, no-wrap msgid "" " Brian Exelbierd <bex@pobox.com>\n" "\n" msgstr "" #. type: verbatim #: lib/Locale/Po4a/Yaml.pm:20 #, no-wrap msgid "" " Copyright © 2017 Brian Exelbierd.\n" " Copyright © 2022 Martin Quinson <mquinson#debian.org>.\n" "\n" msgstr ""