# Copyright (C) 2004-2012 Software in the Public Interest # # Carme Cirera , 2004. # Jordi Vilalta , 2004. msgid "" msgstr "" "Project-Id-Version: po4a pod\n" "Report-Msgid-Bugs-To: devel@lists.po4a.org\n" "POT-Creation-Date: 2024-05-26 00:33+0200\n" "PO-Revision-Date: 2017-04-02 07:44+0200\n" "Last-Translator: Jordi Vilalta \n" "Language-Team: CA\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # TRANSLATORS: put here the language code of your language #. type: Attribute 'xml:lang' of: #: share/doc/po4a-display-man.xml:1 share/doc/po4a-display-pod.xml:1 msgid "en" msgstr "ca" #. 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 "1" #. 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 "DESCRIPCIÓ" #. 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 "OPCIONS" #. 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 "un fitxer PO que conté les traduccions a utilitzar." #. 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 "CONSULTEU TAMBÉ" #. 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 #, fuzzy msgid "AUTHOR" msgstr "AUTORS" #. 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 #, fuzzy #| msgid "po4a-build" msgid "po4a-display-pod" msgstr "po4a-build" #. 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 "NOM" #. type: textblock #: po4a:2 msgid "po4a - update both the PO files and translated documents in one shot" msgstr "po4a - actualitza els fitxers PO i els documents traduïts alhora" #. 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 "SINOPSI" #. type: textblock #: po4a:4 #, fuzzy msgid "B<po4a> [I<options>] I<config_file>" msgstr "po4a [-dhvV] E<lt>fitxer_configE<gt>" #. 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 #, fuzzy, no-wrap #| msgid "" #| " Input document --\\ /---> Output document\n" #| " \\ / (translated)\n" #| " +-> parse() function -----+\n" #| " / \\\n" #| " Input PO --------/ \\---> Output PO\n" #| " (extracted)\n" #| "\n" 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 "" " Document d'entrada -\\ /---> Document de sortida\n" " \\ / (traduït)\n" " +--> funció parse() --+\n" " / \\\n" " PO d'entrada --------/ \\---> PO de sortida\n" " (extret)\n" "\n" #. 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 #, fuzzy, no-wrap #| msgid "" #| " $ po4a-gettextize -f <format> -m <master.doc> -p <translation.pot>\n" #| "\n" msgid "" " po4a-gettextize --format man --master foo.1 --localized foo.de.1 --po de.po\n" "\n" msgstr "" " $ po4a-gettextize -f <format> -m <principal.doc> -p <traducció.pot>\n" "\n" #. 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 #, fuzzy, no-wrap #| msgid "" #| " [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \\\n" #| " add_$lang:?man/po4a/add_$lang/$lang.add opt:\"-k 80\"\n" #| "\n" msgid "" " [type: man] man/foo.1 $lang:man/translated/foo.$lang.1\n" "\n" msgstr "" " [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \\\n" " add_$lang:?man/po4a/add_$lang/$lang.add opt:\"-k 80\"\n" "\n" #. 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 #, fuzzy #| msgid "Here is a graphical representation of this:" msgid "Here is a recap of the files in this setup:" msgstr "Aquí hi ha una representació gràfica:" #. 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 "B<-k>, B<--keep>" #. type: textblock #: po4a:30 #, fuzzy #| 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 at least 80% to get written." 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 "" "Mínim llindar del percentatge de traducció per mantenir (és a dir, escriure) " "el fitxer resultant (per defecte: 80). És a dir, per defecte, els fitxers " "han d'estar traduïts com a mínim en un 80% per poder ser escrits." #. type: =item #: po4a:31 po4a-normalize:12 po4a-translate:30 msgid "B<-w>, B<--width>" msgstr "B<-w>, B<--width>" #. type: textblock #: po4a:32 po4a-normalize:13 po4a-translate:31 #, fuzzy #| msgid "Column at which we should wrap the resulting file." msgid "" "Column at which we should wrap the resulting file if the format supports it " "(default: 76)." msgstr "Columna a la que s'ha de justificar el fitxer resultant." #. type: =item #: po4a:33 po4a-gettextize:26 po4a-normalize:22 po4a-translate:32 #: po4a-updatepo:28 msgid "B<-h>, B<--help>" msgstr "B<-h>, B<--help>" #. type: textblock #: po4a:34 po4a-gettextize:27 po4a-normalize:23 po4a-translate:33 #: po4a-updatepo:29 msgid "Show a short help message." msgstr "Mostra un breu missatge d'ajuda." #. type: =item #: po4a:35 po4a-gettextize:16 po4a-normalize:28 po4a-translate:18 #: po4a-updatepo:16 msgid "B<-M>, B<--master-charset>" msgstr "B<-M>, B<--master-charset>" #. type: textblock #: po4a:36 #, fuzzy #| msgid "" #| "Charset of the files containing the document to translate. Note that all " #| "files must have the same charset." msgid "" "Charset of the files containing the documents to translate. Note that all " "master documents must use the same charset." msgstr "" "Joc de caracters dels fitxers que contenen el document a traduir. Tingui en " "compte que tots els fitxers han de tenir el mateix joc de caracters." #. type: =item #: po4a:37 po4a-gettextize:20 po4a-translate:22 msgid "B<-L>, B<--localized-charset>" msgstr "B<-L>, B<--localized-charset>" #. type: textblock #: po4a:38 #, fuzzy #| msgid "" #| "Charset of the files containing the document to translate. Note that all " #| "files must have the same charset." msgid "" "Charset of the files containing the localized documents. Note that all " "translated documents will use the same charset." msgstr "" "Joc de caracters dels fitxers que contenen el document a traduir. Tingui en " "compte que tots els fitxers han de tenir el mateix joc de caracters." #. type: =item #: po4a:39 po4a-translate:14 msgid "B<-A>, B<--addendum-charset>" msgstr "B<-A>, B<--addendum-charset>" #. type: textblock #: po4a:40 po4a-translate:15 msgid "" "Charset of the addenda. Note that all the addenda should be in the same " "charset." msgstr "" "Joc de caràcters dels annexos. Tingueu en compte que tots els annexos han " "d'estar en el mateix joc de caràcters." #. type: =item #: po4a:41 po4a-gettextize:32 po4a-normalize:34 po4a-translate:36 #: po4a-updatepo:32 msgid "B<-V>, B<--version>" msgstr "B<-V>, B<--version>" #. 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 "Mostra la versió dels guions i acaba." #. type: =item #: po4a:43 po4a-gettextize:34 po4a-translate:38 po4a-updatepo:34 msgid "B<-v>, B<--verbose>" msgstr "B<-v>, B<--verbose>" #. type: textblock #: po4a:44 po4a-gettextize:35 po4a-translate:39 po4a-updatepo:35 msgid "Increase the verbosity of the program." msgstr "Incrementa el nivell d'informació del programa." #. type: =item #: po4a:45 msgid "B<-q>, B<--quiet>" msgstr "B<-q>, B<--quiet>" #. type: textblock #: po4a:46 msgid "Decrease the verbosity of the program." msgstr "Disminueix el nivell d'informació del programa." #. type: =item #: po4a:47 po4a-gettextize:36 po4a-translate:40 po4a-updatepo:36 msgid "B<-d>, B<--debug>" msgstr "B<-d>, B<--debug>" #. type: textblock #: po4a:48 po4a-gettextize:37 po4a-translate:41 po4a-updatepo:37 msgid "Output some debugging information." msgstr "Mostra alguna informació de depuració." #. type: =item #: po4a:49 po4a-gettextize:24 po4a-normalize:10 po4a-translate:26 #: po4a-updatepo:20 msgid "B<-o>, B<--option>" msgstr "B<-o>, B<--option>" #. type: textblock #: po4a:50 po4a-gettextize:25 po4a-normalize:11 po4a-translate:27 #: po4a-updatepo:21 #, fuzzy 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 "" "Passa una opció extra al plugin de format. Consulti la documentació de cada " "plugin per a més informació sobre les opcions vàlides i els seus significats." #. type: =item #: po4a:51 msgid "B<-f>, B<--force>" msgstr "B<-f>, B<--force>" #. 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 "B<--stamp>" #. 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 "B<--no-translations>" #. type: textblock #: po4a:62 #, fuzzy msgid "" "Do not generate the translated documents, only update the POT and PO files." msgstr "Escriu el document traduït al fitxer amb el nom donat." #. type: =item #: po4a:63 #, fuzzy #| msgid "B<--no-backups>" msgid "B<--no-update>" msgstr "B<--no-backups>" #. type: textblock #: po4a:64 msgid "" "Do not change the POT and PO files, only the translation may be updated." msgstr "" #. type: =item #: po4a:65 #, fuzzy #| msgid "B<--no-translations>" msgid "B<--keep-translations>" msgstr "B<--no-translations>" #. 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 "B<--rm-translations>" #. type: textblock #: po4a:69 msgid "Remove the translated files (implies B<--no-translations>)." msgstr "" #. type: =item #: po4a:70 msgid "B<--no-backups>" msgstr "B<--no-backups>" #. 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 "B<--rm-backups>" #. 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 #, fuzzy #| msgid "B<porefs>" msgid "B<--porefs> I<type>" msgstr "B<porefs>" #. 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 #, fuzzy #| msgid "B<-M>, B<--master-charset>" msgid "B<--master-language>" msgstr "B<-M>, B<--master-charset>" #. type: textblock #: po4a:91 #, fuzzy #| msgid "" #| "Charset of the files containing the document to translate. Note that all " #| "files must have the same charset." msgid "" "Language of the source files containing the documents to translate. Note " "that all master documents must use the same language." msgstr "" "Joc de caracters dels fitxers que contenen el document a traduir. Tingui en " "compte que tots els fitxers han de tenir el mateix joc de caracters." #. 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 "B<--no-previous>" #. 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 "B<--previous>" #. 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 #, fuzzy msgid "CONFIGURATION FILE" msgstr "SINTAXI DEL FITXER DE CONFIGURACIÓ" #. 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 #, fuzzy, no-wrap #| msgid "" #| " [po4a_paths] doc/l10n/project.doc.pot $lang:doc/l10n/$lang.po\n" #| "\n" msgid "" " [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po\n" "\n" msgstr "" " [po4a_paths] doc/l10n/projecte.doc.pot $lang:doc/l10n/$lang.po\n" "\n" #. 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 #, fuzzy, no-wrap #| msgid "" #| " [po4a_paths] doc/l10n/project.doc.pot $lang:doc/l10n/$lang.po\n" #| "\n" msgid "" " [po4a_langs] fr de\n" " [po4a_paths] man/po/project.pot $lang:man/po/$lang.po\n" "\n" msgstr "" " [po4a_paths] doc/l10n/projecte.doc.pot $lang:doc/l10n/$lang.po\n" "\n" #. 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 "" " [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po\n" "\n" #. 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 "Especificant els documents a traduir" #. 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 #, fuzzy, no-wrap #| msgid "" #| " [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \\\n" #| " de:doc/de/mein_kram.sgml\n" #| " [type: pod] script fr:doc/fr/script.1 de:doc/de/script.1 \\\n" #| " add_fr:doc/l10n/script.fr.add\n" #| "\n" 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: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \\\n" " de:doc/de/mein_kram.sgml\n" " [type: pod] script fr:doc/fr/script.1 de:doc/de/script.1 \\\n" " add_fr:doc/l10n/script.fr.add\n" "\n" #. 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 #, fuzzy msgid "Specifying options" msgstr "Especificant la plantilla d'idiomes" #. 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 #, fuzzy #| msgid "The PO file containing the translations." msgid "Addendum: Adding extra content in the translation" msgstr "un fitxer PO que conté les traduccions a utilitzar." #. 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 #, fuzzy, no-wrap #| msgid "" #| " [type: pod] script $lang:doc/$lang/script.1 \\\n" #| " add_fr:doc/l10n/script.fr.add\n" #| "\n" msgid "" " [type: pod] script fr:doc/fr/script.1 \\\n" " add_fr:doc/l10n/script.fr.add\n" "\n" msgstr "" " [type: pod] script $lang:doc/$lang/script.1 \\\n" " add_fr:doc/l10n/script.fr.add\n" "\n" #. 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: pod] script $lang:doc/$lang/script.1 \\\n" " add_$lang:doc/l10n/script.$lang.add\n" "\n" #. 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 "B<?>" #. 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 "B<@>" #. 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 "B<!>" #. 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 #, fuzzy, no-wrap #| msgid "" #| " [type: pod] script $lang:doc/$lang/script.1 \\\n" #| " add_$lang:doc/l10n/script.$lang.add\n" #| "\n" msgid "" " [type: pod] script $lang:doc/$lang/script.1 add_$lang:?doc/l10n/script.$lang.add\n" "\n" msgstr "" " [type: pod] script $lang:doc/$lang/script.1 \\\n" " add_$lang:doc/l10n/script.$lang.add\n" "\n" #. type: textblock #: po4a:183 msgid "The following includes a list of addendum for every language:" msgstr "" #. type: verbatim #: po4a:184 #, fuzzy, no-wrap #| msgid "" #| " [type: pod] script $lang:doc/$lang/script.1 \\\n" #| " add_$lang:doc/l10n/script.$lang.add\n" #| "\n" msgid "" " [type: pod] script $lang:doc/$lang/script.1 add_$lang:@doc/l10n/script.$lang.add\n" "\n" msgstr "" " [type: pod] script $lang:doc/$lang/script.1 \\\n" " add_$lang:doc/l10n/script.$lang.add\n" "\n" #. type: =head2 #: po4a:185 #, fuzzy #| msgid "A string to translate" msgid "Filtering the translated strings" msgstr "La cadena a traduir" #. 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 #, fuzzy #| msgid "" #| "L<po4a-gettextize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, " #| "L<po4a(7)>" msgid "L<po4a-gettextize(1)>, L<po4a(7)>." msgstr "" "L<po4a-gettextize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" #. 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 "AUTORS" #. type: verbatim #: po4a:192 po4a-gettextize:79 po4a-normalize:39 po4a-translate:53 #: po4a-updatepo:56 lib/Locale/Po4a/Man.pm:110 #, fuzzy, no-wrap #| msgid "" #| " Denis Barbier <barbier@linuxfr.org>\n" #| " Nicolas François <nicolas.francois@centraliens.net>\n" #| " Martin Quinson (mquinson#debian.org)\n" #| "\n" msgid "" " Denis Barbier <barbier@linuxfr.org>\n" " Nicolas François <nicolas.francois@centraliens.net>\n" " Martin Quinson (mquinson#debian.org)\n" "\n" msgstr "" " Denis Barbier <barbier@linuxfr.org>\n" " Nicolas François <nicolas.francois@centraliens.net>\n" " Martin Quinson (mquinson#debian.org)\n" "\n" #. 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 "DRET DE CÒPIA I LLICÈNCIA" #. type: textblock #: po4a:194 po4a-gettextize:81 po4a-normalize:41 po4a-translate:55 #: po4a-updatepo:58 #, fuzzy #| msgid "Copyright 2002-2012 by SPI, inc." msgid "Copyright 2002-2023 by SPI, inc." msgstr "Copyright 2002-2012 per SPI, inc." #. 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 #, fuzzy #| msgid "" #| "This program is free software; you may redistribute it and/or modify it " #| "under the terms of GPL (see the COPYING file)." 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 "" "Aquest programa és programari lliure; podeu redistribuir-lo i/o modificar-lo " "sota els termes de la GPL (consulteu el fitxer COPYING)." #. type: textblock #: po4a-gettextize:2 msgid "" "po4a-gettextize - convert an original file (and its translation) to a PO file" msgstr "" "po4a-gettextize - converteix un fitxer original (i la seva traducció) en un " "fitxer PO" #. type: textblock #: po4a-gettextize:4 #, fuzzy #| msgid "" #| "B<po4a-gettextize> B<-f> I<fmt> B<-m> I<master.doc> [B<-l> I<XX.doc>] B<-" #| "p> I<XX.po>" msgid "" "B<po4a-gettextize> B<-f> I<fmt> B<-m> I<master.doc> B<-l> I<XX.doc> B<-p> " "I<XX.po>" msgstr "" "B<po4a-gettextize> B<-f> I<fmt> B<-m> I<principal.doc> [B<-l> I<XX.doc>] B<-" "p> I<XX.po>" #. type: textblock #: po4a-gettextize:5 msgid "(I<XX.po> is the output, all others are inputs)" msgstr "(I<XX.po> és la sortida, tots els altres són l'entrada)" #. 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 #, fuzzy #| msgid "" #| "If the master document has non-ASCII characters, the new generated PO " #| "file will be in UTF-8, in order to allow non-standard characters in a " #| "culture independent way. Else (if the master document is completely in " #| "ASCII), the generated PO will use the encoding of the translated input " #| "document." 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 "" "Si el document principal té caracters no-ASCII, el fitxer PO generat estarà " "en UTF-8, per tal de permetre caracters no-estàndards de forma independent " "de la cultura. Sinó (si el document principal està completament en ascii), " "el fitxer PO generat utilitzarà la codificació del document traduït " "d'entrada." #. type: =item #: po4a-gettextize:12 po4a-normalize:26 po4a-translate:10 po4a-updatepo:12 msgid "B<-f>, B<--format>" msgstr "B<-f>, B<--format>" #. 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 "" "Tipus de format de la documentació que vol tractar. Utilitzi l'opció B<--" "help-format> per veure el llistat de formats disponibles." #. type: =item #: po4a-gettextize:14 po4a-translate:16 po4a-updatepo:14 msgid "B<-m>, B<--master>" msgstr "B<-m>, B<--master>" #. 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 "Joc de caracters del fitxer que conté el document a traduir." #. type: =item #: po4a-gettextize:18 po4a-normalize:30 po4a-translate:20 msgid "B<-l>, B<--localized>" msgstr "B<-l>, B<--localized>" #. 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 "Joc de caracters del fitxer que conté el document localitzat." #. type: =item #: po4a-gettextize:22 po4a-translate:24 po4a-updatepo:18 msgid "B<-p>, B<--po>" msgstr "B<-p>, B<--po>" #. 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 "" "Fitxer on s'escriurà el catàleg de missatges. Si no es proporciona, el " "catàleg de missatges s'escriurà a la sortida estàndard." #. type: =item #: po4a-gettextize:28 po4a-normalize:24 po4a-translate:34 po4a-updatepo:30 msgid "B<--help-format>" msgstr "B<--help-format>" #. type: textblock #: po4a-gettextize:29 po4a-normalize:25 po4a-translate:35 po4a-updatepo:31 msgid "List the documentation formats understood by po4a." msgstr "Llista els formats de documentació reconeguts per po4a." #. type: =item #: po4a-gettextize:30 #, fuzzy #| msgid "B<-k>, B<--keep>" msgid "B<-k> B<--keep-temps>" msgstr "B<-k>, B<--keep>" #. 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 #, fuzzy #| msgid "HOWTO convert a pre-existing translation to po4a?" msgid "Converting a manual translation to po4a" msgstr "Com convertir una traducció pre-existent a po4a?" #. type: textblock #: po4a-gettextize:47 #, fuzzy #| msgid "" #| "If you already have a translated file, B<po4a-gettextize> will try to " #| "extract the translations it contains and put them in place in the written " #| "PO file. Be warned that very few intelligence is used in this process: " #| "the Nth string of the translated file is supposed to be the translation " #| "of the Nth string in the original. If it's not the case, you're dead. " #| "That's why it is very important that both files share exactly the same " #| "structure." 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 "" "Si ja teniu un fitxer traduït, B<po4a-gettextize> intentarà extreure les " "traduccions que conté i posar-les a lloc en el fitxer PO de sortida. Teniu " "en compte que aquest procés té una inteligència molt escassa: se suposa que " "l'enèssima cadena del fitxer traduït és la traducció de l'enèssima cadena de " "l'original. Si no és el cas, esteu mort. És per això que és molt important " "que ambdós fitxers comparteixin exactament la mateixa estructura." #. 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 #, fuzzy #| msgid "" #| "The idea here is to take the original document and its translation, and " #| "to say that the Nth extracted string from the translation is the " #| "translation of the Nth extracted string from the original. In order to " #| "work, both files must share exactly the same structure. For example, if " #| "the files have the following structure, 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')." 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 "" "La idea és agafar el document original i la seva traducció, i suposar que " "l'enèsima cadena extreta de la traducció, és la traducció de l'enèsima " "cadena de l'original. Perquè funcioni, ambdós fitxers han de compartir " "exactament la mateixa estructura. Per exemple, si els fitxers tenen la " "següent estructura, es molt poc probable que la quarta cadena de la " "traducció (del tipus 'capítol') sigui la traducció de la quarta cadena de " "l'original (del tipus 'paràgraf')." #. type: verbatim #: po4a-gettextize:50 #, no-wrap msgid "" " Original Translation\n" "\n" msgstr "" " Original Traducció\n" "\n" #. 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 "" " capítol capítol\n" " paràgraf paràgraf\n" " paràgraf paràgraf\n" " paràgraf capítol\n" " capítol paràgraf\n" " paràgraf paràgraf\n" "\n" #. 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 #, fuzzy #| msgid "" #| "If you are lucky (i.e., if the structures of both documents perfectly " #| "match), it will work seamlessly and you will be set in a few seconds. " #| "Otherwise, you may understand why this process has such an ugly name, and " #| "you'd better be prepared to some grunt work here. In any case, remember " #| "that it is the price to pay to get the comfort of po4a afterward. And the " #| "good point is that you have to do so only once." 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 "" "Si està de sort (és a dir, si les estructures dels documents encaixen a la " "perfecció), tot funcionarà correctament i haurà acabat en pocs segons. En " "cas contrari, haurà d'entendre per què aquest procés té un nom tan espantós, " "i hauria d'estar preparat per a una mica de feina de grunyits. De totes " "maneres, recordi que aquest és el preu que ha de pagar per aconseguir " "després la comoditat de po4a. I la part bona és que només haurà de fer-ho " "una vegada." #. 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 #, fuzzy #| msgid "" #| "It may help to read the section B<Gettextization: how does it work?> " #| "below. Understanding the internal process will help you to make this " #| "work. The good point is that B<po4a-gettextize> is rather verbose about " #| "what went wrong when it happens. First, it pinpoints where in the " #| "documents the structures' discrepancies are. You will learn 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 will be dumped to " #| "F<gettextization.failed.po>." 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 "" "El pot ajudar llegir la secció B<Gettextització: com funciona?> de més " "avall. La comprensió del funcionament intern del procés l'ajudarà a fer-lo " "funcionar. El milor és que B<po4a-gettextize> dóna molta informació quan " "alguna cosa no ha anat bé. Primer, apuntarà on s'ha trobat la discrepància " "d'estructures en els documents. Després mostrarà les cadenes que no " "encaixen, la seva posició en el text, i el tipus de cadascuna. A més a més, " "el fitxer PO generat fins al moment es guardarà a F<gettextization.failed." "po>." #. 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 #, fuzzy #| msgid "" #| "If you changed the structure a bit (to merge two paragraphs, or split " #| "another one), undo those changes. If there are issues in the original, " #| "you should inform the original author. Fixing them in your translation " #| "only fixes them for a part of the community. And moreover, it's " #| "impossible when using po4a ;)" 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 "" "Si ha canviat una mica l'estructura (per ajuntar dos paràgrafs, o partir-ne " "algun), desfaci els canvis. Si hi ha problemes amb l'original, hauria " "d'informar l'autor original. Arreglar-ho a la traducció només ho arregla per " "una part de la comunitat. I a més, és impossible quan utilitza po4a ;)" #. type: textblock #: po4a-gettextize:62 #, fuzzy #| msgid "" #| "Sometimes, the paragraph content does match, but their types don't. " #| "Fixing it is rather format-dependant. In POD and man, it often comes from " #| "the fact that one of the two contains a line beginning with a white space " #| "where the other doesn't. 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." 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 "" "A vegades el contingut del paràgraf encaixa, però el seu tipus no. Arreglar " "això depèn molt del format. En POD i man, a vegades és culpa de que una de " "les dues línies comença amb espai i l'altra no. En aquests formats, aquest " "paràgraf no podria justificar-se i es tornaria d'un tipus diferent. " "Simplement elimini l'espai per solucionar-ho. També pot tractar-se d'un " "error tipogràfic al nom del tag." #. type: textblock #: po4a-gettextize:63 #, fuzzy #| msgid "" #| "Likewise, two paragraphs may get merged together in POD when the " #| "separating line contains some spaces, or when there is no empty line " #| "before the =item line and the content of the item." 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 "" "A més a més, dos paràgrafs poden ajuntar-se en el POD quan la línea de " "separació conté alguns espais, o quan no hi ha una línia de separació abans " "de la línia =item i del contingut de l'element." #. type: textblock #: po4a-gettextize:64 #, fuzzy #| msgid "" #| "Sometimes, there is a desynchronization between the files, and the " #| "translation is attached to the wrong original paragraph. It is the sign " #| "that the real problem was before in the files. Check F<gettextization." #| "failed.po> to see when the desynchronization begins, and fix it there." 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 "" "A vegades, hi ha una desincronització entre els fitxers, i la traducció " "s'encaixa a un paràgraf original equivocat. Aquest és un signe de que " "realment ja hi havia un problema abans. Comprovi F<gettextization.failed.po> " "per veure quan comença la desincronització, i arreglar-ho allà." #. 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 #, fuzzy #| msgid "HOWTO convert a pre-existing translation to po4a?" msgid "Moving your translations to production" msgstr "Com convertir una traducció pre-existent a po4a?" #. 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 #, fuzzy #| msgid "" #| "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, " #| "L<po4a(7)>" msgid "" "L<po4a(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, " "L<po4a(7)>." msgstr "" "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, L<po4a(7)>" #. type: textblock #: po4a-normalize:2 msgid "" "po4a-normalize - normalize a documentation file by parsing it in po4a, and " "writing it back" msgstr "" "po4a-normalize - normalitza un fitxer de documentació analitzant-lo amb " "po4a, i tornant-lo a escriure" #. type: textblock #: po4a-normalize:4 msgid "B<po4a-normalize> B<-f> I<fmt> I<master.doc>" msgstr "B<po4a-normalize> B<-f> I<fmt> I<principal.doc>" #. 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 "" "L'objectiu del projecte po4a (PO per a tot) és facilitar la traducció (i " "sobretot el manteniment de les traduccions) utilitzant les eines de gettext " "en àrees on no eren d'esperar, com ara en la documentació." #. 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 "" "El guió B<po4a-normalize> és una eina de depuració emprada per comprovar que " "po4a no canvia els documents quan no ha de fer-ho. Tan sols s'utilitza " "durant el desenvolupament de nous mòduls, o si dubta de la validesa de les " "eines." #. type: textblock #: po4a-normalize:8 #, fuzzy #| msgid "" #| "The generated document will be written to F<po4a-normalize.output> while " #| "the generated PO file will be written to F<po4a-normalize.po>. No way to " #| "change that ;)" 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 "" "El document generat s'escriurà a F<po4a-normalize.output> mentre que el " "fitxer PO generat s'escriurà a F<po4a-normalize.po>. No hi ha manera de " "canviar-ho ;)" #. type: =item #: po4a-normalize:14 msgid "B<-b>, B<--blank>" msgstr "B<-b>, B<--blank>" #. 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 #, fuzzy #| msgid "B<-l>, B<--localized>" msgid "B<-C>, B<--capitalize>" msgstr "B<-l>, B<--localized>" #. 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 #, fuzzy #| msgid "B<-p>, B<--po>" msgid "B<-p>, B<--pot>" msgstr "B<-p>, B<--po>" #. 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 "" "L<po4a-gettextize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" #. type: textblock #: po4a-translate:2 msgid "po4a-translate - convert a PO file back to documentation format" msgstr "po4a-translate - retorna un fitxer PO al format de documentació" #. 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 "" "B<po4a-translate> B<-f> I<fmt> B<-m> I<principal.doc> B<-p> I<XX.po> B<-l> " "I<XX.doc>" #. type: textblock #: po4a-translate:5 msgid "(I<XX.doc> is the output, all others are inputs)" msgstr "(I<XX.doc> és la sortida, tots els altres són l'entrada)" #. 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 "" "El guió B<po4a-translate> està a càrrec de convertir la traducció (que s'ha " "fet en un fitxer PO) altre cop cap al format de documentació. El fitxer PO " "proporcionat ha de ser la traducció del fitxer POT que havia produït L<po4a-" "gettextize(1)>." #. type: =item #: po4a-translate:12 msgid "B<-a>, B<--addendum>" msgstr "B<-a>, B<--addendum>" #. 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 "" "Afegeix un fitxer al fitxer resultant (per posar el nom del traductor o una " "secció \"Sobre aquesta traducció\", per exemple). La primera línia del " "fitxer a insertar ha de ser una capçalera de PO4A indicant on s'ha d'afegir " "(consulti la secció B<Com afegir text addicional que no és traducció> a " "L<po4a(7)>)." #. type: textblock #: po4a-translate:17 msgid "File containing the master document to translate." msgstr "Fitxer que conté el document principal a traduir." #. type: textblock #: po4a-translate:21 msgid "File where the localized (translated) document should be written." msgstr "Fitxer on s'haurà d'escriure el document localitzat (traduït)." #. type: textblock #: po4a-translate:25 msgid "File from which the message catalog should be read." msgstr "Fitxer del quan s'ha de llegir el catàleg de missatges." #. type: textblock #: po4a-translate:29 #, fuzzy #| 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 at least 80% to get written." 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 "" "Mínim llindar del percentatge de traducció per mantenir (és a dir, escriure) " "el fitxer resultant (per defecte: 80). És a dir, per defecte, els fitxers " "han d'estar traduïts com a mínim en un 80% per poder ser escrits." #. 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 "Afegint contingut (a part de la traducció) als fitxers generats" #. type: textblock #: po4a-translate:46 #, fuzzy #| msgid "" #| "To add some extra content to the generated document beside what you " #| "translated (like the name of the translator, or a \"About this " #| "translation\" section), you should use the B<--addendum> option." 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 "" "Per afegir algun contingut extra al document generat a part del què hagueu " "traduït (com ara el nom del traductor, o una secció \"Sobre aquesta " "traducció\"), heu d'utilitzar l'opció B<--addendum>." #. 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 "" "La primera línia de l'apèndix ha de ser una capçalera que indiqui en quin " "punt del document s'ha d'insertar (pot ser abans o després d'una part " "indicada del document). La resta del fitxer s'afegirà al fitxer resultant " "sense cap mena de processat." #. 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 "" "Tingueu en compte que si po4a-translate no aconsegueix afegir algun dels " "fitxers donats, descartarà la traducció completa (perquè el fitxer faltant " "pot ser el que indiqui l'autor, cosa que evitaria que els usuaris poguessin " "contactar amb ell per informar-lo d'errors en la traducció)." #. 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 "" "La capçalera té una sintaxi força rígida. Per a més informació sobre com " "utilitzar aquesta característica i com funciona, consulti la pàgina de " "manual de L<po4a(7)>." #. type: textblock #: po4a-translate:51 msgid "" "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" msgstr "" "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" #. type: textblock #: po4a-updatepo:2 msgid "po4a-updatepo - update the translation (in PO format) of documentation" msgstr "" "po4a-updatepo - actualitza la traducció (en format PO) de la documentació" #. type: textblock #: po4a-updatepo:4 #, fuzzy #| msgid "" #| "B<po4a-updatepo> B<-f> I<fmt> (B<-m> I<master.docE>)+ (B<-p> I<XX.po>)+" msgid "B<po4a-updatepo> B<-f> I<fmt> (B<-m> I<master.doc>)+ (B<-p> I<XX.po>)+" msgstr "" "B<po4a-updatepo> B<-f> I<fmt> (B<-m> I<principal.docE>)+ (B<-p> I<XX.po>)+" #. type: textblock #: po4a-updatepo:5 msgid "(I<XX.po> are the outputs, all others are inputs)" msgstr "(I<XX.po> són les sortides, tots els altres són l'entrada)" #. 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 "" "El guió B<po4a-updatepo> està a càrrec d'actualitzar els fitxers PO per què " "reflecteixin els canvis fets al fitxer de documentació original. Per això, " "converteix el fitxer de documentació en un fitxer POT, i després crida " "L<msgmerge(1)> sobre aquest nou POT i els fitxers PO proporcionats." #. 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 "" "És possible proporcionar més d'un fitxer PO (si vol actualitzar més d'un " "idioma a la vegada), i diversos fitxers de documentació (si vol emmagatzemar " "les traduccions de diversos documents en els mateixos fitxers PO)." #. type: textblock #: po4a-updatepo:10 #, fuzzy #| msgid "" #| "If the master document has non-ASCII characters, it will convert the PO " #| "files to UTF-8 (if they weren't already), in order to allow non-standard " #| "characters in a culture independent way." 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 "" "Si el document principal té caracters no-ASCII, convertirà els fitxers PO a " "UTF-8 (si no ho eren ja), per tal de permetre caracters no-estàndards de " "forma independent de la cultura." #. type: textblock #: po4a-updatepo:15 msgid "File(s) containing the master document to translate." msgstr "Fitxer(s) que contenen el document principal a traduir." #. 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 "" "Joc de caracters dels fitxers que contenen el document a traduir. Tingui en " "compte que tots els fitxers han de tenir el mateix joc de caracters." #. 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 "" "Fitxer(s) PO a actualitzar. Si aquests no existeixen, B<po4a-updatepo> els " "crearà." #. 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 "" "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, L<po4a(7)>" #. 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 "" " Martin Quinson (mquinson#debian,org)\n" "\n" #. type: textblock #: msguntypot:35 msgid "Copyright 2005 by SPI, inc." msgstr "Copyright 2005 per SPI, inc." #. type: textblock #: doc/po4a.7.pod:2 msgid "po4a - framework to translate documentation and other materials" msgstr "po4a - marc de treball per traduir documentació i d'altre material" #. type: =head1 #: doc/po4a.7.pod:3 msgid "Introduction" msgstr "Introducció" #. 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 #, fuzzy #| msgid "" #| "I like the idea of open-source software, making it possible for everybody " #| "to access software and its source code. But being French, I'm well aware " #| "that the licensing is not the only restriction to the openness of " #| "software: non-translated free software is useless for non-English " #| "speakers, and we still have some work to make it available to really " #| "everybody out there." 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 "" "M'agrada la idea del programari de codi obert, cosa que fa possible que tot " "el món pugui accedir al programari i al seu propi codi font. Però al ser " "Francès, sóc ben conscient que la llicència no és la única restricció de la " "llibertat del programari: Els programes lliures no traduïts són inservibles " "per als qui no són de parla anglesa, i encara queda força feina per fer-los " "disponibles a tothom." #. 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 #, fuzzy #| msgid "" #| "Actually, open-source software themselves benefit of a rather decent " #| "level of translation, thanks to the wonderful gettext tool suite. It is " #| "able to extract the strings to translate from the program, present a " #| "uniform format to translators, and then use the result of their works at " #| "run time to display translated messages to the user." 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 "" "Actualment el programari lliure es beneficia d'un nivell decent de " "traducció, gràcies al meravellós paquet d'eines gettext. Aquest pot extreure " "les cadenes a traduir d'un programa, presentar-les en un format uniforme als " "traductors, i després utilitzar el resultat del seu treball en temps " "d'execució per mostrar els missatges traduïts a l'usuari." #. 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 "" "Si us plau, llegeixi també les B<PMF> més avall en aquest document per a una " "llista més completa d'avantatges i desavantatges d'aquesta solució." #. type: =head2 #: doc/po4a.7.pod:16 msgid "Supported formats" msgstr "Formats suportats" #. type: textblock #: doc/po4a.7.pod:17 msgid "" "Currently, this approach has been successfully implemented to several kinds " "of text formatting formats:" msgstr "" "Actualment, s'ha implementat satisfactòriament aquesta aproximació en alguns " "formats de text:" #. type: =item #: doc/po4a.7.pod:18 msgid "man (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:19 #, fuzzy 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 "" "El clàssic format de les pàgines de manual, utilitzades per un munt de " "programes. El suport de po4a es d'agrair, ja que el formateig és una mica " "difícil d'utilitzar, i no molt amistós per als principiants." #. 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 #, fuzzy #| msgid "" #| "This is the Perl Online Documentation format. The language and extensions " #| "themselves are documented that way, as well as most of the 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 life easier, " #| "but unfortunately, not the translator one." 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 "" "Aquest és el format de Documentació Online de Perl. El llenguatge i les " "seves mateixes extensions estan documentades així, igual que la majoria de " "guions de Perl. Al barrejar-lo en el mateix fitxer és més fàcil mantenir la " "documentació propera al codi actual. Facilita la vida del programador, però " "per desgràcia, no la del traductor." #. type: textblock #: doc/po4a.7.pod:26 #, fuzzy #| msgid "Locale::Po4a::Pod - convert POD data from/to PO files" msgid "See L<Locale::Po4a::Pod> for details." msgstr "Locale::Po4a::Pod - Converteix dades POD des de/a fitxers PO" #. type: =item #: doc/po4a.7.pod:27 msgid "sgml (mature parser)" msgstr "" #. type: textblock #: doc/po4a.7.pod:28 #, fuzzy #| msgid "" #| "Even if somewhat superseded by XML nowadays, this format is still used " #| "rather often for documents which are more than a few screens long. It " #| "allows you to make complete books. Updating the translation of so long " #| "documents can reveal to be a real nightmare. B<diff> reveals often " #| "useless when the original text was re-indented after update. Fortunately, " #| "po4a can help you in that process." 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 "" "Encara que avui en dia gairebé hagi estat substituït per XML, aquest format " "encara s'utilitza habitualment per documents més extensos que algunes " "pantalles. Aquest permet fer llibres complets. Actualitzar una traducció de " "documents tan llargs pot ser realment un malson. Sovint B<diff> es torna " "inservible quan s'ha reindentat el text original després de l'actualització. " "Afortunadament, po4a el pot ajudar en aquest procés." #. type: textblock #: doc/po4a.7.pod:29 #, fuzzy #| msgid "" #| "Currently, only the DebianDoc and DocBook DTD are supported, but adding " #| "support to 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." 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 "" "Actualment, només suporta els DTD de DebianDoc i de DocBook, però és " "realment fàcil afegir suport per alguns de nous. Fins i tot, és possible " "utilitzar po4a en un DTD desconegut de SGML sense canviar el codi, passant " "la informació necessària a la línia de comandes. Consulti <Locale::Po4a::" "Sgml(3pm)> per a més detalls." #. 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 #, fuzzy #| msgid "Locale::Po4a::Pod - convert POD data from/to PO files" msgid "See L<Locale::Po4a::Wml> for greater details." msgstr "Locale::Po4a::Pod - Converteix dades POD des de/a fitxers PO" #. 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 #, fuzzy #| msgid "Locale::Po4a::Pod - convert POD data from/to PO files" msgid "See L<Locale::Po4a::Yaml> for greater details." msgstr "Locale::Po4a::Pod - Converteix dades POD des de/a fitxers PO" #. 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 #, fuzzy #| msgid "Locale::Po4a::Pod - convert POD data from/to PO files" msgid "See L<Locale::Po4a::RubyDoc> for greater details." msgstr "Locale::Po4a::Pod - Converteix dades POD des de/a fitxers PO" #. 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 #, fuzzy #| msgid "Unsupported formats" msgid "Others supported formats" msgstr "Formats no suportats" #. type: textblock #: doc/po4a.7.pod:68 #, fuzzy #| msgid "" #| "Po4a can also handle some more rare or specialized formats, such as the " #| "documentation of compilation options for the 2.4.x kernels or the " #| "diagrams produced by the dia tool. Adding a new one is often very easy " #| "and the main task is to come up with a parser of your target format. See " #| "L<Locale::Po4a::TransTractor(3pm)> for more information about this." 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 "" "Po4a també pot tractar algus formats estranys o específics, de la mateixa " "manera que la documentació de les opcions de compilació del kernel 2.4.x o " "els diagrames produïts per l'eina dia. Afegir-ne un de nou sol ser una tasca " "molt fàcil i la tasca principal és aconseguir un analitzador pel seu format. " "Consulti L<Locale::Po4a::TransTractor(3pm)> per més informació." #. type: =item #: doc/po4a.7.pod:69 msgid "Unsupported formats" msgstr "Formats no suportats" #. type: textblock #: doc/po4a.7.pod:70 #, fuzzy 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 "" "A part d'aquests dos grans formats, n'hi ha molts altres que ens agradaria " "suportar a po4a, i no només de documentació. De fet, volem cobrir tots els " "\"forats\" deixats per les eines clàssiques de gettext. Això inclou la " "documentació de python, descripcions de paquets (deb y rpm), preguntes dels " "guions de instal·lació de paquets, registres de canvis dels paquets, i tots " "els formats específics utilitzats per programes com escenaris de jocs o els " "fitxers de recursos de wine." #. 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 #, fuzzy, 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 "" " fr.sgml original.sgml ---->--------+------>----------->-------+\n" " | | | |\n" " V V { actualització de l'original } |\n" " | | | |\n" " +--<---<--+ V |\n" " | | original.new.sgml----->------->----+\n" " V V | |\n" " [po4a-gettextize] +--->---->---+ |\n" " | | | V |\n" " | | | [po4a-updatepo] |\n" " | V ^ | V\n" " V original.pot | V |\n" " | | | fr.po |\n" " | | | ( difús ) |\n" " | { traducció } | | |\n" " | | ^ V V\n" " | | | {edició manual} |\n" " V V | | |\n" " | | | V V\n" " | | +--<--- fr.po apèndix original.sgml\n" " +---->----+---->------->---> (al dia) (opcional) (al dia)\n" " | | |\n" " v v v\n" " +------>-----+------<------+\n" " |\n" " v\n" " [po4a-translate]\n" " |\n" " V\n" " fr.sgml\n" " (al dia)\n" "\n" #. 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 #, fuzzy #| msgid "" #| "On the left part, the conversion of a translation not using po4a to this " #| "system is shown. On the top of the right part, the action of the original " #| "author is depicted (updating the documentation). The middle of the right " #| "part is where the automatic actions of po4a are depicted. The new " #| "material are extracted, and compared against the exiting translation. " #| "Parts which didn't change are found, and previous translation is used. " #| "Parts which where partially modified are also connected to the previous " #| "translation, but with a specific marker indicating that the translation " #| "must be updated. The bottom of the figure shows how a formatted document " #| "is built." 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 "" "A la part esquerra s'hi mostra la conversió d'una traducció que no utilitza " "po4a a aquest sistema. A dalt de la part dreta s'hi representa l'acció de " "l'autor original (actualitzar la documentació). Al mig de la part dreta s'hi " "simbolitzen les accions automàtiques de po4a. S'extrau el nou material i es " "compara amb la traducció existent. Es troben les parts que no han canviat, i " "es fa servir la traducció prèvia. Les parts parcialment modificades també es " "connecten a la traducció anterior, però se li afegeix un marcador indicant " "que la traducció s'ha d'actualitzar. La part de baix de la figura mostra com " "es construeix el document formatejat." #. 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 #, fuzzy #| msgid "po4a - update both the PO files and translated documents in one shot" msgid "" "Upon invocation, B<po4a> updates both the translation files and the " "translated documentation files automatically." msgstr "po4a - actualitza els fitxers PO i els documents traduïts alhora" #. type: =head2 #: doc/po4a.7.pod:84 #, fuzzy #| msgid "HOWTO begin a new translation?" msgid "Starting a new translation project" msgstr "Com començar una nova traducció?" #. 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 #, fuzzy #| msgid "a PO file containing the translations to use." msgid "Updating the translations and documents" msgstr "un fitxer PO que conté les traduccions a utilitzar." #. 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 #, fuzzy, no-wrap #| msgid "" #| " PO4A-HEADER:mode=after;position=<title>About;beginboundary=FakePo4aBoundary\n" #| "\n" msgid "" " PO4A-HEADER: position=About this document; mode=after; endboundary=\n" "\n" msgstr "" " PO4A-HEADER:mode=after;position=Quant a;beginboundary=FakePo4aBoundary\n" "\n" #. 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 argument (this can be a regexp). Do not forget " "that po4a considers the B 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=\n" "\n" msgstr "" #. type: textblock #: doc/po4a.7.pod:99 msgid "" "Once the C is found in the target document, po4a searches for the " "next line after the C that matches the provided C. " "The addendum is added right B that line (because we provided an " "I, 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 #, fuzzy, no-wrap #| msgid "" #| " PO4A-HEADER:mode=after;position=About;beginboundary=FakePo4aBoundary\n" #| "\n" msgid "" " PO4A-HEADER: position=About this document; mode=after; beginboundary=
\n" "\n" msgstr "" " PO4A-HEADER:mode=after;position=Quant a;beginboundary=FakePo4aBoundary\n" "\n" #. type: textblock #: doc/po4a.7.pod:102 msgid "" "Here, po4a searches for the first line matching C<<
>> after the " "line matching C in the translation, and add the " "addendum B that line since we provided a I, i.e. a " "boundary marking the beginning of the next section. So this header line " "requires placing the addendum after the section containing C, and instruct po4a that a section starts with a line containing " "the C<<
>> tag. This is equivalent to the previous example because " "what you really want is to add this addendum either after C<<
>> " "or before C<<
>>." msgstr "" #. type: textblock #: doc/po4a.7.pod:103 msgid "" "You can also set the insertion I to the value C, with a " "similar semantic: combining C with an C will put " "the addendum just B the matched boundary, that is the last potential " "boundary line before the C. Combining C with an " "C will put the addendum just B the matched boundary, " "that is the last potential boundary line before the C." 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 #, fuzzy #| msgid "" #| "don't use B<.fi> as B, because it will match with " #| "\"the[ fi]le\", which is obviously not what you expect. The correct " #| "B in that case is: B<^\\.fi$>." 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, because it will match with C, which is obviously " "not what you expect. The correct B in that case is: C<^\\.fi$>." msgstr "" "no utilitzeu B<.fi> com a B, perquè encaixarà amb " "\"el[ fi]txer\", que obviament no és el què s'esperava. L'B " "correcte en aquest cas és: F<^\\.fi$>." #. type: textblock #: doc/po4a.7.pod:107 msgid "" "White spaces ARE important in the content of the C and boundaries. " "So the two following lines B. 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 #, fuzzy, no-wrap #| msgid "" #| " PO4A-HEADER: mode=after; position=About this document; endboundary=
\n" #| " PO4A-HEADER: mode=after; position=About this document; beginboundary=
\n" #| "\n" msgid "" " PO4A-HEADER: position=About this document; mode=after; beginboundary=
\n" " PO4A-HEADER: position=About this document ; mode=after; beginboundary=
\n" "\n" msgstr "" " PO4A-HEADER: mode=after; position=Sobre aquest document; endboundary=
\n" " PO4A-HEADER: mode=after; position=Sobre aquest document; beginboundary=
\n" "\n" #. type: textblock #: doc/po4a.7.pod:109 msgid "" "Although this context search may be considered to operate roughly on each " "line of the B 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 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 to understand how the addenda are added " "to the translation. It may also help to run B 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 "Si voleu afegir quelcom després de la següent secció de nroff:" #. type: verbatim #: doc/po4a.7.pod:113 #, no-wrap msgid "" " .SH \"AUTHORS\"\n" "\n" msgstr "" " .SH \"AUTORS\"\n" "\n" #. type: textblock #: doc/po4a.7.pod:114 msgid "" "You should select a two-step approach by setting B. Then you " "should narrow down search to the line after B with the B " "argument regex. Then, you should match the beginning of the next section (i." "e., B<^\\.SH>) with the B 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 "" " PO4A-HEADER:mode=after;position=AUTORS;beginboundary=\\.SH\n" "\n" #. type: textblock #: doc/po4a.7.pod:116 #, fuzzy #| msgid "" #| "If you want to add something into a section (like after \"Copyright Big " #| "Dude\") instead of adding a whole section, give a B matching " #| "this line, and give a B matching any line." msgid "" "If you want to add something right after a given line (e.g. after the line " "\"Copyright Big Dude\"), use a B matching this line, B " "and give a B matching any line." msgstr "" "Si voleu afegir quelcom a una secció (com ara després de \"Copyright Big " "Dude\") en lloc d'afegir una secció completa, proporcioneu una B " "que encaixi amb aquesta línia, i doneu un B que encaixi " "qualsevol línia." #. type: verbatim #: doc/po4a.7.pod:117 #, no-wrap msgid "" " PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^\n" "\n" msgstr "" " PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^\n" "\n" #. type: textblock #: doc/po4a.7.pod:118 msgid "" "If you want to add something at the end of the document, give a B " "matching any line of your document (but only one line. Po4a won't proceed if " "it's not unique), and give an B matching nothing. Don't use " "simple strings here like B<\"EOF\">, but prefer those which have less chance " "to be in your document." msgstr "" "Si voleu afegir quelcom al final del document, utilitzeu una B que " "encaixi amb qualsevol línia del document (però només una línia. Po4a no " "seguirà si no és única), i doneu un B que no encaixi amb res. " "No utilitzeu cadenes simples aquí, com ara B<\"EOF\">, sinó cadenes que " "tinguin menys probabilitats de sortir en el vostre document." #. type: verbatim #: doc/po4a.7.pod:119 #, fuzzy, no-wrap #| msgid "" #| " PO4A-HEADER:mode=after;position=About;beginboundary=FakePo4aBoundary\n" #| "\n" msgid "" " PO4A-HEADER:mode=after;position=About this document;beginboundary=FakePo4aBoundary\n" "\n" msgstr "" " PO4A-HEADER:mode=after;position=Quant a;beginboundary=FakePo4aBoundary\n" "\n" #. type: =head3 #: doc/po4a.7.pod:120 msgid "More detailed example" msgstr "Exemple més detallat" #. type: textblock #: doc/po4a.7.pod:121 msgid "Original document (POD formatted):" msgstr "Document original (en format POD):" #. 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 "" " |=head1 NAME\n" " |\n" " |dummy - a dummy program\n" " |\n" " |=head1 AUTHOR\n" " |\n" " |me\n" "\n" #. type: textblock #: doc/po4a.7.pod:123 #, fuzzy #| 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\")" 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 "" "Llavors, el següent annexe s'assegurarà de que s'afegeix una secció (en " "català) sobre el traductor al final del fitxer." #. type: verbatim #: doc/po4a.7.pod:124 #, fuzzy, no-wrap #| msgid "" #| " |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head\n" #| " |\n" #| " |=head1 TRADUCTEUR\n" #| " |\n" #| " |moi\n" #| "\n" msgid "" " |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head\n" " |\n" " |=head1 TRADUCTEUR\n" " |\n" " |moi\n" " |\n" "\n" msgstr "" " |PO4A-HEADER:mode=after;position=AUTOR;beginboundary=^=head\n" " |\n" " |=head1 TRADUCTOR\n" " |\n" " |jo\n" "\n" #. type: textblock #: doc/po4a.7.pod:125 #, fuzzy #| msgid "" #| "In order to put your addendum before the AUTHOR, use the following header:" msgid "To put your addendum before the AUTHOR, use the following header:" msgstr "" "Per tal de posar l'annexe abans d'AUTHOR, utilitzeu la següent capçalera:" #. type: verbatim #: doc/po4a.7.pod:126 #, no-wrap msgid "" " PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n" "\n" msgstr "" " PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n" "\n" #. type: textblock #: doc/po4a.7.pod:127 #, fuzzy #| msgid "" #| "This works because the next line matching the B /^=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." msgid "" "This works because the next line matching the B C " "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 "" "Això funciona perquè la següent línia que encaixa el B /" "^=head1/ després de la secció \"NAME\" (traduït com a \"NOM\" en català), és " "la que declara els autors. Per tant, l'annexe es col·locarà entre ambdues " "seccions." #. type: textblock #: doc/po4a.7.pod:128 msgid "To avoid this you may accomplish the same using B=I:" msgstr "" #. type: verbatim #: doc/po4a.7.pod:129 #, fuzzy, no-wrap #| msgid "" #| " PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n" #| "\n" msgid "" " PO4A-HEADER:mode=before;position=^=head1 AUTEUR\n" "\n" msgstr "" " PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n" "\n" #. type: =head1 #: doc/po4a.7.pod:130 msgid "How does it work?" msgstr "Com funciona?" #. type: textblock #: doc/po4a.7.pod:131 #, fuzzy #| msgid "" #| "This chapter gives you a brief overview of the po4a internals, so that " #| "you may feel more confident to help us maintaining and improving it. It " #| "may also help you understanding why it does not do what you expected, and " #| "how to solve your problems." 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 "" "Aquest capítol ofereix una breu explicació del funcionament intern de po4a, " "de manera que es pugui sentir més segur per ajudar-nos a mantenir-lo i a " "millorar-lo. També el pot ajudar a entendre perquè no fa el què esperava, i " "com solucionar problemes." #. type: =head2 #: doc/po4a.7.pod:132 msgid "TransTractors and project architecture" msgstr "" #. type: textblock #: doc/po4a.7.pod:133 #, fuzzy #| msgid "" #| "The po4a architecture is object oriented (in Perl. Isn't that neat?). The " #| "common ancestor to all parser classes is called TransTractor. This " #| "strange name comes from the fact that it is at the same time in charge of " #| "translating document and extracting strings." msgid "" "At the core of the po4a project, the L 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 "" "L'arquitectura de po4a és orientada a objectes (en Perl. No és estupend?). " "L'avantpassat comú de totes les classes dels analitzadors s'anomena " "TransTractor. Aquest nom tan estrany ve del fet que s'encarrega " "simultàniament de traduir el document i d'extreure les cadenes." #. type: textblock #: doc/po4a.7.pod:134 #, fuzzy #| 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 " #| "than the input one, but with all translatable strings replaced with " #| "content of the input PO). Here is a graphical representation of this:" 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 "" "Més formalment, rep com a entrada un document a traduir junt amb un fitxer " "PO que conté les traduccions a utilitzar, i produeix dues sortides " "separades: un altre fitxer PO (resultant de l'extracció de les cadenes " "traduïbles del document d'entrada), i un document traduït (amb la mateixa " "estructura que el d'entrada, però amb les cadenes traduïbles canviades pel " "contingut del PO d'entrada). Aquí hi ha una representació gràfica:" #. type: verbatim #: doc/po4a.7.pod:135 #, fuzzy, no-wrap #| msgid "" #| " Input document --\\ /---> Output document\n" #| " \\ TransTractor:: / (translated)\n" #| " +-->-- parse() --------+\n" #| " / \\\n" #| " Input PO --------/ \\---> Output PO\n" #| " (extracted)\n" #| "\n" msgid "" " Input document --\\ /---> Output document\n" " \\ TransTractor:: / (translated)\n" " +-->-- parse() --------+\n" " / \\\n" " Input PO --------/ \\---> Output PO\n" " (extracted)\n" "\n" msgstr "" " Document d'entrada -\\ /---> Document de sortida\n" " \\ TransTractor:: / (traduït)\n" " +-->- parse() ------+\n" " / \\\n" " PO d'entrada -------/ \\---> PO de sortida\n" " (extret)\n" "\n" #. type: textblock #: doc/po4a.7.pod:136 #, fuzzy #| msgid "" #| "This little bone is the core of all the po4a architecture. If you omit " #| "the input PO and the output document, you get B. If you " #| "provide both input and disregard the output PO, you get B." 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. If you " "disregard the output document instead, you get B. The B " "uses a first TransTractor to get an up-to-date output POT file (disregarding " "the output documents), calls B 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 provides one-stop solution " "to update what needs to be, using a single configuration file." msgstr "" "Aquest petit eix és el nucli de tota l'arquitectura de po4a. Si s'omet el PO " "d'entrada i el document de sortida, s'obté B. Si " "proporcioneu ambdues entrades i ometeu el fitxer PO de sortida, obteniu " "B." #. type: textblock #: doc/po4a.7.pod:137 msgid "" "B 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." 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, accumulate the " "paragraphs' content or whatever. Once a string is completely parsed, the " "parser uses C 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." 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 and C. 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 (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 and C 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 perl function." msgstr "" #. type: =head2 #: doc/po4a.7.pod:142 msgid "Po objects" msgstr "" #. type: textblock #: doc/po4a.7.pod:143 msgid "" "The L 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 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 and B 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 (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 (asciidoc): distributed " "version-control system for tracking changes in source code." msgstr "" #. type: textblock #: doc/po4a.7.pod:153 msgid "" "L " "(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 (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 (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 " "L" msgstr "" #. type: =head1 #: doc/po4a.7.pod:158 msgid "FAQ" msgstr "PMF" #. type: =head2 #: doc/po4a.7.pod:159 #, fuzzy #| msgid "How to use po4a?" msgid "How do you pronounce po4a?" msgstr "Com fer servir po4a?" #. type: textblock #: doc/po4a.7.pod:160 msgid "" "I personally vocalize it as L, " "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 and B are deprecated in favor of " "B. The reason is that while B 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 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 and " "the other B." 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 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 and B 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 "" "Què hi ha de les altres eines de traducció de documentació que utilitzen " "gettext?" #. 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" msgstr "B" #. 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 "" "Aquesta és l'eina desenvolupada per la gent de KDE per tractar DocBook XML. " "Si no vaig errat, aquest va ser el primer programa que extreia les cadenes a " "traduir de la documentació i en feia fitxers PO, i després de la traducció " "les injectava en el document." #. 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 "" "Tan sols pot tractar XML, i només un DTD particular. M'ha decepcionat una " "mica la forma que té de tractar les llistes, que acaba amb un msgid molt " "gran. Quan la llista creix, el bloc esdevé difícil de tractar." #. type: =item #: doc/po4a.7.pod:170 msgid "B" msgstr "B" #. 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 "" "Aquest programa fet per Denis Barbier és com un precursor del mòdul SGML de " "po4a, que més o menys el deixa obsolet. Com el nom diu, tan sols tracta el " "DTD de DebianDoc, que és més o menys un DTD obsolet." #. type: =item #: doc/po4a.7.pod:172 msgid "B" 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" 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 "" "Els avantatges principals de po4a sobre aquests és la facilitat d'afegir " "contingut extra (que és encara pitjor allà) i l'habilitat d'aconseguir la " "gettextització." #. type: =head2 #: doc/po4a.7.pod:177 msgid "SUMMARY of the advantages of the gettext based approach" msgstr "RESUM dels avantatges de l'enfoc basat en gettext" #. type: textblock #: doc/po4a.7.pod:178 #, fuzzy msgid "" "The translations are not stored along with the original, which makes it " "possible to detect if translations become out of date." msgstr "" "Les traduccions no es guarden junt amb l'original, cosa que fa possible " "detectar quan les traduccions es tornen antiquades." #. type: textblock #: doc/po4a.7.pod:179 #, fuzzy 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 "" "Totes les traduccions es guarden en fitxers separats, cosa que evita que els " "traductors de diversos idiomes es facin nosa. Ja sigui al enviar els pegats " "o bé a nivell de la codificació de fitxers." #. type: textblock #: doc/po4a.7.pod:180 msgid "" "It is based internally on B (but B 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 "" "Internament està basat en B (però B ofereix una interfície " "molt simple per tal que no necessiteu entendre el funcionament intern per " "tal d'utilitzar-lo). Així no hem de reinventar la roda, i degut al seu " "ampli ús, podem pensar que són unes eines més o menys lliures d'errors." #. 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 "" "Per l'usuari final no canvia res (a part que les traduccions es mantindran " "millor actualitzades :). El fitxer de documentació resultant distribuït és " "exactament el mateix." #. 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 "" "No cal que els traductors aprenguin una nova sintaxi de fitxer, i podran " "treballar amb el seu editor de fitxers PO predilecte (com ara el mode PO " "d'emacs, Lokalize o Gtranslator)." #. type: textblock #: doc/po4a.7.pod:183 #, fuzzy 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 "" "gettext ofereix una forma simple per obtenir estadístiques de què hi ha fet, " "què s'hauria de repassar i actualitzar, i què hi ha per fer encara. Hi ha " "alguns exemples a aquestes adreces:" #. type: verbatim #: doc/po4a.7.pod:184 #, fuzzy, no-wrap #| msgid "" #| " - http://kv-53.narod.ru/kaider1.png\n" #| " - http://www.debian.org/intl/l10n/\n" #| "\n" msgid "" " - https://docs.kde.org/stable5/en/kdesdk/lokalize/project-view.html\n" " - http://www.debian.org/intl/l10n/\n" "\n" msgstr "" " - http://kv-53.narod.ru/kaider1.png\n" " - http://www.debian.org/intl/l10n/\n" "\n" #. 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 "" "Però no tot és bonic, i aquest enfoc també té alguns desavantatges que " "haureu de tenir en compte." #. type: textblock #: doc/po4a.7.pod:186 #, fuzzy #| msgid "Addenda are... strange at the first glance." msgid "Addenda are somewhat strange at the first glance." msgstr "Els annexes són... estranys, a primer cop d'ull." #. 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 "" "No podeu adaptar el text traduït al vostre gust, com ara partint paràgrafs " "per aquí, o ajuntant-ne dos per allà. Però vist d'una altra manera, si hi ha " "algun problema amb l'original, s'hauria d'informar com a error." #. type: textblock #: doc/po4a.7.pod:188 msgid "" "Even with an easy interface, it remains a new tool people have to learn." msgstr "" "Encara que tingui una interfície fàcil, segueix sent una nova eina que la " "gent ha d'aprendre." #. type: textblock #: doc/po4a.7.pod:189 #, fuzzy #| msgid "" #| "One of my dreams would be to integrate somehow po4a to Gtranslator or " #| "Lokalize. When an SGML file is opened, the strings are automatically " #| "extracted. When it's saved a translated SGML 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." 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 "" "Un dels meus somnis és que s'integrés po4a d'alguna manera amb Gtranslator o " "Lokalize. Quan s'obrís un document SGML, s'extraurien automàticament les " "cadenes. Quan es guardés, es podria escriure un fitxer SGML traduït al " "disc. Si aconseguim fer un mòdul per a MS Word (TM) (o com a mínim RTF) fins " "i tot podrien utilitzar-lo traductors professionals." #. type: textblock #: doc/po4a.7.pod:191 msgid "" "The documentation of the all-in-one tool that you should use: L." msgstr "" #. type: textblock #: doc/po4a.7.pod:192 #, fuzzy #| msgid "" #| "L, L, L, " #| "L" msgid "" "The documentation of the individual po4a scripts: L, " "L, L, L." msgstr "" "L, L, L, L" #. type: textblock #: doc/po4a.7.pod:193 msgid "" "The additional helping scripts: L, L, " "L." msgstr "" #. type: textblock #: doc/po4a.7.pod:194 #, fuzzy #| msgid "" #| "L, L, L, L, L, " #| "L, L, L, L, L, " #| "L, L, L, L. L, " #| "L, L." msgid "" "The parsers of each formats, in particular to see the options accepted by " "each of them: L L, " "L, L, L, L, L, " "L, L, L, L, L, " "L, L, L, L, L, " "L, L, L." msgstr "" "L, L, L, L, L, " "L, L, L, L, L, " "L, L, L, L. L, " "L, L." #. type: textblock #: doc/po4a.7.pod:195 msgid "" "The implementation of the core infrastructure: L (particularly important to understand the code " "organization), L, L, " "L. Please also check the F file " "in the source tree." msgstr "" #. type: verbatim #: doc/po4a.7.pod:197 #, no-wrap msgid "" " Denis Barbier \n" " Martin Quinson (mquinson#debian.org)\n" "\n" msgstr "" " Denis Barbier \n" " Martin Quinson (mquinson#debian.org)\n" "\n" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:2 #, fuzzy #| msgid "" #| "Locale::Po4a::Docbook - convert DocBook XML documents from/to PO files" msgid "Locale::Po4a::AsciiDoc - convert AsciiDoc documents from/to PO files" msgstr "" "Locale::Po4a::Docbook - Converteix documents DocBook XML des de/a fitxers PO" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:5 #, fuzzy #| msgid "" #| "Locale::Po4a::Sgml is a module to help the translation of documentation " #| "in the SGML format into other [human] languages." msgid "" "Locale::Po4a::AsciiDoc is a module to help the translation of documentation " "in the AsciiDoc format." msgstr "" "Locale::Po4a::SgmL és un mòdul per ajudar en la traducció de documents en el " "format SGML a altres llenguatges [humans]." #. 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 "OPCIONS QUE ACCEPTA AQUEST MÒDUL" #. 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 "Aquestes són les opcions particulars d'aquest mòdul:" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:8 lib/Locale/Po4a/TeX.pm:21 msgid "B" msgstr "B" #. 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 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." msgstr "" #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:11 #, fuzzy #| msgid "B" msgid "B" msgstr "B" #. 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 #, fuzzy #| msgid "B" msgid "B" msgstr "B" #. type: textblock #: lib/Locale/Po4a/AsciiDoc.pm:14 #, fuzzy msgid "Space-separated list of macro definitions." msgstr "llista separada per espais dels flags definits per aquesta entrada." #. type: =item #: lib/Locale/Po4a/AsciiDoc.pm:15 msgid "B