1# SOME DESCRIPTIVE TITLE 2# Copyright (C) YEAR Free Software Foundation, Inc. 3# This file is distributed under the same license as the po4a package. 4# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. 5# 6#, fuzzy 7msgid "" 8msgstr "" 9"Project-Id-Version: po4a 0.64\n" 10"Report-Msgid-Bugs-To: devel@lists.po4a.org\n" 11"POT-Creation-Date: 2021-11-06 11:27+0100\n" 12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 14"Language-Team: LANGUAGE <LL@li.org>\n" 15"Language: \n" 16"MIME-Version: 1.0\n" 17"Content-Type: text/plain; charset=UTF-8\n" 18"Content-Transfer-Encoding: 8bit\n" 19 20#. type: Attribute 'xml:lang' of: <refentry> 21#: share/doc/po4a-display-man.xml:1 share/doc/po4a-display-pod.xml:1 22msgid "en" 23msgstr "" 24 25#. type: Content of: <refentry><refentryinfo> 26#: share/doc/po4a-display-man.xml:2 27msgid "<date>2006-04-08</date>" 28msgstr "" 29 30#. type: Content of: <refentry><refmeta><refentrytitle> 31#: share/doc/po4a-display-man.xml:3 32msgid "PO4A-DISPLAY-MAN" 33msgstr "" 34 35#. type: Content of: <refentry><refmeta><manvolnum> 36#: share/doc/po4a-display-man.xml:4 share/doc/po4a-display-pod.xml:4 37msgid "1" 38msgstr "" 39 40#. type: Content of: <refentry><refmeta><refmiscinfo> 41#: share/doc/po4a-display-man.xml:5 42msgid "2020-04-19" 43msgstr "" 44 45#. type: Content of: <refentry><refmeta><refmiscinfo> 46#: share/doc/po4a-display-man.xml:6 share/doc/po4a-display-man.xml:7 47#: share/doc/po4a-display-pod.xml:6 share/doc/po4a-display-pod.xml:7 48msgid "Po4a Tools" 49msgstr "" 50 51#. type: Content of: <refentry><refnamediv><refname> 52#: share/doc/po4a-display-man.xml:8 53msgid "po4a-display-man" 54msgstr "" 55 56#. type: Content of: <refentry><refnamediv><refpurpose> 57#: share/doc/po4a-display-man.xml:9 58msgid "display a translated man page according to a PO" 59msgstr "" 60 61#. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> 62#: share/doc/po4a-display-man.xml:10 63msgid "" 64"<command>po4a-display-man</command> <arg choice='plain'><option>-p</option> " 65"</arg> <arg choice='plain'><replaceable>PO_FILE</replaceable></arg> <arg " 66"choice='opt'><arg choice='plain'><option>-m</option> </arg><arg " 67"choice='plain'><replaceable>MASTER_FILE</replaceable></arg></arg> <arg " 68"choice='opt'><arg choice='plain'><option>-o</option> </arg><arg " 69"choice='plain'><replaceable>PO4A_OPT</replaceable></arg></arg>" 70msgstr "" 71 72#. type: =head1 73#: share/doc/po4a-display-man.xml:11 share/doc/po4a-display-pod.xml:11 po4a:5 74#: po4a-gettextize:6 po4a-normalize:5 po4a-translate:6 po4a-updatepo:6 75#: msguntypot:5 lib/Locale/Po4a/AsciiDoc.pm:3 lib/Locale/Po4a/BibTeX.pm:3 76#: lib/Locale/Po4a/Chooser.pm:3 lib/Locale/Po4a/Common.pm:3 77#: lib/Locale/Po4a/Dia.pm:3 lib/Locale/Po4a/Docbook.pm:3 78#: lib/Locale/Po4a/Guide.pm:3 lib/Locale/Po4a/Halibut.pm:3 79#: lib/Locale/Po4a/Ini.pm:3 lib/Locale/Po4a/KernelHelp.pm:3 80#: lib/Locale/Po4a/LaTeX.pm:3 lib/Locale/Po4a/Man.pm:3 lib/Locale/Po4a/Po.pm:9 81#: lib/Locale/Po4a/Pod.pm:7 lib/Locale/Po4a/Sgml.pm:3 lib/Locale/Po4a/TeX.pm:3 82#: lib/Locale/Po4a/Texinfo.pm:3 lib/Locale/Po4a/Text.pm:3 83#: lib/Locale/Po4a/TransTractor.pm:3 lib/Locale/Po4a/Wml.pm:3 84#: lib/Locale/Po4a/Xhtml.pm:3 lib/Locale/Po4a/Xml.pm:3 85msgid "DESCRIPTION" 86msgstr "" 87 88#. type: Content of: <refentry><refsect1><para> 89#: share/doc/po4a-display-man.xml:12 90msgid "" 91"Translators can use <command>po4a-display-man</command> to see how their " 92"translation of a man page will be rendered to the end users, without " 93"recompiling and reinstalling the whole project." 94msgstr "" 95 96#. type: Content of: <refentry><refsect1><para> 97#: share/doc/po4a-display-man.xml:13 98msgid "" 99"This script only works with man pages written directly in <emphasis " 100"remap='I'>nroff</emphasis> and handled by the po4a's <emphasis " 101"remap='I'>man</emphasis> module. Manual pages generated from other formats, " 102"like DocBook or POD, are not supported. See " 103"<citerefentry><refentrytitle>po4a-display-pod</refentrytitle><manvolnum>1</manvolnum></citerefentry> " 104"for an equivalent supporting <emphasis remap='I'>POD</emphasis> documents." 105msgstr "" 106 107#. type: =head1 108#: share/doc/po4a-display-man.xml:14 share/doc/po4a-display-pod.xml:13 po4a:15 109#: po4a-gettextize:11 po4a-normalize:9 po4a-translate:9 po4a-updatepo:11 110msgid "OPTIONS" 111msgstr "" 112 113#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> 114#: share/doc/po4a-display-man.xml:15 share/doc/po4a-display-pod.xml:14 115msgid "<option>-p </option><replaceable>PO_FILE</replaceable>" 116msgstr "" 117 118#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> 119#: share/doc/po4a-display-man.xml:16 share/doc/po4a-display-pod.xml:15 120msgid "The PO file containing the translations." 121msgstr "" 122 123#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> 124#: share/doc/po4a-display-man.xml:17 125msgid "<option>-m </option><replaceable>MASTER_FILE</replaceable>" 126msgstr "" 127 128#. .br 129#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> 130#: share/doc/po4a-display-man.xml:18 131msgid "" 132"The original man page. It can be the absolute or relative path to the " 133"original man page (gzipped or not), the name of the man page or the name and " 134"section of the man page (using the man.section format). When the master " 135"document is not provided with the <option>-m</option> option, " 136"<command>po4a-display-man</command> tries to find the original man page " 137"based on the line reference of the first string in the PO." 138msgstr "" 139 140#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> 141#: share/doc/po4a-display-man.xml:19 share/doc/po4a-display-pod.xml:18 142msgid "<option>-o </option><replaceable>PO4A_OPT</replaceable>" 143msgstr "" 144 145#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> 146#: share/doc/po4a-display-man.xml:20 share/doc/po4a-display-pod.xml:19 147msgid "" 148"Some options to pass to " 149"<citerefentry><refentrytitle>po4a-translate</refentrytitle><manvolnum>1</manvolnum></citerefentry>." 150msgstr "" 151 152#. type: =head1 153#: share/doc/po4a-display-man.xml:21 share/doc/po4a-display-pod.xml:20 po4a:189 154#: po4a-gettextize:71 po4a-normalize:29 po4a-translate:54 po4a-updatepo:53 155#: msguntypot:29 doc/po4a.7.pod:177 lib/Locale/Po4a/Chooser.pm:7 156#: lib/Locale/Po4a/Dia.pm:12 lib/Locale/Po4a/Docbook.pm:15 157#: lib/Locale/Po4a/Guide.pm:10 lib/Locale/Po4a/Halibut.pm:14 158#: lib/Locale/Po4a/Ini.pm:8 lib/Locale/Po4a/KernelHelp.pm:7 159#: lib/Locale/Po4a/LaTeX.pm:8 lib/Locale/Po4a/Man.pm:107 160#: lib/Locale/Po4a/Pod.pm:36 lib/Locale/Po4a/TeX.pm:118 161#: lib/Locale/Po4a/Texinfo.pm:10 lib/Locale/Po4a/Xhtml.pm:15 162#: lib/Locale/Po4a/Xml.pm:184 163msgid "SEE ALSO" 164msgstr "" 165 166#. type: Content of: <refentry><refsect1><para> 167#: share/doc/po4a-display-man.xml:22 168msgid "" 169"<citerefentry> " 170"<refentrytitle>po4a-display-pod</refentrytitle><manvolnum>1</manvolnum> " 171"</citerefentry>" 172msgstr "" 173 174#. type: Content of: <refentry><refsect1><title> 175#: share/doc/po4a-display-man.xml:23 share/doc/po4a-display-pod.xml:22 176msgid "AUTHOR" 177msgstr "" 178 179#. type: Content of: <refentry><refsect1><para> 180#: share/doc/po4a-display-man.xml:24 181msgid "Thomas Huriaux" 182msgstr "" 183 184#. type: Content of: <refentry><refentryinfo> 185#: share/doc/po4a-display-pod.xml:2 186msgid "<date>2009-03-16</date>" 187msgstr "" 188 189#. type: Content of: <refentry><refmeta><refentrytitle> 190#: share/doc/po4a-display-pod.xml:3 191msgid "PO4A-DISPLAY-POD" 192msgstr "" 193 194#. type: Content of: <refentry><refmeta><refmiscinfo> 195#: share/doc/po4a-display-pod.xml:5 196msgid "2009-03-16" 197msgstr "" 198 199#. type: Content of: <refentry><refnamediv><refname> 200#: share/doc/po4a-display-pod.xml:8 201msgid "po4a-display-pod" 202msgstr "" 203 204#. type: Content of: <refentry><refnamediv><refpurpose> 205#: share/doc/po4a-display-pod.xml:9 206msgid "display of a translated POD file according to a PO" 207msgstr "" 208 209#. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> 210#: share/doc/po4a-display-pod.xml:10 211msgid "" 212"<command>po4a-display-pod</command> <arg choice='plain'><option>-p " 213"</option></arg> <arg choice='plain'><replaceable>PO_FILE</replaceable></arg> " 214"<arg choice='plain'><option>-m </option></arg> <arg " 215"choice='plain'><replaceable>POD_FILE</replaceable></arg> <arg " 216"choice='opt'><arg choice='plain'><option>-o </option></arg><arg " 217"choice='plain'><replaceable>PO4A_OPT</replaceable></arg></arg>" 218msgstr "" 219 220#. type: Content of: <refentry><refsect1><para> 221#: share/doc/po4a-display-pod.xml:12 222msgid "" 223"Translators can use <command>po4a-display-pod</command> to see how their " 224"translation of a man page will be rendered to the end users, without " 225"recompiling and reinstalling the whole project. Most of the time, the POD " 226"file is only available in source package or embedded in Perl script." 227msgstr "" 228 229#. type: Content of: <refentry><refsect1><variablelist><varlistentry><term> 230#: share/doc/po4a-display-pod.xml:16 231msgid "<option>-m </option><replaceable>POD_FILE</replaceable>" 232msgstr "" 233 234#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para> 235#: share/doc/po4a-display-pod.xml:17 236msgid "The original POD file used by po4a to generate PO file." 237msgstr "" 238 239#. type: Content of: <refentry><refsect1><para> 240#: share/doc/po4a-display-pod.xml:21 241msgid "" 242"<citerefentry> " 243"<refentrytitle>po4a-display-man</refentrytitle><manvolnum>1</manvolnum> " 244"</citerefentry>" 245msgstr "" 246 247#. type: Content of: <refentry><refsect1><para> 248#: share/doc/po4a-display-pod.xml:23 249msgid "Florentin Duneau" 250msgstr "" 251 252#. type: =head1 253#: po4a:1 po4a-gettextize:1 po4a-normalize:1 po4a-translate:1 po4a-updatepo:1 254#: msguntypot:1 doc/po4a.7.pod:1 lib/Locale/Po4a/AsciiDoc.pm:1 255#: lib/Locale/Po4a/BibTeX.pm:1 lib/Locale/Po4a/Chooser.pm:1 256#: lib/Locale/Po4a/Common.pm:1 lib/Locale/Po4a/Dia.pm:1 257#: lib/Locale/Po4a/Docbook.pm:1 lib/Locale/Po4a/Guide.pm:1 258#: lib/Locale/Po4a/Halibut.pm:1 lib/Locale/Po4a/Ini.pm:1 259#: lib/Locale/Po4a/KernelHelp.pm:1 lib/Locale/Po4a/LaTeX.pm:1 260#: lib/Locale/Po4a/Man.pm:1 lib/Locale/Po4a/Po.pm:1 lib/Locale/Po4a/Pod.pm:1 261#: lib/Locale/Po4a/Sgml.pm:1 lib/Locale/Po4a/TeX.pm:1 262#: lib/Locale/Po4a/Texinfo.pm:1 lib/Locale/Po4a/Text.pm:1 263#: lib/Locale/Po4a/TransTractor.pm:1 lib/Locale/Po4a/Wml.pm:1 264#: lib/Locale/Po4a/Xhtml.pm:1 lib/Locale/Po4a/Xml.pm:1 265msgid "NAME" 266msgstr "" 267 268#. type: textblock 269#: po4a:2 270msgid "po4a - update both the PO files and translated documents in one shot" 271msgstr "" 272 273#. type: =head1 274#: po4a:3 po4a-gettextize:3 po4a-normalize:3 po4a-translate:3 po4a-updatepo:3 275#: msguntypot:3 lib/Locale/Po4a/Po.pm:3 lib/Locale/Po4a/Pod.pm:3 276#: lib/Locale/Po4a/TransTractor.pm:24 277msgid "SYNOPSIS" 278msgstr "" 279 280#. type: textblock 281#: po4a:4 282msgid "B<po4a> [I<options>] I<config_file>" 283msgstr "" 284 285#. type: textblock 286#: po4a:6 po4a-gettextize:7 287msgid "" 288"po4a (PO for anything) eases the maintenance of documentation translation " 289"using the classical gettext tools. The main feature of po4a is that it " 290"decouples the translation of content from its document structure. Please " 291"refer to the page L<po4a(7)> for a gentle introduction to this project." 292msgstr "" 293 294#. type: textblock 295#: po4a:7 296msgid "" 297"When you run the B<po4a> program for the first time, with only a " 298"configuration file and the documents to translate (called master documents), " 299"it produces a POT file (also called translation template) that contains all " 300"of the translatable strings in the document in a form that eases the work of " 301"translators." 302msgstr "" 303 304#. type: textblock 305#: po4a:8 306msgid "" 307"Those POT files can either be translated with a specific editor such as the " 308"B<GNOME Translation Editor>, KDE's B<Lokalize> or B<poedit>, or they can be " 309"integrated in an online localization platform such as B<weblate> or " 310"B<pootle>. The translation result is a set of PO files, one per language." 311msgstr "" 312 313#. type: textblock 314#: po4a:9 315msgid "" 316"When you run the B<po4a> program with both the master documents and the PO " 317"files, it produces the translated documents by injecting the content's " 318"translation (found in the PO files) into the structure of the original " 319"master document." 320msgstr "" 321 322#. type: textblock 323#: po4a:10 324msgid "" 325"If the master documents changed in the meanwhile, po4a will update the PO " 326"and POT files accordingly, so that the translators can easily detect the " 327"modifications and update their work. Depending on your settings, po4a will " 328"discard the partially translated documents, or produce a document mixing " 329"English (for the new or modified paragraphs) and the target language (for " 330"paragraphs where translation is already in the PO file)." 331msgstr "" 332 333#. type: textblock 334#: po4a:11 335msgid "" 336"By default, the translated documents are produced when at least 80% of their " 337"content is translated (see the I<--keep> option below). Discarding " 338"translations as soon as they are not 100% may be discouraging for the " 339"translators, while showing \"translations\" that are too incomplete may be " 340"troubling for the end users." 341msgstr "" 342 343#. type: =head2 344#: po4a:12 345msgid "Graphical overview" 346msgstr "" 347 348#. type: verbatim 349#: po4a:13 350#, no-wrap 351msgid "" 352" master documents ---+---->-------->---------+\n" 353" (doc authoring) | |\n" 354" V (po4a executions) >-----+--> translations\n" 355" | | |\n" 356" existing PO files -->--> updated PO files >-+ |\n" 357" ^ | |\n" 358" | V |\n" 359" +----------<---------<-------+ ^\n" 360" (manual translation process) |\n" 361" |\n" 362" addendum -->--------------------------------------+\n" 363"\n" 364msgstr "" 365 366#. type: textblock 367#: po4a:14 368msgid "" 369"The master documents are authored by the documentation writers. Any changes " 370"are automatically reflected by po4a in the PO files, that are then updated " 371"by the translators. All changes to the PO files (either manual or by po4a) " 372"are automatically reflected in translated documents. You can mimic this " 373"behavior using the L<po4a-updatepo(1)> and L<po4a-translate(1)> scripts in " 374"makefiles, but this quickly becomes bothersome and repetitive (see " 375"L<po4a(7)>). It is highly recommended to use the B<po4a> program in your " 376"build process." 377msgstr "" 378 379#. type: =item 380#: po4a:16 po4a-translate:28 381msgid "B<-k>, B<--keep>" 382msgstr "" 383 384#. type: textblock 385#: po4a:17 386msgid "" 387"Minimal threshold for translation percentage to keep (i.e. write) the " 388"resulting file (default: 80). I.e. by default, files have to be translated " 389"at least at 80% to be written on disk." 390msgstr "" 391 392#. type: =item 393#: po4a:18 po4a-gettextize:26 po4a-normalize:15 po4a-translate:32 394#: po4a-updatepo:28 395msgid "B<-h>, B<--help>" 396msgstr "" 397 398#. type: textblock 399#: po4a:19 po4a-gettextize:27 po4a-normalize:16 po4a-translate:33 400#: po4a-updatepo:29 401msgid "Show a short help message." 402msgstr "" 403 404#. type: =item 405#: po4a:20 po4a-gettextize:16 po4a-normalize:21 po4a-translate:18 406#: po4a-updatepo:16 407msgid "B<-M>, B<--master-charset>" 408msgstr "" 409 410#. type: textblock 411#: po4a:21 412msgid "" 413"Charset of the files containing the documents to translate. Note that all " 414"master documents must use the same charset." 415msgstr "" 416 417#. type: =item 418#: po4a:22 po4a-gettextize:20 po4a-translate:22 419msgid "B<-L>, B<--localized-charset>" 420msgstr "" 421 422#. type: textblock 423#: po4a:23 424msgid "" 425"Charset of the files containing the localized documents. Note that all " 426"translated documents will use the same charset." 427msgstr "" 428 429#. type: =item 430#: po4a:24 po4a-translate:14 431msgid "B<-A>, B<--addendum-charset>" 432msgstr "" 433 434#. type: textblock 435#: po4a:25 po4a-translate:15 436msgid "" 437"Charset of the addenda. Note that all the addenda should be in the same " 438"charset." 439msgstr "" 440 441#. type: =item 442#: po4a:26 po4a-gettextize:30 po4a-normalize:27 po4a-translate:36 443#: po4a-updatepo:32 444msgid "B<-V>, B<--version>" 445msgstr "" 446 447#. type: textblock 448#: po4a:27 po4a-gettextize:31 po4a-normalize:28 po4a-translate:37 449#: po4a-updatepo:33 450msgid "Display the version of the script and exit." 451msgstr "" 452 453#. type: =item 454#: po4a:28 po4a-gettextize:32 po4a-translate:38 po4a-updatepo:34 455msgid "B<-v>, B<--verbose>" 456msgstr "" 457 458#. type: textblock 459#: po4a:29 po4a-gettextize:33 po4a-translate:39 po4a-updatepo:35 460msgid "Increase the verbosity of the program." 461msgstr "" 462 463#. type: =item 464#: po4a:30 465msgid "B<-q>, B<--quiet>" 466msgstr "" 467 468#. type: textblock 469#: po4a:31 470msgid "Decrease the verbosity of the program." 471msgstr "" 472 473#. type: =item 474#: po4a:32 po4a-gettextize:34 po4a-translate:40 po4a-updatepo:36 475msgid "B<-d>, B<--debug>" 476msgstr "" 477 478#. type: textblock 479#: po4a:33 po4a-gettextize:35 po4a-translate:41 po4a-updatepo:37 480msgid "Output some debugging information." 481msgstr "" 482 483#. type: =item 484#: po4a:34 po4a-gettextize:24 po4a-normalize:10 po4a-translate:26 485#: po4a-updatepo:20 486msgid "B<-o>, B<--option>" 487msgstr "" 488 489#. type: textblock 490#: po4a:35 po4a-gettextize:25 po4a-normalize:11 po4a-translate:27 491#: po4a-updatepo:21 492msgid "" 493"Extra option(s) to pass to the format plugin. See the documentation of each " 494"plugin for more information about the valid options and their meanings. For " 495"example, you could pass '-o tablecells' to the AsciiDoc parser, while the " 496"text parser would accept '-o tabs=split'." 497msgstr "" 498 499#. type: =item 500#: po4a:36 501msgid "B<-f>, B<--force>" 502msgstr "" 503 504#. type: textblock 505#: po4a:37 506msgid "" 507"Always generate the POT and PO files, even if B<po4a> considers it is not " 508"necessary." 509msgstr "" 510 511#. type: textblock 512#: po4a:38 513msgid "The default behavior (when B<--force> is not specified) is the following:" 514msgstr "" 515 516#. type: textblock 517#: po4a:39 518msgid "" 519"If the POT file already exists, it is regenerated if a master document or " 520"the configuration file is more recent (unless B<--no-update> is provided). " 521"The POT file is also written in a temporary document and B<po4a> verifies " 522"that the changes are really needed." 523msgstr "" 524 525#. type: textblock 526#: po4a:40 527msgid "" 528"Also, a translation is regenerated only if its master document, the PO file, " 529"one of its addenda or the configuration file is more recent. To avoid " 530"trying to regenerate translations which do not pass the threshold test (see " 531"B<--keep>), a file with the F<.po4a-stamp> extension can be created (see " 532"B<--stamp>)." 533msgstr "" 534 535#. type: textblock 536#: po4a:41 537msgid "" 538"If a master document includes files, you should use the B<--force> flag " 539"because the modification time of these included files are not taken into " 540"account." 541msgstr "" 542 543#. type: textblock 544#: po4a:42 545msgid "The PO files are always re-generated based on the POT with B<msgmerge -U>." 546msgstr "" 547 548#. type: =item 549#: po4a:43 550msgid "B<--stamp>" 551msgstr "" 552 553#. type: textblock 554#: po4a:44 555msgid "" 556"Tells B<po4a> to create stamp files when a translation is not generated " 557"because it does not reach the threshold. These stamp files are named " 558"according to the expected translated document, with the F<.po4a-stamp> " 559"extension." 560msgstr "" 561 562#. type: textblock 563#: po4a:45 564msgid "" 565"Note: This only activates the creation of the F<.po4a-stamp> files. The " 566"stamp files are always used if they exist, and they are removed with " 567"B<--rm-translations> or when the file is finally translated." 568msgstr "" 569 570#. type: =item 571#: po4a:46 572msgid "B<--no-translations>" 573msgstr "" 574 575#. type: textblock 576#: po4a:47 577msgid "Do not generate the translated documents, only update the POT and PO files." 578msgstr "" 579 580#. type: =item 581#: po4a:48 582msgid "B<--no-update>" 583msgstr "" 584 585#. type: textblock 586#: po4a:49 587msgid "Do not change the POT and PO files, only the translation may be updated." 588msgstr "" 589 590#. type: =item 591#: po4a:50 592msgid "B<--keep-translations>" 593msgstr "" 594 595#. type: textblock 596#: po4a:51 597msgid "" 598"Keeps the existing translation files even if the translation doesn't meet " 599"the threshold specified by B<--keep>. This option does not create new " 600"translation files with few content, but it will save existing translations " 601"which decay because of changes to the master files." 602msgstr "" 603 604#. type: textblock 605#: po4a:52 606msgid "" 607"WARNING: This flag changes the po4a behavior in a rather drastic way: your " 608"translated files will not get updated at all until the translation " 609"improves. Only use this flag if you prefer shipping an outdated translated " 610"documentation rather than only shipping an accurate untranslated " 611"documentation." 612msgstr "" 613 614#. type: =item 615#: po4a:53 616msgid "B<--rm-translations>" 617msgstr "" 618 619#. type: textblock 620#: po4a:54 621msgid "Remove the translated files (implies B<--no-translations>)." 622msgstr "" 623 624#. type: =item 625#: po4a:55 626msgid "B<--no-backups>" 627msgstr "" 628 629#. type: textblock 630#: po4a:56 po4a:58 631msgid "This flag does nothing since 0.41, and may be removed in later releases." 632msgstr "" 633 634#. type: =item 635#: po4a:57 636msgid "B<--rm-backups>" 637msgstr "" 638 639#. type: =item 640#: po4a:59 641msgid "B<--translate-only> I<translated-file>" 642msgstr "" 643 644#. type: textblock 645#: po4a:60 646msgid "" 647"Translate only the specified file. It may be useful to speed up processing " 648"if a configuration file contains a lot of files. Note that this option does " 649"not update PO and POT files. This option can be used multiple times." 650msgstr "" 651 652#. type: =item 653#: po4a:61 654msgid "B<--variable> I<var>B<=>I<value>" 655msgstr "" 656 657#. type: textblock 658#: po4a:62 659msgid "" 660"Define a variable that will be expanded in the B<po4a> configuration file. " 661"Every occurrence of I<$(var)> will be replaced by I<value>. This option can " 662"be used multiple times." 663msgstr "" 664 665#. type: =item 666#: po4a:63 667msgid "B<--srcdir> I<SRCDIR>" 668msgstr "" 669 670#. type: textblock 671#: po4a:64 672msgid "" 673"Set the base directory for all input documents specified in the B<po4a> " 674"configuration file." 675msgstr "" 676 677#. type: textblock 678#: po4a:65 679msgid "" 680"If both I<destdir> and I<srcdir> are specified, input files are searched in " 681"the following directories, in order: I<destdir>, the current directory and " 682"I<srcdir>. Output files are written to I<destdir> if specified, or to the " 683"current directory." 684msgstr "" 685 686#. type: =item 687#: po4a:66 688msgid "B<--destdir> I<DESTDIR>" 689msgstr "" 690 691#. type: textblock 692#: po4a:67 693msgid "" 694"Set the base directory for all the output documents specified in the B<po4a> " 695"configuration file (see B<--srcdir> above)." 696msgstr "" 697 698#. type: =head2 699#: po4a:68 700msgid "Options modifying the POT header" 701msgstr "" 702 703#. type: =item 704#: po4a:69 lib/Locale/Po4a/Po.pm:14 705msgid "B<--porefs> I<type>" 706msgstr "" 707 708#. type: textblock 709#: po4a:70 po4a-translate:43 po4a-updatepo:39 lib/Locale/Po4a/Po.pm:15 710msgid "" 711"Specify the reference format. Argument I<type> can be one of B<never> to not " 712"produce any reference, B<file> to only specify the file without the line " 713"number, B<counter> to replace line number by an increasing counter, and " 714"B<full> to include complete references (default: full)." 715msgstr "" 716 717#. type: =item 718#: po4a:71 po4a-translate:45 po4a-updatepo:41 lib/Locale/Po4a/Po.pm:16 719msgid "B<--wrap-po> B<no>|B<newlines>|I<number> (default: 76)" 720msgstr "" 721 722#. type: textblock 723#: po4a:72 po4a-translate:46 po4a-updatepo:42 lib/Locale/Po4a/Po.pm:17 724msgid "" 725"Specify how the po file should be wrapped. This gives the choice between " 726"either files that are nicely wrapped but could lead to git conflicts, or " 727"files that are easier to handle automatically, but harder to read for " 728"humans." 729msgstr "" 730 731#. type: textblock 732#: po4a:73 lib/Locale/Po4a/Po.pm:18 733msgid "" 734"Historically, the gettext suite has reformatted the po files at the 77th " 735"column for cosmetics. This option specifies the behavior of po4a. If set to " 736"a numerical value, po4a will wrap the po file after this column and after " 737"newlines in the content. If set to B<newlines>, po4a will only split the " 738"msgid and msgstr after newlines in the content. If set to B<no>, po4a will " 739"not wrap the po file at all. The reference comments are always wrapped by " 740"the gettext tools that we use internally." 741msgstr "" 742 743#. type: textblock 744#: po4a:74 po4a-translate:48 po4a-updatepo:44 lib/Locale/Po4a/Po.pm:19 745msgid "" 746"Note that this option has no impact on how the msgid and msgstr are wrapped, " 747"ie on how newlines are added to the content of these strings." 748msgstr "" 749 750#. type: =item 751#: po4a:75 752msgid "B<--master-language>" 753msgstr "" 754 755#. type: textblock 756#: po4a:76 757msgid "" 758"Language of the source files containing the documents to translate. Note " 759"that all master documents must use the same language." 760msgstr "" 761 762#. type: =item 763#: po4a:77 po4a-gettextize:36 po4a-updatepo:45 lib/Locale/Po4a/Po.pm:20 764msgid "B<--msgid-bugs-address> I<email@address>" 765msgstr "" 766 767#. type: textblock 768#: po4a:78 po4a-gettextize:37 po4a-updatepo:46 lib/Locale/Po4a/Po.pm:21 769msgid "" 770"Set the report address for msgid bugs. By default, the created POT files " 771"have no Report-Msgid-Bugs-To fields." 772msgstr "" 773 774#. type: =item 775#: po4a:79 po4a-gettextize:38 po4a-updatepo:47 lib/Locale/Po4a/Po.pm:22 776msgid "B<--copyright-holder> I<string>" 777msgstr "" 778 779#. type: textblock 780#: po4a:80 po4a-gettextize:39 po4a-updatepo:48 lib/Locale/Po4a/Po.pm:23 781msgid "" 782"Set the copyright holder in the POT header. The default value is \"Free " 783"Software Foundation, Inc.\"" 784msgstr "" 785 786#. type: =item 787#: po4a:81 po4a-gettextize:40 po4a-updatepo:49 lib/Locale/Po4a/Po.pm:24 788msgid "B<--package-name> I<string>" 789msgstr "" 790 791#. type: textblock 792#: po4a:82 po4a-gettextize:41 po4a-updatepo:50 lib/Locale/Po4a/Po.pm:25 793msgid "Set the package name for the POT header. The default is \"PACKAGE\"." 794msgstr "" 795 796#. type: =item 797#: po4a:83 po4a-gettextize:42 po4a-updatepo:51 lib/Locale/Po4a/Po.pm:26 798msgid "B<--package-version> I<string>" 799msgstr "" 800 801#. type: textblock 802#: po4a:84 po4a-gettextize:43 po4a-updatepo:52 lib/Locale/Po4a/Po.pm:27 803msgid "Set the package version for the POT header. The default is \"VERSION\"." 804msgstr "" 805 806#. type: =head2 807#: po4a:85 808msgid "Options to modify the PO files" 809msgstr "" 810 811#. type: =item 812#: po4a:86 po4a-updatepo:26 813msgid "B<--msgmerge-opt> I<options>" 814msgstr "" 815 816#. type: textblock 817#: po4a:87 po4a-updatepo:27 818msgid "Extra options for B<msgmerge>(1)." 819msgstr "" 820 821#. type: textblock 822#: po4a:88 823msgid "Note: B<$lang> will be extended to the current language." 824msgstr "" 825 826#. type: =item 827#: po4a:89 po4a-updatepo:22 828msgid "B<--no-previous>" 829msgstr "" 830 831#. type: textblock 832#: po4a:90 po4a-updatepo:23 833msgid "" 834"This option removes B<--previous> from the options passed to B<msgmerge>. " 835"This permits to support versions of B<gettext> earlier than 0.16." 836msgstr "" 837 838#. type: =item 839#: po4a:91 po4a-updatepo:24 840msgid "B<--previous>" 841msgstr "" 842 843#. type: textblock 844#: po4a:92 po4a-updatepo:25 845msgid "" 846"This option adds B<--previous> to the options passed to B<msgmerge>. It " 847"requires B<gettext> 0.16 or later, and is activated by default." 848msgstr "" 849 850#. type: =head1 851#: po4a:93 852msgid "CONFIGURATION FILE" 853msgstr "" 854 855#. type: textblock 856#: po4a:94 857msgid "" 858"po4a expects a configuration file as argument. This file must contain the " 859"following elements:" 860msgstr "" 861 862#. type: textblock 863#: po4a:95 864msgid "The path to the PO files and the list of languages existing in the project;" 865msgstr "" 866 867#. type: textblock 868#: po4a:96 869msgid "" 870"Optionally, some global options and so-called configuration aliases that are " 871"used as templates to configure individual master files;" 872msgstr "" 873 874#. type: textblock 875#: po4a:97 876msgid "The list of each master file to translate, along with specific parameters." 877msgstr "" 878 879#. type: textblock 880#: po4a:98 881msgid "" 882"All lines contain a command between square braces, followed by its " 883"parameters. Comments begin with the char '#' and run until the end of the " 884"line. You can escape the end of line to spread a command over several lines." 885msgstr "" 886 887#. type: textblock 888#: po4a:99 889msgid "" 890"Some full examples are presented on this page, while other examples can be " 891"found in the C<t/cfg> directory of the source distribution." 892msgstr "" 893 894#. type: =head2 895#: po4a:100 896msgid "Finding the PO and POT files" 897msgstr "" 898 899#. type: textblock 900#: po4a:101 901msgid "" 902"The simplest solution is to explicitly give the path to POT and PO files, as " 903"follows:" 904msgstr "" 905 906#. type: verbatim 907#: po4a:102 908#, no-wrap 909msgid "" 910" [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po\n" 911"\n" 912msgstr "" 913 914#. type: textblock 915#: po4a:103 916msgid "" 917"This specifies the path to the POT file first, and then the paths to the " 918"German and French PO files." 919msgstr "" 920 921#. type: textblock 922#: po4a:104 923msgid "" 924"The same information can be written as follows to reduce the risk of " 925"copy/paste errors:" 926msgstr "" 927 928#. type: verbatim 929#: po4a:105 930#, no-wrap 931msgid "" 932" [po4a_langs] fr de\n" 933" [po4a_paths] man/po/project.pot $lang:man/po/$lang.po\n" 934"\n" 935msgstr "" 936 937#. type: textblock 938#: po4a:106 939msgid "" 940"The C<$lang> component is automatically expanded using the provided " 941"languages list, reducing the risk of copy/paste error when a new language is " 942"added." 943msgstr "" 944 945#. type: textblock 946#: po4a:107 947msgid "" 948"You can further compact the same information by only providing the path to " 949"the directory containing your translation project, as follows." 950msgstr "" 951 952#. type: verbatim 953#: po4a:108 954#, no-wrap 955msgid "" 956" [po_directory] man/po/\n" 957"\n" 958msgstr "" 959 960#. type: textblock 961#: po4a:109 962msgid "" 963"The provided directory must contain a set of PO files, each named F<XX.po> " 964"with C<XX> the ISO 639-1 of the language used in this file. The directory " 965"must also contain a single POT file, with the C<.pot> file extension. For " 966"the first run, this file can be empty but it must exist (po4a cannot guess " 967"the name to use before the extension)." 968msgstr "" 969 970#. type: textblock 971#: po4a:110 972msgid "" 973"Note that you must choose only one between C<po_directory> and " 974"C<po4a_paths>. The first one (C<po_directory>) is more compact, further " 975"reduces the risk of copy/paste error, but forces you to use the expected " 976"project structure and file names. The second one (C<po4a_paths>), is more " 977"explicit, probably more readable, and advised when you setup your first " 978"project with po4a." 979msgstr "" 980 981#. type: =head3 982#: po4a:111 983msgid "Centralized or split PO files?" 984msgstr "" 985 986#. type: textblock 987#: po4a:112 988msgid "" 989"By default, po4a produces one single PO file per target language, containing " 990"the whole content of your translation project. As your project grows, the " 991"size of these files may become problematic. When using weblate, it is " 992"possible to specify priorities for each translation segment (i.e., msgid) so " 993"that the important ones get translated first. Still, some translation teams " 994"prefer to split the content in several files." 995msgstr "" 996 997#. type: textblock 998#: po4a:113 999msgid "" 1000"To have one PO file per master file, you simply have to use the string " 1001"C<$master> in the name of your PO files on the C<[po4a_paths]> line, as " 1002"follows." 1003msgstr "" 1004 1005#. type: verbatim 1006#: po4a:114 1007#, no-wrap 1008msgid "" 1009" [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po\n" 1010"\n" 1011msgstr "" 1012 1013#. type: textblock 1014#: po4a:115 1015msgid "" 1016"With this line, po4a will produce separate POT and PO files for each " 1017"document to translate. For example, if you have 3 documents and 5 " 1018"languages, this will result in 3 POT files and 15 PO files. These files are " 1019"named as specified on the C<po4a_paths> template, with C<$master> " 1020"substituted to the basename of each document to translate. In case of name " 1021"conflict, you can specify the POT file to use as follows, with the C<pot=> " 1022"parameter. This feature can also be used to group several translated files " 1023"into the same POT file." 1024msgstr "" 1025 1026#. type: verbatim 1027#: po4a:116 1028#, no-wrap 1029msgid "" 1030" [po4a_langs] de fr ja\n" 1031" [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po\n" 1032" [type: xml] foo/gui.xml $lang:foo/gui.$lang.xml pot=foo-gui\n" 1033" [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml pot=bar\n" 1034" [type: xml] bar/cli.xml $lang:bar/cli.$lang.xml pot=bar\n" 1035"\n" 1036msgstr "" 1037 1038#. type: textblock 1039#: po4a:117 1040msgid "" 1041"In split mode, B<po4a> builds a temporary compendium during the PO update, " 1042"to share the translations between all the PO files. If two PO files have " 1043"different translations for the same string, B<po4a> will mark this string as " 1044"fuzzy and will submit both translations in all the PO files containing this " 1045"string. When unfuzzied by the translator, the translation is automatically " 1046"used in every PO files." 1047msgstr "" 1048 1049#. type: =head2 1050#: po4a:118 1051msgid "Specifying the documents to translate" 1052msgstr "" 1053 1054#. type: textblock 1055#: po4a:119 1056msgid "" 1057"You must also list the documents that should be translated. For each master " 1058"file, you must specify the format parser to use, the location of the " 1059"translated document to produce, and optionally some configuration. Here is " 1060"an example:" 1061msgstr "" 1062 1063#. type: verbatim 1064#: po4a:120 1065#, no-wrap 1066msgid "" 1067" [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \\\n" 1068" de:doc/de/mein_kram.sgml\n" 1069" [type: man] script fr:doc/fr/script.1 de:doc/de/script.1\n" 1070" [type: docbook] doc/script.xml fr:doc/fr/script.xml \\\n" 1071" de:doc/de/script.xml\n" 1072"\n" 1073msgstr "" 1074 1075#. type: textblock 1076#: po4a:121 1077msgid "" 1078"But again, these complex lines are difficult to read and modify, e.g. when " 1079"adding a new language. It is much simpler to reorganize things using the " 1080"C<$lang> template as follows:" 1081msgstr "" 1082 1083#. type: verbatim 1084#: po4a:122 1085#, no-wrap 1086msgid "" 1087" [type: sgml] doc/my_stuff.sgml $lang:doc/$lang/my_stuff.sgml\n" 1088" [type: man] script.1 $lang:po/$lang/script.1\n" 1089" [type: docbook] doc/script.xml $lang:doc/$lang/script.xml\n" 1090"\n" 1091msgstr "" 1092 1093#. type: =head2 1094#: po4a:123 1095msgid "Specifying options" 1096msgstr "" 1097 1098#. type: textblock 1099#: po4a:124 1100msgid "" 1101"There is two types of options: I<po4a options> are default values to the " 1102"po4a command line options while I<format options> are used to change the " 1103"behavior of the format parsers. As a I<po4a options>, you could for example " 1104"specify in your configuration file that the default value of the B<--keep> " 1105"command line parameter is 50% instead of 80%. I<Format options> are " 1106"documented on the specific page of each parsing module, " 1107"e.g. L<Locale::Po4a::Xml(3pm)>. You could for example pass B<nostrip> to the " 1108"XML parser to not strip the spaces around the extracted strings." 1109msgstr "" 1110 1111#. type: textblock 1112#: po4a:125 1113msgid "" 1114"You can pass these options for a specific master file, or even for a " 1115"specific translation of that file, using C<opt:> and C<opt_XX:> for the " 1116"C<XX> language. In the following example, the B<nostrip> option is passed " 1117"to the XML parser (for all languages), while the threshold will be reduced " 1118"to 0% for the French translation (that is thus always kept)." 1119msgstr "" 1120 1121#. type: verbatim 1122#: po4a:126 1123#, no-wrap 1124msgid "" 1125" [type:xml] toto.xml $lang:toto.$lang.xml opt:\"-o nostrip\" opt_fr:\"--keep " 1126"0\"\n" 1127"\n" 1128msgstr "" 1129 1130#. type: textblock 1131#: po4a:127 1132msgid "" 1133"In any case, these configuration chunks must be located at the end of the " 1134"line. The declaration of files must come first, then the addendum if any " 1135"(see below), and then only the options. The grouping of configuration chunks " 1136"is not very important, since elements are internally concatenated as " 1137"strings. The following examples are all equivalent:" 1138msgstr "" 1139 1140#. type: verbatim 1141#: po4a:128 1142#, no-wrap 1143msgid "" 1144" [type:xml] toto.xml $lang:toto.$lang.xml opt:\"--keep 20\" opt:\"-o " 1145"nostrip\" opt_fr:\"--keep 0\"\n" 1146" [type:xml] toto.xml $lang:toto.$lang.xml opt:\"--keep 20 -o nostrip\" " 1147"opt_fr:\"--keep 0\"\n" 1148" [type:xml] toto.xml $lang:toto.$lang.xml opt:--keep opt:20 opt:-o " 1149"opt:nostrip opt_fr:--keep opt_fr:0\n" 1150"\n" 1151msgstr "" 1152 1153#. type: textblock 1154#: po4a:129 1155msgid "" 1156"Note that language specific options are not used when building the POT " 1157"file. It is for example impossible to pass B<nostrip> to the parser only " 1158"when building the French translation, because the same POT file is used to " 1159"update every languages. So the only options that can be language-specific " 1160"are the ones that are used when producing the translation, as the C<--keep> " 1161"option." 1162msgstr "" 1163 1164#. type: =head3 1165#: po4a:130 1166msgid "Configuration aliases" 1167msgstr "" 1168 1169#. type: textblock 1170#: po4a:131 1171msgid "" 1172"To pass the same options to several files, the best is to define a type " 1173"alias as follows. In the next example, C<--keep 0> is passed to every " 1174"Italian translation using this C<test> type, that is an extension of the " 1175"C<man> type." 1176msgstr "" 1177 1178#. type: verbatim 1179#: po4a:132 1180#, no-wrap 1181msgid "" 1182" [po4a_alias:test] man opt_it:\"--keep 0\"\n" 1183" [type: test] man/page.1 $lang:man/$lang/page.1\n" 1184"\n" 1185msgstr "" 1186 1187#. type: textblock 1188#: po4a:133 1189msgid "" 1190"You can also extend an existing type reusing the same name for the alias as " 1191"follows. This is not interpreted as as an erroneous recursive definition." 1192msgstr "" 1193 1194#. type: verbatim 1195#: po4a:134 1196#, no-wrap 1197msgid "" 1198" [po4a_alias:man] man opt_it:\"--keep 0\"\n" 1199" [type: man] man/page.1 $lang:man/$lang/page.1\n" 1200"\n" 1201msgstr "" 1202 1203#. type: =head3 1204#: po4a:135 1205msgid "Global default options" 1206msgstr "" 1207 1208#. type: textblock 1209#: po4a:136 1210msgid "" 1211"You can also use C<[options]> lines to define options that must be used for " 1212"all files, regardless of their type." 1213msgstr "" 1214 1215#. type: verbatim 1216#: po4a:137 1217#, no-wrap 1218msgid "" 1219" [options] --keep 20 --option nostrip\n" 1220"\n" 1221msgstr "" 1222 1223#. type: textblock 1224#: po4a:138 1225msgid "" 1226"As with the command line options, you can abbreviate the parameters passed " 1227"in the configuration file:" 1228msgstr "" 1229 1230#. type: verbatim 1231#: po4a:139 1232#, no-wrap 1233msgid "" 1234" [options] -k 20 -o nostrip\n" 1235"\n" 1236msgstr "" 1237 1238#. type: =head3 1239#: po4a:140 1240msgid "Option priorities" 1241msgstr "" 1242 1243#. type: textblock 1244#: po4a:141 1245msgid "" 1246"The options of every sources are concatenated, ensuring that the default " 1247"values can easily be overridden by more specific options. The order is as " 1248"follows:" 1249msgstr "" 1250 1251#. type: textblock 1252#: po4a:142 1253msgid "" 1254"C<[options]> lines provide default values that can be overridden by any " 1255"other source." 1256msgstr "" 1257 1258#. type: textblock 1259#: po4a:143 1260msgid "" 1261"Type aliases are then used. Language specific settings override the ones " 1262"applicable to all languages." 1263msgstr "" 1264 1265#. type: textblock 1266#: po4a:144 1267msgid "" 1268"Settings that are specific to a given master file override both the default " 1269"ones and the ones coming from the type alias. In this case also, language " 1270"specific settings override the global ones." 1271msgstr "" 1272 1273#. type: textblock 1274#: po4a:145 1275msgid "" 1276"Finally, parameters provided on the B<po4a> command line override any " 1277"settings from the configuration file." 1278msgstr "" 1279 1280#. type: =head3 1281#: po4a:146 1282msgid "Example" 1283msgstr "" 1284 1285#. type: textblock 1286#: po4a:147 1287msgid "Here is an example showing how to quote the spaces and quotes:" 1288msgstr "" 1289 1290#. type: verbatim 1291#: po4a:148 1292#, no-wrap 1293msgid "" 1294" [po_directory] man/po/\n" 1295" \n" 1296msgstr "" 1297 1298#. type: verbatim 1299#: po4a:149 1300#, no-wrap 1301msgid "" 1302" [options] --master-charset UTF-8\n" 1303" \n" 1304msgstr "" 1305 1306#. type: verbatim 1307#: po4a:150 1308#, no-wrap 1309msgid "" 1310" [po4a_alias:man] man opt:\"-o \\\"mdoc=NAME,SEE ALSO\\\"\"\n" 1311" [type:man] t-05-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \\\n" 1312" opt:\"-k 75\" opt_it:\"-L UTF-8\" opt_fr:--verbose\n" 1313"\n" 1314msgstr "" 1315 1316#. type: =head2 1317#: po4a:151 1318msgid "Addendum: Adding extra content in the translation" 1319msgstr "" 1320 1321#. type: textblock 1322#: po4a:152 1323msgid "" 1324"If you want to add an extra section to the translation, for example to give " 1325"credit to the translator, then you need to define an addendum to the line " 1326"defining your master file. Please refer to the page L<po4a(7)> for more " 1327"details on the syntax of addendum files." 1328msgstr "" 1329 1330#. type: verbatim 1331#: po4a:153 1332#, no-wrap 1333msgid "" 1334" [type: pod] script fr:doc/fr/script.1 \\\n" 1335" add_fr:doc/l10n/script.fr.add\n" 1336"\n" 1337msgstr "" 1338 1339#. type: textblock 1340#: po4a:154 1341msgid "You can also use language templates as follow:" 1342msgstr "" 1343 1344#. type: verbatim 1345#: po4a:155 1346#, no-wrap 1347msgid "" 1348" [type: pod] script $lang:doc/$lang/script.1 \\\n" 1349" add_$lang:doc/l10n/script.$lang.add\n" 1350"\n" 1351msgstr "" 1352 1353#. type: textblock 1354#: po4a:156 1355msgid "If an addendum fails to apply, the translation is discarded." 1356msgstr "" 1357 1358#. type: =head3 1359#: po4a:157 1360msgid "Modifiers for the addendum declaration" 1361msgstr "" 1362 1363#. type: textblock 1364#: po4a:158 1365msgid "" 1366"Addendum modifiers can simplify the configuration file in the case where not " 1367"all languages provide an addendum, or when the list of addenda changes from " 1368"one language to the other. The modifier is a single char located before the " 1369"file name." 1370msgstr "" 1371 1372#. type: =item 1373#: po4a:159 1374msgid "B<?>" 1375msgstr "" 1376 1377#. type: textblock 1378#: po4a:160 1379msgid "Include I<addendum_path> if this file does exist, otherwise do nothing." 1380msgstr "" 1381 1382#. type: =item 1383#: po4a:161 1384msgid "B<@>" 1385msgstr "" 1386 1387#. type: textblock 1388#: po4a:162 1389msgid "" 1390"I<addendum_path> is not a regular addendum but a file containing a list of " 1391"addenda, one by line. Each addendum may be preceded by modifiers." 1392msgstr "" 1393 1394#. type: =item 1395#: po4a:163 1396msgid "B<!>" 1397msgstr "" 1398 1399#. type: textblock 1400#: po4a:164 1401msgid "" 1402"I<addendum_path> is discarded, it is not loaded and will not be loaded by " 1403"any further addendum specification." 1404msgstr "" 1405 1406#. type: textblock 1407#: po4a:165 1408msgid "" 1409"The following includes an addendum in any language, but if only it " 1410"exists. No error is reported if the addendum does not exist." 1411msgstr "" 1412 1413#. type: verbatim 1414#: po4a:166 1415#, no-wrap 1416msgid "" 1417" [type: pod] script $lang:doc/$lang/script.1 " 1418"add_$lang:?doc/l10n/script.$lang.add\n" 1419"\n" 1420msgstr "" 1421 1422#. type: textblock 1423#: po4a:167 1424msgid "The following includes a list of addendum for every language:" 1425msgstr "" 1426 1427#. type: verbatim 1428#: po4a:168 1429#, no-wrap 1430msgid "" 1431" [type: pod] script $lang:doc/$lang/script.1 " 1432"add_$lang:@doc/l10n/script.$lang.add\n" 1433"\n" 1434msgstr "" 1435 1436#. type: =head2 1437#: po4a:169 1438msgid "Filtering the translated strings" 1439msgstr "" 1440 1441#. type: textblock 1442#: po4a:170 1443msgid "" 1444"Sometimes, you want to hide some strings from the translation process. To " 1445"that extend, you can give a C<pot_in> parameter to your master file to " 1446"specify the name of the file to use instead of the real master when building " 1447"the POT file. Here is an example:" 1448msgstr "" 1449 1450#. type: verbatim 1451#: po4a:171 1452#, no-wrap 1453msgid "" 1454" [type:docbook] book.xml \\\n" 1455" pot_in:book-filtered.xml \\\n" 1456" $lang:book.$lang.xml\n" 1457"\n" 1458msgstr "" 1459 1460#. type: textblock 1461#: po4a:172 1462msgid "" 1463"With this setting, the strings to translate will be extracted from the " 1464"F<book-filtered.xml> (that must be produced before calling B<po4a>) while " 1465"the translated files will be built from F<book.xml>. As a result, any string " 1466"that is part of F<book.xml> but not in F<book-filtered.xml> will not be " 1467"included in the PO files, preventing the translators from providing a " 1468"translation for them. So these strings will be left unmodified when " 1469"producing the translated documents. This naturally decreases the level of " 1470"translation, so you may need the C<--keep> option to ensure that the " 1471"document is produced anyway." 1472msgstr "" 1473 1474#. type: =head2 1475#: po4a:173 1476msgid "CONFIGURATION EXAMPLE" 1477msgstr "" 1478 1479#. type: textblock 1480#: po4a:174 1481msgid "TODO: Is this section really useful?" 1482msgstr "" 1483 1484#. type: textblock 1485#: po4a:175 1486msgid "" 1487"Let's assume you maintain a program named B<foo> which has a man page " 1488"F<man/foo.1> which naturally is maintained in English only. Now you as the " 1489"upstream or downstream maintainer want to create and maintain the " 1490"translation. First you need to create the POT file necessary to send to " 1491"translators using L<po4a-gettextize(1)>." 1492msgstr "" 1493 1494#. type: textblock 1495#: po4a:176 1496msgid "So for our case we would call" 1497msgstr "" 1498 1499#. type: verbatim 1500#: po4a:177 1501#, no-wrap 1502msgid "" 1503" cd man && po4a-gettextize -f man -m foo.1 -p foo.pot\n" 1504"\n" 1505msgstr "" 1506 1507#. type: textblock 1508#: po4a:178 1509msgid "" 1510"You would then send this file to the appropriate language lists or offer it " 1511"for download somewhere on your website." 1512msgstr "" 1513 1514#. type: textblock 1515#: po4a:179 1516msgid "" 1517"Now let's assume you received three translations before your next release: " 1518"F<de.po> (including an addendum F<de.add>), F<sv.po> and F<pt.po>. Since " 1519"you don't want to change your F<Makefile>(s) whenever a new translation " 1520"arrives you can use B<po4a> with an appropriate configuration file in your " 1521"F<Makefile>. Let's call it F<po4a.cfg>. In our example it would look like " 1522"the following:" 1523msgstr "" 1524 1525#. type: verbatim 1526#: po4a:180 1527#, no-wrap 1528msgid "" 1529" [po_directory] man/po4a/po/\n" 1530"\n" 1531msgstr "" 1532 1533#. type: verbatim 1534#: po4a:181 1535#, no-wrap 1536msgid "" 1537" [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \\\n" 1538" add_$lang:?man/po4a/add_$lang/$lang.add opt:\"-k 80\"\n" 1539"\n" 1540msgstr "" 1541 1542#. type: textblock 1543#: po4a:182 1544msgid "" 1545"In this example we assume that your generated man pages (and all PO and " 1546"addenda files) should be stored in F<man/translated/$lang/> (respectively in " 1547"F<man/po4a/po/> and F<man/po4a/add_$lang/>) below the current directory. In " 1548"our example the F<man/po4a/po/> directory would include F<de.po>, F<pt.po> " 1549"and F<sv.po>, and the F<man/po4a/add_de/> directory would include F<de.add>." 1550msgstr "" 1551 1552#. type: textblock 1553#: po4a:183 1554msgid "" 1555"Note the use of the modifier B<?> as only the German translation (F<de.po>) " 1556"is accompanied by an addendum." 1557msgstr "" 1558 1559#. type: textblock 1560#: po4a:184 1561msgid "" 1562"To actually build the translated man pages you would then (once!) add the " 1563"following line in the B<build> target of the appropriate F<Makefile>:" 1564msgstr "" 1565 1566#. type: verbatim 1567#: po4a:185 1568#, no-wrap 1569msgid "" 1570" po4a po4a.cfg\n" 1571"\n" 1572msgstr "" 1573 1574#. type: textblock 1575#: po4a:186 1576msgid "" 1577"Once this is set up you don't need to touch the F<Makefile> when a new " 1578"translation arrives, i.e. if the French team sends you F<fr.po> and " 1579"F<fr.add> then you simply drop them respectively in F<man/po4a/po/> and " 1580"F<man/po4a/add_fr/> and the next time the program is built the French " 1581"translation is automatically build as well in F<man/translated/fr/>." 1582msgstr "" 1583 1584#. type: textblock 1585#: po4a:187 1586msgid "" 1587"Note that you still need an appropriate target to install localized manual " 1588"pages with English ones." 1589msgstr "" 1590 1591#. type: verbatim 1592#: po4a:188 1593#, no-wrap 1594msgid "" 1595"Finally if you do not store generated files into your version control " 1596"system,\n" 1597"you will need a line in your B<clean> target as well:\n" 1598" -rm -rf man/translated\n" 1599"\n" 1600msgstr "" 1601 1602#. type: textblock 1603#: po4a:190 1604msgid "" 1605"L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, " 1606"L<po4a-updatepo(1)>, L<po4a(7)>." 1607msgstr "" 1608 1609#. type: =head1 1610#: po4a:191 po4a-gettextize:73 po4a-normalize:31 po4a-translate:56 1611#: po4a-updatepo:55 msguntypot:32 doc/po4a.7.pod:183 1612#: lib/Locale/Po4a/AsciiDoc.pm:52 lib/Locale/Po4a/BibTeX.pm:11 1613#: lib/Locale/Po4a/Chooser.pm:12 lib/Locale/Po4a/Common.pm:28 1614#: lib/Locale/Po4a/Dia.pm:14 lib/Locale/Po4a/Docbook.pm:17 1615#: lib/Locale/Po4a/Guide.pm:12 lib/Locale/Po4a/Halibut.pm:16 1616#: lib/Locale/Po4a/Ini.pm:10 lib/Locale/Po4a/KernelHelp.pm:9 1617#: lib/Locale/Po4a/LaTeX.pm:10 lib/Locale/Po4a/Man.pm:109 1618#: lib/Locale/Po4a/Po.pm:101 lib/Locale/Po4a/Pod.pm:38 1619#: lib/Locale/Po4a/Sgml.pm:53 lib/Locale/Po4a/TeX.pm:120 1620#: lib/Locale/Po4a/Texinfo.pm:12 lib/Locale/Po4a/Text.pm:40 1621#: lib/Locale/Po4a/TransTractor.pm:156 lib/Locale/Po4a/Wml.pm:11 1622#: lib/Locale/Po4a/Xhtml.pm:17 lib/Locale/Po4a/Xml.pm:186 1623msgid "AUTHORS" 1624msgstr "" 1625 1626#. type: verbatim 1627#: po4a:192 po4a-gettextize:74 po4a-normalize:32 po4a-translate:57 1628#: po4a-updatepo:56 lib/Locale/Po4a/Man.pm:110 1629#, no-wrap 1630msgid "" 1631" Denis Barbier <barbier@linuxfr.org>\n" 1632" Nicolas François <nicolas.francois@centraliens.net>\n" 1633" Martin Quinson (mquinson#debian.org)\n" 1634"\n" 1635msgstr "" 1636 1637#. type: =head1 1638#: po4a:193 po4a-gettextize:75 po4a-normalize:33 po4a-translate:58 1639#: po4a-updatepo:57 msguntypot:34 lib/Locale/Po4a/AsciiDoc.pm:54 1640#: lib/Locale/Po4a/BibTeX.pm:13 lib/Locale/Po4a/Chooser.pm:14 1641#: lib/Locale/Po4a/Common.pm:30 lib/Locale/Po4a/Dia.pm:16 1642#: lib/Locale/Po4a/Docbook.pm:19 lib/Locale/Po4a/Guide.pm:14 1643#: lib/Locale/Po4a/Halibut.pm:18 lib/Locale/Po4a/Ini.pm:12 1644#: lib/Locale/Po4a/KernelHelp.pm:11 lib/Locale/Po4a/LaTeX.pm:12 1645#: lib/Locale/Po4a/Man.pm:111 lib/Locale/Po4a/Pod.pm:40 1646#: lib/Locale/Po4a/Sgml.pm:58 lib/Locale/Po4a/TeX.pm:122 1647#: lib/Locale/Po4a/Texinfo.pm:14 lib/Locale/Po4a/Text.pm:42 1648#: lib/Locale/Po4a/Wml.pm:13 lib/Locale/Po4a/Xhtml.pm:19 1649#: lib/Locale/Po4a/Xml.pm:188 1650msgid "COPYRIGHT AND LICENSE" 1651msgstr "" 1652 1653#. type: textblock 1654#: po4a:194 po4a-gettextize:76 po4a-normalize:34 po4a-translate:59 1655#: po4a-updatepo:58 1656msgid "Copyright 2002-2020 by SPI, inc." 1657msgstr "" 1658 1659#. type: textblock 1660#: po4a:195 po4a-gettextize:77 po4a-normalize:35 po4a-translate:60 1661#: po4a-updatepo:59 msguntypot:36 lib/Locale/Po4a/AsciiDoc.pm:56 1662#: lib/Locale/Po4a/BibTeX.pm:15 lib/Locale/Po4a/Chooser.pm:16 1663#: lib/Locale/Po4a/Common.pm:32 lib/Locale/Po4a/Dia.pm:18 1664#: lib/Locale/Po4a/Docbook.pm:21 lib/Locale/Po4a/Guide.pm:16 1665#: lib/Locale/Po4a/Ini.pm:14 lib/Locale/Po4a/KernelHelp.pm:13 1666#: lib/Locale/Po4a/Man.pm:113 lib/Locale/Po4a/Pod.pm:42 1667#: lib/Locale/Po4a/Sgml.pm:60 lib/Locale/Po4a/TeX.pm:124 1668#: lib/Locale/Po4a/Text.pm:45 lib/Locale/Po4a/Wml.pm:15 1669#: lib/Locale/Po4a/Xhtml.pm:21 lib/Locale/Po4a/Xml.pm:190 1670msgid "" 1671"This program is free software; you may redistribute it and/or modify it " 1672"under the terms of GPL (see the COPYING file)." 1673msgstr "" 1674 1675#. type: textblock 1676#: po4a-gettextize:2 1677msgid "" 1678"po4a-gettextize - convert an original file (and its translation) to a PO " 1679"file" 1680msgstr "" 1681 1682#. type: textblock 1683#: po4a-gettextize:4 1684msgid "" 1685"B<po4a-gettextize> B<-f> I<fmt> B<-m> I<master.doc> [B<-l> I<XX.doc>] B<-p> " 1686"I<XX.po>" 1687msgstr "" 1688 1689#. type: textblock 1690#: po4a-gettextize:5 1691msgid "(I<XX.po> is the output, all others are inputs)" 1692msgstr "" 1693 1694#. type: textblock 1695#: po4a-gettextize:8 1696msgid "" 1697"The B<po4a-gettextize> script is in charge of converting documentation files " 1698"into PO files. You only need it to setup your translation project with po4a, " 1699"never afterward." 1700msgstr "" 1701 1702#. type: textblock 1703#: po4a-gettextize:9 1704msgid "" 1705"If you start from scratch, B<po4a-gettextize> will extract the translatable " 1706"strings from the documentation and write a POT file. If you provide a " 1707"previously existing translated file with the B<-l> flag, B<po4a-gettextize> " 1708"will try to use the translations that it contains in the produced PO " 1709"file. This process remains tedious and manual, as explained in Section " 1710"'Converting a manual translation to po4a' below." 1711msgstr "" 1712 1713#. type: textblock 1714#: po4a-gettextize:10 1715msgid "" 1716"If the master document has non-ASCII characters, the new generated PO file " 1717"will be in UTF-8. Else (if the master document is completely in ASCII), the " 1718"generated PO will use the encoding of the translated input document, or " 1719"UTF-8 if no translated document is provided." 1720msgstr "" 1721 1722#. type: =item 1723#: po4a-gettextize:12 po4a-normalize:19 po4a-translate:10 po4a-updatepo:12 1724msgid "B<-f>, B<--format>" 1725msgstr "" 1726 1727#. type: textblock 1728#: po4a-gettextize:13 po4a-normalize:20 po4a-translate:11 po4a-updatepo:13 1729msgid "" 1730"Format of the documentation you want to handle. Use the B<--help-format> " 1731"option to see the list of available formats." 1732msgstr "" 1733 1734#. type: =item 1735#: po4a-gettextize:14 po4a-translate:16 po4a-updatepo:14 1736msgid "B<-m>, B<--master>" 1737msgstr "" 1738 1739#. type: textblock 1740#: po4a-gettextize:15 1741msgid "" 1742"File containing the master document to translate. You can use this option " 1743"multiple times if you want to gettextize multiple documents." 1744msgstr "" 1745 1746#. type: textblock 1747#: po4a-gettextize:17 po4a-normalize:22 po4a-translate:19 1748msgid "Charset of the file containing the document to translate." 1749msgstr "" 1750 1751#. type: =item 1752#: po4a-gettextize:18 po4a-normalize:23 po4a-translate:20 1753msgid "B<-l>, B<--localized>" 1754msgstr "" 1755 1756#. type: textblock 1757#: po4a-gettextize:19 1758msgid "" 1759"File containing the localized (translated) document. If you provided " 1760"multiple master files, you may wish to provide multiple localized file by " 1761"using this option more than once." 1762msgstr "" 1763 1764#. type: textblock 1765#: po4a-gettextize:21 po4a-translate:23 1766msgid "Charset of the file containing the localized document." 1767msgstr "" 1768 1769#. type: =item 1770#: po4a-gettextize:22 po4a-translate:24 po4a-updatepo:18 1771msgid "B<-p>, B<--po>" 1772msgstr "" 1773 1774#. type: textblock 1775#: po4a-gettextize:23 1776msgid "" 1777"File where the message catalog should be written. If not given, the message " 1778"catalog will be written to the standard output." 1779msgstr "" 1780 1781#. type: =item 1782#: po4a-gettextize:28 po4a-normalize:17 po4a-translate:34 po4a-updatepo:30 1783msgid "B<--help-format>" 1784msgstr "" 1785 1786#. type: textblock 1787#: po4a-gettextize:29 po4a-normalize:18 po4a-translate:35 po4a-updatepo:31 1788msgid "List the documentation formats understood by po4a." 1789msgstr "" 1790 1791#. type: =head2 1792#: po4a-gettextize:44 1793msgid "Converting a manual translation to po4a" 1794msgstr "" 1795 1796#. type: textblock 1797#: po4a-gettextize:45 1798msgid "" 1799"B<po4a-gettextize> will try to extract the content of any provided " 1800"translation file, and use this content as msgstr in the produced PO file. Be " 1801"warned that this process is very fragile: the Nth string of the translated " 1802"file is supposed to be the translation of the Nth string in the " 1803"original. This will naturally not work unless both files share exactly the " 1804"same structure." 1805msgstr "" 1806 1807#. type: textblock 1808#: po4a-gettextize:46 1809msgid "" 1810"Internally, each po4a parser reports the syntactical type of each extracted " 1811"strings. This is how desynchronization are detected during the " 1812"gettextization. For example, if the files have the following structure, it " 1813"is very unlikely that the 4th string in translation (of type 'chapter') is " 1814"the translation of the 4th string in original (of type 'paragraph'). It is " 1815"more likely that a new paragraph was added to the original, or that two " 1816"original paragraphs were merged together in the translation." 1817msgstr "" 1818 1819#. type: verbatim 1820#: po4a-gettextize:47 1821#, no-wrap 1822msgid "" 1823" Original Translation\n" 1824"\n" 1825msgstr "" 1826 1827#. type: verbatim 1828#: po4a-gettextize:48 1829#, no-wrap 1830msgid "" 1831" chapter chapter\n" 1832" paragraph paragraph\n" 1833" paragraph paragraph\n" 1834" paragraph chapter\n" 1835" chapter paragraph\n" 1836" paragraph paragraph\n" 1837"\n" 1838msgstr "" 1839 1840#. type: textblock 1841#: po4a-gettextize:49 1842msgid "" 1843"B<po4a-gettextize> will verbosely diagnose any detected structure " 1844"desynchronization. When this happens, you should manually edit the files " 1845"(this probably requires that you have some notions of the target " 1846"language). You must add fake paragraphs or remove some content in one of the " 1847"documents (or both) to fix the reported disparities, until the structure of " 1848"both documents perfectly match. Some tricks are given in the next section." 1849msgstr "" 1850 1851#. type: textblock 1852#: po4a-gettextize:50 1853msgid "" 1854"Even when the document is successfully processed, undetected disparities and " 1855"silent errors are still possible. That is why any translation associated " 1856"automatically by po4a-gettextize is marked as I<fuzzy> to require an manual " 1857"inspection by humans. One has to check that each retrieved msgstr is " 1858"actually the translation of the associated msgid, and not the string before " 1859"or after." 1860msgstr "" 1861 1862#. type: textblock 1863#: po4a-gettextize:51 1864msgid "" 1865"As you can see, the key here is to have the exact same structure in the " 1866"translated document and in the original one. The best is to do the " 1867"gettextization on the exact version of F<master.doc> that was used for the " 1868"translation, and only update the PO file against the latest master file once " 1869"the gettextization was successful." 1870msgstr "" 1871 1872#. type: textblock 1873#: po4a-gettextize:52 1874msgid "" 1875"If you are lucky enough to have a a perfect match in the file structures, " 1876"building a correct PO file is a matter of seconds. Otherwise, you will soon " 1877"understand why this process has such an ugly name :) But remember that this " 1878"grunt work is the price to pay to get the comfort of po4a afterward. Once " 1879"converted, the synchronization between master documents and translations " 1880"will always be fully automatic." 1881msgstr "" 1882 1883#. type: textblock 1884#: po4a-gettextize:53 1885msgid "" 1886"Even when things go wrong, gettextization often remains faster than " 1887"translating everything again. I was able to gettextize the existing French " 1888"translation of the whole Perl documentation in one day, even though the " 1889"structure of many documents were desynchronized. That was more than two " 1890"megabytes of original text (2 millions of characters): restarting the " 1891"translation from scratch would have required several months of work." 1892msgstr "" 1893 1894#. type: =head2 1895#: po4a-gettextize:54 1896msgid "Hints and tricks for the gettextization process" 1897msgstr "" 1898 1899#. type: textblock 1900#: po4a-gettextize:55 1901msgid "" 1902"The gettextization stops as soon as a desynchronization is detected. In " 1903"theory, it should probably be possible resynchronize the gettextization " 1904"later in the documents using e.g. the same algorithm than the L<diff(1)> " 1905"utility. But a manual intervention would still be mandatory to manually " 1906"match the elements that couldn't be automatically matched, explaining why " 1907"automatic resynchronization is not implemented (yet?)." 1908msgstr "" 1909 1910#. type: textblock 1911#: po4a-gettextize:56 1912msgid "" 1913"When this happens, the whole game comes down to the alignment of these damn " 1914"files' structures again through manual edits. B<po4a-gettextize> is rather " 1915"verbose about what went wrong when it happens. It reports the strings that " 1916"don't match, their positions in the text, and the type of each of " 1917"them. Moreover, the PO file generated so far is dumped as " 1918"F<gettextization.failed.po> for further inspection." 1919msgstr "" 1920 1921#. type: textblock 1922#: po4a-gettextize:57 1923msgid "Here are some other tricks to help you in this tedious process:" 1924msgstr "" 1925 1926#. type: textblock 1927#: po4a-gettextize:58 1928msgid "" 1929"Remove all extra content of the translations, such as the section giving " 1930"credits to the translators. You can add them back in po4a afterward, using " 1931"an addenda (see L<po4a(7)>)." 1932msgstr "" 1933 1934#. type: textblock 1935#: po4a-gettextize:59 1936msgid "" 1937"If you need to edit the files to align their structures, you should prefer " 1938"editing the translation if possible. Indeed, if the changes to the original " 1939"are too intrusive, the old and new versions will not be matched during the " 1940"PO update, and the corresponding translation will be dumped anyway. But do " 1941"not hesitate to also edit the original document if required: the important " 1942"thing is to get a first PO file to start with." 1943msgstr "" 1944 1945#. type: textblock 1946#: po4a-gettextize:60 1947msgid "" 1948"Do not hesitate to kill any original content that would not exist in the " 1949"translated version. This content will be automatically reintroduced " 1950"afterward, when synchronizing the PO file with the document." 1951msgstr "" 1952 1953#. type: textblock 1954#: po4a-gettextize:61 1955msgid "" 1956"You should probably inform the original author of any structural change in " 1957"the translation that seems justified. Issues in the original document should " 1958"reported to the author. Fixing them in your translation only fixes them for " 1959"a part of the community. Plus, it is impossible to do so when using po4a ;)" 1960msgstr "" 1961 1962#. type: textblock 1963#: po4a-gettextize:62 1964msgid "" 1965"Sometimes, the paragraph content does match, but not their types. Fixing it " 1966"is rather format-dependent. In POD and man, it often comes from the fact " 1967"that one of them contains a line beginning with a white space while the " 1968"other does not. In those formats, such paragraph cannot be wrapped and thus " 1969"become a different type. Just remove the space and you are fine. It may also " 1970"be a typo in the tag name in XML." 1971msgstr "" 1972 1973#. type: textblock 1974#: po4a-gettextize:63 1975msgid "" 1976"Likewise, two paragraphs may get merged together in POD when the separating " 1977"line contains some spaces, or when there is no empty line between the " 1978"B<=item> line and the content of the item." 1979msgstr "" 1980 1981#. type: textblock 1982#: po4a-gettextize:64 1983msgid "" 1984"Sometimes, the desynchronization message seems odd because the translation " 1985"is attached to the wrong original paragraph. It is the sign of an undetected " 1986"issue earlier in the process. Search for the actual desynchronization point " 1987"by inspecting F<gettextization.failed.po>, and fix the problem where it " 1988"really is." 1989msgstr "" 1990 1991#. type: textblock 1992#: po4a-gettextize:65 1993msgid "" 1994"In some unfortunate settings, you will get the feeling that po4a ate some " 1995"parts of the text, either the original or the " 1996"translation. F<gettextization.failed.po> indicates that both files matched " 1997"as expected up to the paragraph N. But then, an (unsuccessful) attempt is " 1998"made to match the N+1 paragraph in the original file not with the N+1 " 1999"paragraph in the translation as it should, but with the N+2 paragraph. Just " 2000"as if the N+1 paragraph that you see in the document simply disappeared from " 2001"the file during the process." 2002msgstr "" 2003 2004#. type: textblock 2005#: po4a-gettextize:66 2006msgid "" 2007"This unfortunate situation happens when the same paragraph is repeated over " 2008"the document. In that case, no new entry is created in the PO file, but a " 2009"new reference is added to the existing one instead." 2010msgstr "" 2011 2012#. type: textblock 2013#: po4a-gettextize:67 2014msgid "" 2015"So, the previous situation occurs when two similar but different paragraphs " 2016"are translated in the exact same way. This will apparently remove a " 2017"paragraph of the translation. To fix the problem, it is sufficient to " 2018"slightly alter one of the translations in the document. You can also prefer " 2019"to kill the second paragraph in the original document." 2020msgstr "" 2021 2022#. type: textblock 2023#: po4a-gettextize:68 2024msgid "" 2025"To the opposite, if the same paragraph appearing twice in the original " 2026"document is not translated in the exact same way at both locations, you will " 2027"get the feeling that one paragraph of the original document just " 2028"vanished. Just copy the best translation over the other one in the " 2029"translated document to fix the problem." 2030msgstr "" 2031 2032#. type: textblock 2033#: po4a-gettextize:69 2034msgid "" 2035"As a final note, do not be too surprised if the first synchronization of " 2036"your PO file takes a long time. This is because most of the msgid of the PO " 2037"file resulting from the gettextization don't match exactly any element of " 2038"the POT file built from the recent master files. This forces gettext to " 2039"search for the closest one using a costly string proximity algorithm." 2040msgstr "" 2041 2042#. type: textblock 2043#: po4a-gettextize:70 2044msgid "" 2045"For example, the first B<po4a-updatepo> of the Perl documentation's French " 2046"translation (5.5 MB PO file) took about 48 hours (yes, two days) while the " 2047"subsequent ones only take a dozen of seconds." 2048msgstr "" 2049 2050#. type: textblock 2051#: po4a-gettextize:72 2052msgid "" 2053"L<po4a(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, " 2054"L<po4a(7)>." 2055msgstr "" 2056 2057#. type: textblock 2058#: po4a-normalize:2 2059msgid "" 2060"po4a-normalize - normalize a documentation file by parsing it in po4a, and " 2061"writing it back" 2062msgstr "" 2063 2064#. type: textblock 2065#: po4a-normalize:4 2066msgid "B<po4a-normalize> B<-f> I<fmt> I<master.doc>" 2067msgstr "" 2068 2069#. type: textblock 2070#: po4a-normalize:6 po4a-translate:7 po4a-updatepo:7 2071#: lib/Locale/Po4a/AsciiDoc.pm:4 lib/Locale/Po4a/BibTeX.pm:4 2072#: lib/Locale/Po4a/Dia.pm:4 lib/Locale/Po4a/Docbook.pm:4 2073#: lib/Locale/Po4a/Guide.pm:4 lib/Locale/Po4a/Halibut.pm:4 2074#: lib/Locale/Po4a/LaTeX.pm:4 lib/Locale/Po4a/Man.pm:4 2075#: lib/Locale/Po4a/Sgml.pm:4 lib/Locale/Po4a/TeX.pm:4 2076#: lib/Locale/Po4a/Texinfo.pm:4 lib/Locale/Po4a/Text.pm:4 2077#: lib/Locale/Po4a/TransTractor.pm:4 lib/Locale/Po4a/Wml.pm:4 2078#: lib/Locale/Po4a/Xhtml.pm:4 lib/Locale/Po4a/Xml.pm:4 2079msgid "" 2080"The po4a (PO for anything) project goal is to ease translations (and more " 2081"interestingly, the maintenance of translations) using gettext tools on areas " 2082"where they were not expected like documentation." 2083msgstr "" 2084 2085#. type: textblock 2086#: po4a-normalize:7 2087msgid "" 2088"The B<po4a-normalize> script is a debugging tool used to make sure that po4a " 2089"don't change the document when it's not supposed to. Only use it if you're " 2090"developing a new module, or if you doubt the sanity of the tools." 2091msgstr "" 2092 2093#. type: textblock 2094#: po4a-normalize:8 2095msgid "" 2096"The generated document will be written to F<po4a-normalize.output> while the " 2097"generated POT file will be written to F<po4a-normalize.po> by default, but " 2098"you can use the B<--localized> and B<--pot> options to change that." 2099msgstr "" 2100 2101#. type: =item 2102#: po4a-normalize:12 2103msgid "B<-b>, B<--blank>" 2104msgstr "" 2105 2106#. type: textblock 2107#: po4a-normalize:13 2108msgid "" 2109"Create an blank translated document. The generated translated document will " 2110"be generated assuming all messages are translated by a space or new line." 2111msgstr "" 2112 2113#. type: textblock 2114#: po4a-normalize:14 2115msgid "This is useful to check what parts of the document cannot be translated." 2116msgstr "" 2117 2118#. type: textblock 2119#: po4a-normalize:24 2120msgid "" 2121"Name of the normalized file to produce (I<po4a-normalize.output> by " 2122"default)." 2123msgstr "" 2124 2125#. type: =item 2126#: po4a-normalize:25 2127msgid "B<-p>, B<--pot>" 2128msgstr "" 2129 2130#. type: textblock 2131#: po4a-normalize:26 2132msgid "Pot file to produce (I<po4a-normalize.po> by default)." 2133msgstr "" 2134 2135#. type: textblock 2136#: po4a-normalize:30 2137msgid "L<po4a-gettextize(1)>, L<po4a-translate(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" 2138msgstr "" 2139 2140#. type: textblock 2141#: po4a-translate:2 2142msgid "po4a-translate - convert a PO file back to documentation format" 2143msgstr "" 2144 2145#. type: textblock 2146#: po4a-translate:4 2147msgid "" 2148"B<po4a-translate> B<-f> I<fmt> B<-m> I<master.doc> B<-p> I<XX.po> B<-l> " 2149"I<XX.doc>" 2150msgstr "" 2151 2152#. type: textblock 2153#: po4a-translate:5 2154msgid "(I<XX.doc> is the output, all others are inputs)" 2155msgstr "" 2156 2157#. type: textblock 2158#: po4a-translate:8 2159msgid "" 2160"The B<po4a-translate> script is in charge of converting the translation " 2161"(which was done in a PO file) back into the documentation format. The " 2162"provided PO file should be the translation of the POT file which was " 2163"produced by L<po4a-gettextize(1)>." 2164msgstr "" 2165 2166#. type: =item 2167#: po4a-translate:12 2168msgid "B<-a>, B<--addendum>" 2169msgstr "" 2170 2171#. type: textblock 2172#: po4a-translate:13 2173msgid "" 2174"Add a file to the resulting file (to put translator's name or a section " 2175"\"About this translation\", for example). The first line of the file to " 2176"insert should be a PO4A header indicating where it should be added (see " 2177"section B<HOWTO add extra text to translations> in L<po4a(7)>)." 2178msgstr "" 2179 2180#. type: textblock 2181#: po4a-translate:17 2182msgid "File containing the master document to translate." 2183msgstr "" 2184 2185#. type: textblock 2186#: po4a-translate:21 2187msgid "File where the localized (translated) document should be written." 2188msgstr "" 2189 2190#. type: textblock 2191#: po4a-translate:25 2192msgid "File from which the message catalog should be read." 2193msgstr "" 2194 2195#. type: textblock 2196#: po4a-translate:29 2197msgid "" 2198"Minimal threshold for translation percentage to keep (i.e. write) the " 2199"resulting file (default: 80). I.e. by default, files have to be translated " 2200"at least at 80% to get written." 2201msgstr "" 2202 2203#. type: =item 2204#: po4a-translate:30 2205msgid "B<-w>, B<--width>" 2206msgstr "" 2207 2208#. type: textblock 2209#: po4a-translate:31 2210msgid "Column at which we should wrap the resulting file." 2211msgstr "" 2212 2213#. type: =item 2214#: po4a-translate:42 po4a-updatepo:38 2215msgid "B<--porefs> I<type>[,B<wrap>|B<nowrap>]" 2216msgstr "" 2217 2218#. type: textblock 2219#: po4a-translate:44 po4a-updatepo:40 2220msgid "" 2221"Argument can be followed by a comma and either B<wrap> or B<nowrap> " 2222"keyword. References are written by default on a single line. The B<wrap> " 2223"option wraps references on several lines, to mimic B<gettext> tools " 2224"(B<xgettext> and B<msgmerge>). This option will become the default in a " 2225"future release, because it is more sensible. The B<nowrap> option is " 2226"available so that users who want to keep the old behavior can do so." 2227msgstr "" 2228 2229#. type: textblock 2230#: po4a-translate:47 po4a-updatepo:43 2231msgid "" 2232"Historically, the gettext suite has reformatted the po files at the 77th " 2233"column for cosmetics. This option specifies the behavior of po4a. If set to " 2234"a numerical value, po4a will wrap the po file after this column and after " 2235"newlines in the content. If set to B<newlines>, po4a will only split the " 2236"msgid and msgstr after newlines in the content. If set to B<no>, po4a will " 2237"not wrap the po file at all. The wrapping of the reference comments is " 2238"controlled by the B<--porefs> option." 2239msgstr "" 2240 2241#. type: =head1 2242#: po4a-translate:49 2243msgid "Adding content (beside translations) to generated files" 2244msgstr "" 2245 2246#. type: textblock 2247#: po4a-translate:50 2248msgid "" 2249"To add some extra content to the generated document beside what you " 2250"translated (like the name of the translator, or an \"About this " 2251"translation\" section), you should use the B<--addendum> option." 2252msgstr "" 2253 2254#. type: textblock 2255#: po4a-translate:51 2256msgid "" 2257"The first line of the addendum must be a header indicating where to put it " 2258"in the document (it can be before or after a given part of the document). " 2259"The rest of the file will be added verbatim to the resulting file without " 2260"further processing." 2261msgstr "" 2262 2263#. type: textblock 2264#: po4a-translate:52 2265msgid "" 2266"Note that if po4a-translate fails to add one of the given files, it discards " 2267"the whole translation (because the missing file could be the one indicating " 2268"the author, what would prevent the users to contact him to report bugs in " 2269"the translation)." 2270msgstr "" 2271 2272#. type: textblock 2273#: po4a-translate:53 2274msgid "" 2275"The header has a pretty rigid syntax. For more information on how to use " 2276"this feature and how it works, please refer to the L<po4a(7)> man page." 2277msgstr "" 2278 2279#. type: textblock 2280#: po4a-translate:55 2281msgid "L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-updatepo(1)>, L<po4a(7)>" 2282msgstr "" 2283 2284#. type: textblock 2285#: po4a-updatepo:2 2286msgid "po4a-updatepo - update the translation (in PO format) of documentation" 2287msgstr "" 2288 2289#. type: textblock 2290#: po4a-updatepo:4 2291msgid "B<po4a-updatepo> B<-f> I<fmt> (B<-m> I<master.doc>)+ (B<-p> I<XX.po>)+" 2292msgstr "" 2293 2294#. type: textblock 2295#: po4a-updatepo:5 2296msgid "(I<XX.po> are the outputs, all others are inputs)" 2297msgstr "" 2298 2299#. type: textblock 2300#: po4a-updatepo:8 2301msgid "" 2302"The B<po4a-updatepo> script is in charge of updating PO files to make them " 2303"reflect the changes made to the original documentation file. For that, it " 2304"converts the documentation file to a POT file, and call L<msgmerge(1)> on " 2305"this new POT and on the provided PO files." 2306msgstr "" 2307 2308#. type: textblock 2309#: po4a-updatepo:9 2310msgid "" 2311"It is possible to give more than one PO file (if you want to update several " 2312"languages at once), and several documentation files (if you want to store " 2313"the translations of several documents in the same PO file)." 2314msgstr "" 2315 2316#. type: textblock 2317#: po4a-updatepo:10 2318msgid "" 2319"If the master document has non-ASCII characters, it will convert the PO " 2320"files to UTF-8 (if they weren't already), in order to allow non-standard " 2321"characters in a culture independent way." 2322msgstr "" 2323 2324#. type: textblock 2325#: po4a-updatepo:15 2326msgid "File(s) containing the master document to translate." 2327msgstr "" 2328 2329#. type: textblock 2330#: po4a-updatepo:17 2331msgid "" 2332"Charset of the files containing the document to translate. Note that all " 2333"files must have the same charset." 2334msgstr "" 2335 2336#. type: textblock 2337#: po4a-updatepo:19 2338msgid "" 2339"PO file(s) to update. If these files do not exist, they are created by " 2340"B<po4a-updatepo>." 2341msgstr "" 2342 2343#. type: textblock 2344#: po4a-updatepo:54 2345msgid "" 2346"L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>, " 2347"L<po4a(7)>" 2348msgstr "" 2349 2350#. type: textblock 2351#: msguntypot:2 2352msgid "msguntypot - update PO files when a typo is fixed in POT file" 2353msgstr "" 2354 2355#. type: textblock 2356#: msguntypot:4 2357msgid "B<msguntypot> B<-o> I<old_pot> B<-n> I<new_pot> I<pofiles> ..." 2358msgstr "" 2359 2360#. type: textblock 2361#: msguntypot:6 2362msgid "" 2363"When you fix a trivial error which surely doesn't affect translations (e.g. " 2364"a typo) in a POT file, you should unfuzzy the corresponding msgstr in the " 2365"translated PO files to avoid so extra work to the translators." 2366msgstr "" 2367 2368#. type: textblock 2369#: msguntypot:7 2370msgid "" 2371"This task is difficult and error prone when done manually, and this tool is " 2372"there to help doing so correctly. You just need to provide the two versions " 2373"of the POT file: before the edition and after as marked in the above " 2374"synopsis, and it all becomes automatic." 2375msgstr "" 2376 2377#. type: =head1 2378#: msguntypot:8 2379msgid "HOW TO USE IT" 2380msgstr "" 2381 2382#. type: textblock 2383#: msguntypot:9 2384msgid "" 2385"In short, when you discover a typo in one of your [english] message, do the " 2386"following:" 2387msgstr "" 2388 2389#. type: =item 2390#: msguntypot:10 msguntypot:19 2391msgid "- Regenerate your POT and PO files." 2392msgstr "" 2393 2394#. type: verbatim 2395#: msguntypot:11 2396#, no-wrap 2397msgid "" 2398" make -C po/ update-po # for message program translations\n" 2399" debconf-updatepo # for debconf translations\n" 2400" po4a po4a.conf # for po4a based documentation translations\n" 2401"\n" 2402msgstr "" 2403 2404#. type: textblock 2405#: msguntypot:12 2406msgid "" 2407"or something else, depending on your project's building settings. You know " 2408"how to make sure your POT and PO files are uptodate, don't you??" 2409msgstr "" 2410 2411#. type: =item 2412#: msguntypot:13 2413msgid "- Make a copy of your POT file." 2414msgstr "" 2415 2416#. type: verbatim 2417#: msguntypot:14 2418#, no-wrap 2419msgid "" 2420" cp myfile.pot myfile.pot.orig\n" 2421"\n" 2422msgstr "" 2423 2424#. type: =item 2425#: msguntypot:15 2426msgid "- Make a copy of all your PO files." 2427msgstr "" 2428 2429#. type: verbatim 2430#: msguntypot:16 2431#, no-wrap 2432msgid "" 2433" mkdir po_fridge; cp *.po po_fridge\n" 2434"\n" 2435msgstr "" 2436 2437#. type: =item 2438#: msguntypot:17 2439msgid "- Fix your typo." 2440msgstr "" 2441 2442#. type: textblock 2443#: msguntypot:18 2444msgid "$EDITOR the_file_in_which_there_is_a_typo" 2445msgstr "" 2446 2447#. type: textblock 2448#: msguntypot:20 2449msgid "See above." 2450msgstr "" 2451 2452#. type: textblock 2453#: msguntypot:21 2454msgid "" 2455"At this point, the typo fix fuzzied all the translations, and this " 2456"unfortunate change is the only one between the PO files of your main " 2457"directory and the one from the fridge. Here is how to solve this." 2458msgstr "" 2459 2460#. type: =item 2461#: msguntypot:22 2462msgid "- Discard fuzzy translation, restore the ones from the fridge." 2463msgstr "" 2464 2465#. type: verbatim 2466#: msguntypot:23 2467#, no-wrap 2468msgid "" 2469" cp po_fridge/*.po .\n" 2470"\n" 2471msgstr "" 2472 2473#. type: =item 2474#: msguntypot:24 2475msgid "" 2476"- Manually merge the PO files with the new POT file, but taking the useless " 2477"fuzzy into account." 2478msgstr "" 2479 2480#. type: verbatim 2481#: msguntypot:25 2482#, no-wrap 2483msgid "" 2484" msguntypot -o myfile.pot.orig -n myfile.pot *.po\n" 2485"\n" 2486msgstr "" 2487 2488#. type: =item 2489#: msguntypot:26 2490msgid "- Cleanups." 2491msgstr "" 2492 2493#. type: verbatim 2494#: msguntypot:27 2495#, no-wrap 2496msgid "" 2497" rm -rf myfile.pot.orig po_fridge\n" 2498"\n" 2499msgstr "" 2500 2501#. type: textblock 2502#: msguntypot:28 2503msgid "" 2504"You're done. The typo was eradicated from msgstr of both your POT and PO " 2505"files, and the PO files were not fuzzyied in the process. Your translators " 2506"love you already." 2507msgstr "" 2508 2509#. type: textblock 2510#: msguntypot:30 2511msgid "" 2512"Despite its name, this tool is not part of the gettext tool suite. It is " 2513"instead part of po4a. More precisely, it's a random Perl script using the " 2514"fine po4a modules. For more information about po4a, please see:" 2515msgstr "" 2516 2517#. type: textblock 2518#: msguntypot:31 2519msgid "L<po4a(7)>" 2520msgstr "" 2521 2522#. type: verbatim 2523#: msguntypot:33 2524#, no-wrap 2525msgid "" 2526" Martin Quinson (mquinson#debian,org)\n" 2527"\n" 2528msgstr "" 2529 2530#. type: textblock 2531#: msguntypot:35 2532msgid "Copyright 2005 by SPI, inc." 2533msgstr "" 2534 2535#. type: textblock 2536#: doc/po4a.7.pod:2 2537msgid "po4a - framework to translate documentation and other materials" 2538msgstr "" 2539 2540#. type: =head1 2541#: doc/po4a.7.pod:3 2542msgid "Introduction" 2543msgstr "" 2544 2545#. type: textblock 2546#: doc/po4a.7.pod:4 2547msgid "" 2548"po4a (PO for anything) eases the maintenance of documentation translation " 2549"using the classical gettext tools. The main feature of po4a is that it " 2550"decouples the translation of content from its document structure." 2551msgstr "" 2552 2553#. type: textblock 2554#: doc/po4a.7.pod:5 2555msgid "" 2556"This document serves as an introduction to the po4a project with a focus on " 2557"potential users considering whether to use this tool and on the curious " 2558"wanting to understand why things are the way they are." 2559msgstr "" 2560 2561#. type: =head1 2562#: doc/po4a.7.pod:6 2563msgid "Why po4a?" 2564msgstr "" 2565 2566#. type: textblock 2567#: doc/po4a.7.pod:7 2568msgid "" 2569"The philosophy of Free Software is to make the technology truly available to " 2570"everyone. But licensing is not the only consideration: untranslated free " 2571"software is useless for non-English speakers. Therefore, we still have some " 2572"work to do to make software available to everybody." 2573msgstr "" 2574 2575#. type: textblock 2576#: doc/po4a.7.pod:8 2577msgid "" 2578"This situation is well understood by most projects and everybody is now " 2579"convinced of the necessity to translate everything. Yet, the actual " 2580"translations represent a huge effort of many individuals, crippled by small " 2581"technical difficulties." 2582msgstr "" 2583 2584#. type: textblock 2585#: doc/po4a.7.pod:9 2586msgid "" 2587"Thankfully, Open Source software is actually very well translated using the " 2588"gettext tool suite. These tools are used to extract the strings to translate " 2589"from a program and present the strings to translate in a standardized format " 2590"(called PO files, or translation catalogs). A whole ecosystem of tools has " 2591"emerged to help the translators actually translate these PO files. The " 2592"result is then used by gettext at run time to display translated messages to " 2593"the end users." 2594msgstr "" 2595 2596#. type: textblock 2597#: doc/po4a.7.pod:10 2598msgid "" 2599"Regarding documentation, however, the situation still somewhat " 2600"disappointing. At first translating documentation may seem to be easier " 2601"than translating a program as it would seem that you just have to copy the " 2602"documentation source file and start translating the content. However, when " 2603"the original documentation is modified, keeping track of the modifications " 2604"quickly turns into a nightmare for the translators. If done manually, this " 2605"task is unpleasant and error prone." 2606msgstr "" 2607 2608#. type: textblock 2609#: doc/po4a.7.pod:11 2610msgid "" 2611"Outdated translations are often worse than no translation at all. End-users " 2612"can be tricked by documentation describing an old behavior of the program. " 2613"Furthermore, they cannot interact directly with the maintainers since they " 2614"don't speak English. Additionally, the maintainer cannot fix the problem as " 2615"they don't know every language in which their documentation is translated. " 2616"These difficulties, often caused by poor tooling, can undermine the " 2617"motivation of volunteer translators, further aggravating the problem." 2618msgstr "" 2619 2620#. type: textblock 2621#: doc/po4a.7.pod:12 2622msgid "" 2623"B<The goal of the po4a project is to ease the work of documentation " 2624"translators>. In particular, it makes documentation translations " 2625"I<maintainable>." 2626msgstr "" 2627 2628#. type: textblock 2629#: doc/po4a.7.pod:13 2630msgid "" 2631"The idea is to reuse and adapt the gettext approach to this field. As with " 2632"gettext, texts are extracted from their original locations and presented to " 2633"translators as PO translation catalogs. The translators can leverage the " 2634"classical gettext tools to monitor the work to do, collaborate and organize " 2635"as teams. po4a then injects the translations directly into the documentation " 2636"structure to produce translated source files that can be processed and " 2637"distributed just like the English files. Any paragraph that is not " 2638"translated is left in English in the resulting document, ensuring that the " 2639"end users never see an outdated translation in the documentation." 2640msgstr "" 2641 2642#. type: textblock 2643#: doc/po4a.7.pod:14 2644msgid "" 2645"This automates most of the grunt work of the translation maintenance. " 2646"Discovering the paragraphs needing an update becomes very easy, and the " 2647"process is completely automated when elements are reordered without further " 2648"modification. Specific verification can also be used to reduce the chance of " 2649"formatting errors that would result in a broken document." 2650msgstr "" 2651 2652#. type: textblock 2653#: doc/po4a.7.pod:15 2654msgid "" 2655"Please also see the B<FAQ> below in this document for a more complete list " 2656"of the advantages and disadvantages of this approach." 2657msgstr "" 2658 2659#. type: =head2 2660#: doc/po4a.7.pod:16 2661msgid "Supported formats" 2662msgstr "" 2663 2664#. type: textblock 2665#: doc/po4a.7.pod:17 2666msgid "" 2667"Currently, this approach has been successfully implemented to several kinds " 2668"of text formatting formats:" 2669msgstr "" 2670 2671#. type: =item 2672#: doc/po4a.7.pod:18 2673msgid "man (mature parser)" 2674msgstr "" 2675 2676#. type: textblock 2677#: doc/po4a.7.pod:19 2678msgid "" 2679"The good old manual pages' format, used by so many programs out there. po4a " 2680"support is very welcome here since this format is somewhat difficult to use " 2681"and not really friendly to newbies." 2682msgstr "" 2683 2684#. type: textblock 2685#: doc/po4a.7.pod:20 2686msgid "" 2687"The L<Locale::Po4a::Man(3pm)|Man> module also supports the mdoc format, used " 2688"by the BSD man pages (they are also quite common on Linux)." 2689msgstr "" 2690 2691#. type: =item 2692#: doc/po4a.7.pod:21 2693msgid "AsciiDoc (mature parser)" 2694msgstr "" 2695 2696#. type: textblock 2697#: doc/po4a.7.pod:22 2698msgid "" 2699"This format is a lightweight markup format intended to ease the authoring of " 2700"documentation. It is for example used to document the git system. Those " 2701"manpages are translated using po4a." 2702msgstr "" 2703 2704#. type: textblock 2705#: doc/po4a.7.pod:23 2706msgid "See L<Locale::Po4a::AsciiDoc> for details." 2707msgstr "" 2708 2709#. type: =item 2710#: doc/po4a.7.pod:24 2711msgid "pod (mature parser)" 2712msgstr "" 2713 2714#. type: textblock 2715#: doc/po4a.7.pod:25 2716msgid "" 2717"This is the Perl Online Documentation format. The language and extensions " 2718"themselves are documented using this format in addition to most existing " 2719"Perl scripts. It makes easy to keep the documentation close to the actual " 2720"code by embedding them both in the same file. It makes programmer's life " 2721"easier, but unfortunately, not the translator's, until you use po4a." 2722msgstr "" 2723 2724#. type: textblock 2725#: doc/po4a.7.pod:26 2726msgid "See L<Locale::Po4a::Pod> for details." 2727msgstr "" 2728 2729#. type: =item 2730#: doc/po4a.7.pod:27 2731msgid "sgml (mature parser)" 2732msgstr "" 2733 2734#. type: textblock 2735#: doc/po4a.7.pod:28 2736msgid "" 2737"Even if superseded by XML nowadays, this format is still used for documents " 2738"which are more than a few screens long. It can even be used for complete " 2739"books. Documents of this length can be very challenging to update. B<diff> " 2740"often reveals useless when the original text was re-indented after update. " 2741"Fortunately, po4a can help you after that process." 2742msgstr "" 2743 2744#. type: textblock 2745#: doc/po4a.7.pod:29 2746msgid "" 2747"Currently, only DebianDoc and DocBook DTD are supported, but adding support " 2748"for a new one is really easy. It is even possible to use po4a on an unknown " 2749"SGML DTD without changing the code by providing the needed information on " 2750"the command line. See L<Locale::Po4a::Sgml(3pm)> for details." 2751msgstr "" 2752 2753#. type: =item 2754#: doc/po4a.7.pod:30 2755msgid "TeX / LaTeX (mature parser)" 2756msgstr "" 2757 2758#. type: textblock 2759#: doc/po4a.7.pod:31 2760msgid "" 2761"The LaTeX format is a major documentation format used in the Free Software " 2762"world and for publications." 2763msgstr "" 2764 2765#. type: textblock 2766#: doc/po4a.7.pod:32 2767msgid "" 2768"The L<Locale::Po4a::LaTeX(3pm)|LaTeX> module was tested with the Python " 2769"documentation, a book and some presentations." 2770msgstr "" 2771 2772#. type: =item 2773#: doc/po4a.7.pod:33 2774msgid "text (mature parser)" 2775msgstr "" 2776 2777#. type: textblock 2778#: doc/po4a.7.pod:34 2779msgid "" 2780"The Text format is the base format for many formats that include long blocks " 2781"of text, including Markdown, fortunes, YAML front matter section, " 2782"debian/changelog, and debian/control." 2783msgstr "" 2784 2785#. type: textblock 2786#: doc/po4a.7.pod:35 2787msgid "" 2788"This supports the common format used in Static Site Generators, READMEs, and " 2789"other documentation systems. See L<Locale::Po4a::Text(3pm)|Text> for " 2790"details." 2791msgstr "" 2792 2793#. type: =item 2794#: doc/po4a.7.pod:36 2795msgid "xml and XHMTL (probably mature parser)" 2796msgstr "" 2797 2798#. type: textblock 2799#: doc/po4a.7.pod:37 2800msgid "The XML format is a base format for many documentation formats." 2801msgstr "" 2802 2803#. type: textblock 2804#: doc/po4a.7.pod:38 2805msgid "" 2806"Currently, the DocBook DTD (see L<Locale::Po4a::Docbook(3pm)> for details) " 2807"and XHTML are supported by po4a." 2808msgstr "" 2809 2810#. type: =item 2811#: doc/po4a.7.pod:39 2812msgid "BibTex (probably mature parser)" 2813msgstr "" 2814 2815#. type: textblock 2816#: doc/po4a.7.pod:40 2817msgid "" 2818"The BibTex format is used alongside LaTex for formatting lists of references " 2819"(bibliographies)." 2820msgstr "" 2821 2822#. type: textblock 2823#: doc/po4a.7.pod:41 2824msgid "See L<Locale::Po4a::BibTex> for details." 2825msgstr "" 2826 2827#. type: =item 2828#: doc/po4a.7.pod:42 2829msgid "Docbook (probably mature parser)" 2830msgstr "" 2831 2832#. type: textblock 2833#: doc/po4a.7.pod:43 2834msgid "A XML-based markup language that uses semantic tags to describe documents." 2835msgstr "" 2836 2837#. type: textblock 2838#: doc/po4a.7.pod:44 2839msgid "See L<Locale::Po4a:Docbook> for greater details." 2840msgstr "" 2841 2842#. type: =item 2843#: doc/po4a.7.pod:45 2844msgid "Guide XML (probably mature parser)" 2845msgstr "" 2846 2847#. type: textblock 2848#: doc/po4a.7.pod:46 2849msgid "" 2850"A XML documentation format. This module was developed specifically to help " 2851"with supporting and maintaining translations of Gentoo Linux documentation " 2852"up until at least March 2016 (Based on the Wayback Machine). Gentoo have " 2853"since moved to the DevBook XML format." 2854msgstr "" 2855 2856#. type: textblock 2857#: doc/po4a.7.pod:47 2858msgid "See L<Locale::Po4a:Guide> for greater details." 2859msgstr "" 2860 2861#. type: =item 2862#: doc/po4a.7.pod:48 2863msgid "Wml (probably mature parser)" 2864msgstr "" 2865 2866#. type: textblock 2867#: doc/po4a.7.pod:49 2868msgid "" 2869"The Web Markup Language, do not mixup WML with the WAP stuff used on cell " 2870"phones. This module relies on the Xhtml module, which itself relies on the " 2871"XmL module." 2872msgstr "" 2873 2874#. type: textblock 2875#: doc/po4a.7.pod:50 2876msgid "See L<Locale::Po4a::Wml> for greater details." 2877msgstr "" 2878 2879#. type: =item 2880#: doc/po4a.7.pod:51 2881msgid "Yaml (probably mature parser)" 2882msgstr "" 2883 2884#. type: textblock 2885#: doc/po4a.7.pod:52 2886msgid "" 2887"A strict superset of JSON. YAML is often used as systems or configuration " 2888"projects. YAML is at the core of Red Hat's Ansible." 2889msgstr "" 2890 2891#. type: textblock 2892#: doc/po4a.7.pod:53 2893msgid "See L<Locale::Po4a::Yaml> for greater details." 2894msgstr "" 2895 2896#. type: =item 2897#: doc/po4a.7.pod:54 2898msgid "RubyDoc (probably mature parser)" 2899msgstr "" 2900 2901#. type: textblock 2902#: doc/po4a.7.pod:55 2903msgid "" 2904"The Ruby Document (RD) format, originally the default documentation format " 2905"for Ruby and Ruby projects before converted to RDoc in 2002. Though " 2906"apparently the Japanese version of the Ruby Reference Manual still use RD." 2907msgstr "" 2908 2909#. type: textblock 2910#: doc/po4a.7.pod:56 2911msgid "See L<Locale::Po4a::RubyDoc> for greater details." 2912msgstr "" 2913 2914#. type: =item 2915#: doc/po4a.7.pod:57 2916msgid "Halibut (probably experimental parser)" 2917msgstr "" 2918 2919#. type: textblock 2920#: doc/po4a.7.pod:58 2921msgid "" 2922"A documentation production system, with elements similar to TeX, " 2923"debiandoc-sgml, TeXinfo, and others, developed by Simon Tatham, the " 2924"developer of PuTTY." 2925msgstr "" 2926 2927#. type: textblock 2928#: doc/po4a.7.pod:59 2929msgid "See L<Locale::Po4a:Halibut> for greater details." 2930msgstr "" 2931 2932#. type: =item 2933#: doc/po4a.7.pod:60 2934msgid "Ini (probably experimental parser)" 2935msgstr "" 2936 2937#. type: textblock 2938#: doc/po4a.7.pod:61 2939msgid "Configuration file format popularized by MS-DOS." 2940msgstr "" 2941 2942#. type: textblock 2943#: doc/po4a.7.pod:62 2944msgid "See L<Locale::Po4a::Ini> for greater details." 2945msgstr "" 2946 2947#. type: =item 2948#: doc/po4a.7.pod:63 2949msgid "texinfo (very highly experimental parser)" 2950msgstr "" 2951 2952#. type: textblock 2953#: doc/po4a.7.pod:64 2954msgid "" 2955"All of the GNU documentation is written in this format (it's even one of the " 2956"requirements to become an official GNU project). The support for " 2957"L<Locale::Po4a::Texinfo(3pm)|Texinfo> in po4a is still at the beginning. " 2958"Please report bugs and feature requests." 2959msgstr "" 2960 2961#. type: =item 2962#: doc/po4a.7.pod:65 2963msgid "Others supported formats" 2964msgstr "" 2965 2966#. type: textblock 2967#: doc/po4a.7.pod:66 2968msgid "" 2969"Po4a can also handle some more rare or specialized formats, such as the " 2970"documentation of compilation options for the 2.4+ Linux kernels " 2971"(L<Locale::Po4a::KernelHelp>) or the diagrams produced by the dia tool " 2972"(L<Locale::Po4a:Dia>). Adding a new format is often very easy and the main " 2973"task is to come up with a parser for your target format. See " 2974"L<Locale::Po4a::TransTractor(3pm)> for more information about this." 2975msgstr "" 2976 2977#. type: =item 2978#: doc/po4a.7.pod:67 2979msgid "Unsupported formats" 2980msgstr "" 2981 2982#. type: textblock 2983#: doc/po4a.7.pod:68 2984msgid "" 2985"Unfortunately, po4a still lacks support for several documentation " 2986"formats. Many of them would be easy to support in po4a. This includes " 2987"formats not just used for documentation, such as, package descriptions (deb " 2988"and rpm), package installation scripts questions, package changelogs, and " 2989"all the specialized file formats used by programs such as game scenarios or " 2990"wine resource files." 2991msgstr "" 2992 2993#. type: =head1 2994#: doc/po4a.7.pod:69 2995msgid "Using po4a" 2996msgstr "" 2997 2998#. type: textblock 2999#: doc/po4a.7.pod:70 3000msgid "" 3001"Historically, po4a was built around four scripts, each fulfilling a specific " 3002"task. L<po4a-gettextize(1)> helps bootstrapping translations and optionally " 3003"converting existing translation projects to po4a. L<po4a-updatepo(1)> " 3004"reflects the changes to the original documentation into the corresponding po " 3005"files. L<po4a-translate(1)> builds translated source file from the original " 3006"file and the corresponding PO file. In addition, L<po4a-normalize(1)> is " 3007"mostly useful to debug the po4a parsers, as it produces an untranslated " 3008"document from the original one. It makes it easier to spot the glitches " 3009"introduced by the parsing process." 3010msgstr "" 3011 3012#. type: textblock 3013#: doc/po4a.7.pod:71 3014msgid "" 3015"Most projects only require the features of L<po4a-updatepo(1)> and " 3016"L<po4a-translate(1)>, but these scripts proved to be cumbersome and error " 3017"prone to use. If the documentation to translate is split over several source " 3018"files, it is difficult to keep the PO files up to date and build the " 3019"documentation files correctly. As an answer, a all-in-one tool was provided: " 3020"L<po4a(1)>. This tool takes a configuration file describing the structure of " 3021"the translation project: the location of the PO files, the list of files to " 3022"translate, and the options to use, and it fully automatizes the " 3023"process. When you invoke L<po4a(1)>, it both updates the PO files and " 3024"regenerate the translation files that need to. If everything is already up " 3025"to date, L<po4a(1)> does not change any file." 3026msgstr "" 3027 3028#. type: textblock 3029#: doc/po4a.7.pod:72 3030msgid "" 3031"The rest of this section gives an overview of how use the scripts' interface " 3032"of po4a. Most users will probably prefer to use the all-in-one tool, that is " 3033"described in the documentation of L<po4a(1)>." 3034msgstr "" 3035 3036#. type: =head2 3037#: doc/po4a.7.pod:73 3038msgid "Graphical overview of the po4a scripts" 3039msgstr "" 3040 3041#. type: textblock 3042#: doc/po4a.7.pod:74 3043msgid "" 3044"The following schema gives an overview of how each po4a script can be used. " 3045"Here, F<master.doc> is an example name for the documentation to be " 3046"translated; F<XX.doc> is the same document translated in the language XX " 3047"while F<doc.XX.po> is the translation catalog for that document in the XX " 3048"language. Documentation authors will mostly be concerned with F<master.doc> " 3049"(which can be a manpage, an XML document, an asciidoc file or similar); the " 3050"translators will be mostly concerned with the PO file, while the end users " 3051"will only see the F<XX.doc> file." 3052msgstr "" 3053 3054#. type: verbatim 3055#: doc/po4a.7.pod:75 3056#, no-wrap 3057msgid "" 3058" master.doc\n" 3059" |\n" 3060" V\n" 3061" +<-----<----+<-----<-----<--------+------->-------->-------+\n" 3062" : | | :\n" 3063"{translation} | { update of master.doc } :\n" 3064" : | | :\n" 3065" XX.doc | V V\n" 3066" (optional) | master.doc ->-------->------>+\n" 3067" : | (new) |\n" 3068" V V | |\n" 3069" [po4a-gettextize] doc.XX.po -->+ | |\n" 3070" | (old) | | |\n" 3071" | ^ V V |\n" 3072" | | [po4a-updatepo] |\n" 3073" V | | V\n" 3074" translation.pot ^ V |\n" 3075" | | doc.XX.po |\n" 3076" | | (fuzzy) |\n" 3077" { translation } | | |\n" 3078" | ^ V V\n" 3079" | | {manual editing} |\n" 3080" | | | |\n" 3081" V | V V\n" 3082" doc.XX.po --->---->+<---<-- doc.XX.po addendum master.doc\n" 3083" (initial) (up-to-date) (optional) (up-to-date)\n" 3084" : | | |\n" 3085" : V | |\n" 3086" +----->----->----->------> + | |\n" 3087" | | |\n" 3088" V V V\n" 3089" +------>-----+------<------+\n" 3090" |\n" 3091" V\n" 3092" [po4a-translate]\n" 3093" |\n" 3094" V\n" 3095" XX.doc\n" 3096" (up-to-date)\n" 3097"\n" 3098msgstr "" 3099 3100#. type: textblock 3101#: doc/po4a.7.pod:76 3102msgid "" 3103"This schema is complicated, but in practice only the right part (involving " 3104"L<po4a-updatepo(1)> and L<po4a-translate(1)>) is used once the project is " 3105"setup and configured." 3106msgstr "" 3107 3108#. type: textblock 3109#: doc/po4a.7.pod:77 3110msgid "" 3111"The left part depicts how L<po4a-gettextize(1)> can be used to convert an " 3112"existing translation project to the po4a infrastructure. This script takes " 3113"an original document and its translated counterpart, and tries to build the " 3114"corresponding PO file. Such manual conversion is rather cumbersome (see the " 3115"L<po4a-gettextize(1)> documentation for more details), but it is only needed " 3116"once to convert your existing translations. If you don't have any " 3117"translation to convert, you can forget about this and focus on the right " 3118"part of the schema." 3119msgstr "" 3120 3121#. type: textblock 3122#: doc/po4a.7.pod:78 3123msgid "" 3124"On the top right part, the action of the original author is depicted, " 3125"updating the documentation. The middle right part depicts the automatic " 3126"actions of L<po4a-updatepo(1)>. The new material is extracted and compared " 3127"against the exiting translation. The previous translation is used for the " 3128"parts that didn't change, while partially modified parts are connected to " 3129"the previous translation with a \"fuzzy\" marker indicating that the " 3130"translation must be updated. New or heavily modified material is left " 3131"untranslated." 3132msgstr "" 3133 3134#. type: textblock 3135#: doc/po4a.7.pod:79 3136msgid "" 3137"Then, the I<manual editing> reported depicts the action of the translators, " 3138"that modify the PO files to provide translations to every original string " 3139"and paragraph. This can be done using either a specific editor such as the " 3140"B<GNOME Translation Editor>, KDE's B<Lokalize> or B<poedit>, or using an " 3141"online localization platform such as B<weblate> or B<pootle>. The " 3142"translation result is a set of PO files, one per language. Please refer to " 3143"the gettext documentation for more details." 3144msgstr "" 3145 3146#. type: textblock 3147#: doc/po4a.7.pod:80 3148msgid "" 3149"The bottom part of the figure shows how L<po4a-translate(1)> creates a " 3150"translated source document from the F<master.doc> original document and the " 3151"F<doc.XX.po> translation catalog that was updated by the translators. The " 3152"structure of the document is reused, while the original content is replaced " 3153"by its translated counterpart. Optionally, an addendum can be used to add " 3154"some extra text to the translation. This is often used to add the name of " 3155"the translator to the final document. See below for details." 3156msgstr "" 3157 3158#. type: textblock 3159#: doc/po4a.7.pod:81 3160msgid "" 3161"As noted before, the L<po4a(1)> program combines the effects of the " 3162"separated scripts, updating the PO files and the translated document in one " 3163"invocation. The underlying logic remains the same." 3164msgstr "" 3165 3166#. type: =head2 3167#: doc/po4a.7.pod:82 3168msgid "Starting a new translation" 3169msgstr "" 3170 3171#. type: textblock 3172#: doc/po4a.7.pod:83 3173msgid "" 3174"If you use L<po4a(1)>, there is no specific step to start a translation. You " 3175"just have to list the languages in the configuration file, and the missing " 3176"PO files are automatically created. Naturally, the translator then have to " 3177"provide translations for every content used in your documents. L<po4a(1)> " 3178"also creates a POT file, that is a PO template file. Potential translators " 3179"can translate your project into a new language by renaming this file and " 3180"providing the translations in their language." 3181msgstr "" 3182 3183#. type: textblock 3184#: doc/po4a.7.pod:84 3185msgid "" 3186"If you prefer to use the individual scripts separately, you should use " 3187"L<po4a-gettextize(1)> as follows to create the POT file. This file can then " 3188"be copied into F<XX.po> to initiate a new translation." 3189msgstr "" 3190 3191#. type: verbatim 3192#: doc/po4a.7.pod:85 3193#, no-wrap 3194msgid "" 3195" $ po4a-gettextize --format <format> --master <master.doc> --po " 3196"<translation.pot>\n" 3197"\n" 3198msgstr "" 3199 3200#. type: textblock 3201#: doc/po4a.7.pod:86 3202msgid "" 3203"The master document is used in input, while the POT file is the output of " 3204"this process." 3205msgstr "" 3206 3207#. type: =head2 3208#: doc/po4a.7.pod:87 3209msgid "Integrating changes to the original document" 3210msgstr "" 3211 3212#. type: textblock 3213#: doc/po4a.7.pod:88 3214msgid "" 3215"The script to use for that is L<po4a-updatepo(1)> (please refer to its " 3216"documentation for details):" 3217msgstr "" 3218 3219#. type: verbatim 3220#: doc/po4a.7.pod:89 3221#, no-wrap 3222msgid "" 3223" $ po4a-updatepo --format <format> --master <new_master.doc> --po " 3224"<old_doc.XX.po>\n" 3225"\n" 3226msgstr "" 3227 3228#. type: textblock 3229#: doc/po4a.7.pod:90 3230msgid "" 3231"The master document is used in input, while the PO file is updated: it is " 3232"used both in input and output." 3233msgstr "" 3234 3235#. type: =head2 3236#: doc/po4a.7.pod:91 3237msgid "Generating a translated document" 3238msgstr "" 3239 3240#. type: textblock 3241#: doc/po4a.7.pod:92 3242msgid "" 3243"Once you're done with the translation, you want to get the translated " 3244"documentation and distribute it to users along with the original one. For " 3245"that, use the L<po4a-translate(1)> program as follows:" 3246msgstr "" 3247 3248#. type: verbatim 3249#: doc/po4a.7.pod:93 3250#, no-wrap 3251msgid "" 3252" $ po4a-translate --format <format> --master <master.doc> --po <doc.XX.po> " 3253"--localized <XX.doc>\n" 3254"\n" 3255msgstr "" 3256 3257#. type: textblock 3258#: doc/po4a.7.pod:94 3259msgid "" 3260"Both the master and PO files are used in input, while the localized file is " 3261"the output of this process." 3262msgstr "" 3263 3264#. type: =head2 3265#: doc/po4a.7.pod:95 3266msgid "Using addenda to add extra text to translations" 3267msgstr "" 3268 3269#. type: textblock 3270#: doc/po4a.7.pod:96 3271msgid "" 3272"Adding new text to the translation is probably the only thing that is easier " 3273"in the long run when you translate files manually :). This happens when you " 3274"want to add an extra section to the translated document, not corresponding " 3275"to any content in the original document. The classical use case is to give " 3276"credits to the translation team, and to indicate how to report " 3277"translation-specific issues." 3278msgstr "" 3279 3280#. type: textblock 3281#: doc/po4a.7.pod:97 3282msgid "" 3283"With po4a, you have to specify B<addendum> files, that can be conceptually " 3284"viewed as patches applied to the localized document after processing. Each " 3285"addendum must be provided as a separate file, which format is however very " 3286"different from the classical patches. The first line is a I<header line>, " 3287"defining the insertion point of the addendum (with an unfortunately cryptic " 3288"syntax -- see below) while the rest of the file is added verbatim at the " 3289"determined position." 3290msgstr "" 3291 3292#. type: textblock 3293#: doc/po4a.7.pod:98 3294msgid "" 3295"The header line must begin with the string B<PO4A-HEADER:>, followed by a " 3296"semi-colon separated list of I<key>B<=>I<value> fields." 3297msgstr "" 3298 3299#. type: textblock 3300#: doc/po4a.7.pod:99 3301msgid "" 3302"For example, the following header declares an addendum that must be placed " 3303"at the very end of the translation." 3304msgstr "" 3305 3306#. type: verbatim 3307#: doc/po4a.7.pod:100 3308#, no-wrap 3309msgid "" 3310" PO4A-HEADER: mode=eof\n" 3311"\n" 3312msgstr "" 3313 3314#. type: textblock 3315#: doc/po4a.7.pod:101 3316msgid "" 3317"Things are more complex when you want to add your extra content in the " 3318"middle of the document. The following header declares an addendum that must " 3319"be placed after the XML section containing the string C<About this document> " 3320"in translation." 3321msgstr "" 3322 3323#. type: verbatim 3324#: doc/po4a.7.pod:102 3325#, no-wrap 3326msgid "" 3327" PO4A-HEADER: position=About this document; mode=after; " 3328"endboundary=</section>\n" 3329"\n" 3330msgstr "" 3331 3332#. type: textblock 3333#: doc/po4a.7.pod:103 3334msgid "" 3335"In practice, when trying to apply an addendum, po4a searches for the first " 3336"line matching the C<position> argument (this can be a regexp). Do not forget " 3337"that po4a considers the B<translated> document here. This documentation is " 3338"in English, but your line should probably read as follows if you intend your " 3339"addendum to apply to the French translation of the document." 3340msgstr "" 3341 3342#. type: verbatim 3343#: doc/po4a.7.pod:104 3344#, no-wrap 3345msgid "" 3346" PO4A-HEADER: position=À propos de ce document; mode=after; " 3347"endboundary=</section>\n" 3348"\n" 3349msgstr "" 3350 3351#. type: textblock 3352#: doc/po4a.7.pod:105 3353msgid "" 3354"Once the C<position> is found in the target document, po4a searches for the " 3355"next line after the C<position> that matches the provided " 3356"C<endboundary>. The addendum is added right B<after> that line (because we " 3357"provided an I<endboundary>, i.e. a boundary ending the current section)." 3358msgstr "" 3359 3360#. type: textblock 3361#: doc/po4a.7.pod:106 3362msgid "" 3363"The exact same effect could be obtained with the following header, that is " 3364"equivalent:" 3365msgstr "" 3366 3367#. type: verbatim 3368#: doc/po4a.7.pod:107 3369#, no-wrap 3370msgid "" 3371" PO4A-HEADER: position=About this document; mode=after; " 3372"beginboundary=<section>\n" 3373"\n" 3374msgstr "" 3375 3376#. type: textblock 3377#: doc/po4a.7.pod:108 3378msgid "" 3379"Here, po4a searches for the first line matching C<<section>> after the line " 3380"matching C<About this document> in the translation, and add the addendum " 3381"B<before> that line since we provided a I<beginboundary>, i.e. a boundary " 3382"marking the beginning of the next section. So this header line requires to " 3383"place the addendum after the section containing C<About this document>, and " 3384"instruct po4a that a section starts with a line containing the C<<section>> " 3385"tag. This is equivalent to the previous example because what you really want " 3386"is to add this addendum either after C</section>> or before C<<section>>." 3387msgstr "" 3388 3389#. type: textblock 3390#: doc/po4a.7.pod:109 3391msgid "" 3392"You can also set the insertion I<mode> to the value C<before>, with a " 3393"similar semantic: combining C<mode=before> with an C<endboundary> will put " 3394"the addendum just B<after> the matched boundary, that the last potential " 3395"boundary line before the C<position>. Combining C<mode=before> with an " 3396"C<beginboundary> will put the addendum just B<before> the matched boundary, " 3397"that the last potential boundary line before the C<position>." 3398msgstr "" 3399 3400#. type: verbatim 3401#: doc/po4a.7.pod:110 3402#, no-wrap 3403msgid "" 3404" Mode | Boundary kind | Used boundary | Insertion point compared " 3405"to the boundary\n" 3406" " 3407"========|===============|========================|=========================================\n" 3408" 'before'| 'endboundary' | last before 'position' | Right after the selected " 3409"boundary\n" 3410" 'before'|'beginboundary'| last before 'position' | Right before the " 3411"selected boundary\n" 3412" 'after' | 'endboundary' | first after 'position' | Right after the selected " 3413"boundary\n" 3414" 'after' |'beginboundary'| first after 'position' | Right before the " 3415"selected boundary\n" 3416" 'eof' | (none) | n/a | End of file\n" 3417"\n" 3418msgstr "" 3419 3420#. type: =head3 3421#: doc/po4a.7.pod:111 3422msgid "Hint and tricks about addenda" 3423msgstr "" 3424 3425#. type: textblock 3426#: doc/po4a.7.pod:112 3427msgid "" 3428"Remember that these are regexp. For example, if you want to match the end of " 3429"a nroff section ending with the line C<.fi>, do not use C<.fi> as " 3430"B<endboundary>, because it will match with C<the[ fi]le>, which is obviously " 3431"not what you expect. The correct B<endboundary> in that case is: C<^\\.fi$>." 3432msgstr "" 3433 3434#. type: textblock 3435#: doc/po4a.7.pod:113 3436msgid "" 3437"White spaces ARE important in the content of the C<position> and " 3438"boundaries. So the two following lines B<are different>. The second one will " 3439"only be found if there is enough trailing spaces in the translated document." 3440msgstr "" 3441 3442#. type: verbatim 3443#: doc/po4a.7.pod:114 3444#, no-wrap 3445msgid "" 3446" PO4A-HEADER: position=About this document; mode=after; " 3447"beginboundary=<section>\n" 3448" PO4A-HEADER: position=About this document ; mode=after; " 3449"beginboundary=<section>\n" 3450"\n" 3451msgstr "" 3452 3453#. type: textblock 3454#: doc/po4a.7.pod:115 3455msgid "" 3456"Although this context search may be considered to operate roughly on each " 3457"line of the B<translated> document, it actually operates on the internal " 3458"data string of the translated document. This internal data string may be a " 3459"text spanning a paragraph containing multiple lines or may be a XML tag " 3460"itself alone. The exact I<insertion point> of the addendum must be before or " 3461"after the internal data string and can not be within the internal data " 3462"string." 3463msgstr "" 3464 3465#. type: textblock 3466#: doc/po4a.7.pod:116 3467msgid "" 3468"Pass the B<-vv> argument to po4a to understand how the addenda are added to " 3469"the translation. It may also help to run po4a in debug mode to see the " 3470"actual internal data string when your addendum does not apply." 3471msgstr "" 3472 3473#. type: =head3 3474#: doc/po4a.7.pod:117 3475msgid "Addenda examples" 3476msgstr "" 3477 3478#. type: textblock 3479#: doc/po4a.7.pod:118 3480msgid "If you want to add something after the following nroff section:" 3481msgstr "" 3482 3483#. type: verbatim 3484#: doc/po4a.7.pod:119 3485#, no-wrap 3486msgid "" 3487" .SH \"AUTHORS\"\n" 3488"\n" 3489msgstr "" 3490 3491#. type: textblock 3492#: doc/po4a.7.pod:120 3493msgid "" 3494"You should select a two step approach by setting B<mode=after>. Then you " 3495"should narrow down search to the line after B<AUTHORS> with the B<position> " 3496"argument regex. Then, you should match the beginning of the next section " 3497"(i.e., B<^\\.SH>) with the B<beginboundary> argument regex. That is to say:" 3498msgstr "" 3499 3500#. type: verbatim 3501#: doc/po4a.7.pod:121 3502#, no-wrap 3503msgid "" 3504" PO4A-HEADER:mode=after;position=AUTHORS;beginboundary=\\.SH\n" 3505"\n" 3506msgstr "" 3507 3508#. type: textblock 3509#: doc/po4a.7.pod:122 3510msgid "" 3511"If you want to add something right after a given line (e.g. after the line " 3512"\"Copyright Big Dude\"), use a B<position> matching this line, B<mode=after> " 3513"and give a B<beginboundary> matching any line." 3514msgstr "" 3515 3516#. type: verbatim 3517#: doc/po4a.7.pod:123 3518#, no-wrap 3519msgid "" 3520" PO4A-HEADER:mode=after;position=Copyright Big Dude, 2004;beginboundary=^\n" 3521"\n" 3522msgstr "" 3523 3524#. type: textblock 3525#: doc/po4a.7.pod:124 3526msgid "" 3527"If you want to add something at the end of the document, give a B<position> " 3528"matching any line of your document (but only one line. Po4a won't proceed if " 3529"it's not unique), and give an B<endboundary> matching nothing. Don't use " 3530"simple strings here like B<\"EOF\">, but prefer those which have less chance " 3531"to be in your document." 3532msgstr "" 3533 3534#. type: verbatim 3535#: doc/po4a.7.pod:125 3536#, no-wrap 3537msgid "" 3538" PO4A-HEADER:mode=after;position=About this " 3539"document;beginboundary=FakePo4aBoundary\n" 3540"\n" 3541msgstr "" 3542 3543#. type: =head3 3544#: doc/po4a.7.pod:126 3545msgid "More detailed example" 3546msgstr "" 3547 3548#. type: textblock 3549#: doc/po4a.7.pod:127 3550msgid "Original document (POD formatted):" 3551msgstr "" 3552 3553#. type: verbatim 3554#: doc/po4a.7.pod:128 3555#, no-wrap 3556msgid "" 3557" |=head1 NAME\n" 3558" |\n" 3559" |dummy - a dummy program\n" 3560" |\n" 3561" |=head1 AUTHOR\n" 3562" |\n" 3563" |me\n" 3564"\n" 3565msgstr "" 3566 3567#. type: textblock 3568#: doc/po4a.7.pod:129 3569msgid "" 3570"Then, the following addendum will ensure that a section (in French) about " 3571"the translator is added at the end of the file (in French, \"TRADUCTEUR\" " 3572"means \"TRANSLATOR\", and \"moi\" means \"me\")." 3573msgstr "" 3574 3575#. type: verbatim 3576#: doc/po4a.7.pod:130 3577#, no-wrap 3578msgid "" 3579" |PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=^=head\n" 3580" |\n" 3581" |=head1 TRADUCTEUR\n" 3582" |\n" 3583" |moi\n" 3584" |\n" 3585"\n" 3586msgstr "" 3587 3588#. type: textblock 3589#: doc/po4a.7.pod:131 3590msgid "To put your addendum before the AUTHOR, use the following header:" 3591msgstr "" 3592 3593#. type: verbatim 3594#: doc/po4a.7.pod:132 3595#, no-wrap 3596msgid "" 3597" PO4A-HEADER:mode=after;position=NOM;beginboundary=^=head1\n" 3598"\n" 3599msgstr "" 3600 3601#. type: textblock 3602#: doc/po4a.7.pod:133 3603msgid "" 3604"This works because the next line matching the B<beginboundary> /^=head1/ " 3605"after the section \"NAME\" (translated to \"NOM\" in French), is the one " 3606"declaring the authors. So, the addendum will be put between both " 3607"sections. Note that if another section is added between NAME and AUTHOR " 3608"sections later, po4a will wrongfully put the addenda before the new section." 3609msgstr "" 3610 3611#. type: textblock 3612#: doc/po4a.7.pod:134 3613msgid "To avoid this you may accomplish the same using B<mode>=I<before>:" 3614msgstr "" 3615 3616#. type: verbatim 3617#: doc/po4a.7.pod:135 3618#, no-wrap 3619msgid "" 3620" PO4A-HEADER:mode=before;position=^=head1 AUTEUR\n" 3621"\n" 3622msgstr "" 3623 3624#. type: =head1 3625#: doc/po4a.7.pod:136 3626msgid "How does it work?" 3627msgstr "" 3628 3629#. type: textblock 3630#: doc/po4a.7.pod:137 3631msgid "" 3632"This chapter gives you a brief overview of the po4a internals, so that you " 3633"may feel more confident to help us maintaining and improving it. It may also " 3634"help you understanding why it does not do what you expected, and how to " 3635"solve your problems." 3636msgstr "" 3637 3638#. type: textblock 3639#: doc/po4a.7.pod:138 3640msgid "" 3641"The po4a architecture is object oriented. The " 3642"L<Locale::Po4a::TransTractor(3pm)|TransTractor> class is the common ancestor " 3643"to all po4a parsers. This strange name comes from the fact that it is at the " 3644"same time in charge of translating document and extracting strings." 3645msgstr "" 3646 3647#. type: textblock 3648#: doc/po4a.7.pod:139 3649msgid "" 3650"More formally, it takes a document to translate plus a PO file containing " 3651"the translations to use as input while producing two separate outputs: " 3652"Another PO file (resulting of the extraction of translatable strings from " 3653"the input document), and a translated document (with the same structure than " 3654"the input one, but with all translatable strings replaced with content of " 3655"the input PO). Here is a graphical representation of this:" 3656msgstr "" 3657 3658#. type: verbatim 3659#: doc/po4a.7.pod:140 3660#, no-wrap 3661msgid "" 3662" Input document --\\ /---> Output document\n" 3663" \\ TransTractor:: / (translated)\n" 3664" +-->-- parse() --------+\n" 3665" / \\\n" 3666" Input PO --------/ \\---> Output PO\n" 3667" (extracted)\n" 3668"\n" 3669msgstr "" 3670 3671#. type: textblock 3672#: doc/po4a.7.pod:141 3673msgid "" 3674"This little bone is the core of all the po4a architecture. If you omit the " 3675"input PO and the output document, you get B<po4a-gettextize>. If you provide " 3676"both input and disregard the output PO, you get B<po4a-translate>. The " 3677"B<po4a> calls TransTractor twice and calls B<msgmerge -U> between these " 3678"TransTractor invocations to provide one-stop solution with a single " 3679"configuration file. Please see L<Locale::Po4a::TransTractor(3pm)> for more " 3680"details." 3681msgstr "" 3682 3683#. type: =head1 3684#: doc/po4a.7.pod:142 3685msgid "Open-source projects using po4a" 3686msgstr "" 3687 3688#. type: textblock 3689#: doc/po4a.7.pod:143 3690msgid "" 3691"Here is a very partial list of projects that use po4a in production for " 3692"their documentation. If you want to add your project to the list, just drop " 3693"us an email (or a Merge Request)." 3694msgstr "" 3695 3696#. type: textblock 3697#: doc/po4a.7.pod:144 3698msgid "adduser (man): users and groups management tool." 3699msgstr "" 3700 3701#. type: textblock 3702#: doc/po4a.7.pod:145 3703msgid "apt (man, docbook): Debian package manager." 3704msgstr "" 3705 3706#. type: textblock 3707#: doc/po4a.7.pod:146 3708msgid "aptitude (docbook, svg): terminal-based package manager for Debian" 3709msgstr "" 3710 3711#. type: textblock 3712#: doc/po4a.7.pod:147 3713msgid "" 3714"L<F-Droid website|https://gitlab.com/fdroid/fdroid-website> (markdown): " 3715"installable catalogue of FOSS (Free and Open Source Software) applications " 3716"for the Android platform." 3717msgstr "" 3718 3719#. type: textblock 3720#: doc/po4a.7.pod:148 3721msgid "" 3722"L<git|https://github.com/jnavila/git-manpages-l10n> (asciidoc): distributed " 3723"version-control system for tracking changes in source code." 3724msgstr "" 3725 3726#. type: textblock 3727#: doc/po4a.7.pod:149 3728msgid "" 3729"L<Linux manpages|https://salsa.debian.org/manpages-l10n-team/manpages-l10n> " 3730"(man)" 3731msgstr "" 3732 3733#. type: textblock 3734#: doc/po4a.7.pod:150 3735msgid "" 3736"This project provides an infrastructure for translating many manpages to " 3737"different languages, ready for integration into several major distributions " 3738"(Arch Linux, Debian and derivatives, Fedora)." 3739msgstr "" 3740 3741#. type: textblock 3742#: doc/po4a.7.pod:151 3743msgid "" 3744"L<Stellarium|https://github.com/Stellarium/stellarium> (HTML): a free open " 3745"source planetarium for your computer. po4a is used to translate the sky " 3746"culture descriptions." 3747msgstr "" 3748 3749#. type: textblock 3750#: doc/po4a.7.pod:152 3751msgid "" 3752"Other item to sort out: L<https://gitlab.com/fdroid/fdroid-website/> " 3753"L<https://github.com/fsfe/reuse-docs/pull/61>" 3754msgstr "" 3755 3756#. type: =head1 3757#: doc/po4a.7.pod:153 3758msgid "FAQ" 3759msgstr "" 3760 3761#. type: =head2 3762#: doc/po4a.7.pod:154 3763msgid "How do you pronounce po4a?" 3764msgstr "" 3765 3766#. type: textblock 3767#: doc/po4a.7.pod:155 3768msgid "" 3769"I personally vocalize it as L<pouah|https://en.wiktionary.org/wiki/pouah>, " 3770"which is a French onomatopoetic that we use in place of yuck :) I may have a " 3771"strange sense of humor :)" 3772msgstr "" 3773 3774#. type: =head2 3775#: doc/po4a.7.pod:156 3776msgid "What about the other translation tools for documentation using gettext?" 3777msgstr "" 3778 3779#. type: textblock 3780#: doc/po4a.7.pod:157 3781msgid "As far as I know, there are only two of them:" 3782msgstr "" 3783 3784#. type: =item 3785#: doc/po4a.7.pod:158 3786msgid "B<poxml>" 3787msgstr "" 3788 3789#. type: textblock 3790#: doc/po4a.7.pod:159 3791msgid "" 3792"This is the tool developed by KDE people to handle DocBook XML. AFAIK, it " 3793"was the first program to extract strings to translate from documentation to " 3794"PO files, and inject them back after translation." 3795msgstr "" 3796 3797#. type: textblock 3798#: doc/po4a.7.pod:160 3799msgid "" 3800"It can only handle XML, and only a particular DTD. I'm quite unhappy with " 3801"the handling of lists, which end in one big msgid. When the list become big, " 3802"the chunk becomes harder to swallow." 3803msgstr "" 3804 3805#. type: =item 3806#: doc/po4a.7.pod:161 3807msgid "B<po-debiandoc>" 3808msgstr "" 3809 3810#. type: textblock 3811#: doc/po4a.7.pod:162 3812msgid "" 3813"This program done by Denis Barbier is a sort of precursor of the po4a SGML " 3814"module, which more or less deprecates it. As the name says, it handles only " 3815"the DebianDoc DTD, which is more or less a deprecated DTD." 3816msgstr "" 3817 3818#. type: textblock 3819#: doc/po4a.7.pod:163 3820msgid "" 3821"The main advantages of po4a over them are the ease of extra content addition " 3822"(which is even worse there) and the ability to achieve gettextization." 3823msgstr "" 3824 3825#. type: =head2 3826#: doc/po4a.7.pod:164 3827msgid "SUMMARY of the advantages of the gettext based approach" 3828msgstr "" 3829 3830#. type: textblock 3831#: doc/po4a.7.pod:165 3832msgid "" 3833"The translations are not stored along with the original, which makes it " 3834"possible to detect if translations become out of date." 3835msgstr "" 3836 3837#. type: textblock 3838#: doc/po4a.7.pod:166 3839msgid "" 3840"The translations are stored in separate files from each other, which " 3841"prevents translators of different languages from interfering, both when " 3842"submitting their patch and at the file encoding level." 3843msgstr "" 3844 3845#. type: textblock 3846#: doc/po4a.7.pod:167 3847msgid "" 3848"It is based internally on B<gettext> (but B<po4a> offers a very simple " 3849"interface so that you don't need to understand the internals to use it). " 3850"That way, we don't have to re-implement the wheel, and because of their wide " 3851"use, we can think that these tools are more or less bug free." 3852msgstr "" 3853 3854#. type: textblock 3855#: doc/po4a.7.pod:168 3856msgid "" 3857"Nothing changed for the end-user (beside the fact translations will " 3858"hopefully be better maintained). The resulting documentation file " 3859"distributed is exactly the same." 3860msgstr "" 3861 3862#. type: textblock 3863#: doc/po4a.7.pod:169 3864msgid "" 3865"No need for translators to learn a new file syntax and their favorite PO " 3866"file editor (like Emacs' PO mode, Lokalize or Gtranslator) will work just " 3867"fine." 3868msgstr "" 3869 3870#. type: textblock 3871#: doc/po4a.7.pod:170 3872msgid "" 3873"gettext offers a simple way to get statistics about what is done, what " 3874"should be reviewed and updated, and what is still to do. Some example can be " 3875"found at those addresses:" 3876msgstr "" 3877 3878#. type: verbatim 3879#: doc/po4a.7.pod:171 3880#, no-wrap 3881msgid "" 3882" - https://docs.kde.org/stable5/en/kdesdk/lokalize/project-view.html\n" 3883" - http://www.debian.org/intl/l10n/\n" 3884"\n" 3885msgstr "" 3886 3887#. type: textblock 3888#: doc/po4a.7.pod:172 3889msgid "" 3890"But everything isn't green, and this approach also has some disadvantages we " 3891"have to deal with." 3892msgstr "" 3893 3894#. type: textblock 3895#: doc/po4a.7.pod:173 3896msgid "Addenda are… strange at the first glance." 3897msgstr "" 3898 3899#. type: textblock 3900#: doc/po4a.7.pod:174 3901msgid "" 3902"You can't adapt the translated text to your preferences, like splitting a " 3903"paragraph here, and joining two other ones there. But in some sense, if " 3904"there is an issue with the original, it should be reported as a bug anyway." 3905msgstr "" 3906 3907#. type: textblock 3908#: doc/po4a.7.pod:175 3909msgid "Even with an easy interface, it remains a new tool people have to learn." 3910msgstr "" 3911 3912#. type: textblock 3913#: doc/po4a.7.pod:176 3914msgid "" 3915"One of my dreams would be to integrate somehow po4a to Gtranslator or " 3916"Lokalize. When a documentation file is opened, the strings are automatically " 3917"extracted, and a translated file + po file can be written to disk. If we " 3918"manage to do an MS Word (TM) module (or at least RTF) professional " 3919"translators may even use it." 3920msgstr "" 3921 3922#. type: textblock 3923#: doc/po4a.7.pod:178 3924msgid "The documentation of the all-in-one tool that you should use: L<po4a(1)>." 3925msgstr "" 3926 3927#. type: textblock 3928#: doc/po4a.7.pod:179 3929msgid "" 3930"The documentation of the individual po4a scripts: L<po4a-gettextize(1)>, " 3931"L<po4a-updatepo(1)>, L<po4a-translate(1)>, L<po4a-normalize(1)>." 3932msgstr "" 3933 3934#. type: textblock 3935#: doc/po4a.7.pod:180 3936msgid "" 3937"The additional helping scripts: L<msguntypot(1)>, L<po4a-display-man(1)>, " 3938"L<po4a-display-pod(1)>." 3939msgstr "" 3940 3941#. type: textblock 3942#: doc/po4a.7.pod:181 3943msgid "" 3944"The parsers of each formats, in particular to see the options accepted by " 3945"each of them: L<Locale::Po4a::AsciiDoc(3pm)> L<Locale::Po4a::Dia(3pm)>, " 3946"L<Locale::Po4a::Guide(3pm)>, L<Locale::Po4a::Ini(3pm)>, " 3947"L<Locale::Po4a::KernelHelp(3pm)>, L<Locale::Po4a::Man(3pm)>, " 3948"L<Locale::Po4a::RubyDoc(3pm)>, L<Locale::Po4a::Texinfo(3pm)>, " 3949"L<Locale::Po4a::Text(3pm)>, L<Locale::Po4a::Xhtml(3pm)>, " 3950"L<Locale::Po4a::Yaml(3pm)>, L<Locale::Po4a::BibTeX(3pm)>, " 3951"L<Locale::Po4a::Docbook(3pm)>, L<Locale::Po4a::Halibut(3pm)>, " 3952"L<Locale::Po4a::LaTeX(3pm)>, L<Locale::Po4a::Pod(3pm)>, " 3953"L<Locale::Po4a::Sgml(3pm)>, L<Locale::Po4a::TeX(3pm)>, " 3954"L<Locale::Po4a::Wml(3pm)>, L<Locale::Po4a::Xml(3pm)>." 3955msgstr "" 3956 3957#. type: textblock 3958#: doc/po4a.7.pod:182 3959msgid "" 3960"The implementation of the core infrastructure: " 3961"L<Locale::Po4a::TransTractor(3pm)> (particularly important to understand the " 3962"code organization), L<Locale::Po4a::Chooser(3pm)>, L<Locale::Po4a::Po(3pm)>, " 3963"L<Locale::Po4a::Common(3pm)>. Please also check the F<CONTRIBUTING.md> file " 3964"in the source tree." 3965msgstr "" 3966 3967#. type: verbatim 3968#: doc/po4a.7.pod:184 3969#, no-wrap 3970msgid "" 3971" Denis Barbier <barbier,linuxfr.org>\n" 3972" Martin Quinson (mquinson#debian.org)\n" 3973"\n" 3974msgstr "" 3975 3976#. type: textblock 3977#: lib/Locale/Po4a/AsciiDoc.pm:2 3978msgid "Locale::Po4a::AsciiDoc - convert AsciiDoc documents from/to PO files" 3979msgstr "" 3980 3981#. type: textblock 3982#: lib/Locale/Po4a/AsciiDoc.pm:5 3983msgid "" 3984"Locale::Po4a::AsciiDoc is a module to help the translation of documentation " 3985"in the AsciiDoc format." 3986msgstr "" 3987 3988#. type: =head1 3989#: lib/Locale/Po4a/AsciiDoc.pm:6 lib/Locale/Po4a/BibTeX.pm:7 3990#: lib/Locale/Po4a/Man.pm:34 lib/Locale/Po4a/Po.pm:13 lib/Locale/Po4a/Sgml.pm:7 3991#: lib/Locale/Po4a/TeX.pm:11 lib/Locale/Po4a/Text.pm:8 lib/Locale/Po4a/Wml.pm:7 3992#: lib/Locale/Po4a/Xhtml.pm:6 lib/Locale/Po4a/Xml.pm:9 3993msgid "OPTIONS ACCEPTED BY THIS MODULE" 3994msgstr "" 3995 3996#. type: textblock 3997#: lib/Locale/Po4a/AsciiDoc.pm:7 lib/Locale/Po4a/Man.pm:35 3998#: lib/Locale/Po4a/TeX.pm:12 lib/Locale/Po4a/Text.pm:9 3999#: lib/Locale/Po4a/Xhtml.pm:7 lib/Locale/Po4a/Xml.pm:11 4000msgid "These are this module's particular options:" 4001msgstr "" 4002 4003#. type: =item 4004#: lib/Locale/Po4a/AsciiDoc.pm:8 lib/Locale/Po4a/TeX.pm:21 4005msgid "B<definitions>" 4006msgstr "" 4007 4008#. type: textblock 4009#: lib/Locale/Po4a/AsciiDoc.pm:9 lib/Locale/Po4a/TeX.pm:22 4010msgid "" 4011"The name of a file containing definitions for po4a, as defined in the " 4012"B<INLINE CUSTOMIZATION> section. You can use this option if it is not " 4013"possible to put the definitions in the document being translated." 4014msgstr "" 4015 4016#. type: textblock 4017#: lib/Locale/Po4a/AsciiDoc.pm:10 4018msgid "" 4019"In a definitions file, lines must not start by two slashes, but directly by " 4020"B<po4a:>." 4021msgstr "" 4022 4023#. type: =item 4024#: lib/Locale/Po4a/AsciiDoc.pm:11 4025msgid "B<entry>" 4026msgstr "" 4027 4028#. type: textblock 4029#: lib/Locale/Po4a/AsciiDoc.pm:12 4030msgid "" 4031"Space-separated list of attribute entries you want to translate. By " 4032"default, no attribute entries are translatable." 4033msgstr "" 4034 4035#. type: =item 4036#: lib/Locale/Po4a/AsciiDoc.pm:13 4037msgid "B<macro>" 4038msgstr "" 4039 4040#. type: textblock 4041#: lib/Locale/Po4a/AsciiDoc.pm:14 4042msgid "Space-separated list of macro definitions." 4043msgstr "" 4044 4045#. type: =item 4046#: lib/Locale/Po4a/AsciiDoc.pm:15 4047msgid "B<style>" 4048msgstr "" 4049 4050#. type: textblock 4051#: lib/Locale/Po4a/AsciiDoc.pm:16 4052msgid "Space-separated list of style definitions." 4053msgstr "" 4054 4055#. type: =item 4056#: lib/Locale/Po4a/AsciiDoc.pm:17 4057msgid "B<forcewrap>" 4058msgstr "" 4059 4060#. type: textblock 4061#: lib/Locale/Po4a/AsciiDoc.pm:18 4062msgid "" 4063"Enable automatic line wrapping in non-verbatim blocks, even if the result " 4064"could be misinterpreted by AsciiDoc formatters." 4065msgstr "" 4066 4067#. type: textblock 4068#: lib/Locale/Po4a/AsciiDoc.pm:19 4069msgid "" 4070"By default, po4a will not wrap the produced AsciiDoc files because a manual " 4071"inspection is mandated to ensure that the wrapping does not change the " 4072"formatting. Consider for instance the following list item:" 4073msgstr "" 4074 4075#. type: verbatim 4076#: lib/Locale/Po4a/AsciiDoc.pm:20 4077#, no-wrap 4078msgid "" 4079" * a long sentence that is ending with a number 1. A second sentence.\n" 4080"\n" 4081msgstr "" 4082 4083#. type: textblock 4084#: lib/Locale/Po4a/AsciiDoc.pm:21 4085msgid "" 4086"If the wrapping leads to the following presentation, the item is split into " 4087"a numbered sub-list. To make things worse, only the speakers of the language " 4088"used in the translation can inspect the situation." 4089msgstr "" 4090 4091#. type: verbatim 4092#: lib/Locale/Po4a/AsciiDoc.pm:22 4093#, no-wrap 4094msgid "" 4095" * a long sentence that is ending with a number\n" 4096" 1. A second sentence.\n" 4097"\n" 4098msgstr "" 4099 4100#. type: textblock 4101#: lib/Locale/Po4a/AsciiDoc.pm:23 4102msgid "" 4103"Note that not wrapping the files produced by po4a should not be a problem " 4104"since those files are meant to be processed automatically. They should not " 4105"be regarded as source files anyway." 4106msgstr "" 4107 4108#. type: textblock 4109#: lib/Locale/Po4a/AsciiDoc.pm:24 4110msgid "" 4111"With this option, po4a will produce better-looking source files, that may " 4112"lead to possibly erroneous formatted outputs." 4113msgstr "" 4114 4115#. type: =item 4116#: lib/Locale/Po4a/AsciiDoc.pm:25 4117msgid "B<noimagetargets>" 4118msgstr "" 4119 4120#. type: textblock 4121#: lib/Locale/Po4a/AsciiDoc.pm:26 4122msgid "" 4123"By default, the targets of block images are translatable to give opportunity " 4124"to make the content point to translated images. This can be stopped by " 4125"setting this option." 4126msgstr "" 4127 4128#. type: =item 4129#: lib/Locale/Po4a/AsciiDoc.pm:27 4130msgid "B<tablecells>" 4131msgstr "" 4132 4133#. type: textblock 4134#: lib/Locale/Po4a/AsciiDoc.pm:28 4135msgid "" 4136"This option is a flag that enables sub-table segmentation into cell " 4137"content. The segmentation is limited to cell content, without any parsing " 4138"inside of it." 4139msgstr "" 4140 4141#. type: =item 4142#: lib/Locale/Po4a/AsciiDoc.pm:29 4143msgid "B<compat>" 4144msgstr "" 4145 4146#. type: textblock 4147#: lib/Locale/Po4a/AsciiDoc.pm:30 4148msgid "" 4149"Switch parsing rules to compatibility with different tools. Available " 4150"options are \"asciidoc\" or \"asciidoctor\". Asciidoctor has stricter " 4151"parsing rules, such as equality of length of opening and closing block " 4152"fences." 4153msgstr "" 4154 4155#. type: =item 4156#: lib/Locale/Po4a/AsciiDoc.pm:31 4157msgid "B<yfm_keys>" 4158msgstr "" 4159 4160#. type: textblock 4161#: lib/Locale/Po4a/AsciiDoc.pm:32 lib/Locale/Po4a/Text.pm:31 4162msgid "" 4163"Comma-separated list of keys to process for translation in the YAML Front " 4164"Matter section. All other keys are skipped. Keys are matched with a " 4165"case-insensitive match. Array values are always translated, unless the " 4166"B<yfm_skip_array> option is provided." 4167msgstr "" 4168 4169#. type: =item 4170#: lib/Locale/Po4a/AsciiDoc.pm:33 4171msgid "B<nolinting>" 4172msgstr "" 4173 4174#. type: textblock 4175#: lib/Locale/Po4a/AsciiDoc.pm:34 4176msgid "" 4177"Disable linting messages. When the source code cannot be fixed for clearer " 4178"document structure, these messages are useless." 4179msgstr "" 4180 4181#. type: =item 4182#: lib/Locale/Po4a/AsciiDoc.pm:35 4183msgid "B<yfm_skip_array>" 4184msgstr "" 4185 4186#. type: textblock 4187#: lib/Locale/Po4a/AsciiDoc.pm:36 lib/Locale/Po4a/Text.pm:33 4188msgid "Do not translate array values in the YAML Front Matter section." 4189msgstr "" 4190 4191#. type: =head1 4192#: lib/Locale/Po4a/AsciiDoc.pm:37 lib/Locale/Po4a/TeX.pm:27 4193msgid "INLINE CUSTOMIZATION" 4194msgstr "" 4195 4196#. type: textblock 4197#: lib/Locale/Po4a/AsciiDoc.pm:38 4198msgid "" 4199"The AsciiDoc module can be customized with lines starting by B<//po4a:>. " 4200"These lines are interpreted as commands to the parser. The following " 4201"commands are recognized:" 4202msgstr "" 4203 4204#. type: =item 4205#: lib/Locale/Po4a/AsciiDoc.pm:39 4206msgid "B<//po4a: macro >I<name>B<[>I<attribute list>B<]>" 4207msgstr "" 4208 4209#. type: textblock 4210#: lib/Locale/Po4a/AsciiDoc.pm:40 4211msgid "" 4212"This permits to describe in detail the parameters of a B<macro>; I<name> " 4213"must be a valid macro name, and it ends with an underscore if the target " 4214"must be translated." 4215msgstr "" 4216 4217#. type: textblock 4218#: lib/Locale/Po4a/AsciiDoc.pm:41 4219msgid "" 4220"The I<attribute list> argument is a comma separated list which contains " 4221"informations about translatable arguments. This list contains either " 4222"numbers, to define positional parameters, or named attributes." 4223msgstr "" 4224 4225#. type: textblock 4226#: lib/Locale/Po4a/AsciiDoc.pm:42 4227msgid "" 4228"If a plus sign (B<+>) is prepended to I<name>, then the macro and its " 4229"arguments are translated as a whole. There is no need to define attribute " 4230"list in this case, but brackets must be present." 4231msgstr "" 4232 4233#. type: =item 4234#: lib/Locale/Po4a/AsciiDoc.pm:43 4235msgid "B<//po4a: style >B<[>I<attribute list>B<]>" 4236msgstr "" 4237 4238#. type: textblock 4239#: lib/Locale/Po4a/AsciiDoc.pm:44 4240msgid "" 4241"This permits to describe in detail which attributes of a style must be " 4242"translated." 4243msgstr "" 4244 4245#. type: textblock 4246#: lib/Locale/Po4a/AsciiDoc.pm:45 4247msgid "" 4248"The I<attribute list> argument is a comma separated list which contains " 4249"informations about translatable arguments. This list contains either " 4250"numbers, to define positional parameters, or named attributes. The first " 4251"attribute is the style name, it will not be translated." 4252msgstr "" 4253 4254#. type: textblock 4255#: lib/Locale/Po4a/AsciiDoc.pm:46 4256msgid "" 4257"If a plus sign (B<+>) is prepended to the style name, then the attribute " 4258"list is translated as a whole. There is no need to define translatable " 4259"attributes." 4260msgstr "" 4261 4262#. type: textblock 4263#: lib/Locale/Po4a/AsciiDoc.pm:47 4264msgid "" 4265"If a minus sign (B<->) is prepended to the style name, then this attribute " 4266"is not translated." 4267msgstr "" 4268 4269#. type: =item 4270#: lib/Locale/Po4a/AsciiDoc.pm:48 4271msgid "B<//po4a: entry >I<name>" 4272msgstr "" 4273 4274#. type: textblock 4275#: lib/Locale/Po4a/AsciiDoc.pm:49 4276msgid "" 4277"This declares an attribute entry as being translatable. By default, they " 4278"are not translated." 4279msgstr "" 4280 4281#. type: =head1 4282#: lib/Locale/Po4a/AsciiDoc.pm:50 lib/Locale/Po4a/BibTeX.pm:9 4283#: lib/Locale/Po4a/Dia.pm:10 lib/Locale/Po4a/Docbook.pm:6 4284#: lib/Locale/Po4a/Guide.pm:7 lib/Locale/Po4a/Halibut.pm:7 4285#: lib/Locale/Po4a/KernelHelp.pm:5 lib/Locale/Po4a/Man.pm:96 4286#: lib/Locale/Po4a/Pod.pm:9 lib/Locale/Po4a/Sgml.pm:34 4287#: lib/Locale/Po4a/TeX.pm:104 lib/Locale/Po4a/Texinfo.pm:8 4288#: lib/Locale/Po4a/Text.pm:38 lib/Locale/Po4a/Wml.pm:9 4289#: lib/Locale/Po4a/Xhtml.pm:12 lib/Locale/Po4a/Xml.pm:178 4290msgid "STATUS OF THIS MODULE" 4291msgstr "" 4292 4293#. type: textblock 4294#: lib/Locale/Po4a/AsciiDoc.pm:51 4295msgid "Tested successfully on simple AsciiDoc files." 4296msgstr "" 4297 4298#. type: verbatim 4299#: lib/Locale/Po4a/AsciiDoc.pm:53 4300#, no-wrap 4301msgid "" 4302" Nicolas François <nicolas.francois@centraliens.net>\n" 4303" Denis Barbier <barbier@linuxfr.org>\n" 4304"\n" 4305msgstr "" 4306 4307#. type: verbatim 4308#: lib/Locale/Po4a/AsciiDoc.pm:55 4309#, no-wrap 4310msgid "" 4311" Copyright © 2005-2008 Nicolas FRANÇOIS " 4312"<nicolas.francois@centraliens.net>.\n" 4313" Copyright © 2012 Denis BARBIER <barbier@linuxfr.org>.\n" 4314" Copyright © 2017 Martin Quinson <mquinson#debian.org>.\n" 4315"\n" 4316msgstr "" 4317 4318#. type: textblock 4319#: lib/Locale/Po4a/BibTeX.pm:2 4320msgid "Locale::Po4a::BibTeX - convert BibTeX documents from/to PO files" 4321msgstr "" 4322 4323#. type: textblock 4324#: lib/Locale/Po4a/BibTeX.pm:5 4325msgid "" 4326"Locale::Po4a::BibTeX is a module to help the translation of bibliographies " 4327"in the BibTeX format into other [human] languages." 4328msgstr "" 4329 4330#. type: textblock 4331#: lib/Locale/Po4a/BibTeX.pm:6 4332msgid "Fields values are extracted and proposed for translation." 4333msgstr "" 4334 4335#. type: textblock 4336#: lib/Locale/Po4a/BibTeX.pm:8 lib/Locale/Po4a/Wml.pm:8 4337msgid "NONE." 4338msgstr "" 4339 4340#. type: textblock 4341#: lib/Locale/Po4a/BibTeX.pm:10 4342msgid "It is a very simple module, but still young." 4343msgstr "" 4344 4345#. type: verbatim 4346#: lib/Locale/Po4a/BibTeX.pm:12 lib/Locale/Po4a/Halibut.pm:17 4347#: lib/Locale/Po4a/LaTeX.pm:11 lib/Locale/Po4a/TeX.pm:121 4348#: lib/Locale/Po4a/Texinfo.pm:13 lib/Locale/Po4a/Text.pm:41 4349#, no-wrap 4350msgid "" 4351" Nicolas François <nicolas.francois@centraliens.net>\n" 4352"\n" 4353msgstr "" 4354 4355#. type: verbatim 4356#: lib/Locale/Po4a/BibTeX.pm:14 4357#, no-wrap 4358msgid "" 4359" Copyright © 2006 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.\n" 4360"\n" 4361msgstr "" 4362 4363#. type: textblock 4364#: lib/Locale/Po4a/Chooser.pm:2 4365msgid "Locale::Po4a::Chooser - manage po4a modules" 4366msgstr "" 4367 4368#. type: textblock 4369#: lib/Locale/Po4a/Chooser.pm:4 4370msgid "" 4371"Locale::Po4a::Chooser is a module to manage po4a modules. Previously, all " 4372"po4a binaries used to know all po4a modules (pod, man, sgml, etc). This made " 4373"the addition of a new module boring, because you had to make sure that the " 4374"documentation is synchronized in all modules, and that each of them can " 4375"access the new module." 4376msgstr "" 4377 4378#. type: textblock 4379#: lib/Locale/Po4a/Chooser.pm:5 4380msgid "" 4381"Now, you just have to call the Locale::Po4a::Chooser::new() function, " 4382"passing the name of module as argument." 4383msgstr "" 4384 4385#. type: textblock 4386#: lib/Locale/Po4a/Chooser.pm:6 4387msgid "" 4388"The function Locale::Po4a::Chooser::list() lists the available formats, and " 4389"exits with the value passed as argument. So, we call " 4390"Locale::Po4a::Chooser::list(0) when requested for the list of formats, and " 4391"Locale::Po4a::Chooser::list(1) when passed an invalid format name." 4392msgstr "" 4393 4394#. type: =item 4395#: lib/Locale/Po4a/Chooser.pm:8 4396msgid "About po4a:" 4397msgstr "" 4398 4399#. type: textblock 4400#: lib/Locale/Po4a/Chooser.pm:9 4401msgid "" 4402"L<Locale::Po4a::Po(3pm)>, L<Locale::Po4a::TransTractor(3pm)>, " 4403"L<po4a(7)|po4a.7>" 4404msgstr "" 4405 4406#. type: =item 4407#: lib/Locale/Po4a/Chooser.pm:10 4408msgid "About modules:" 4409msgstr "" 4410 4411#. type: textblock 4412#: lib/Locale/Po4a/Chooser.pm:11 4413msgid "" 4414"L<Locale::Po4a::Dia(3pm)>, L<Locale::Po4a::Docbook(3pm)>, " 4415"L<Locale::Po4a::Guide(3pm)>, L<Locale::Po4a::Halibut(3pm)>, " 4416"L<Locale::Po4a::Ini(3pm)>, L<Locale::Po4a::KernelHelp(3pm)>, " 4417"L<Locale::Po4a::LaTeX(3pm)>, L<Locale::Po4a::Man(3pm)>, " 4418"L<Locale::Po4a::Pod(3pm)>, L<Locale::Po4a::RubyDoc(3pm)>, " 4419"L<Locale::Po4a::Sgml(3pm)>, L<Locale::Po4a::TeX(3pm)>, " 4420"L<Locale::Po4a::Texinfo(3pm)>, L<Locale::Po4a::Text(3pm)>, " 4421"L<Locale::Po4a::Wml(3pm)>. L<Locale::Po4a::Xhtml(3pm)>, " 4422"L<Locale::Po4a::Xml(3pm)>, L<Locale::Po4a::Wml(3pm)>, " 4423"L<Locale::Po4a::Yaml(3pm)>." 4424msgstr "" 4425 4426#. type: verbatim 4427#: lib/Locale/Po4a/Chooser.pm:13 lib/Locale/Po4a/KernelHelp.pm:10 4428#: lib/Locale/Po4a/Po.pm:102 lib/Locale/Po4a/Pod.pm:39 4429#: lib/Locale/Po4a/Sgml.pm:57 4430#, no-wrap 4431msgid "" 4432" Denis Barbier <barbier@linuxfr.org>\n" 4433" Martin Quinson (mquinson#debian.org)\n" 4434"\n" 4435msgstr "" 4436 4437#. type: textblock 4438#: lib/Locale/Po4a/Chooser.pm:15 4439msgid "Copyright © 2002-2005, 2014, 2017 SPI, Inc." 4440msgstr "" 4441 4442#. type: textblock 4443#: lib/Locale/Po4a/Common.pm:2 4444msgid "Locale::Po4a::Common - common parts of the po4a scripts and utils" 4445msgstr "" 4446 4447#. type: textblock 4448#: lib/Locale/Po4a/Common.pm:4 4449msgid "" 4450"Locale::Po4a::Common contains common parts of the po4a scripts and some " 4451"useful functions used along the other modules." 4452msgstr "" 4453 4454#. type: textblock 4455#: lib/Locale/Po4a/Common.pm:5 4456msgid "If needed, you can disable the use of Text::WrapI18N as such:" 4457msgstr "" 4458 4459#. type: verbatim 4460#: lib/Locale/Po4a/Common.pm:6 4461#, no-wrap 4462msgid "" 4463" use Locale::Po4a::Common qw(nowrapi18n);\n" 4464" use Locale::Po4a::Text;\n" 4465"\n" 4466msgstr "" 4467 4468#. type: textblock 4469#: lib/Locale/Po4a/Common.pm:7 4470msgid "instead of:" 4471msgstr "" 4472 4473#. type: verbatim 4474#: lib/Locale/Po4a/Common.pm:8 4475#, no-wrap 4476msgid "" 4477" use Locale::Po4a::Text;\n" 4478"\n" 4479msgstr "" 4480 4481#. type: textblock 4482#: lib/Locale/Po4a/Common.pm:9 4483msgid "" 4484"The ordering is important here: as most Locale::Po4a modules load themselves " 4485"Locale::Po4a::Common, the first time this module is loaded determines " 4486"whether Text::WrapI18N is used." 4487msgstr "" 4488 4489#. type: =head1 4490#: lib/Locale/Po4a/Common.pm:10 4491msgid "FUNCTIONS" 4492msgstr "" 4493 4494#. type: =head2 4495#: lib/Locale/Po4a/Common.pm:11 4496msgid "Showing output messages" 4497msgstr "" 4498 4499#. type: textblock 4500#: lib/Locale/Po4a/Common.pm:12 4501msgid "show_version($)" 4502msgstr "" 4503 4504#. type: textblock 4505#: lib/Locale/Po4a/Common.pm:13 4506msgid "" 4507"Shows the current version of the script, and a short copyright message. It " 4508"takes the name of the script as an argument." 4509msgstr "" 4510 4511#. type: textblock 4512#: lib/Locale/Po4a/Common.pm:14 4513msgid "wrap_msg($@)" 4514msgstr "" 4515 4516#. type: textblock 4517#: lib/Locale/Po4a/Common.pm:15 4518msgid "" 4519"This function displays a message the same way as sprintf() does, but wraps " 4520"the result so that they look nice on the terminal." 4521msgstr "" 4522 4523#. type: textblock 4524#: lib/Locale/Po4a/Common.pm:16 4525msgid "wrap_mod($$@)" 4526msgstr "" 4527 4528#. type: textblock 4529#: lib/Locale/Po4a/Common.pm:17 4530msgid "" 4531"This function works like wrap_msg(), but it takes a module name as the first " 4532"argument, and leaves a space at the left of the message." 4533msgstr "" 4534 4535#. type: textblock 4536#: lib/Locale/Po4a/Common.pm:18 4537msgid "wrap_ref_mod($$$@)" 4538msgstr "" 4539 4540#. type: textblock 4541#: lib/Locale/Po4a/Common.pm:19 4542msgid "" 4543"This function works like wrap_msg(), but it takes a file:line reference as " 4544"the first argument, a module name as the second one, and leaves a space at " 4545"the left of the message." 4546msgstr "" 4547 4548#. type: =head2 4549#: lib/Locale/Po4a/Common.pm:20 4550msgid "Wrappers for other modules" 4551msgstr "" 4552 4553#. type: textblock 4554#: lib/Locale/Po4a/Common.pm:21 4555msgid "Locale::Gettext" 4556msgstr "" 4557 4558#. type: textblock 4559#: lib/Locale/Po4a/Common.pm:22 4560msgid "" 4561"When the Locale::Gettext module cannot be loaded, this module provide dummy " 4562"(empty) implementation of the following functions. In that case, po4a " 4563"messages won't get translated but the program will continue to work." 4564msgstr "" 4565 4566#. type: textblock 4567#: lib/Locale/Po4a/Common.pm:23 4568msgid "" 4569"If Locale::gettext is present, this wrapper also calls " 4570"setlocale(LC_MESSAGES, \"\") so callers don't depend on the POSIX module " 4571"either." 4572msgstr "" 4573 4574#. type: textblock 4575#: lib/Locale/Po4a/Common.pm:24 4576msgid "bindtextdomain($$)" 4577msgstr "" 4578 4579#. type: textblock 4580#: lib/Locale/Po4a/Common.pm:25 4581msgid "textdomain($)" 4582msgstr "" 4583 4584#. type: textblock 4585#: lib/Locale/Po4a/Common.pm:26 4586msgid "gettext($)" 4587msgstr "" 4588 4589#. type: textblock 4590#: lib/Locale/Po4a/Common.pm:27 4591msgid "dgettext($$)" 4592msgstr "" 4593 4594#. type: verbatim 4595#: lib/Locale/Po4a/Common.pm:29 lib/Locale/Po4a/Dia.pm:15 4596#: lib/Locale/Po4a/Docbook.pm:18 lib/Locale/Po4a/Guide.pm:13 4597#, no-wrap 4598msgid "" 4599" Jordi Vilalta <jvprat@gmail.com>\n" 4600"\n" 4601msgstr "" 4602 4603#. type: textblock 4604#: lib/Locale/Po4a/Common.pm:31 4605msgid "Copyright © 2005 SPI, Inc." 4606msgstr "" 4607 4608#. type: textblock 4609#: lib/Locale/Po4a/Dia.pm:2 4610msgid "Locale::Po4a::Dia - convert uncompressed Dia diagrams from/to PO files" 4611msgstr "" 4612 4613#. type: textblock 4614#: lib/Locale/Po4a/Dia.pm:5 4615msgid "" 4616"Locale::Po4a::Dia is a module to help the translation of diagrams in the " 4617"uncompressed Dia format into other [human] languages." 4618msgstr "" 4619 4620#. type: verbatim 4621#: lib/Locale/Po4a/Dia.pm:6 4622#, no-wrap 4623msgid "" 4624"You can get Dia (the graphical editor for these diagrams) from:\n" 4625" http://www.gnome.org/projects/dia/\n" 4626"\n" 4627msgstr "" 4628 4629#. type: =head1 4630#: lib/Locale/Po4a/Dia.pm:7 4631msgid "TRANSLATING WITH PO4A::DIA" 4632msgstr "" 4633 4634#. type: textblock 4635#: lib/Locale/Po4a/Dia.pm:8 4636msgid "" 4637"This module only translates uncompressed Dia diagrams. You can save your " 4638"uncompressed diagrams with Dia itself, unchecking the \"Compress diagram " 4639"files\" at the \"Save Diagram\" dialog." 4640msgstr "" 4641 4642#. type: verbatim 4643#: lib/Locale/Po4a/Dia.pm:9 4644#, no-wrap 4645msgid "" 4646"Another way is to uncompress the dia files from command line with:\n" 4647" gunzip < original.dia > uncompressed.dia\n" 4648"\n" 4649msgstr "" 4650 4651#. type: textblock 4652#: lib/Locale/Po4a/Dia.pm:11 4653msgid "" 4654"This module is fully functional, as it relies in the L<Locale::Po4a::Xml> " 4655"module. This only defines the translatable tags (E<lt>dia:stringE<gt>), and " 4656"filters the internal strings (the content of the E<lt>dia:diagramdataE<gt> " 4657"tag), not interesting for translation." 4658msgstr "" 4659 4660#. type: textblock 4661#: lib/Locale/Po4a/Dia.pm:13 lib/Locale/Po4a/Docbook.pm:16 4662#: lib/Locale/Po4a/Guide.pm:11 lib/Locale/Po4a/Xhtml.pm:16 4663msgid "" 4664"L<Locale::Po4a::TransTractor(3pm)>, L<Locale::Po4a::Xml(3pm)>, " 4665"L<po4a(7)|po4a.7>" 4666msgstr "" 4667 4668#. type: textblock 4669#: lib/Locale/Po4a/Dia.pm:17 lib/Locale/Po4a/Guide.pm:15 4670msgid "Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>" 4671msgstr "" 4672 4673#. type: textblock 4674#: lib/Locale/Po4a/Docbook.pm:2 4675msgid "Locale::Po4a::Docbook - convert DocBook XML documents from/to PO files" 4676msgstr "" 4677 4678#. type: textblock 4679#: lib/Locale/Po4a/Docbook.pm:5 4680msgid "" 4681"Locale::Po4a::Docbook is a module to help the translation of DocBook XML " 4682"documents into other [human] languages." 4683msgstr "" 4684 4685#. type: textblock 4686#: lib/Locale/Po4a/Docbook.pm:7 lib/Locale/Po4a/Guide.pm:8 4687#: lib/Locale/Po4a/Xhtml.pm:13 4688msgid "" 4689"This module is fully functional, as it relies in the L<Locale::Po4a::Xml> " 4690"module. This only defines the translatable tags and attributes." 4691msgstr "" 4692 4693#. type: textblock 4694#: lib/Locale/Po4a/Docbook.pm:8 4695msgid "" 4696"The only known issue is that it doesn't handle entities yet, and this " 4697"includes the file inclusion entities, but you can translate most of those " 4698"files alone (except the typical entities files), and it's usually better to " 4699"maintain them separated." 4700msgstr "" 4701 4702#. type: =head2 4703#: lib/Locale/Po4a/Docbook.pm:9 lib/Locale/Po4a/Xml.pm:103 4704msgid "OVERRIDE THE DEFAULT BEHAVIOR WITH COMMAND LINE OPTIONS" 4705msgstr "" 4706 4707#. type: textblock 4708#: lib/Locale/Po4a/Docbook.pm:10 4709msgid "" 4710"The default behavior of system provided modules is set to be on the safe " 4711"side." 4712msgstr "" 4713 4714#. type: textblock 4715#: lib/Locale/Po4a/Docbook.pm:11 4716msgid "" 4717"For example, the default of B<< <author> >> tag is aiming it to appear under " 4718"B<< <para> >>. But you may be using it only under B<< <bookinfo> >>. For " 4719"this case, you may want to translate it independently for each author." 4720msgstr "" 4721 4722#. type: textblock 4723#: lib/Locale/Po4a/Docbook.pm:12 4724msgid "" 4725"If you don't like the default behavior of the xml module and its derivative " 4726"modules, you can provide command line options to change their behavior. For " 4727"example, you can add the following to the po4a configuration file:" 4728msgstr "" 4729 4730#. type: verbatim 4731#: lib/Locale/Po4a/Docbook.pm:13 4732#, no-wrap 4733msgid "" 4734" opt:\"-k 0 -o nodefault=\\\"<bookinfo> <author>\\\" \\\n" 4735" -o break=\\\"<bookinfo> <author>\\\" \\\n" 4736" -o untranslated=\\\"<bookinfo>\\\" \\\n" 4737" -o translated=\\\"<author>\\\"\"\n" 4738"\n" 4739msgstr "" 4740 4741#. type: textblock 4742#: lib/Locale/Po4a/Docbook.pm:14 4743msgid "" 4744"This overrides the default behavior for B<< <bookinfo> >> and B<< <author> " 4745">>, set B<< <bookinfo> >> and B<< <author> >> to break input data stream on " 4746"these tags, set B<< <bookinfo> >> not to translate its tagged content, and " 4747"set B<< <author> >> to translate its tagged content." 4748msgstr "" 4749 4750#. type: verbatim 4751#: lib/Locale/Po4a/Docbook.pm:20 4752#, no-wrap 4753msgid "" 4754" Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>\n" 4755" Copyright © 2007-2009 Nicolas François <nicolas.francois@centraliens.net>\n" 4756"\n" 4757msgstr "" 4758 4759#. type: textblock 4760#: lib/Locale/Po4a/Guide.pm:2 4761msgid "Locale::Po4a::Guide - convert Guide XML documents from/to PO files" 4762msgstr "" 4763 4764#. type: textblock 4765#: lib/Locale/Po4a/Guide.pm:5 4766msgid "" 4767"Locale::Po4a::Guide is a module to help in the translation of the Gentoo " 4768"Linux documentation in the Guide XML format into other [human] languages." 4769msgstr "" 4770 4771#. type: textblock 4772#: lib/Locale/Po4a/Guide.pm:6 4773msgid "This format is documented here: http://www.gentoo.org/doc/en/xml-guide.xml" 4774msgstr "" 4775 4776#. type: textblock 4777#: lib/Locale/Po4a/Guide.pm:9 4778msgid "" 4779"The only known issue is that it doesn't include files with the <include " 4780"href=\"...\"> tag, but you can translate all those files alone, and it's " 4781"usually better to have them separated." 4782msgstr "" 4783 4784#. type: textblock 4785#: lib/Locale/Po4a/Halibut.pm:2 4786msgid "" 4787"Locale::Po4a::Halibut - convert Halibut documents and derivates from/to PO " 4788"files" 4789msgstr "" 4790 4791#. type: textblock 4792#: lib/Locale/Po4a/Halibut.pm:5 4793msgid "" 4794"Locale::Po4a::Halibut is a module to help the translation of Halibut " 4795"documents into other [human] languages." 4796msgstr "" 4797 4798#. type: textblock 4799#: lib/Locale/Po4a/Halibut.pm:6 4800msgid "" 4801"This module contains the definitions of common Halibut commands and " 4802"environments." 4803msgstr "" 4804 4805#. type: textblock 4806#: lib/Locale/Po4a/Halibut.pm:8 lib/Locale/Po4a/Texinfo.pm:9 4807msgid "This module is still beta. Please send feedback and feature requests." 4808msgstr "" 4809 4810#. type: =head1 4811#: lib/Locale/Po4a/Halibut.pm:9 4812msgid "CAVEAT" 4813msgstr "" 4814 4815#. type: textblock 4816#: lib/Locale/Po4a/Halibut.pm:10 4817msgid "Some constructs are badly supported. The known ones are documented below." 4818msgstr "" 4819 4820#. type: =head2 4821#: lib/Locale/Po4a/Halibut.pm:11 4822msgid "Verbatim blocks" 4823msgstr "" 4824 4825#. type: verbatim 4826#: lib/Locale/Po4a/Halibut.pm:12 4827#, no-wrap 4828msgid "" 4829" \\c foo\n" 4830" \\c bar\n" 4831"\n" 4832msgstr "" 4833 4834#. type: textblock 4835#: lib/Locale/Po4a/Halibut.pm:13 4836msgid "" 4837"The verbatim block is not considered as a whole. Each line will be " 4838"translated separately." 4839msgstr "" 4840 4841#. type: textblock 4842#: lib/Locale/Po4a/Halibut.pm:15 lib/Locale/Po4a/LaTeX.pm:9 4843#: lib/Locale/Po4a/Texinfo.pm:11 4844msgid "" 4845"L<Locale::Po4a::TeX(3pm)|Locale::Po4a::TeX>, " 4846"L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, " 4847"L<po4a(7)|po4a.7>" 4848msgstr "" 4849 4850#. type: textblock 4851#: lib/Locale/Po4a/Halibut.pm:19 4852msgid "Copyright © 2004-2008 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>." 4853msgstr "" 4854 4855#. type: textblock 4856#: lib/Locale/Po4a/Halibut.pm:20 lib/Locale/Po4a/LaTeX.pm:14 4857#: lib/Locale/Po4a/Texinfo.pm:16 4858msgid "" 4859"This program is free software; you may redistribute it and/or modify it " 4860"under the terms of GPL (see COPYING file)." 4861msgstr "" 4862 4863#. type: textblock 4864#: lib/Locale/Po4a/Ini.pm:2 4865msgid "Locale::Po4a::Ini - convert INI files from/to PO files" 4866msgstr "" 4867 4868#. type: textblock 4869#: lib/Locale/Po4a/Ini.pm:4 4870msgid "" 4871"Locale::Po4a::Ini is a module to help the translation of INI files into " 4872"other [human] languages." 4873msgstr "" 4874 4875#. type: textblock 4876#: lib/Locale/Po4a/Ini.pm:5 4877msgid "" 4878"The module searches for lines of the following format and extracts the " 4879"quoted text:" 4880msgstr "" 4881 4882#. type: textblock 4883#: lib/Locale/Po4a/Ini.pm:6 4884msgid "identificator=\"text than can be translated\"" 4885msgstr "" 4886 4887#. type: textblock 4888#: lib/Locale/Po4a/Ini.pm:7 4889msgid "NOTE: If the text is not quoted, it will be ignored." 4890msgstr "" 4891 4892#. type: textblock 4893#: lib/Locale/Po4a/Ini.pm:9 4894msgid "L<Locale::Po4a::TransTractor(3pm)>, L<po4a(7)|po4a.7>" 4895msgstr "" 4896 4897#. type: verbatim 4898#: lib/Locale/Po4a/Ini.pm:11 4899#, no-wrap 4900msgid "" 4901" Razvan Rusu <rrusu@bitdefender.com>\n" 4902" Costin Stroie <cstroie@bitdefender.com>\n" 4903"\n" 4904msgstr "" 4905 4906#. type: textblock 4907#: lib/Locale/Po4a/Ini.pm:13 4908msgid "Copyright © 2006 BitDefender" 4909msgstr "" 4910 4911#. type: textblock 4912#: lib/Locale/Po4a/KernelHelp.pm:2 4913msgid "" 4914"Locale::Po4a::KernelHelp - convert kernel configuration help from/to PO " 4915"files" 4916msgstr "" 4917 4918#. type: textblock 4919#: lib/Locale/Po4a/KernelHelp.pm:4 4920msgid "" 4921"Locale::Po4a::KernelHelp is a module to help the translation of " 4922"documentation for the Linux kernel configuration options into other [human] " 4923"languages." 4924msgstr "" 4925 4926#. type: textblock 4927#: lib/Locale/Po4a/KernelHelp.pm:6 4928msgid "" 4929"This module is just written, and needs more tests. Most of the needed work " 4930"will concern the tools used to parse this file (and configure the kernel), " 4931"so that they accept to read the documentation from another (translated) " 4932"file." 4933msgstr "" 4934 4935#. type: textblock 4936#: lib/Locale/Po4a/KernelHelp.pm:8 4937msgid "" 4938"L<Pod::Parser>, L<Locale::Po4a::Man(3pm)>, L<Locale::Po4a::Pod(3pm)>, " 4939"L<Locale::Po4a::TransTractor(3pm)>, L<po4a(7)|po4a.7>" 4940msgstr "" 4941 4942#. type: textblock 4943#: lib/Locale/Po4a/KernelHelp.pm:12 lib/Locale/Po4a/Pod.pm:41 4944msgid "Copyright © 2002 SPI, Inc." 4945msgstr "" 4946 4947#. type: textblock 4948#: lib/Locale/Po4a/LaTeX.pm:2 4949msgid "Locale::Po4a::LaTeX - convert LaTeX documents and derivates from/to PO files" 4950msgstr "" 4951 4952#. type: textblock 4953#: lib/Locale/Po4a/LaTeX.pm:5 4954msgid "" 4955"Locale::Po4a::LaTeX is a module to help the translation of LaTeX documents " 4956"into other [human] languages. It can also be used as a base to build modules " 4957"for LaTeX-based documents." 4958msgstr "" 4959 4960#. type: textblock 4961#: lib/Locale/Po4a/LaTeX.pm:6 4962msgid "" 4963"This module contains the definitions of common LaTeX commands and " 4964"environments." 4965msgstr "" 4966 4967#. type: textblock 4968#: lib/Locale/Po4a/LaTeX.pm:7 4969msgid "" 4970"See the L<Locale::Po4a::TeX(3pm)|Locale::Po4a::TeX> manpage for the list of " 4971"recognized options." 4972msgstr "" 4973 4974#. type: textblock 4975#: lib/Locale/Po4a/LaTeX.pm:13 lib/Locale/Po4a/TeX.pm:123 4976msgid "Copyright © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>." 4977msgstr "" 4978 4979#. type: textblock 4980#: lib/Locale/Po4a/Man.pm:2 4981msgid "Locale::Po4a::Man - convert manual pages from/to PO files" 4982msgstr "" 4983 4984#. type: textblock 4985#: lib/Locale/Po4a/Man.pm:5 4986msgid "" 4987"Locale::Po4a::Man is a module to help the translation of documentation in " 4988"the nroff format (the language of manual pages) into other [human] " 4989"languages." 4990msgstr "" 4991 4992#. type: =head1 4993#: lib/Locale/Po4a/Man.pm:6 4994msgid "TRANSLATING WITH PO4A::MAN" 4995msgstr "" 4996 4997#. type: textblock 4998#: lib/Locale/Po4a/Man.pm:7 4999msgid "" 5000"This module tries pretty hard to make translator's life easier. For that, " 5001"the text presented to translators isn't a verbatim copy of the text found in " 5002"the man page. Indeed, the cruder parts of the nroff format are hidden, so " 5003"that translators can't mess up with them." 5004msgstr "" 5005 5006#. type: =head2 5007#: lib/Locale/Po4a/Man.pm:8 5008msgid "Text wrapping" 5009msgstr "" 5010 5011#. type: textblock 5012#: lib/Locale/Po4a/Man.pm:9 5013msgid "" 5014"Unindented paragraphs are automatically rewrapped for the translator. This " 5015"can lead to some minor difference in the generated output, since the " 5016"rewrapping rules used by groff aren't very clear. For example, two spaces " 5017"after a parenthesis are sometimes preserved." 5018msgstr "" 5019 5020#. type: textblock 5021#: lib/Locale/Po4a/Man.pm:10 5022msgid "" 5023"Anyway, the difference will only be about the position of the extra spaces " 5024"in wrapped paragraph, and I think it's worth." 5025msgstr "" 5026 5027#. type: =head2 5028#: lib/Locale/Po4a/Man.pm:11 5029msgid "Font specification" 5030msgstr "" 5031 5032#. type: textblock 5033#: lib/Locale/Po4a/Man.pm:12 5034msgid "" 5035"The first change is about font change specifications. In nroff, there are " 5036"several ways to specify if a given word should be written in small, bold or " 5037"italics. In the text to translate, there is only one way, borrowed from the " 5038"POD (Perl online documentation) format:" 5039msgstr "" 5040 5041#. type: =item 5042#: lib/Locale/Po4a/Man.pm:13 5043msgid "IE<lt>textE<gt> -- italic text" 5044msgstr "" 5045 5046#. type: textblock 5047#: lib/Locale/Po4a/Man.pm:14 5048msgid "equivalent to \\fItext\\fP or \".I text\"" 5049msgstr "" 5050 5051#. type: =item 5052#: lib/Locale/Po4a/Man.pm:15 5053msgid "BE<lt>textE<gt> -- bold text" 5054msgstr "" 5055 5056#. type: textblock 5057#: lib/Locale/Po4a/Man.pm:16 5058msgid "equivalent to \\fBtext\\fP or \".B text\"" 5059msgstr "" 5060 5061#. type: =item 5062#: lib/Locale/Po4a/Man.pm:17 5063msgid "RE<lt>textE<gt> -- roman text" 5064msgstr "" 5065 5066#. type: textblock 5067#: lib/Locale/Po4a/Man.pm:18 5068msgid "equivalent to \\fRtext\\fP" 5069msgstr "" 5070 5071#. type: =item 5072#: lib/Locale/Po4a/Man.pm:19 5073msgid "CWE<lt>textE<gt> -- constant width text" 5074msgstr "" 5075 5076#. type: textblock 5077#: lib/Locale/Po4a/Man.pm:20 5078msgid "equivalent to \\f(CWtext\\fP or \".CW text\"" 5079msgstr "" 5080 5081#. type: textblock 5082#: lib/Locale/Po4a/Man.pm:21 5083msgid "" 5084"Remark: The CW face is not available for all groff devices. It is not " 5085"recommended to use it. It is provided for your convenience." 5086msgstr "" 5087 5088#. type: =head2 5089#: lib/Locale/Po4a/Man.pm:22 5090msgid "Automatic characters transliteration" 5091msgstr "" 5092 5093#. type: textblock 5094#: lib/Locale/Po4a/Man.pm:23 5095msgid "" 5096"Po4a automatically transliterate some characters to ease the translation or " 5097"the review of the translation. Here is the list of the transliterations:" 5098msgstr "" 5099 5100#. type: =item 5101#: lib/Locale/Po4a/Man.pm:24 5102msgid "hyphens" 5103msgstr "" 5104 5105#. type: textblock 5106#: lib/Locale/Po4a/Man.pm:25 5107msgid "" 5108"Hyphens (-) and minus signs (\\-) in man pages are all transliterated as " 5109"simple dashes (-) in the PO file. Then all dash are transliterated into " 5110"roff minus signs (\\-) when the translation is inserted into the output " 5111"document." 5112msgstr "" 5113 5114#. type: textblock 5115#: lib/Locale/Po4a/Man.pm:26 5116msgid "" 5117"Translators can force an hyphen by using the roff glyph '\\[hy]' in their " 5118"translations." 5119msgstr "" 5120 5121#. type: =item 5122#: lib/Locale/Po4a/Man.pm:27 5123msgid "non-breaking spaces" 5124msgstr "" 5125 5126#. type: textblock 5127#: lib/Locale/Po4a/Man.pm:28 5128msgid "" 5129"Translators can use non-breaking spaces in their translations. These " 5130"non-breaking spaces (0xA0 in latin1) will be transliterated into a roff " 5131"non-breaking space ('\\ ')." 5132msgstr "" 5133 5134#. type: =item 5135#: lib/Locale/Po4a/Man.pm:29 5136msgid "quotes transliterations" 5137msgstr "" 5138 5139#. type: textblock 5140#: lib/Locale/Po4a/Man.pm:30 5141msgid "`` and '' are respectively tranliterated into \\*(lq and \\*(rq." 5142msgstr "" 5143 5144#. type: textblock 5145#: lib/Locale/Po4a/Man.pm:31 5146msgid "" 5147"To avoid these transliterations, translators can insert a zero width roff " 5148"character (i.e., using `\\&` or '\\&' respectively)." 5149msgstr "" 5150 5151#. type: =head2 5152#: lib/Locale/Po4a/Man.pm:32 5153msgid "Putting 'E<lt>' and 'E<gt>' in translations" 5154msgstr "" 5155 5156#. type: textblock 5157#: lib/Locale/Po4a/Man.pm:33 5158msgid "" 5159"Since these chars are used to delimit parts under font modification, you " 5160"can't use them verbatim. Use EE<lt>ltE<gt> and EE<lt>gtE<gt> instead (as in " 5161"POD, one more time)." 5162msgstr "" 5163 5164#. type: =item 5165#: lib/Locale/Po4a/Man.pm:36 lib/Locale/Po4a/Sgml.pm:8 5166#: lib/Locale/Po4a/TeX.pm:13 5167msgid "B<debug>" 5168msgstr "" 5169 5170#. type: textblock 5171#: lib/Locale/Po4a/Man.pm:37 lib/Locale/Po4a/TeX.pm:14 5172msgid "" 5173"Activate debugging for some internal mechanisms of this module. Use the " 5174"source to see which parts can be debugged." 5175msgstr "" 5176 5177#. type: =item 5178#: lib/Locale/Po4a/Man.pm:38 lib/Locale/Po4a/Sgml.pm:10 5179msgid "B<verbose>" 5180msgstr "" 5181 5182#. type: textblock 5183#: lib/Locale/Po4a/Man.pm:39 5184msgid "Increase verbosity." 5185msgstr "" 5186 5187#. type: =item 5188#: lib/Locale/Po4a/Man.pm:40 5189msgid "B<groff_code>" 5190msgstr "" 5191 5192#. type: textblock 5193#: lib/Locale/Po4a/Man.pm:41 5194msgid "" 5195"This option permits to change the behavior of the module when it encounter a " 5196".de, .ie or .if section. It can take the following values:" 5197msgstr "" 5198 5199#. type: =item 5200#: lib/Locale/Po4a/Man.pm:42 lib/Locale/Po4a/Xml.pm:27 5201msgid "I<fail>" 5202msgstr "" 5203 5204#. type: textblock 5205#: lib/Locale/Po4a/Man.pm:43 5206msgid "" 5207"This is the default value. The module will fail when a .de, .ie or .if " 5208"section is encountered." 5209msgstr "" 5210 5211#. type: =item 5212#: lib/Locale/Po4a/Man.pm:44 5213msgid "I<verbatim>" 5214msgstr "" 5215 5216#. type: textblock 5217#: lib/Locale/Po4a/Man.pm:45 5218msgid "" 5219"Indicates that the .de, .ie or .if sections must be copied as is from the " 5220"original to the translated document." 5221msgstr "" 5222 5223#. type: =item 5224#: lib/Locale/Po4a/Man.pm:46 5225msgid "I<translate>" 5226msgstr "" 5227 5228#. type: textblock 5229#: lib/Locale/Po4a/Man.pm:47 5230msgid "" 5231"Indicates that the .de, .ie or .if sections will be proposed for the " 5232"translation. You should only use this option if a translatable string is " 5233"contained in one of these section. Otherwise, I<verbatim> should be " 5234"preferred." 5235msgstr "" 5236 5237#. type: =item 5238#: lib/Locale/Po4a/Man.pm:48 5239msgid "B<generated>" 5240msgstr "" 5241 5242#. type: textblock 5243#: lib/Locale/Po4a/Man.pm:49 5244msgid "" 5245"This option specifies that the file was generated, and that po4a should not " 5246"try to detect if the man pages was generated from another format. This " 5247"permits to use po4a on generated man pages. This option does not take any " 5248"argument." 5249msgstr "" 5250 5251#. type: =item 5252#: lib/Locale/Po4a/Man.pm:50 5253msgid "B<mdoc>" 5254msgstr "" 5255 5256#. type: textblock 5257#: lib/Locale/Po4a/Man.pm:51 5258msgid "This option is only useful for mdoc pages." 5259msgstr "" 5260 5261#. type: textblock 5262#: lib/Locale/Po4a/Man.pm:52 5263msgid "" 5264"It selects a stricter support of the mdoc format by telling po4a not to " 5265"translate the 'NAME' section. mdoc pages whose 'NAME' section is translated " 5266"won't generate any header or footer." 5267msgstr "" 5268 5269#. type: verbatim 5270#: lib/Locale/Po4a/Man.pm:53 5271#, no-wrap 5272msgid "" 5273"According to the groff_mdoc page, the NAME, SYNOPSIS and DESCRIPTION\n" 5274"sections are mandatory.\n" 5275"There are no known issues with translated SYNOPSIS or DESCRIPTION section,\n" 5276"but you can also specify these sections this way:\n" 5277" -o mdoc=NAME,SYNOPSIS,DESCRIPTION\n" 5278"\n" 5279msgstr "" 5280 5281#. type: verbatim 5282#: lib/Locale/Po4a/Man.pm:54 5283#, no-wrap 5284msgid "" 5285"This mdoc issue can also be solved with an addendum like this one:\n" 5286" PO4A-HEADER:mode=before;position=^.Dd\n" 5287" .TH DOCUMENT_TITLE 1 \"Month day, year\" OS \"Section Name\"\n" 5288"\n" 5289msgstr "" 5290 5291#. type: textblock 5292#: lib/Locale/Po4a/Man.pm:55 5293msgid "" 5294"The following options permit to specify the behavior of a new macro (defined " 5295"with a .de request), or of a macro not supported by po4a. They take as " 5296"argument a comma-separated list of macros. For example:" 5297msgstr "" 5298 5299#. type: verbatim 5300#: lib/Locale/Po4a/Man.pm:56 5301#, no-wrap 5302msgid "" 5303" -o noarg=FO,OB,AR -o translate_joined=BA,ZQ,UX\n" 5304"\n" 5305msgstr "" 5306 5307#. type: textblock 5308#: lib/Locale/Po4a/Man.pm:57 5309msgid "" 5310"Note: if a macro is not supported by po4a and if you consider that it is a " 5311"standard roff macro, you should submit it to the po4a development team." 5312msgstr "" 5313 5314#. type: =item 5315#: lib/Locale/Po4a/Man.pm:58 lib/Locale/Po4a/Xml.pm:91 5316msgid "B<untranslated>" 5317msgstr "" 5318 5319#. type: textblock 5320#: lib/Locale/Po4a/Man.pm:59 5321msgid "" 5322"B<untranslated> indicates that this macro (at its arguments) don't have to " 5323"be translated." 5324msgstr "" 5325 5326#. type: =item 5327#: lib/Locale/Po4a/Man.pm:60 5328msgid "B<noarg>" 5329msgstr "" 5330 5331#. type: textblock 5332#: lib/Locale/Po4a/Man.pm:61 5333msgid "" 5334"B<noarg> is like B<untranslated>, except that po4a will verify that no " 5335"argument is added to this macro." 5336msgstr "" 5337 5338#. type: =item 5339#: lib/Locale/Po4a/Man.pm:62 5340msgid "B<translate_joined>" 5341msgstr "" 5342 5343#. type: textblock 5344#: lib/Locale/Po4a/Man.pm:63 5345msgid "" 5346"B<translate_joined> indicates that po4a must propose to translate the " 5347"arguments of the macro." 5348msgstr "" 5349 5350#. type: =item 5351#: lib/Locale/Po4a/Man.pm:64 5352msgid "B<translate_each>" 5353msgstr "" 5354 5355#. type: textblock 5356#: lib/Locale/Po4a/Man.pm:65 5357msgid "" 5358"With B<translate_each>, the arguments will also be proposed for the " 5359"translation, except that each one will be translated separately." 5360msgstr "" 5361 5362#. type: =item 5363#: lib/Locale/Po4a/Man.pm:66 lib/Locale/Po4a/TeX.pm:15 5364msgid "B<no_wrap>" 5365msgstr "" 5366 5367#. type: textblock 5368#: lib/Locale/Po4a/Man.pm:67 5369msgid "" 5370"This option takes as argument a list of comma-separated couples " 5371"I<begin>:I<end>, where I<begin> and I<end> are commands that delimit the " 5372"begin and end of a section that should not be rewrapped." 5373msgstr "" 5374 5375#. type: textblock 5376#: lib/Locale/Po4a/Man.pm:68 5377msgid "" 5378"Note: no test is done to ensure that an I<end> command matches its I<begin> " 5379"command; any ending command stop the no_wrap mode. If you have a I<begin> " 5380"(respectively I<end>) macro that has no I<end> (respectively I<begin>), you " 5381"can specify an existing I<end> (like fi) or I<begin> (like nf) as a " 5382"counterpart. These macros (and their arguments) wont be translated." 5383msgstr "" 5384 5385#. type: =item 5386#: lib/Locale/Po4a/Man.pm:69 lib/Locale/Po4a/Xml.pm:59 5387msgid "B<inline>" 5388msgstr "" 5389 5390#. type: textblock 5391#: lib/Locale/Po4a/Man.pm:70 5392msgid "" 5393"This option specifies a list of comma-separated macros that must not split " 5394"the current paragraph. The string to translate will then contain I<foo " 5395"E<lt>.bar baz quxE<gt> quux>, where I<bar> is the command that should be " 5396"inlined, and I<baz qux> its arguments." 5397msgstr "" 5398 5399#. type: =item 5400#: lib/Locale/Po4a/Man.pm:71 5401msgid "B<unknown_macros>" 5402msgstr "" 5403 5404#. type: textblock 5405#: lib/Locale/Po4a/Man.pm:72 5406msgid "" 5407"This option indicates how po4a should behave when an unknown macro is " 5408"found. By default, po4a fails with a warning. It can take the following " 5409"values: B<failed> (the default value), B<untranslated>, B<noarg>, " 5410"B<translate_joined>, or B<translate_each> (see above for an explanation of " 5411"these values)." 5412msgstr "" 5413 5414#. type: =head1 5415#: lib/Locale/Po4a/Man.pm:73 5416msgid "AUTHORING MAN PAGES COMPLIANT WITH PO4A::MAN" 5417msgstr "" 5418 5419#. type: textblock 5420#: lib/Locale/Po4a/Man.pm:74 5421msgid "" 5422"This module is still very limited, and will always be, because it's not a " 5423"real nroff interpreter. It would be possible to do a real nroff interpreter, " 5424"to allow authors to use all the existing macros, or even to define new ones " 5425"in their pages, but we didn't want to. It would be too difficult, and we " 5426"thought it wasn't necessary. We do think that if manpages' authors want to " 5427"see their productions translated, they may have to adapt to ease the work of " 5428"translators." 5429msgstr "" 5430 5431#. type: textblock 5432#: lib/Locale/Po4a/Man.pm:75 5433msgid "" 5434"So, the man parser implemented in po4a have some known limitations we are " 5435"not really inclined to correct, and which will constitute some pitfalls " 5436"you'll have to avoid if you want to see translators taking care of your " 5437"documentation." 5438msgstr "" 5439 5440#. type: =head2 5441#: lib/Locale/Po4a/Man.pm:76 5442msgid "Don't program in nroff" 5443msgstr "" 5444 5445#. type: textblock 5446#: lib/Locale/Po4a/Man.pm:77 5447msgid "" 5448"nroff is a complete programming language, with macro definition, " 5449"conditionals and so on. Since this parser isn't a fully featured nroff " 5450"interpreter, it will fail on pages using these facilities (There are about " 5451"200 such pages on my box)." 5452msgstr "" 5453 5454#. type: =head2 5455#: lib/Locale/Po4a/Man.pm:78 5456msgid "Use the plain macro set" 5457msgstr "" 5458 5459#. type: textblock 5460#: lib/Locale/Po4a/Man.pm:79 5461msgid "" 5462"There are still some macros which are not supported by po4a::man. This is " 5463"only because I failed to find any documentation about them. Here is the list " 5464"of unsupported macros used on my box. Note that this list isn't exhaustive " 5465"since the program fails on the first encountered unsupported macro. If you " 5466"have any information about some of these macros, I'll happily add support " 5467"for them. Because of these macros, about 250 pages on my box are " 5468"inaccessible to po4a::man." 5469msgstr "" 5470 5471#. type: verbatim 5472#: lib/Locale/Po4a/Man.pm:80 5473#, no-wrap 5474msgid "" 5475" .. .\" .AT .b .bank\n" 5476" .BE ..br .Bu .BUGS .BY\n" 5477" .ce .dbmmanage .do .En\n" 5478" .EP .EX .Fi .hw .i\n" 5479" .Id .l .LO .mf\n" 5480" .N .na .NF .nh .nl\n" 5481" .Nm .ns .NXR .OPTIONS .PB\n" 5482" .pp .PR .PRE .PU .REq\n" 5483" .RH .rn .S< .sh .SI\n" 5484" .splitfont .Sx .T .TF .The\n" 5485" .TT .UC .ul .Vb .zZ\n" 5486"\n" 5487msgstr "" 5488 5489#. type: =head2 5490#: lib/Locale/Po4a/Man.pm:81 5491msgid "Hiding text from po4a" 5492msgstr "" 5493 5494#. type: textblock 5495#: lib/Locale/Po4a/Man.pm:82 5496msgid "" 5497"Sometimes, the author knows that some parts are not translatable, and should " 5498"not be extracted by po4a. For example, an option may accept an I<other> " 5499"argument, and I<other> may also appear as the last item of a list. In the " 5500"first case, I<other> should be not be translatable. And in the second case, " 5501"I<other> should be translated." 5502msgstr "" 5503 5504#. type: textblock 5505#: lib/Locale/Po4a/Man.pm:83 5506msgid "" 5507"In such case, the author can avoid po4a to extract some strings, using some " 5508"special groff constructs:" 5509msgstr "" 5510 5511#. type: verbatim 5512#: lib/Locale/Po4a/Man.pm:84 5513#, no-wrap 5514msgid "" 5515" .if !'po4a'hide' .B other\n" 5516"\n" 5517msgstr "" 5518 5519#. type: textblock 5520#: lib/Locale/Po4a/Man.pm:85 5521msgid "(this will require the B<-o groff_code=verbatim> option)" 5522msgstr "" 5523 5524#. type: verbatim 5525#: lib/Locale/Po4a/Man.pm:86 5526#, no-wrap 5527msgid "" 5528"A new macro can also be defined to automate this:\n" 5529" .de IR_untranslated\n" 5530" . IR \\\\$@\n" 5531" ..\n" 5532"\n" 5533msgstr "" 5534 5535#. type: verbatim 5536#: lib/Locale/Po4a/Man.pm:87 lib/Locale/Po4a/Man.pm:90 5537#, no-wrap 5538msgid "" 5539" .IR_untranslated \\-q \", \" \\-\\-quiet\n" 5540"\n" 5541msgstr "" 5542 5543#. type: textblock 5544#: lib/Locale/Po4a/Man.pm:88 5545msgid "" 5546"(this will require the options B<-o groff_code=verbatim> and B<-o " 5547"untranslated=IR_untranslated>; with this construct, the B<.if !'po4a'hide'> " 5548"conditional is not strictly needed since po4a will not parse the internal of " 5549"the macro definition)" 5550msgstr "" 5551 5552#. type: verbatim 5553#: lib/Locale/Po4a/Man.pm:89 5554#, no-wrap 5555msgid "" 5556"or using an alias:\n" 5557" .als IR_untranslated IR\n" 5558"\n" 5559msgstr "" 5560 5561#. type: textblock 5562#: lib/Locale/Po4a/Man.pm:91 5563msgid "This will require the B<-o untranslated=als,IR_untranslated> option." 5564msgstr "" 5565 5566#. type: =head2 5567#: lib/Locale/Po4a/Man.pm:92 5568msgid "Conclusion" 5569msgstr "" 5570 5571#. type: textblock 5572#: lib/Locale/Po4a/Man.pm:93 5573msgid "" 5574"To summarise this section, keep simple, and don't try to be clever while " 5575"authoring your man pages. A lot of things are possible in nroff, and not " 5576"supported by this parser. For example, don't try to mess with \\c to " 5577"interrupt the text processing (like 40 pages on my box do). Or, be sure to " 5578"put the macro arguments on the same line that the macro itself. I know that " 5579"it's valid in nroff, but would complicate too much the parser to be handled." 5580msgstr "" 5581 5582#. type: textblock 5583#: lib/Locale/Po4a/Man.pm:94 5584msgid "" 5585"Of course, another possibility is to use another format, more translator " 5586"friendly (like POD using po4a::pod, or one of the XML family like SGML), but " 5587"thanks to po4a::man it isn't needed anymore. That being said, if the source " 5588"format of your documentation is POD, or XML, it may be clever to translate " 5589"the source format and not this generated one. In most cases, po4a::man will " 5590"detect generated pages and issue a warning. It will even refuse to process " 5591"POD generated pages, because those pages are perfectly handled by po4a::pod, " 5592"and because their nroff counterpart defines a lot of new macros I didn't " 5593"want to write support for. On my box, 1432 of the 4323 pages are generated " 5594"from POD and will be ignored by po4a::man." 5595msgstr "" 5596 5597#. type: textblock 5598#: lib/Locale/Po4a/Man.pm:95 5599msgid "" 5600"In most cases, po4a::man will detect the problem and refuse to process the " 5601"page, issuing an adapted message. In some rare cases, the program will " 5602"complete without warning, but the output will be wrong. Such cases are " 5603"called \"bugs\" ;) If you encounter such case, be sure to report this, along " 5604"with a fix when possible…" 5605msgstr "" 5606 5607#. type: textblock 5608#: lib/Locale/Po4a/Man.pm:97 5609msgid "This module can be used for most of the existing man pages." 5610msgstr "" 5611 5612#. type: textblock 5613#: lib/Locale/Po4a/Man.pm:98 5614msgid "Some tests are regularly run on Linux boxes:" 5615msgstr "" 5616 5617#. type: =item 5618#: lib/Locale/Po4a/Man.pm:99 lib/Locale/Po4a/Man.pm:101 5619#: lib/Locale/Po4a/Man.pm:103 lib/Locale/Po4a/Man.pm:105 5620#: lib/Locale/Po4a/Sgml.pm:36 lib/Locale/Po4a/Sgml.pm:42 5621#: lib/Locale/Po4a/Sgml.pm:45 lib/Locale/Po4a/Sgml.pm:49 5622msgid "*" 5623msgstr "" 5624 5625#. type: textblock 5626#: lib/Locale/Po4a/Man.pm:100 5627msgid "" 5628"one third of the pages are refused because they were generated from another " 5629"format supported by po4a (e.g. POD or SGML)." 5630msgstr "" 5631 5632#. type: textblock 5633#: lib/Locale/Po4a/Man.pm:102 5634msgid "" 5635"10% of the remaining pages are rejected with an error (e.g. a groff macro is " 5636"not supported)." 5637msgstr "" 5638 5639#. type: textblock 5640#: lib/Locale/Po4a/Man.pm:104 5641msgid "" 5642"Then, less than 1% of the pages are accepted silently by po4a, but with " 5643"significant issues (i.e. missing words, or new words inserted)" 5644msgstr "" 5645 5646#. type: textblock 5647#: lib/Locale/Po4a/Man.pm:106 5648msgid "" 5649"The other pages are usually handled without differences more important than " 5650"spacing differences or line rewrapped (font issues in less than 10% of the " 5651"processed pages)." 5652msgstr "" 5653 5654#. type: textblock 5655#: lib/Locale/Po4a/Man.pm:108 5656msgid "" 5657"L<Locale::Po4a::Pod(3pm)>, L<Locale::Po4a::TransTractor(3pm)>, " 5658"L<po4a(7)|po4a.7>" 5659msgstr "" 5660 5661#. type: textblock 5662#: lib/Locale/Po4a/Man.pm:112 5663msgid "Copyright © 2002-2008 SPI, Inc." 5664msgstr "" 5665 5666#. type: textblock 5667#: lib/Locale/Po4a/Po.pm:2 5668msgid "Locale::Po4a::Po - PO file manipulation module" 5669msgstr "" 5670 5671#. type: verbatim 5672#: lib/Locale/Po4a/Po.pm:4 5673#, no-wrap 5674msgid "" 5675" use Locale::Po4a::Po;\n" 5676" my $pofile=Locale::Po4a::Po->new();\n" 5677"\n" 5678msgstr "" 5679 5680#. type: verbatim 5681#: lib/Locale/Po4a/Po.pm:5 5682#, no-wrap 5683msgid "" 5684" # Read PO file\n" 5685" $pofile->read('file.po');\n" 5686"\n" 5687msgstr "" 5688 5689#. type: verbatim 5690#: lib/Locale/Po4a/Po.pm:6 5691#, no-wrap 5692msgid "" 5693" # Add an entry\n" 5694" $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',\n" 5695" 'flags' => \"wrap\", 'reference'=>'file.c:46');\n" 5696"\n" 5697msgstr "" 5698 5699#. type: verbatim 5700#: lib/Locale/Po4a/Po.pm:7 5701#, no-wrap 5702msgid "" 5703" # Extract a translation\n" 5704" $pofile->gettext(\"Hello\"); # returns 'bonjour'\n" 5705"\n" 5706msgstr "" 5707 5708#. type: verbatim 5709#: lib/Locale/Po4a/Po.pm:8 5710#, no-wrap 5711msgid "" 5712" # Write back to a file\n" 5713" $pofile->write('otherfile.po');\n" 5714"\n" 5715msgstr "" 5716 5717#. type: textblock 5718#: lib/Locale/Po4a/Po.pm:10 5719msgid "" 5720"Locale::Po4a::Po is a module that allows you to manipulate message " 5721"catalogs. You can load and write from/to a file (which extension is often " 5722"I<po>), you can build new entries on the fly or request for the translation " 5723"of a string." 5724msgstr "" 5725 5726#. type: textblock 5727#: lib/Locale/Po4a/Po.pm:11 5728msgid "" 5729"For a more complete description of message catalogs in the PO format and " 5730"their use, please refer to the info documentation of the gettext program " 5731"(node \"`PO Files\"')." 5732msgstr "" 5733 5734#. type: textblock 5735#: lib/Locale/Po4a/Po.pm:12 5736msgid "" 5737"This module is part of the po4a project, which objective is to use PO files " 5738"(designed at origin to ease the translation of program messages) to " 5739"translate everything, including documentation (man page, info manual), " 5740"package description, debconf templates, and everything which may benefit " 5741"from this." 5742msgstr "" 5743 5744#. type: =head1 5745#: lib/Locale/Po4a/Po.pm:28 5746msgid "Functions concerning entire message catalogs" 5747msgstr "" 5748 5749#. type: =item 5750#: lib/Locale/Po4a/Po.pm:29 5751msgid "new()" 5752msgstr "" 5753 5754#. type: textblock 5755#: lib/Locale/Po4a/Po.pm:30 5756msgid "" 5757"Creates a new message catalog. If an argument is provided, it's the name of " 5758"a PO file we should load." 5759msgstr "" 5760 5761#. type: =item 5762#: lib/Locale/Po4a/Po.pm:31 5763msgid "read($)" 5764msgstr "" 5765 5766#. type: textblock 5767#: lib/Locale/Po4a/Po.pm:32 5768msgid "" 5769"Reads a PO file (which name is given as argument). Previously existing " 5770"entries in self are not removed, the new ones are added to the end of the " 5771"catalog." 5772msgstr "" 5773 5774#. type: =item 5775#: lib/Locale/Po4a/Po.pm:33 lib/Locale/Po4a/TransTractor.pm:77 5776msgid "write($)" 5777msgstr "" 5778 5779#. type: textblock 5780#: lib/Locale/Po4a/Po.pm:34 5781msgid "Writes the current catalog to the given file." 5782msgstr "" 5783 5784#. type: =item 5785#: lib/Locale/Po4a/Po.pm:35 5786msgid "write_if_needed($$)" 5787msgstr "" 5788 5789#. type: textblock 5790#: lib/Locale/Po4a/Po.pm:36 5791msgid "" 5792"Like write, but if the PO or POT file already exists, the object will be " 5793"written in a temporary file which will be compared with the existing file to " 5794"check if the update is needed (this avoids to change a POT just to update a " 5795"line reference or the POT-Creation-Date field)." 5796msgstr "" 5797 5798#. type: =item 5799#: lib/Locale/Po4a/Po.pm:37 5800msgid "gettextize($$)" 5801msgstr "" 5802 5803#. type: textblock 5804#: lib/Locale/Po4a/Po.pm:38 5805msgid "" 5806"This function produces one translated message catalog from two catalogs, an " 5807"original and a translation. This process is described in L<po4a(7)|po4a.7>, " 5808"section I<Gettextization: how does it work?>." 5809msgstr "" 5810 5811#. type: =item 5812#: lib/Locale/Po4a/Po.pm:39 5813msgid "filter($)" 5814msgstr "" 5815 5816#. type: textblock 5817#: lib/Locale/Po4a/Po.pm:40 5818msgid "" 5819"This function extracts a catalog from an existing one. Only the entries " 5820"having a reference in the given file will be placed in the resulting " 5821"catalog." 5822msgstr "" 5823 5824#. type: textblock 5825#: lib/Locale/Po4a/Po.pm:41 5826msgid "" 5827"This function parses its argument, converts it to a Perl function " 5828"definition, evals this definition and filters the fields for which this " 5829"function returns true." 5830msgstr "" 5831 5832#. type: textblock 5833#: lib/Locale/Po4a/Po.pm:42 5834msgid "I love Perl sometimes ;)" 5835msgstr "" 5836 5837#. type: =item 5838#: lib/Locale/Po4a/Po.pm:43 5839msgid "to_utf8()" 5840msgstr "" 5841 5842#. type: textblock 5843#: lib/Locale/Po4a/Po.pm:44 5844msgid "" 5845"Recodes to UTF-8 the PO's msgstrs. Does nothing if the charset is not " 5846"specified in the PO file (\"CHARSET\" value), or if it's already UTF-8 or " 5847"ASCII." 5848msgstr "" 5849 5850#. type: =head1 5851#: lib/Locale/Po4a/Po.pm:45 5852msgid "Functions to use a message catalog for translations" 5853msgstr "" 5854 5855#. type: =item 5856#: lib/Locale/Po4a/Po.pm:46 5857msgid "gettext($%)" 5858msgstr "" 5859 5860#. type: textblock 5861#: lib/Locale/Po4a/Po.pm:47 5862msgid "" 5863"Request the translation of the string given as argument in the current " 5864"catalog. The function returns the original (untranslated) string if the " 5865"string was not found." 5866msgstr "" 5867 5868#. type: textblock 5869#: lib/Locale/Po4a/Po.pm:48 5870msgid "" 5871"After the string to translate, you can pass a hash of extra arguments. Here " 5872"are the valid entries:" 5873msgstr "" 5874 5875#. type: =item 5876#: lib/Locale/Po4a/Po.pm:49 lib/Locale/Po4a/Po.pm:79 5877#: lib/Locale/Po4a/TransTractor.pm:120 lib/Locale/Po4a/Xml.pm:14 5878msgid "B<wrap>" 5879msgstr "" 5880 5881#. type: textblock 5882#: lib/Locale/Po4a/Po.pm:50 5883msgid "" 5884"boolean indicating whether we can consider that whitespaces in string are " 5885"not important. If yes, the function canonizes the string before looking for " 5886"a translation, and wraps the result." 5887msgstr "" 5888 5889#. type: =item 5890#: lib/Locale/Po4a/Po.pm:51 lib/Locale/Po4a/Po.pm:82 5891#: lib/Locale/Po4a/TransTractor.pm:122 5892msgid "B<wrapcol>" 5893msgstr "" 5894 5895#. type: textblock 5896#: lib/Locale/Po4a/Po.pm:52 lib/Locale/Po4a/Po.pm:83 5897#: lib/Locale/Po4a/TransTractor.pm:123 5898msgid "the column at which we should wrap (default: 76)." 5899msgstr "" 5900 5901#. type: =item 5902#: lib/Locale/Po4a/Po.pm:53 5903msgid "stats_get()" 5904msgstr "" 5905 5906#. type: textblock 5907#: lib/Locale/Po4a/Po.pm:54 5908msgid "" 5909"Returns statistics about the hit ratio of gettext since the last time that " 5910"stats_clear() was called. Please note that it's not the same statistics than " 5911"the one printed by msgfmt --statistic. Here, it's statistics about recent " 5912"usage of the PO file, while msgfmt reports the status of the file. Example " 5913"of use:" 5914msgstr "" 5915 5916#. type: verbatim 5917#: lib/Locale/Po4a/Po.pm:55 5918#, no-wrap 5919msgid "" 5920" [some use of the PO file to translate stuff]\n" 5921"\n" 5922msgstr "" 5923 5924#. type: verbatim 5925#: lib/Locale/Po4a/Po.pm:56 5926#, no-wrap 5927msgid "" 5928" ($percent,$hit,$queries) = $pofile->stats_get();\n" 5929" print \"So far, we found translations for $percent\\% ($hit of " 5930"$queries) of strings.\\n\";\n" 5931"\n" 5932msgstr "" 5933 5934#. type: =item 5935#: lib/Locale/Po4a/Po.pm:57 5936msgid "stats_clear()" 5937msgstr "" 5938 5939#. type: textblock 5940#: lib/Locale/Po4a/Po.pm:58 5941msgid "Clears the statistics about gettext hits." 5942msgstr "" 5943 5944#. type: =head1 5945#: lib/Locale/Po4a/Po.pm:59 5946msgid "Functions to build a message catalog" 5947msgstr "" 5948 5949#. type: =item 5950#: lib/Locale/Po4a/Po.pm:60 5951msgid "push(%)" 5952msgstr "" 5953 5954#. type: textblock 5955#: lib/Locale/Po4a/Po.pm:61 5956msgid "" 5957"Push a new entry at the end of the current catalog. The arguments should " 5958"form a hash table. The valid keys are:" 5959msgstr "" 5960 5961#. type: =item 5962#: lib/Locale/Po4a/Po.pm:62 5963msgid "B<msgid>" 5964msgstr "" 5965 5966#. type: textblock 5967#: lib/Locale/Po4a/Po.pm:63 5968msgid "the string in original language." 5969msgstr "" 5970 5971#. type: =item 5972#: lib/Locale/Po4a/Po.pm:64 5973msgid "B<msgstr>" 5974msgstr "" 5975 5976#. type: textblock 5977#: lib/Locale/Po4a/Po.pm:65 5978msgid "the translation." 5979msgstr "" 5980 5981#. type: =item 5982#: lib/Locale/Po4a/Po.pm:66 5983msgid "B<reference>" 5984msgstr "" 5985 5986#. type: textblock 5987#: lib/Locale/Po4a/Po.pm:67 5988msgid "" 5989"an indication of where this string was found. Example: file.c:46 (meaning in " 5990"'file.c' at line 46). It can be a space-separated list in case of multiple " 5991"occurrences." 5992msgstr "" 5993 5994#. type: =item 5995#: lib/Locale/Po4a/Po.pm:68 lib/Locale/Po4a/TransTractor.pm:124 5996msgid "B<comment>" 5997msgstr "" 5998 5999#. type: textblock 6000#: lib/Locale/Po4a/Po.pm:69 6001msgid "a comment added here manually (by the translators). The format here is free." 6002msgstr "" 6003 6004#. type: =item 6005#: lib/Locale/Po4a/Po.pm:70 6006msgid "B<automatic>" 6007msgstr "" 6008 6009#. type: textblock 6010#: lib/Locale/Po4a/Po.pm:71 6011msgid "" 6012"a comment which was automatically added by the string extraction " 6013"program. See the B<--add-comments> option of the B<xgettext> program for " 6014"more information." 6015msgstr "" 6016 6017#. type: =item 6018#: lib/Locale/Po4a/Po.pm:72 6019msgid "B<flags>" 6020msgstr "" 6021 6022#. type: textblock 6023#: lib/Locale/Po4a/Po.pm:73 6024msgid "space-separated list of all defined flags for this entry." 6025msgstr "" 6026 6027#. type: textblock 6028#: lib/Locale/Po4a/Po.pm:74 6029msgid "" 6030"Valid flags are: B<c-text>, B<python-text>, B<lisp-text>, B<elisp-text>, " 6031"B<librep-text>, B<smalltalk-text>, B<java-text>, B<awk-text>, " 6032"B<object-pascal-text>, B<ycp-text>, B<tcl-text>, B<wrap>, B<no-wrap> and " 6033"B<fuzzy>." 6034msgstr "" 6035 6036#. type: textblock 6037#: lib/Locale/Po4a/Po.pm:75 6038msgid "See the gettext documentation for their meaning." 6039msgstr "" 6040 6041#. type: =item 6042#: lib/Locale/Po4a/Po.pm:76 6043msgid "B<type>" 6044msgstr "" 6045 6046#. type: textblock 6047#: lib/Locale/Po4a/Po.pm:77 6048msgid "" 6049"this is mostly an internal argument: it is used while gettextizing " 6050"documents. The idea here is to parse both the original and the translation " 6051"into a PO object, and merge them, using one's msgid as msgid and the other's " 6052"msgid as msgstr. To make sure that things get ok, each msgid in PO objects " 6053"are given a type, based on their structure (like \"chapt\", \"sect1\", \"p\" " 6054"and so on in DocBook). If the types of strings are not the same, that means " 6055"that both files do not share the same structure, and the process reports an " 6056"error." 6057msgstr "" 6058 6059#. type: textblock 6060#: lib/Locale/Po4a/Po.pm:78 6061msgid "" 6062"This information is written as automatic comment in the PO file since this " 6063"gives to translators some context about the strings to translate." 6064msgstr "" 6065 6066#. type: textblock 6067#: lib/Locale/Po4a/Po.pm:80 6068msgid "" 6069"boolean indicating whether whitespaces can be mangled in cosmetic " 6070"reformattings. If true, the string is canonized before use." 6071msgstr "" 6072 6073#. type: textblock 6074#: lib/Locale/Po4a/Po.pm:81 6075msgid "" 6076"This information is written to the PO file using the B<wrap> or B<no-wrap> " 6077"flag." 6078msgstr "" 6079 6080#. type: textblock 6081#: lib/Locale/Po4a/Po.pm:84 6082msgid "This information is not written to the PO file." 6083msgstr "" 6084 6085#. type: =head1 6086#: lib/Locale/Po4a/Po.pm:85 6087msgid "Miscellaneous functions" 6088msgstr "" 6089 6090#. type: =item 6091#: lib/Locale/Po4a/Po.pm:86 6092msgid "count_entries()" 6093msgstr "" 6094 6095#. type: textblock 6096#: lib/Locale/Po4a/Po.pm:87 6097msgid "Returns the number of entries in the catalog (without the header)." 6098msgstr "" 6099 6100#. type: =item 6101#: lib/Locale/Po4a/Po.pm:88 6102msgid "count_entries_doc()" 6103msgstr "" 6104 6105#. type: textblock 6106#: lib/Locale/Po4a/Po.pm:89 6107msgid "" 6108"Returns the number of entries in document. If a string appears multiple " 6109"times in the document, it will be counted multiple times." 6110msgstr "" 6111 6112#. type: =item 6113#: lib/Locale/Po4a/Po.pm:90 6114msgid "equals_msgid(po)" 6115msgstr "" 6116 6117#. type: textblock 6118#: lib/Locale/Po4a/Po.pm:91 6119msgid "" 6120"Returns ($uptodate, $diagnostic) with $uptodate indicating whether all msgid " 6121"of the current po file are also present in the one passed as parameter (all " 6122"other fields are ignored in the file comparison). Informally, if $uptodate " 6123"returns false, then the po files would be changed when going through " 6124"B<po4a-updatepo>." 6125msgstr "" 6126 6127#. type: textblock 6128#: lib/Locale/Po4a/Po.pm:92 6129msgid "" 6130"If $uptodate is false, then $diagnostic contains a diagnostic of why this is " 6131"so." 6132msgstr "" 6133 6134#. type: =item 6135#: lib/Locale/Po4a/Po.pm:93 6136msgid "msgid($)" 6137msgstr "" 6138 6139#. type: textblock 6140#: lib/Locale/Po4a/Po.pm:94 6141msgid "Returns the msgid of the given number." 6142msgstr "" 6143 6144#. type: =item 6145#: lib/Locale/Po4a/Po.pm:95 6146msgid "msgid_doc($)" 6147msgstr "" 6148 6149#. type: textblock 6150#: lib/Locale/Po4a/Po.pm:96 6151msgid "Returns the msgid with the given position in the document." 6152msgstr "" 6153 6154#. type: =item 6155#: lib/Locale/Po4a/Po.pm:97 6156msgid "get_charset()" 6157msgstr "" 6158 6159#. type: textblock 6160#: lib/Locale/Po4a/Po.pm:98 6161msgid "" 6162"Returns the character set specified in the PO header. If it hasn't been set, " 6163"it will return \"UTF-8\"." 6164msgstr "" 6165 6166#. type: =item 6167#: lib/Locale/Po4a/Po.pm:99 6168msgid "set_charset($)" 6169msgstr "" 6170 6171#. type: textblock 6172#: lib/Locale/Po4a/Po.pm:100 6173msgid "" 6174"This sets the character set of the PO header to the value specified in its " 6175"first argument. If you never call this function (and no file with a " 6176"specified character set is read), the default value is left to " 6177"\"UTF-8\". This value doesn't change the behavior of this module, it's just " 6178"used to fill that field in the header, and to return it in get_charset()." 6179msgstr "" 6180 6181#. type: textblock 6182#: lib/Locale/Po4a/Pod.pm:2 6183msgid "Locale::Po4a::Pod - convert POD data from/to PO files" 6184msgstr "" 6185 6186#. type: verbatim 6187#: lib/Locale/Po4a/Pod.pm:4 6188#, no-wrap 6189msgid "" 6190" use Locale::Po4a::Pod;\n" 6191" my $parser = Locale::Po4a::Pod->new (sentence => 0, width => 78);\n" 6192"\n" 6193msgstr "" 6194 6195#. type: verbatim 6196#: lib/Locale/Po4a/Pod.pm:5 6197#, no-wrap 6198msgid "" 6199" # Read POD from STDIN and write to STDOUT.\n" 6200" $parser->parse_from_filehandle;\n" 6201"\n" 6202msgstr "" 6203 6204#. type: verbatim 6205#: lib/Locale/Po4a/Pod.pm:6 6206#, no-wrap 6207msgid "" 6208" # Read POD from file.pod and write to file.txt.\n" 6209" $parser->parse_from_file ('file.pod', 'file.txt');\n" 6210"\n" 6211msgstr "" 6212 6213#. type: textblock 6214#: lib/Locale/Po4a/Pod.pm:8 6215msgid "" 6216"Locale::Po4a::Pod is a module to help the translation of documentation in " 6217"the POD format (the preferred language for documenting Perl) into other " 6218"[human] languages." 6219msgstr "" 6220 6221#. type: textblock 6222#: lib/Locale/Po4a/Pod.pm:10 6223msgid "" 6224"I think that this module is rock stable, and there is only one known bug " 6225"with F</usr/lib/perl5/Tk/MainWindow.pod> (and some other pages, see below) " 6226"which contains:" 6227msgstr "" 6228 6229#. type: verbatim 6230#: lib/Locale/Po4a/Pod.pm:11 6231#, no-wrap 6232msgid "" 6233" C<\" #n\">\n" 6234"\n" 6235msgstr "" 6236 6237#. type: textblock 6238#: lib/Locale/Po4a/Pod.pm:12 6239msgid "" 6240"Lack of luck, in the po4a version, this was split on the space by the " 6241"wrapping. As result, in the original version, the man page contains" 6242msgstr "" 6243 6244#. type: verbatim 6245#: lib/Locale/Po4a/Pod.pm:13 6246#, no-wrap 6247msgid "" 6248" \" #n\"\n" 6249"\n" 6250msgstr "" 6251 6252#. type: textblock 6253#: lib/Locale/Po4a/Pod.pm:14 6254msgid "and mine contains" 6255msgstr "" 6256 6257#. type: verbatim 6258#: lib/Locale/Po4a/Pod.pm:15 6259#, no-wrap 6260msgid "" 6261" \"\" #n\"\"\n" 6262"\n" 6263msgstr "" 6264 6265#. type: textblock 6266#: lib/Locale/Po4a/Pod.pm:16 6267msgid "which is logic since CE<lt>foobarE<gt> is rewritten \"foobar\"." 6268msgstr "" 6269 6270#. type: textblock 6271#: lib/Locale/Po4a/Pod.pm:17 6272msgid "" 6273"Complete list of pages having this problem on my box (from 564 pages; note " 6274"that it depends on the chosen wrapping column): " 6275"/usr/lib/perl5/Tk/MainWindow.pod /usr/share/perl/5.8.0/overload.pod " 6276"/usr/share/perl/5.8.0/pod/perlapi.pod " 6277"/usr/share/perl/5.8.0/pod/perldelta.pod " 6278"/usr/share/perl/5.8.0/pod/perlfaq5.pod /usr/share/perl/5.8.0/pod/perlpod.pod " 6279"/usr/share/perl/5.8.0/pod/perlre.pod /usr/share/perl/5.8.0/pod/perlretut.pod" 6280msgstr "" 6281 6282#. type: =head1 6283#: lib/Locale/Po4a/Pod.pm:18 6284msgid "INTERNALS" 6285msgstr "" 6286 6287#. type: textblock 6288#: lib/Locale/Po4a/Pod.pm:19 6289msgid "" 6290"As a derived class from Pod::Parser, Locale::Po4a::Pod supports the same " 6291"methods and interfaces. See L<Pod::Parser> for all the details; briefly, " 6292"one creates a new parser with C<< Locale::Po4a::Pod->new() >> and then calls " 6293"either parse_from_filehandle() or parse_from_file()." 6294msgstr "" 6295 6296#. type: textblock 6297#: lib/Locale/Po4a/Pod.pm:20 6298msgid "" 6299"new() can take options, in the form of key/value pairs, that control the " 6300"behavior of the parser. The recognized options common to all Pod::Parser " 6301"children are:" 6302msgstr "" 6303 6304#. type: =item 6305#: lib/Locale/Po4a/Pod.pm:21 6306msgid "B<alt>" 6307msgstr "" 6308 6309#. type: textblock 6310#: lib/Locale/Po4a/Pod.pm:22 6311msgid "" 6312"If set to a true value, selects an alternate output format that, among other " 6313"things, uses a different heading style and marks B<=item> entries with a " 6314"colon in the left margin. Defaults to false." 6315msgstr "" 6316 6317#. type: =item 6318#: lib/Locale/Po4a/Pod.pm:23 6319msgid "B<code>" 6320msgstr "" 6321 6322#. type: textblock 6323#: lib/Locale/Po4a/Pod.pm:24 6324msgid "" 6325"If set to a true value, the non-POD parts of the input file will be included " 6326"in the output. Useful for viewing code documented with POD blocks with the " 6327"POD rendered and the code left intact." 6328msgstr "" 6329 6330#. type: =item 6331#: lib/Locale/Po4a/Pod.pm:25 lib/Locale/Po4a/Sgml.pm:16 6332msgid "B<indent>" 6333msgstr "" 6334 6335#. type: textblock 6336#: lib/Locale/Po4a/Pod.pm:26 6337msgid "" 6338"The number of spaces to indent regular text, and the default indentation for " 6339"B<=over> blocks. Defaults to 4." 6340msgstr "" 6341 6342#. type: =item 6343#: lib/Locale/Po4a/Pod.pm:27 6344msgid "B<loose>" 6345msgstr "" 6346 6347#. type: textblock 6348#: lib/Locale/Po4a/Pod.pm:28 6349msgid "" 6350"If set to a true value, a blank line is printed after a B<=head1> heading. " 6351"If set to false (the default), no blank line is printed after B<=head1>, " 6352"although one is still printed after B<=head2>. This is the default because " 6353"it's the expected formatting for manual pages; if you're formatting " 6354"arbitrary text documents, setting this to true may result in more pleasing " 6355"output." 6356msgstr "" 6357 6358#. type: =item 6359#: lib/Locale/Po4a/Pod.pm:29 6360msgid "B<quotes>" 6361msgstr "" 6362 6363#. type: textblock 6364#: lib/Locale/Po4a/Pod.pm:30 6365msgid "" 6366"Sets the quote marks used to surround CE<lt>> text. If the value is a " 6367"single character, it is used as both the left and right quote; if it is two " 6368"characters, the first character is used as the left quote and the second as " 6369"the right quote; and if it is four characters, the first two are used as the " 6370"left quote and the second two as the right quote." 6371msgstr "" 6372 6373#. type: textblock 6374#: lib/Locale/Po4a/Pod.pm:31 6375msgid "" 6376"This may also be set to the special value B<none>, in which case no quote " 6377"marks are added around CE<lt>> text." 6378msgstr "" 6379 6380#. type: =item 6381#: lib/Locale/Po4a/Pod.pm:32 6382msgid "B<sentence>" 6383msgstr "" 6384 6385#. type: textblock 6386#: lib/Locale/Po4a/Pod.pm:33 6387msgid "" 6388"If set to a true value, Locale::Po4a::Pod will assume that each sentence " 6389"ends in two spaces, and will try to preserve that spacing. If set to false, " 6390"all consecutive whitespace in non-verbatim paragraphs is compressed into a " 6391"single space. Defaults to true." 6392msgstr "" 6393 6394#. type: =item 6395#: lib/Locale/Po4a/Pod.pm:34 6396msgid "B<width>" 6397msgstr "" 6398 6399#. type: textblock 6400#: lib/Locale/Po4a/Pod.pm:35 6401msgid "The column at which to wrap text on the right-hand side. Defaults to 76." 6402msgstr "" 6403 6404#. type: textblock 6405#: lib/Locale/Po4a/Pod.pm:37 6406msgid "" 6407"L<Pod::Parser>, L<Locale::Po4a::Man(3pm)>, " 6408"L<Locale::Po4a::TransTractor(3pm)>, L<po4a(7)|po4a.7>" 6409msgstr "" 6410 6411#. type: textblock 6412#: lib/Locale/Po4a/Sgml.pm:2 6413msgid "Locale::Po4a::Sgml - convert SGML documents from/to PO files" 6414msgstr "" 6415 6416#. type: textblock 6417#: lib/Locale/Po4a/Sgml.pm:5 6418msgid "" 6419"Locale::Po4a::Sgml is a module to help the translation of documentation in " 6420"the SGML format into other [human] languages." 6421msgstr "" 6422 6423#. type: textblock 6424#: lib/Locale/Po4a/Sgml.pm:6 6425msgid "" 6426"This module uses B<onsgmls>(1) to parse the SGML files. Make sure it is " 6427"installed. Also make sure that the DTD of the SGML files are installed in " 6428"the system." 6429msgstr "" 6430 6431#. type: textblock 6432#: lib/Locale/Po4a/Sgml.pm:9 6433msgid "" 6434"Space separated list of keywords indicating which part you want to " 6435"debug. Possible values are: tag, generic, entities and refs." 6436msgstr "" 6437 6438#. type: textblock 6439#: lib/Locale/Po4a/Sgml.pm:11 6440msgid "Give more information about what's going on." 6441msgstr "" 6442 6443#. type: =item 6444#: lib/Locale/Po4a/Sgml.pm:12 lib/Locale/Po4a/TeX.pm:60 6445msgid "B<translate>" 6446msgstr "" 6447 6448#. type: textblock 6449#: lib/Locale/Po4a/Sgml.pm:13 6450msgid "" 6451"Space separated list of extra tags (beside the DTD provided ones) whose " 6452"content should form an extra msgid." 6453msgstr "" 6454 6455#. type: =item 6456#: lib/Locale/Po4a/Sgml.pm:14 6457msgid "B<section>" 6458msgstr "" 6459 6460#. type: textblock 6461#: lib/Locale/Po4a/Sgml.pm:15 6462msgid "" 6463"Space separated list of extra tags (beside the DTD provided ones) " 6464"containing other tags, some of them being of category B<translate>." 6465msgstr "" 6466 6467#. type: textblock 6468#: lib/Locale/Po4a/Sgml.pm:17 6469msgid "Space separated list of tags which increase the indentation level." 6470msgstr "" 6471 6472#. type: =item 6473#: lib/Locale/Po4a/Sgml.pm:18 lib/Locale/Po4a/TeX.pm:23 6474#: lib/Locale/Po4a/Text.pm:19 6475msgid "B<verbatim>" 6476msgstr "" 6477 6478#. type: textblock 6479#: lib/Locale/Po4a/Sgml.pm:19 6480msgid "" 6481"The layout within those tags should not be changed. The paragraph won't get " 6482"wrapped, and no extra indentation space or new line will be added for " 6483"cosmetic purpose." 6484msgstr "" 6485 6486#. type: =item 6487#: lib/Locale/Po4a/Sgml.pm:20 6488msgid "B<empty>" 6489msgstr "" 6490 6491#. type: textblock 6492#: lib/Locale/Po4a/Sgml.pm:21 6493msgid "Tags not needing to be closed." 6494msgstr "" 6495 6496#. type: =item 6497#: lib/Locale/Po4a/Sgml.pm:22 6498msgid "B<ignore>" 6499msgstr "" 6500 6501#. type: textblock 6502#: lib/Locale/Po4a/Sgml.pm:23 6503msgid "" 6504"Tags ignored and considered as plain char data by po4a. That is to say that " 6505"they can be part of an msgid. For example, E<lt>bE<gt> is a good candidate " 6506"for this category since putting it in the translate section would create " 6507"msgids not being whole sentences, which is bad." 6508msgstr "" 6509 6510#. type: =item 6511#: lib/Locale/Po4a/Sgml.pm:24 lib/Locale/Po4a/Xml.pm:48 6512msgid "B<attributes>" 6513msgstr "" 6514 6515#. type: textblock 6516#: lib/Locale/Po4a/Sgml.pm:25 6517msgid "" 6518"A space separated list of attributes that need to be translated. You can " 6519"specify the attributes by their name (for example, \"lang\"), but you can " 6520"also prefix it with a tag hierarchy, to specify that this attribute will " 6521"only be translated when it is into the specified tag. For example: " 6522"E<lt>bbbE<gt>E<lt>aaaE<gt>lang specifies that the lang attribute will only " 6523"be translated if it is in an E<lt>aaaE<gt> tag, which is in a E<lt>bbbE<gt> " 6524"tag. The tag names are actually regular expressions so you can also write " 6525"things like E<lt>aaa|bbbbE<gt>lang to only translate lang attributes that " 6526"are in an E<lt>aaaE<gt> or a E<lt>bbbE<gt> tag." 6527msgstr "" 6528 6529#. type: =item 6530#: lib/Locale/Po4a/Sgml.pm:26 6531msgid "B<qualify>" 6532msgstr "" 6533 6534#. type: textblock 6535#: lib/Locale/Po4a/Sgml.pm:27 6536msgid "" 6537"A space separated list of attributes for which the translation must be " 6538"qualified by the attribute name. Note that this setting automatically adds " 6539"the given attribute into the 'attributes' list too." 6540msgstr "" 6541 6542#. type: =item 6543#: lib/Locale/Po4a/Sgml.pm:28 6544msgid "B<force>" 6545msgstr "" 6546 6547#. type: textblock 6548#: lib/Locale/Po4a/Sgml.pm:29 6549msgid "" 6550"Proceed even if the DTD is unknown or if onsgmls finds errors in the input " 6551"file." 6552msgstr "" 6553 6554#. type: =item 6555#: lib/Locale/Po4a/Sgml.pm:30 6556msgid "B<include-all>" 6557msgstr "" 6558 6559#. type: textblock 6560#: lib/Locale/Po4a/Sgml.pm:31 6561msgid "" 6562"By default, msgids containing only one entity (like '&version;') are skipped " 6563"for the translator comfort. Activating this option prevents this " 6564"optimisation. It can be useful if the document contains a construction like " 6565"\"<title>Á</title>\", even if I doubt such things to ever happen..." 6566msgstr "" 6567 6568#. type: =item 6569#: lib/Locale/Po4a/Sgml.pm:32 6570msgid "B<ignore-inclusion>" 6571msgstr "" 6572 6573#. type: textblock 6574#: lib/Locale/Po4a/Sgml.pm:33 6575msgid "" 6576"Space separated list of entities that won't be inlined. Use this option " 6577"with caution: it may cause onsgmls (used internally) to add tags and render " 6578"the output document invalid." 6579msgstr "" 6580 6581#. type: textblock 6582#: lib/Locale/Po4a/Sgml.pm:35 6583msgid "" 6584"The result is perfect. I.e., the generated documents are exactly the " 6585"same. But there are still some problems:" 6586msgstr "" 6587 6588#. type: textblock 6589#: lib/Locale/Po4a/Sgml.pm:37 6590msgid "" 6591"The error output of onsgmls is redirected to /dev/null by default, which is " 6592"clearly bad. I don't know how to avoid that." 6593msgstr "" 6594 6595#. type: textblock 6596#: lib/Locale/Po4a/Sgml.pm:38 6597msgid "" 6598"The problem is that I have to \"protect\" the conditional inclusions " 6599"(i.e. the C<E<lt>! [ %foo [> and C<]]E<gt>> stuff) from onsgmls. Otherwise " 6600"onsgmls eats them, and I don't know how to restore them in the final " 6601"document. To prevent that, I rewrite them to C<{PO4A-beg-foo}> and " 6602"C<{PO4A-end}>." 6603msgstr "" 6604 6605#. type: textblock 6606#: lib/Locale/Po4a/Sgml.pm:39 6607msgid "" 6608"The problem with this is that the C<{PO4A-end}> and such I add are invalid " 6609"in the document (not in a E<lt>pE<gt> tag or so)." 6610msgstr "" 6611 6612#. type: textblock 6613#: lib/Locale/Po4a/Sgml.pm:40 6614msgid "" 6615"If you want to view the onsgmls output, just add the following to your " 6616"command line (or po4a configuration line):" 6617msgstr "" 6618 6619#. type: verbatim 6620#: lib/Locale/Po4a/Sgml.pm:41 6621#, no-wrap 6622msgid "" 6623" -o debug=onsgmls\n" 6624"\n" 6625msgstr "" 6626 6627#. type: textblock 6628#: lib/Locale/Po4a/Sgml.pm:43 6629msgid "" 6630"It does work only with the DebianDoc and DocBook DTD. Adding support for a " 6631"new DTD should be very easy. The mechanism is the same for every DTD, you " 6632"just have to give a list of the existing tags and some of their " 6633"characteristics." 6634msgstr "" 6635 6636#. type: textblock 6637#: lib/Locale/Po4a/Sgml.pm:44 6638msgid "" 6639"I agree, this needs some more documentation, but it is still considered as " 6640"beta, and I hate to document stuff which may/will change." 6641msgstr "" 6642 6643#. type: textblock 6644#: lib/Locale/Po4a/Sgml.pm:46 6645msgid "" 6646"Warning, support for DTDs is quite experimental. I did not read any " 6647"reference manual to find the definition of every tag. I did add tag " 6648"definition to the module 'till it works for some documents I found on the " 6649"net. If your document use more tags than mine, it won't work. But as I said " 6650"above, fixing that should be quite easy." 6651msgstr "" 6652 6653#. type: textblock 6654#: lib/Locale/Po4a/Sgml.pm:47 6655msgid "" 6656"I did test DocBook against the SAG (System Administrator Guide) only, but " 6657"this document is quite big, and should use most of the DocBook " 6658"specificities." 6659msgstr "" 6660 6661#. type: textblock 6662#: lib/Locale/Po4a/Sgml.pm:48 6663msgid "For DebianDoc, I tested some of the manuals from the DDP, but not all yet." 6664msgstr "" 6665 6666#. type: textblock 6667#: lib/Locale/Po4a/Sgml.pm:50 6668msgid "" 6669"In case of file inclusion, string reference of messages in PO files " 6670"(i.e. lines like C<#: en/titletoc.sgml:9460>) will be wrong." 6671msgstr "" 6672 6673#. type: textblock 6674#: lib/Locale/Po4a/Sgml.pm:51 6675msgid "" 6676"This is because I preprocess the file to protect the conditional inclusion " 6677"(i.e. the C<E<lt>! [ %foo [> and C<]]E<gt>> stuff) and some entities (like " 6678"&version;) from onsgmls because I want them verbatim to the generated " 6679"document. For that, I make a temp copy of the input file and do all the " 6680"changes I want to this before passing it to onsgmls for parsing." 6681msgstr "" 6682 6683#. type: textblock 6684#: lib/Locale/Po4a/Sgml.pm:52 6685msgid "" 6686"So that it works, I replace the entities asking for a file inclusion by the " 6687"content of the given file (so that I can protect what needs to be in a " 6688"subfile also). But nothing is done so far to correct the references (i.e., " 6689"filename and line number) afterward. I'm not sure what the best thing to do " 6690"is." 6691msgstr "" 6692 6693#. type: textblock 6694#: lib/Locale/Po4a/Sgml.pm:54 6695msgid "" 6696"This module is an adapted version of sgmlspl (SGML postprocessor for the " 6697"ONSGMLS parser) which was:" 6698msgstr "" 6699 6700#. type: verbatim 6701#: lib/Locale/Po4a/Sgml.pm:55 6702#, no-wrap 6703msgid "" 6704" Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>\n" 6705"\n" 6706msgstr "" 6707 6708#. type: textblock 6709#: lib/Locale/Po4a/Sgml.pm:56 6710msgid "The adaptation for po4a was done by:" 6711msgstr "" 6712 6713#. type: verbatim 6714#: lib/Locale/Po4a/Sgml.pm:59 6715#, no-wrap 6716msgid "" 6717" Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>.\n" 6718" Copyright © 2002-2005 SPI, Inc.\n" 6719"\n" 6720msgstr "" 6721 6722#. type: textblock 6723#: lib/Locale/Po4a/TeX.pm:2 6724msgid "Locale::Po4a::TeX - convert TeX documents and derivates from/to PO files" 6725msgstr "" 6726 6727#. type: textblock 6728#: lib/Locale/Po4a/TeX.pm:5 6729msgid "" 6730"Locale::Po4a::TeX is a module to help the translation of TeX documents into " 6731"other [human] languages. It can also be used as a base to build modules for " 6732"TeX-based documents." 6733msgstr "" 6734 6735#. type: textblock 6736#: lib/Locale/Po4a/TeX.pm:6 6737msgid "" 6738"Users should probably use the LaTeX module, which inherits from the TeX " 6739"module and contains the definitions of common LaTeX commands." 6740msgstr "" 6741 6742#. type: =head1 6743#: lib/Locale/Po4a/TeX.pm:7 6744msgid "TRANSLATING WITH PO4A::TEX" 6745msgstr "" 6746 6747#. type: textblock 6748#: lib/Locale/Po4a/TeX.pm:8 6749msgid "" 6750"This module can be used directly to handle generic TeX documents. This will " 6751"split your document in smaller blocks (paragraphs, verbatim blocks, or even " 6752"smaller like titles or indexes)." 6753msgstr "" 6754 6755#. type: textblock 6756#: lib/Locale/Po4a/TeX.pm:9 lib/Locale/Po4a/Xml.pm:8 6757msgid "" 6758"There are some options (described in the next section) that can customize " 6759"this behavior. If this doesn't fit to your document format you're " 6760"encouraged to write your own module derived from this, to describe your " 6761"format's details. See the section B<WRITING DERIVATE MODULES> below, for " 6762"the process description." 6763msgstr "" 6764 6765#. type: textblock 6766#: lib/Locale/Po4a/TeX.pm:10 6767msgid "" 6768"This module can also be customized by lines starting with \"% po4a:\" in the " 6769"TeX file. These customizations are described in the B<INLINE CUSTOMIZATION> " 6770"section." 6771msgstr "" 6772 6773#. type: textblock 6774#: lib/Locale/Po4a/TeX.pm:16 6775msgid "Comma-separated list of environments which should not be re-wrapped." 6776msgstr "" 6777 6778#. type: textblock 6779#: lib/Locale/Po4a/TeX.pm:17 6780msgid "" 6781"Note that there is a difference between verbatim and no_wrap environments. " 6782"There is no command and comments analysis in verbatim blocks." 6783msgstr "" 6784 6785#. type: textblock 6786#: lib/Locale/Po4a/TeX.pm:18 lib/Locale/Po4a/TeX.pm:25 6787#: lib/Locale/Po4a/TeX.pm:54 6788msgid "" 6789"If this environment was not already registered, po4a will consider that this " 6790"environment does not take any parameters." 6791msgstr "" 6792 6793#. type: =item 6794#: lib/Locale/Po4a/TeX.pm:19 6795msgid "B<exclude_include>" 6796msgstr "" 6797 6798#. type: textblock 6799#: lib/Locale/Po4a/TeX.pm:20 6800msgid "" 6801"Colon-separated list of files that should not be included by \\input and " 6802"\\include." 6803msgstr "" 6804 6805#. type: textblock 6806#: lib/Locale/Po4a/TeX.pm:24 6807msgid "Comma-separated list of environments which should be taken as verbatim." 6808msgstr "" 6809 6810#. type: textblock 6811#: lib/Locale/Po4a/TeX.pm:26 6812msgid "" 6813"Using these options permits to override the behaviour of the commands " 6814"defined in the default lists." 6815msgstr "" 6816 6817#. type: textblock 6818#: lib/Locale/Po4a/TeX.pm:28 6819msgid "" 6820"The TeX module can be customized with lines starting by B<% po4a:>. These " 6821"lines are interpreted as commands to the parser. The following commands are " 6822"recognized:" 6823msgstr "" 6824 6825#. type: =item 6826#: lib/Locale/Po4a/TeX.pm:29 6827msgid "B<% po4a: command> I<command1> B<alias> I<command2>" 6828msgstr "" 6829 6830#. type: textblock 6831#: lib/Locale/Po4a/TeX.pm:30 6832msgid "" 6833"Indicates that the arguments of the I<command1> command should be treated as " 6834"the arguments of the I<command2> command." 6835msgstr "" 6836 6837#. type: =item 6838#: lib/Locale/Po4a/TeX.pm:31 6839msgid "B<% po4a: command> I<command1> I<parameters>" 6840msgstr "" 6841 6842#. type: textblock 6843#: lib/Locale/Po4a/TeX.pm:32 6844msgid "" 6845"This permit to describe in detail the parameters of the I<command1> " 6846"command. This information will be used to check the number of arguments and " 6847"their types." 6848msgstr "" 6849 6850#. type: textblock 6851#: lib/Locale/Po4a/TeX.pm:33 6852msgid "You can precede the I<command1> command by" 6853msgstr "" 6854 6855#. type: =item 6856#: lib/Locale/Po4a/TeX.pm:34 6857msgid "an asterisk (B<*>)" 6858msgstr "" 6859 6860#. type: textblock 6861#: lib/Locale/Po4a/TeX.pm:35 6862msgid "" 6863"po4a will extract this command from paragraphs (if it is located at the " 6864"beginning or the end of a paragraph). The translators will then have to " 6865"translate the parameters that are marked as translatable." 6866msgstr "" 6867 6868#. type: =item 6869#: lib/Locale/Po4a/TeX.pm:36 6870msgid "a plus (B<+>)" 6871msgstr "" 6872 6873#. type: textblock 6874#: lib/Locale/Po4a/TeX.pm:37 6875msgid "" 6876"As for an asterisk, the command will be extracted if it appear at an " 6877"extremity of a block, but the parameters won't be translated separately. " 6878"The translator will have to translate the command concatenated to all its " 6879"parameters. This permits to keep more context, and is useful for commands " 6880"with small words in parameter, which can have multiple meanings (and " 6881"translations)." 6882msgstr "" 6883 6884#. type: textblock 6885#: lib/Locale/Po4a/TeX.pm:38 6886msgid "" 6887"Note: In this case you don't have to specify which parameters are " 6888"translatable, but po4a must know the type and number of parameters." 6889msgstr "" 6890 6891#. type: =item 6892#: lib/Locale/Po4a/TeX.pm:39 6893msgid "a minus (B<->)" 6894msgstr "" 6895 6896#. type: textblock 6897#: lib/Locale/Po4a/TeX.pm:40 6898msgid "" 6899"In this case, the command won't be extracted from any block. But if it " 6900"appears alone on a block, then only the parameters marked as translatable " 6901"will be presented to the translator. This is useful for font commands. " 6902"These commands should generally not be separated from their paragraph (to " 6903"keep the context), but there is no reason to annoy the translator with them " 6904"if a whole string is enclosed in such a command." 6905msgstr "" 6906 6907#. type: verbatim 6908#: lib/Locale/Po4a/TeX.pm:41 6909#, no-wrap 6910msgid "" 6911"The I<parameters> argument is a set of [] (to indicate an optional\n" 6912"argument) or {} (to indicate a mandatory argument).\n" 6913"You can place an underscore (_) between these brackets to indicate that\n" 6914"the parameter must be translated. For example:\n" 6915" % po4a: command *chapter [_]{_}\n" 6916"\n" 6917msgstr "" 6918 6919#. type: verbatim 6920#: lib/Locale/Po4a/TeX.pm:42 6921#, no-wrap 6922msgid "" 6923"This indicates that the chapter command has two parameters: an optional\n" 6924"(short title) and a mandatory one, which must both be translated.\n" 6925"If you want to specify that the href command has two mandatory parameters,\n" 6926"that you don't want to translate the URL (first parameter), and that you\n" 6927"don't want this command to be separated from its paragraph (which allow\n" 6928"the translator to move the link in the sentence), you can use:\n" 6929" % po4a: command -href {}{_}\n" 6930"\n" 6931msgstr "" 6932 6933#. type: textblock 6934#: lib/Locale/Po4a/TeX.pm:43 6935msgid "" 6936"In this case, the information indicating which arguments must be translated " 6937"is only used if a paragraph is only composed of this href command." 6938msgstr "" 6939 6940#. type: =item 6941#: lib/Locale/Po4a/TeX.pm:44 6942msgid "B<% po4a: environment> I<env> I<parameters>" 6943msgstr "" 6944 6945#. type: verbatim 6946#: lib/Locale/Po4a/TeX.pm:45 6947#, no-wrap 6948msgid "" 6949"This permits to define the parameters accepted by the I<env> environment.\n" 6950"This information is later used to check the number of arguments of the\n" 6951"\\begin command, and permit to specify which one must be translated.\n" 6952"The syntax of the I<parameters> argument is the same as described for the\n" 6953"others commands.\n" 6954"The first parameter of the \\begin command is the name of the environment.\n" 6955"This parameter must not be specified in the list of parameters. Here are\n" 6956"some examples:\n" 6957" % po4a: environment multicols {}\n" 6958" % po4a: environment equation\n" 6959"\n" 6960msgstr "" 6961 6962#. type: textblock 6963#: lib/Locale/Po4a/TeX.pm:46 6964msgid "" 6965"As for the commands, I<env> can be preceded by a plus (+) to indicate that " 6966"the \\begin command must be translated with all its arguments." 6967msgstr "" 6968 6969#. type: =item 6970#: lib/Locale/Po4a/TeX.pm:47 6971msgid "B<% po4a: separator> I<env> B<\">I<regex>B<\">" 6972msgstr "" 6973 6974#. type: textblock 6975#: lib/Locale/Po4a/TeX.pm:48 6976msgid "" 6977"Indicates that an environment should be split according to the given regular " 6978"expression." 6979msgstr "" 6980 6981#. type: textblock 6982#: lib/Locale/Po4a/TeX.pm:49 6983msgid "" 6984"The regular expression is delimited by quotes. It should not create any " 6985"backreference. You should use (?:) if you need a group. It may also need " 6986"some escapes." 6987msgstr "" 6988 6989#. type: textblock 6990#: lib/Locale/Po4a/TeX.pm:50 6991msgid "" 6992"For example, the LaTeX module uses the \"(?:&|\\\\\\\\)\" regular expression " 6993"to translate separately each cell of a table (lines are separated by '\\\\' " 6994"and cells by '&')." 6995msgstr "" 6996 6997#. type: textblock 6998#: lib/Locale/Po4a/TeX.pm:51 6999msgid "" 7000"The notion of environment is expended to the type displayed in the PO file. " 7001"This can be used to split on \"\\\\\\\\\" in the first mandatory argument of " 7002"the title command. In this case, the environment is title{#1}." 7003msgstr "" 7004 7005#. type: =item 7006#: lib/Locale/Po4a/TeX.pm:52 7007msgid "B<% po4a: verbatim environment> I<env>" 7008msgstr "" 7009 7010#. type: textblock 7011#: lib/Locale/Po4a/TeX.pm:53 7012msgid "" 7013"Indicate that I<env> is a verbatim environment. Comments and commands will " 7014"be ignored in this environment." 7015msgstr "" 7016 7017#. type: =head1 7018#: lib/Locale/Po4a/TeX.pm:55 7019msgid "WRITING DERIVATE MODULES" 7020msgstr "" 7021 7022#. type: =item 7023#: lib/Locale/Po4a/TeX.pm:56 7024msgid "B<pre_trans>" 7025msgstr "" 7026 7027#. type: =item 7028#: lib/Locale/Po4a/TeX.pm:57 7029msgid "B<post_trans>" 7030msgstr "" 7031 7032#. type: =item 7033#: lib/Locale/Po4a/TeX.pm:58 7034msgid "B<add_comment>" 7035msgstr "" 7036 7037#. type: textblock 7038#: lib/Locale/Po4a/TeX.pm:59 7039msgid "" 7040"Add a string as a comment to be added around the next translated element. " 7041"This is mostly useful to the texinfo module, as comments are automatically " 7042"handled in TeX." 7043msgstr "" 7044 7045#. type: textblock 7046#: lib/Locale/Po4a/TeX.pm:61 7047msgid "" 7048"Wrapper around Transtractor's translate, with pre- and post-processing " 7049"filters." 7050msgstr "" 7051 7052#. type: textblock 7053#: lib/Locale/Po4a/TeX.pm:62 7054msgid "" 7055"Comments of a paragraph are inserted as a PO comment for the first " 7056"translated string of this paragraph." 7057msgstr "" 7058 7059#. type: =item 7060#: lib/Locale/Po4a/TeX.pm:63 7061msgid "B<get_leading_command>($buffer)" 7062msgstr "" 7063 7064#. type: textblock 7065#: lib/Locale/Po4a/TeX.pm:64 7066msgid "This function returns:" 7067msgstr "" 7068 7069#. type: =item 7070#: lib/Locale/Po4a/TeX.pm:65 lib/Locale/Po4a/TeX.pm:93 7071msgid "A command name" 7072msgstr "" 7073 7074#. type: textblock 7075#: lib/Locale/Po4a/TeX.pm:66 7076msgid "" 7077"If no command is found at the beginning of the given buffer, this string " 7078"will be empty. Only commands that can be separated are considered. The " 7079"%separated_command hash contains the list of these commands." 7080msgstr "" 7081 7082#. type: =item 7083#: lib/Locale/Po4a/TeX.pm:67 lib/Locale/Po4a/TeX.pm:94 7084msgid "A variant" 7085msgstr "" 7086 7087#. type: textblock 7088#: lib/Locale/Po4a/TeX.pm:68 7089msgid "" 7090"This indicates if a variant is used. For example, an asterisk (*) can be " 7091"added at the end of sections command to specify that they should not be " 7092"numbered. In this case, this field will contain \"*\". If there is no " 7093"variant, the field is an empty string." 7094msgstr "" 7095 7096#. type: =item 7097#: lib/Locale/Po4a/TeX.pm:69 7098msgid "An array of tuples (type of argument, argument)" 7099msgstr "" 7100 7101#. type: textblock 7102#: lib/Locale/Po4a/TeX.pm:70 7103msgid "" 7104"The type of argument can be either '{' (for mandatory arguments) or '[' (for " 7105"optional arguments)." 7106msgstr "" 7107 7108#. type: =item 7109#: lib/Locale/Po4a/TeX.pm:71 7110msgid "The remaining buffer" 7111msgstr "" 7112 7113#. type: textblock 7114#: lib/Locale/Po4a/TeX.pm:72 7115msgid "" 7116"The rest of the buffer after the removal of this leading command and its " 7117"arguments. If no command is found, the original buffer is not touched and " 7118"returned in this field." 7119msgstr "" 7120 7121#. type: =item 7122#: lib/Locale/Po4a/TeX.pm:73 7123msgid "B<get_trailing_command>($buffer)" 7124msgstr "" 7125 7126#. type: textblock 7127#: lib/Locale/Po4a/TeX.pm:74 7128msgid "The same as B<get_leading_command>, but for commands at the end of a buffer." 7129msgstr "" 7130 7131#. type: =item 7132#: lib/Locale/Po4a/TeX.pm:75 7133msgid "B<translate_buffer>" 7134msgstr "" 7135 7136#. type: textblock 7137#: lib/Locale/Po4a/TeX.pm:76 7138msgid "" 7139"Recursively translate a buffer by separating leading and trailing commands " 7140"(those which should be translated separately) from the buffer." 7141msgstr "" 7142 7143#. type: textblock 7144#: lib/Locale/Po4a/TeX.pm:77 7145msgid "" 7146"If a function is defined in %translate_buffer_env for the current " 7147"environment, this function will be used to translate the buffer instead of " 7148"translate_buffer()." 7149msgstr "" 7150 7151#. type: =item 7152#: lib/Locale/Po4a/TeX.pm:78 7153msgid "B<read>" 7154msgstr "" 7155 7156#. type: textblock 7157#: lib/Locale/Po4a/TeX.pm:79 7158msgid "Overloads Transtractor's read()." 7159msgstr "" 7160 7161#. type: =item 7162#: lib/Locale/Po4a/TeX.pm:80 7163msgid "B<read_file>" 7164msgstr "" 7165 7166#. type: textblock 7167#: lib/Locale/Po4a/TeX.pm:81 7168msgid "" 7169"Recursively read a file, appending included files which are not listed in " 7170"the @exclude_include array. Included files are searched using the " 7171"B<kpsewhich> command from the Kpathsea library." 7172msgstr "" 7173 7174#. type: textblock 7175#: lib/Locale/Po4a/TeX.pm:82 7176msgid "" 7177"Except from the file inclusion part, it is a cut and paste from " 7178"Transtractor's read." 7179msgstr "" 7180 7181#. type: =item 7182#: lib/Locale/Po4a/TeX.pm:83 7183msgid "B<parse_definition_file>" 7184msgstr "" 7185 7186#. type: textblock 7187#: lib/Locale/Po4a/TeX.pm:84 7188msgid "" 7189"Subroutine for parsing a file with po4a directives (definitions for new " 7190"commands)." 7191msgstr "" 7192 7193#. type: =item 7194#: lib/Locale/Po4a/TeX.pm:85 7195msgid "B<parse_definition_line>" 7196msgstr "" 7197 7198#. type: textblock 7199#: lib/Locale/Po4a/TeX.pm:86 7200msgid "Parse a definition line of the form \"% po4a: \"." 7201msgstr "" 7202 7203#. type: textblock 7204#: lib/Locale/Po4a/TeX.pm:87 7205msgid "See the B<INLINE CUSTOMIZATION> section for more details." 7206msgstr "" 7207 7208#. type: =item 7209#: lib/Locale/Po4a/TeX.pm:88 7210msgid "B<is_closed>" 7211msgstr "" 7212 7213#. type: =item 7214#: lib/Locale/Po4a/TeX.pm:89 7215msgid "B<parse>" 7216msgstr "" 7217 7218#. type: =item 7219#: lib/Locale/Po4a/TeX.pm:90 7220msgid "B<docheader>" 7221msgstr "" 7222 7223#. type: =head1 7224#: lib/Locale/Po4a/TeX.pm:91 7225msgid "INTERNAL FUNCTIONS used to write derivated parsers" 7226msgstr "" 7227 7228#. type: textblock 7229#: lib/Locale/Po4a/TeX.pm:92 7230msgid "" 7231"Command and environment functions take the following arguments (in addition " 7232"to the $self object):" 7233msgstr "" 7234 7235#. type: =item 7236#: lib/Locale/Po4a/TeX.pm:95 7237msgid "An array of (type, argument) tuples" 7238msgstr "" 7239 7240#. type: =item 7241#: lib/Locale/Po4a/TeX.pm:96 7242msgid "The current environment" 7243msgstr "" 7244 7245#. type: textblock 7246#: lib/Locale/Po4a/TeX.pm:97 7247msgid "" 7248"The first 3 arguments are extracted by get_leading_command or " 7249"get_trailing_command." 7250msgstr "" 7251 7252#. type: textblock 7253#: lib/Locale/Po4a/TeX.pm:98 7254msgid "" 7255"Command and environment functions return the translation of the command with " 7256"its arguments and a new environment." 7257msgstr "" 7258 7259#. type: textblock 7260#: lib/Locale/Po4a/TeX.pm:99 7261msgid "" 7262"Environment functions are called when a \\begin command is found. They are " 7263"called with the \\begin command and its arguments." 7264msgstr "" 7265 7266#. type: textblock 7267#: lib/Locale/Po4a/TeX.pm:100 7268msgid "" 7269"The TeX module only proposes one command function and one environment " 7270"function: generic_command and generic_environment." 7271msgstr "" 7272 7273#. type: verbatim 7274#: lib/Locale/Po4a/TeX.pm:101 7275#, no-wrap 7276msgid "" 7277"generic_command uses the information specified by\n" 7278"register_generic_command or by adding definition to the TeX file:\n" 7279" % po4a: command I<command1> I<parameters>\n" 7280"\n" 7281msgstr "" 7282 7283#. type: verbatim 7284#: lib/Locale/Po4a/TeX.pm:102 7285#, no-wrap 7286msgid "" 7287"generic_environment uses the information specified by\n" 7288"register_generic_environment or by adding definition to the TeX file:\n" 7289" % po4a: environment I<env> I<parameters>\n" 7290"\n" 7291msgstr "" 7292 7293#. type: textblock 7294#: lib/Locale/Po4a/TeX.pm:103 7295msgid "" 7296"Both functions will only translate the parameters that were specified as " 7297"translatable (with a '_'). generic_environment will append the name of the " 7298"environment to the environment stack and generic_command will append the " 7299"name of the command followed by an identifier of the parameter (like {#7} or " 7300"[#2])." 7301msgstr "" 7302 7303#. type: textblock 7304#: lib/Locale/Po4a/TeX.pm:105 7305msgid "This module needs more tests." 7306msgstr "" 7307 7308#. type: textblock 7309#: lib/Locale/Po4a/TeX.pm:106 7310msgid "It was tested on a book and with the Python documentation." 7311msgstr "" 7312 7313#. type: =head1 7314#: lib/Locale/Po4a/TeX.pm:107 lib/Locale/Po4a/Xml.pm:180 7315msgid "TODO LIST" 7316msgstr "" 7317 7318#. type: =item 7319#: lib/Locale/Po4a/TeX.pm:108 7320msgid "Automatic detection of new commands" 7321msgstr "" 7322 7323#. type: textblock 7324#: lib/Locale/Po4a/TeX.pm:109 7325msgid "" 7326"The TeX module could parse the newcommand arguments and try to guess the " 7327"number of arguments, their type and whether or not they should be " 7328"translated." 7329msgstr "" 7330 7331#. type: =item 7332#: lib/Locale/Po4a/TeX.pm:110 7333msgid "Translation of the environment separator" 7334msgstr "" 7335 7336#. type: textblock 7337#: lib/Locale/Po4a/TeX.pm:111 7338msgid "" 7339"When \\item is used as an environment separator, the item argument is " 7340"attached to the following string." 7341msgstr "" 7342 7343#. type: =item 7344#: lib/Locale/Po4a/TeX.pm:112 7345msgid "Some commands should be added to the environment stack" 7346msgstr "" 7347 7348#. type: textblock 7349#: lib/Locale/Po4a/TeX.pm:113 7350msgid "" 7351"These commands should be specified by couples. This could allow to specify " 7352"commands beginning or ending a verbatim environment." 7353msgstr "" 7354 7355#. type: =item 7356#: lib/Locale/Po4a/TeX.pm:114 7357msgid "Others" 7358msgstr "" 7359 7360#. type: textblock 7361#: lib/Locale/Po4a/TeX.pm:115 7362msgid "Various other points are tagged TODO in the source." 7363msgstr "" 7364 7365#. type: =head1 7366#: lib/Locale/Po4a/TeX.pm:116 7367msgid "KNOWN BUGS" 7368msgstr "" 7369 7370#. type: textblock 7371#: lib/Locale/Po4a/TeX.pm:117 7372msgid "Various points are tagged FIXME in the source." 7373msgstr "" 7374 7375#. type: textblock 7376#: lib/Locale/Po4a/TeX.pm:119 7377msgid "" 7378"L<Locale::Po4a::LaTeX(3pm)|Locale::Po4a::LaTeX>, " 7379"L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, " 7380"L<po4a(7)|po4a.7>" 7381msgstr "" 7382 7383#. type: textblock 7384#: lib/Locale/Po4a/Texinfo.pm:2 7385msgid "" 7386"Locale::Po4a::Texinfo - convert Texinfo documents and derivates from/to PO " 7387"files" 7388msgstr "" 7389 7390#. type: textblock 7391#: lib/Locale/Po4a/Texinfo.pm:5 7392msgid "" 7393"Locale::Po4a::Texinfo is a module to help the translation of Texinfo " 7394"documents into other [human] languages." 7395msgstr "" 7396 7397#. type: textblock 7398#: lib/Locale/Po4a/Texinfo.pm:6 7399msgid "" 7400"This module contains the definitions of common Texinfo commands and " 7401"environments." 7402msgstr "" 7403 7404#. type: textblock 7405#: lib/Locale/Po4a/Texinfo.pm:7 7406msgid "" 7407"Only the comments starting with 'TRANSLATORS' are added to the PO files to " 7408"guide the translators." 7409msgstr "" 7410 7411#. type: textblock 7412#: lib/Locale/Po4a/Texinfo.pm:15 7413msgid "Copyright © 2004-2007 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>." 7414msgstr "" 7415 7416#. type: textblock 7417#: lib/Locale/Po4a/Text.pm:2 7418msgid "Locale::Po4a::Text - convert text documents from/to PO files" 7419msgstr "" 7420 7421#. type: textblock 7422#: lib/Locale/Po4a/Text.pm:5 7423msgid "" 7424"Locale::Po4a::Text is a module to help the translation of text documents " 7425"into other [human] languages." 7426msgstr "" 7427 7428#. type: textblock 7429#: lib/Locale/Po4a/Text.pm:6 7430msgid "" 7431"Paragraphs are split on empty lines (or lines containing only spaces or " 7432"tabulations)." 7433msgstr "" 7434 7435#. type: textblock 7436#: lib/Locale/Po4a/Text.pm:7 7437msgid "" 7438"If a paragraph contains a line starting by a space (or tabulation), this " 7439"paragraph won't be rewrapped." 7440msgstr "" 7441 7442#. type: =item 7443#: lib/Locale/Po4a/Text.pm:10 7444msgid "B<keyvalue>" 7445msgstr "" 7446 7447#. type: textblock 7448#: lib/Locale/Po4a/Text.pm:11 7449msgid "" 7450"Treat paragraphs that look like a key value pair as verbatim (with the " 7451"no-wrap flag in the PO file). Key value pairs are defined as a line " 7452"containing one or more non-colon and non-space characters followed by a " 7453"colon followed by at least one non-space character before the end of the " 7454"line." 7455msgstr "" 7456 7457#. type: =item 7458#: lib/Locale/Po4a/Text.pm:12 7459msgid "B<nobullets>" 7460msgstr "" 7461 7462#. type: textblock 7463#: lib/Locale/Po4a/Text.pm:13 7464msgid "Deactivate the detection of bullets." 7465msgstr "" 7466 7467#. type: textblock 7468#: lib/Locale/Po4a/Text.pm:14 7469msgid "" 7470"By default, when a bullet is detected, the bullet paragraph is not " 7471"considered as a verbatim paragraph (with the no-wrap flag in the PO " 7472"file). Instead, the corresponding paragraph is rewrapped in the translation." 7473msgstr "" 7474 7475#. type: =item 7476#: lib/Locale/Po4a/Text.pm:15 7477msgid "B<tabs=>I<mode>" 7478msgstr "" 7479 7480#. type: textblock 7481#: lib/Locale/Po4a/Text.pm:16 7482msgid "Specify how tabulations shall be handled. The I<mode> can be any of:" 7483msgstr "" 7484 7485#. type: =item 7486#: lib/Locale/Po4a/Text.pm:17 7487msgid "B<split>" 7488msgstr "" 7489 7490#. type: textblock 7491#: lib/Locale/Po4a/Text.pm:18 7492msgid "Lines with tabulations introduce breaks in the current paragraph." 7493msgstr "" 7494 7495#. type: textblock 7496#: lib/Locale/Po4a/Text.pm:20 7497msgid "Paragraph containing tabulations will not be re-wrapped." 7498msgstr "" 7499 7500#. type: textblock 7501#: lib/Locale/Po4a/Text.pm:21 7502msgid "By default, tabulations are considered as spaces." 7503msgstr "" 7504 7505#. type: =item 7506#: lib/Locale/Po4a/Text.pm:22 7507msgid "B<breaks=>I<regex>" 7508msgstr "" 7509 7510#. type: textblock 7511#: lib/Locale/Po4a/Text.pm:23 7512msgid "" 7513"A regular expression matching lines which introduce breaks. The regular " 7514"expression will be anchored so that the whole line must match." 7515msgstr "" 7516 7517#. type: =item 7518#: lib/Locale/Po4a/Text.pm:24 7519msgid "B<debianchangelog>" 7520msgstr "" 7521 7522#. type: textblock 7523#: lib/Locale/Po4a/Text.pm:25 7524msgid "" 7525"Handle the header and footer of released versions, which only contain non " 7526"translatable informations." 7527msgstr "" 7528 7529#. type: =item 7530#: lib/Locale/Po4a/Text.pm:26 7531msgid "B<fortunes>" 7532msgstr "" 7533 7534#. type: textblock 7535#: lib/Locale/Po4a/Text.pm:27 7536msgid "" 7537"Handle the fortunes format, which separate fortunes with a line which " 7538"consists in '%' or '%%', and use '%%' as the beginning of a comment." 7539msgstr "" 7540 7541#. type: =item 7542#: lib/Locale/Po4a/Text.pm:28 7543msgid "B<markdown>" 7544msgstr "" 7545 7546#. type: textblock 7547#: lib/Locale/Po4a/Text.pm:29 7548msgid "Handle some special markup in Markdown-formatted texts." 7549msgstr "" 7550 7551#. type: =item 7552#: lib/Locale/Po4a/Text.pm:30 7553msgid "B<yfm_keys> (markdown-only)" 7554msgstr "" 7555 7556#. type: =item 7557#: lib/Locale/Po4a/Text.pm:32 7558msgid "B<yfm_skip_array> (markdown-only)" 7559msgstr "" 7560 7561#. type: =item 7562#: lib/Locale/Po4a/Text.pm:34 7563msgid "B<control>[B<=>I<taglist>]" 7564msgstr "" 7565 7566#. type: textblock 7567#: lib/Locale/Po4a/Text.pm:35 7568msgid "" 7569"Handle control files. A comma-separated list of tags to be translated can " 7570"be provided." 7571msgstr "" 7572 7573#. type: =item 7574#: lib/Locale/Po4a/Text.pm:36 7575msgid "B<neverwrap>" 7576msgstr "" 7577 7578#. type: textblock 7579#: lib/Locale/Po4a/Text.pm:37 7580msgid "" 7581"Prevent po4a from wrapping any lines. This means that every content is " 7582"handled verbatim, even simple paragraphs." 7583msgstr "" 7584 7585#. type: textblock 7586#: lib/Locale/Po4a/Text.pm:39 7587msgid "Tested successfully on simple text files and NEWS.Debian files." 7588msgstr "" 7589 7590#. type: verbatim 7591#: lib/Locale/Po4a/Text.pm:43 7592#, no-wrap 7593msgid "" 7594" Copyright © 2005-2008 Nicolas FRANÇOIS " 7595"<nicolas.francois@centraliens.net>.\n" 7596"\n" 7597msgstr "" 7598 7599#. type: verbatim 7600#: lib/Locale/Po4a/Text.pm:44 7601#, no-wrap 7602msgid "" 7603" Copyright © 2008-2009, 2018 Jonas Smedegaard <dr@jones.dk>.\n" 7604" Copyright © 2020 Martin Quinson <mquinson#debian.org>.\n" 7605"\n" 7606msgstr "" 7607 7608#. type: textblock 7609#: lib/Locale/Po4a/TransTractor.pm:2 7610msgid "Locale::Po4a::TransTractor - generic trans(lator ex)tractor." 7611msgstr "" 7612 7613#. type: textblock 7614#: lib/Locale/Po4a/TransTractor.pm:5 7615msgid "" 7616"This class is the ancestor of every po4a parser used to parse a document, to " 7617"search translatable strings, to extract them to a PO file and to replace " 7618"them by their translation in the output document." 7619msgstr "" 7620 7621#. type: textblock 7622#: lib/Locale/Po4a/TransTractor.pm:6 7623msgid "More formally, it takes the following arguments as input:" 7624msgstr "" 7625 7626#. type: =item 7627#: lib/Locale/Po4a/TransTractor.pm:7 lib/Locale/Po4a/TransTractor.pm:9 7628#: lib/Locale/Po4a/TransTractor.pm:12 lib/Locale/Po4a/TransTractor.pm:14 7629#: lib/Locale/Po4a/TransTractor.pm:112 lib/Locale/Po4a/TransTractor.pm:114 7630#: lib/Locale/Po4a/TransTractor.pm:116 lib/Locale/Po4a/TransTractor.pm:127 7631#: lib/Locale/Po4a/TransTractor.pm:129 lib/Locale/Po4a/TransTractor.pm:131 7632#: lib/Locale/Po4a/TransTractor.pm:148 lib/Locale/Po4a/TransTractor.pm:150 7633#: lib/Locale/Po4a/TransTractor.pm:152 7634msgid "-" 7635msgstr "" 7636 7637#. type: textblock 7638#: lib/Locale/Po4a/TransTractor.pm:8 7639msgid "a document to translate;" 7640msgstr "" 7641 7642#. type: textblock 7643#: lib/Locale/Po4a/TransTractor.pm:10 7644msgid "a PO file containing the translations to use." 7645msgstr "" 7646 7647#. type: textblock 7648#: lib/Locale/Po4a/TransTractor.pm:11 7649msgid "As output, it produces:" 7650msgstr "" 7651 7652#. type: textblock 7653#: lib/Locale/Po4a/TransTractor.pm:13 7654msgid "" 7655"another PO file, resulting of the extraction of translatable strings from " 7656"the input document;" 7657msgstr "" 7658 7659#. type: textblock 7660#: lib/Locale/Po4a/TransTractor.pm:15 7661msgid "" 7662"a translated document, with the same structure than the one in input, but " 7663"with all translatable strings replaced with the translations found in the PO " 7664"file provided in input." 7665msgstr "" 7666 7667#. type: textblock 7668#: lib/Locale/Po4a/TransTractor.pm:16 7669msgid "Here is a graphical representation of this:" 7670msgstr "" 7671 7672#. type: verbatim 7673#: lib/Locale/Po4a/TransTractor.pm:17 7674#, no-wrap 7675msgid "" 7676" Input document --\\ /---> Output document\n" 7677" \\ / (translated)\n" 7678" +-> parse() function -----+\n" 7679" / \\\n" 7680" Input PO --------/ \\---> Output PO\n" 7681" (extracted)\n" 7682"\n" 7683msgstr "" 7684 7685#. type: =head1 7686#: lib/Locale/Po4a/TransTractor.pm:18 7687msgid "FUNCTIONS YOUR PARSER SHOULD OVERRIDE" 7688msgstr "" 7689 7690#. type: =item 7691#: lib/Locale/Po4a/TransTractor.pm:19 7692msgid "parse()" 7693msgstr "" 7694 7695#. type: textblock 7696#: lib/Locale/Po4a/TransTractor.pm:20 7697msgid "" 7698"This is where all the work takes place: the parsing of input documents, the " 7699"generation of output, and the extraction of the translatable strings. This " 7700"is pretty simple using the provided functions presented in the section " 7701"B<INTERNAL FUNCTIONS> below. See also the B<SYNOPSIS>, which presents an " 7702"example." 7703msgstr "" 7704 7705#. type: textblock 7706#: lib/Locale/Po4a/TransTractor.pm:21 7707msgid "" 7708"This function is called by the process() function below, but if you choose " 7709"to use the new() function, and to add content manually to your document, you " 7710"will have to call this function yourself." 7711msgstr "" 7712 7713#. type: =item 7714#: lib/Locale/Po4a/TransTractor.pm:22 7715msgid "docheader()" 7716msgstr "" 7717 7718#. type: textblock 7719#: lib/Locale/Po4a/TransTractor.pm:23 7720msgid "" 7721"This function returns the header we should add to the produced document, " 7722"quoted properly to be a comment in the target language. See the section " 7723"B<Educating developers about translations>, from L<po4a(7)|po4a.7>, for what " 7724"it is good for." 7725msgstr "" 7726 7727#. type: textblock 7728#: lib/Locale/Po4a/TransTractor.pm:25 7729msgid "" 7730"The following example parses a list of paragraphs beginning with " 7731"\"<p>\". For the sake of simplicity, we assume that the document is well " 7732"formatted, i.e. that '<p>' tags are the only tags present, and that this tag " 7733"is at the very beginning of each paragraph." 7734msgstr "" 7735 7736#. type: verbatim 7737#: lib/Locale/Po4a/TransTractor.pm:26 7738#, no-wrap 7739msgid "" 7740" sub parse {\n" 7741" my $self = shift;\n" 7742"\n" 7743msgstr "" 7744 7745#. type: verbatim 7746#: lib/Locale/Po4a/TransTractor.pm:27 7747#, no-wrap 7748msgid "" 7749" PARAGRAPH: while (1) {\n" 7750" my ($paragraph,$pararef)=(\"\",\"\");\n" 7751" my $first=1;\n" 7752" my ($line,$lref)=$self->shiftline();\n" 7753" while (defined($line)) {\n" 7754" if ($line =~ m/<p>/ && !$first--; ) {\n" 7755" # Not the first time we see <p>.\n" 7756" # Reput the current line in input,\n" 7757" # and put the built paragraph to output\n" 7758" $self->unshiftline($line,$lref);\n" 7759"\n" 7760msgstr "" 7761 7762#. type: verbatim 7763#: lib/Locale/Po4a/TransTractor.pm:28 7764#, no-wrap 7765msgid "" 7766" # Now that the document is formed, translate it:\n" 7767" # - Remove the leading tag\n" 7768" $paragraph =~ s/^<p>//s;\n" 7769"\n" 7770msgstr "" 7771 7772#. type: verbatim 7773#: lib/Locale/Po4a/TransTractor.pm:29 7774#, no-wrap 7775msgid "" 7776" # - push to output the leading tag (untranslated) and the\n" 7777" # rest of the paragraph (translated)\n" 7778" $self->pushline( \"<p>\"\n" 7779" . $self->translate($paragraph,$pararef)\n" 7780" );\n" 7781"\n" 7782msgstr "" 7783 7784#. type: verbatim 7785#: lib/Locale/Po4a/TransTractor.pm:30 7786#, no-wrap 7787msgid "" 7788" next PARAGRAPH;\n" 7789" } else {\n" 7790" # Append to the paragraph\n" 7791" $paragraph .= $line;\n" 7792" $pararef = $lref unless(length($pararef));\n" 7793" }\n" 7794"\n" 7795msgstr "" 7796 7797#. type: verbatim 7798#: lib/Locale/Po4a/TransTractor.pm:31 7799#, no-wrap 7800msgid "" 7801" # Reinit the loop\n" 7802" ($line,$lref)=$self->shiftline();\n" 7803" }\n" 7804" # Did not get a defined line? End of input file.\n" 7805" return;\n" 7806" }\n" 7807" }\n" 7808"\n" 7809msgstr "" 7810 7811#. type: textblock 7812#: lib/Locale/Po4a/TransTractor.pm:32 7813msgid "" 7814"Once you've implemented the parse function, you can use your document class, " 7815"using the public interface presented in the next section." 7816msgstr "" 7817 7818#. type: =head1 7819#: lib/Locale/Po4a/TransTractor.pm:33 7820msgid "PUBLIC INTERFACE for scripts using your parser" 7821msgstr "" 7822 7823#. type: =head2 7824#: lib/Locale/Po4a/TransTractor.pm:34 7825msgid "Constructor" 7826msgstr "" 7827 7828#. type: =item 7829#: lib/Locale/Po4a/TransTractor.pm:35 7830msgid "process(%)" 7831msgstr "" 7832 7833#. type: textblock 7834#: lib/Locale/Po4a/TransTractor.pm:36 7835msgid "" 7836"This function can do all you need to do with a po4a document in one " 7837"invocation. Its arguments must be packed as a hash. ACTIONS:" 7838msgstr "" 7839 7840#. type: =item 7841#: lib/Locale/Po4a/TransTractor.pm:37 7842msgid "a." 7843msgstr "" 7844 7845#. type: textblock 7846#: lib/Locale/Po4a/TransTractor.pm:38 7847msgid "Reads all the PO files specified in po_in_name" 7848msgstr "" 7849 7850#. type: =item 7851#: lib/Locale/Po4a/TransTractor.pm:39 7852msgid "b." 7853msgstr "" 7854 7855#. type: textblock 7856#: lib/Locale/Po4a/TransTractor.pm:40 7857msgid "Reads all original documents specified in file_in_name" 7858msgstr "" 7859 7860#. type: =item 7861#: lib/Locale/Po4a/TransTractor.pm:41 7862msgid "c." 7863msgstr "" 7864 7865#. type: textblock 7866#: lib/Locale/Po4a/TransTractor.pm:42 7867msgid "Parses the document" 7868msgstr "" 7869 7870#. type: =item 7871#: lib/Locale/Po4a/TransTractor.pm:43 7872msgid "d." 7873msgstr "" 7874 7875#. type: textblock 7876#: lib/Locale/Po4a/TransTractor.pm:44 7877msgid "Reads and applies all the addenda specified" 7878msgstr "" 7879 7880#. type: =item 7881#: lib/Locale/Po4a/TransTractor.pm:45 7882msgid "e." 7883msgstr "" 7884 7885#. type: textblock 7886#: lib/Locale/Po4a/TransTractor.pm:46 7887msgid "Writes the translated document to file_out_name (if given)" 7888msgstr "" 7889 7890#. type: =item 7891#: lib/Locale/Po4a/TransTractor.pm:47 7892msgid "f." 7893msgstr "" 7894 7895#. type: textblock 7896#: lib/Locale/Po4a/TransTractor.pm:48 7897msgid "Writes the extracted PO file to po_out_name (if given)" 7898msgstr "" 7899 7900#. type: textblock 7901#: lib/Locale/Po4a/TransTractor.pm:49 7902msgid "ARGUMENTS, beside the ones accepted by new() (with expected type):" 7903msgstr "" 7904 7905#. type: =item 7906#: lib/Locale/Po4a/TransTractor.pm:50 7907msgid "file_in_name (@)" 7908msgstr "" 7909 7910#. type: textblock 7911#: lib/Locale/Po4a/TransTractor.pm:51 7912msgid "List of filenames where we should read the input document." 7913msgstr "" 7914 7915#. type: =item 7916#: lib/Locale/Po4a/TransTractor.pm:52 7917msgid "file_in_charset ($)" 7918msgstr "" 7919 7920#. type: textblock 7921#: lib/Locale/Po4a/TransTractor.pm:53 7922msgid "" 7923"Charset used in the input document (if it isn't specified, it will try to " 7924"detect it from the input document)." 7925msgstr "" 7926 7927#. type: =item 7928#: lib/Locale/Po4a/TransTractor.pm:54 7929msgid "file_out_name ($)" 7930msgstr "" 7931 7932#. type: textblock 7933#: lib/Locale/Po4a/TransTractor.pm:55 7934msgid "Filename where we should write the output document." 7935msgstr "" 7936 7937#. type: =item 7938#: lib/Locale/Po4a/TransTractor.pm:56 7939msgid "file_out_charset ($)" 7940msgstr "" 7941 7942#. type: textblock 7943#: lib/Locale/Po4a/TransTractor.pm:57 7944msgid "" 7945"Charset used in the output document (if it isn't specified, it will use the " 7946"PO file charset)." 7947msgstr "" 7948 7949#. type: =item 7950#: lib/Locale/Po4a/TransTractor.pm:58 7951msgid "po_in_name (@)" 7952msgstr "" 7953 7954#. type: textblock 7955#: lib/Locale/Po4a/TransTractor.pm:59 7956msgid "" 7957"List of filenames where we should read the input PO files from, containing " 7958"the translation which will be used to translate the document." 7959msgstr "" 7960 7961#. type: =item 7962#: lib/Locale/Po4a/TransTractor.pm:60 7963msgid "po_out_name ($)" 7964msgstr "" 7965 7966#. type: textblock 7967#: lib/Locale/Po4a/TransTractor.pm:61 7968msgid "" 7969"Filename where we should write the output PO file, containing the strings " 7970"extracted from the input document." 7971msgstr "" 7972 7973#. type: =item 7974#: lib/Locale/Po4a/TransTractor.pm:62 7975msgid "addendum (@)" 7976msgstr "" 7977 7978#. type: textblock 7979#: lib/Locale/Po4a/TransTractor.pm:63 7980msgid "List of filenames where we should read the addenda from." 7981msgstr "" 7982 7983#. type: =item 7984#: lib/Locale/Po4a/TransTractor.pm:64 7985msgid "addendum_charset ($)" 7986msgstr "" 7987 7988#. type: textblock 7989#: lib/Locale/Po4a/TransTractor.pm:65 7990msgid "Charset for the addenda." 7991msgstr "" 7992 7993#. type: =item 7994#: lib/Locale/Po4a/TransTractor.pm:66 7995msgid "new(%)" 7996msgstr "" 7997 7998#. type: textblock 7999#: lib/Locale/Po4a/TransTractor.pm:67 8000msgid "Create a new po4a document. Accepted options (but be in a hash):" 8001msgstr "" 8002 8003#. type: =item 8004#: lib/Locale/Po4a/TransTractor.pm:68 8005msgid "verbose ($)" 8006msgstr "" 8007 8008#. type: textblock 8009#: lib/Locale/Po4a/TransTractor.pm:69 8010msgid "Sets the verbosity." 8011msgstr "" 8012 8013#. type: =item 8014#: lib/Locale/Po4a/TransTractor.pm:70 8015msgid "debug ($)" 8016msgstr "" 8017 8018#. type: textblock 8019#: lib/Locale/Po4a/TransTractor.pm:71 8020msgid "Sets the debugging." 8021msgstr "" 8022 8023#. type: =head2 8024#: lib/Locale/Po4a/TransTractor.pm:72 8025msgid "Manipulating document files" 8026msgstr "" 8027 8028#. type: =item 8029#: lib/Locale/Po4a/TransTractor.pm:73 8030msgid "read($$)" 8031msgstr "" 8032 8033#. type: textblock 8034#: lib/Locale/Po4a/TransTractor.pm:74 8035msgid "" 8036"Add another input document data at the end of the existing array C<< " 8037"@{$self->{TT}{doc_in}} >>. The argument is the filename to read. If a second " 8038"argument is provided, it is the filename to use in the references." 8039msgstr "" 8040 8041#. type: verbatim 8042#: lib/Locale/Po4a/TransTractor.pm:75 8043#, no-wrap 8044msgid "" 8045"This array C<< @{$self->{TT}{doc_in}} >> holds this input document data as " 8046"an\n" 8047"array of strings with alternating meanings.\n" 8048" * The string C<$textline> holding each line of the input text data.\n" 8049" * The string C<< $filename:$linenum >> holding its location and called as\n" 8050" \"reference\" (C<linenum> starts with 1).\n" 8051"\n" 8052msgstr "" 8053 8054#. type: textblock 8055#: lib/Locale/Po4a/TransTractor.pm:76 8056msgid "" 8057"Please note that it does not parse anything. You should use the parse() " 8058"function when you're done with packing input files into the document." 8059msgstr "" 8060 8061#. type: textblock 8062#: lib/Locale/Po4a/TransTractor.pm:78 8063msgid "Write the translated document to the given filename." 8064msgstr "" 8065 8066#. type: verbatim 8067#: lib/Locale/Po4a/TransTractor.pm:79 8068#, no-wrap 8069msgid "" 8070"This translated document data are provided by:\n" 8071" * C<< $self->docheader() >> holding the header text for the plugin, and\n" 8072" * C<< @{$self->{TT}{doc_out}} >> holding each line of the main translated " 8073"text in the array.\n" 8074"\n" 8075msgstr "" 8076 8077#. type: =head2 8078#: lib/Locale/Po4a/TransTractor.pm:80 8079msgid "Manipulating PO files" 8080msgstr "" 8081 8082#. type: =item 8083#: lib/Locale/Po4a/TransTractor.pm:81 8084msgid "readpo($)" 8085msgstr "" 8086 8087#. type: textblock 8088#: lib/Locale/Po4a/TransTractor.pm:82 8089msgid "" 8090"Add the content of a file (which name is passed as argument) to the existing " 8091"input PO. The old content is not discarded." 8092msgstr "" 8093 8094#. type: =item 8095#: lib/Locale/Po4a/TransTractor.pm:83 8096msgid "writepo($)" 8097msgstr "" 8098 8099#. type: textblock 8100#: lib/Locale/Po4a/TransTractor.pm:84 8101msgid "Write the extracted PO file to the given filename." 8102msgstr "" 8103 8104#. type: =item 8105#: lib/Locale/Po4a/TransTractor.pm:85 8106msgid "stats()" 8107msgstr "" 8108 8109#. type: textblock 8110#: lib/Locale/Po4a/TransTractor.pm:86 8111msgid "" 8112"Returns some statistics about the translation done so far. Please note that " 8113"it's not the same statistics than the one printed by msgfmt " 8114"--statistic. Here, it's stats about recent usage of the PO file, while " 8115"msgfmt reports the status of the file. It is a wrapper to the " 8116"Locale::Po4a::Po::stats_get function applied to the input PO file. Example " 8117"of use:" 8118msgstr "" 8119 8120#. type: verbatim 8121#: lib/Locale/Po4a/TransTractor.pm:87 8122#, no-wrap 8123msgid "" 8124" [normal use of the po4a document...]\n" 8125"\n" 8126msgstr "" 8127 8128#. type: verbatim 8129#: lib/Locale/Po4a/TransTractor.pm:88 8130#, no-wrap 8131msgid "" 8132" ($percent,$hit,$queries) = $document->stats();\n" 8133" print \"We found translations for $percent\\% ($hit from $queries) of " 8134"strings.\\n\";\n" 8135"\n" 8136msgstr "" 8137 8138#. type: =item 8139#: lib/Locale/Po4a/TransTractor.pm:89 8140msgid "is_po_uptodate()" 8141msgstr "" 8142 8143#. type: textblock 8144#: lib/Locale/Po4a/TransTractor.pm:90 8145msgid "" 8146"Returns ($uptodate, $diagnostic) where $uptodate is whether the input po and " 8147"the output po match (if not, it means that the input po should be updated) " 8148"and $diagnostic is a string explaining why the po file is not uptodate, when " 8149"this happens." 8150msgstr "" 8151 8152#. type: =head2 8153#: lib/Locale/Po4a/TransTractor.pm:91 8154msgid "Manipulating addenda" 8155msgstr "" 8156 8157#. type: =item 8158#: lib/Locale/Po4a/TransTractor.pm:92 8159msgid "addendum($)" 8160msgstr "" 8161 8162#. type: textblock 8163#: lib/Locale/Po4a/TransTractor.pm:93 8164msgid "" 8165"Please refer to L<po4a(7)|po4a.7> for more information on what addenda are, " 8166"and how translators should write them. To apply an addendum to the " 8167"translated document, simply pass its filename to this function and you are " 8168"done ;)" 8169msgstr "" 8170 8171#. type: textblock 8172#: lib/Locale/Po4a/TransTractor.pm:94 8173msgid "This function returns a non-null integer on error." 8174msgstr "" 8175 8176#. type: =head1 8177#: lib/Locale/Po4a/TransTractor.pm:95 lib/Locale/Po4a/Xml.pm:131 8178msgid "INTERNAL FUNCTIONS used to write derivative parsers" 8179msgstr "" 8180 8181#. type: =head2 8182#: lib/Locale/Po4a/TransTractor.pm:96 8183msgid "Getting input, providing output" 8184msgstr "" 8185 8186#. type: textblock 8187#: lib/Locale/Po4a/TransTractor.pm:97 8188msgid "" 8189"Four functions are provided to get input and return output. They are very " 8190"similar to shift/unshift and push/pop of Perl." 8191msgstr "" 8192 8193#. type: verbatim 8194#: lib/Locale/Po4a/TransTractor.pm:98 8195#, no-wrap 8196msgid "" 8197" * Perl shift returns the first array item and drop it from the array.\n" 8198" * Perl unshift prepends an item to the array as the first array item.\n" 8199" * Perl pop returns the last array item and drop it from the array.\n" 8200" * Perl push appends an item to the array as the last array item.\n" 8201"\n" 8202msgstr "" 8203 8204#. type: textblock 8205#: lib/Locale/Po4a/TransTractor.pm:99 8206msgid "" 8207"The first pair is about input, while the second is about output. Mnemonic: " 8208"in input, you are interested in the first line, what shift gives, and in " 8209"output you want to add your result at the end, like push does." 8210msgstr "" 8211 8212#. type: =item 8213#: lib/Locale/Po4a/TransTractor.pm:100 8214msgid "shiftline()" 8215msgstr "" 8216 8217#. type: textblock 8218#: lib/Locale/Po4a/TransTractor.pm:101 8219msgid "" 8220"This function returns the first line to be parsed and its corresponding " 8221"reference (packed as an array) from the array C<< @{$self->{TT}{doc_in}} >> " 8222"and drop these first 2 array items. Here, the reference is provided by a " 8223"string C<< $filename:$linenum >>." 8224msgstr "" 8225 8226#. type: =item 8227#: lib/Locale/Po4a/TransTractor.pm:102 8228msgid "unshiftline($$)" 8229msgstr "" 8230 8231#. type: textblock 8232#: lib/Locale/Po4a/TransTractor.pm:103 8233msgid "" 8234"Unshifts the last shifted line of the input document and its corresponding " 8235"reference back to the head of C<< {$self->{TT}{doc_in}} >>." 8236msgstr "" 8237 8238#. type: =item 8239#: lib/Locale/Po4a/TransTractor.pm:104 8240msgid "pushline($)" 8241msgstr "" 8242 8243#. type: textblock 8244#: lib/Locale/Po4a/TransTractor.pm:105 8245msgid "Push a new line to the end of C<< {$self->{TT}{doc_out}} >>." 8246msgstr "" 8247 8248#. type: =item 8249#: lib/Locale/Po4a/TransTractor.pm:106 8250msgid "popline()" 8251msgstr "" 8252 8253#. type: textblock 8254#: lib/Locale/Po4a/TransTractor.pm:107 8255msgid "Pop the last pushed line from the end of C<< {$self->{TT}{doc_out}} >>." 8256msgstr "" 8257 8258#. type: =head2 8259#: lib/Locale/Po4a/TransTractor.pm:108 8260msgid "Marking strings as translatable" 8261msgstr "" 8262 8263#. type: textblock 8264#: lib/Locale/Po4a/TransTractor.pm:109 8265msgid "One function is provided to handle the text which should be translated." 8266msgstr "" 8267 8268#. type: =item 8269#: lib/Locale/Po4a/TransTractor.pm:110 8270msgid "translate($$$)" 8271msgstr "" 8272 8273#. type: textblock 8274#: lib/Locale/Po4a/TransTractor.pm:111 8275msgid "Mandatory arguments:" 8276msgstr "" 8277 8278#. type: textblock 8279#: lib/Locale/Po4a/TransTractor.pm:113 8280msgid "A string to translate" 8281msgstr "" 8282 8283#. type: textblock 8284#: lib/Locale/Po4a/TransTractor.pm:115 8285msgid "The reference of this string (i.e. position in inputfile)" 8286msgstr "" 8287 8288#. type: textblock 8289#: lib/Locale/Po4a/TransTractor.pm:117 8290msgid "" 8291"The type of this string (i.e. the textual description of its structural " 8292"role; used in Locale::Po4a::Po::gettextization(); see also " 8293"L<po4a(7)|po4a.7>, section B<Gettextization: how does it work?>)" 8294msgstr "" 8295 8296#. type: textblock 8297#: lib/Locale/Po4a/TransTractor.pm:118 8298msgid "" 8299"This function can also take some extra arguments. They must be organized as " 8300"a hash. For example:" 8301msgstr "" 8302 8303#. type: verbatim 8304#: lib/Locale/Po4a/TransTractor.pm:119 8305#, no-wrap 8306msgid "" 8307" $self->translate(\"string\",\"ref\",\"type\",\n" 8308" 'wrap' => 1);\n" 8309"\n" 8310msgstr "" 8311 8312#. type: textblock 8313#: lib/Locale/Po4a/TransTractor.pm:121 8314msgid "" 8315"boolean indicating whether we can consider that whitespaces in string are " 8316"not important. If yes, the function canonizes the string before looking for " 8317"a translation or extracting it, and wraps the translation." 8318msgstr "" 8319 8320#. type: textblock 8321#: lib/Locale/Po4a/TransTractor.pm:125 8322msgid "an extra comment to add to the entry." 8323msgstr "" 8324 8325#. type: textblock 8326#: lib/Locale/Po4a/TransTractor.pm:126 8327msgid "Actions:" 8328msgstr "" 8329 8330#. type: textblock 8331#: lib/Locale/Po4a/TransTractor.pm:128 8332msgid "Pushes the string, reference and type to po_out." 8333msgstr "" 8334 8335#. type: textblock 8336#: lib/Locale/Po4a/TransTractor.pm:130 8337msgid "" 8338"Returns the translation of the string (as found in po_in) so that the parser " 8339"can build the doc_out." 8340msgstr "" 8341 8342#. type: textblock 8343#: lib/Locale/Po4a/TransTractor.pm:132 8344msgid "" 8345"Handles the charsets to recode the strings before sending them to po_out and " 8346"before returning the translations." 8347msgstr "" 8348 8349#. type: =head2 8350#: lib/Locale/Po4a/TransTractor.pm:133 8351msgid "Misc functions" 8352msgstr "" 8353 8354#. type: =item 8355#: lib/Locale/Po4a/TransTractor.pm:134 8356msgid "verbose()" 8357msgstr "" 8358 8359#. type: textblock 8360#: lib/Locale/Po4a/TransTractor.pm:135 8361msgid "" 8362"Returns if the verbose option was passed during the creation of the " 8363"TransTractor." 8364msgstr "" 8365 8366#. type: =item 8367#: lib/Locale/Po4a/TransTractor.pm:136 8368msgid "debug()" 8369msgstr "" 8370 8371#. type: textblock 8372#: lib/Locale/Po4a/TransTractor.pm:137 8373msgid "" 8374"Returns if the debug option was passed during the creation of the " 8375"TransTractor." 8376msgstr "" 8377 8378#. type: =item 8379#: lib/Locale/Po4a/TransTractor.pm:138 8380msgid "detected_charset($)" 8381msgstr "" 8382 8383#. type: textblock 8384#: lib/Locale/Po4a/TransTractor.pm:139 8385msgid "" 8386"This tells TransTractor that a new charset (the first argument) has been " 8387"detected from the input document. It can usually be read from the document " 8388"header. Only the first charset will remain, coming either from the process() " 8389"arguments or detected from the document." 8390msgstr "" 8391 8392#. type: =item 8393#: lib/Locale/Po4a/TransTractor.pm:140 8394msgid "get_out_charset()" 8395msgstr "" 8396 8397#. type: textblock 8398#: lib/Locale/Po4a/TransTractor.pm:141 8399msgid "" 8400"This function will return the charset that should be used in the output " 8401"document (usually useful to substitute the input document's detected charset " 8402"where it has been found)." 8403msgstr "" 8404 8405#. type: textblock 8406#: lib/Locale/Po4a/TransTractor.pm:142 8407msgid "" 8408"It will use the output charset specified in the command line. If it wasn't " 8409"specified, it will use the input PO's charset, and if the input PO has the " 8410"default \"CHARSET\", it will return the input document's charset, so that no " 8411"encoding is performed." 8412msgstr "" 8413 8414#. type: =item 8415#: lib/Locale/Po4a/TransTractor.pm:143 8416msgid "recode_skipped_text($)" 8417msgstr "" 8418 8419#. type: textblock 8420#: lib/Locale/Po4a/TransTractor.pm:144 8421msgid "" 8422"This function returns the recoded text passed as argument, from the input " 8423"document's charset to the output document's one. This isn't needed when " 8424"translating a string (translate() recodes everything itself), but it is when " 8425"you skip a string from the input document and you want the output document " 8426"to be consistent with the global encoding." 8427msgstr "" 8428 8429#. type: =head1 8430#: lib/Locale/Po4a/TransTractor.pm:145 8431msgid "FUTURE DIRECTIONS" 8432msgstr "" 8433 8434#. type: textblock 8435#: lib/Locale/Po4a/TransTractor.pm:146 8436msgid "" 8437"One shortcoming of the current TransTractor is that it can't handle " 8438"translated document containing all languages, like debconf templates, or " 8439".desktop files." 8440msgstr "" 8441 8442#. type: textblock 8443#: lib/Locale/Po4a/TransTractor.pm:147 8444msgid "To address this problem, the only interface changes needed are:" 8445msgstr "" 8446 8447#. type: textblock 8448#: lib/Locale/Po4a/TransTractor.pm:149 8449msgid "take a hash as po_in_name (a list per language)" 8450msgstr "" 8451 8452#. type: textblock 8453#: lib/Locale/Po4a/TransTractor.pm:151 8454msgid "add an argument to translate to indicate the target language" 8455msgstr "" 8456 8457#. type: textblock 8458#: lib/Locale/Po4a/TransTractor.pm:153 8459msgid "" 8460"make a pushline_all function, which would make pushline of its content for " 8461"all languages, using a map-like syntax:" 8462msgstr "" 8463 8464#. type: verbatim 8465#: lib/Locale/Po4a/TransTractor.pm:154 8466#, no-wrap 8467msgid "" 8468" $self->pushline_all({ \"Description[\".$langcode.\"]=\".\n" 8469" $self->translate($line,$ref,$langcode)\n" 8470" });\n" 8471"\n" 8472msgstr "" 8473 8474#. type: textblock 8475#: lib/Locale/Po4a/TransTractor.pm:155 8476msgid "Will see if it's enough ;)" 8477msgstr "" 8478 8479#. type: verbatim 8480#: lib/Locale/Po4a/TransTractor.pm:157 8481#, no-wrap 8482msgid "" 8483" Denis Barbier <barbier@linuxfr.org>\n" 8484" Martin Quinson (mquinson#debian.org)\n" 8485" Jordi Vilalta <jvprat@gmail.com>\n" 8486"\n" 8487msgstr "" 8488 8489#. type: textblock 8490#: lib/Locale/Po4a/Wml.pm:2 8491msgid "" 8492"Locale::Po4a::Wml - convert WML (web markup language) documents from/to PO " 8493"files" 8494msgstr "" 8495 8496#. type: textblock 8497#: lib/Locale/Po4a/Wml.pm:5 8498msgid "" 8499"Locale::Po4a::Wml is a module to help the translation of WML documents into " 8500"other [human] languages. Do not mixup the WML we are speaking about here " 8501"(web markup language) and the WAP crap used on cell phones." 8502msgstr "" 8503 8504#. type: textblock 8505#: lib/Locale/Po4a/Wml.pm:6 8506msgid "" 8507"Please note that this module relies upon the Locale::Po4a::Xhtml module, " 8508"which also relies upon the Locale::Po4a::Xml module. This means that all " 8509"tags for web page expressions are assumed to be written in the XHTML syntax." 8510msgstr "" 8511 8512#. type: textblock 8513#: lib/Locale/Po4a/Wml.pm:10 8514msgid "" 8515"This module works for some simple documents, but is still young. Currently, " 8516"the biggest issue of the module is probably that it cannot handle documents " 8517"that contain non-XML inline tags such as <email \"foo@example.org\">, which " 8518"are often defined in the WML. Improvements will be added in the future " 8519"releases." 8520msgstr "" 8521 8522#. type: verbatim 8523#: lib/Locale/Po4a/Wml.pm:12 8524#, no-wrap 8525msgid "" 8526" Martin Quinson (mquinson#debian.org)\n" 8527" Noriada Kobayashi <nori1@dolphin.c.u-tokyo.ac.jp>\n" 8528"\n" 8529msgstr "" 8530 8531#. type: verbatim 8532#: lib/Locale/Po4a/Wml.pm:14 8533#, no-wrap 8534msgid "" 8535" Copyright © 2005 SPI, Inc.\n" 8536"\n" 8537msgstr "" 8538 8539#. type: textblock 8540#: lib/Locale/Po4a/Xhtml.pm:2 8541msgid "Locale::Po4a::Xhtml - convert XHTML documents from/to PO files" 8542msgstr "" 8543 8544#. type: textblock 8545#: lib/Locale/Po4a/Xhtml.pm:5 8546msgid "" 8547"Locale::Po4a::Xhtml is a module to help the translation of XHTML documents " 8548"into other [human] languages." 8549msgstr "" 8550 8551#. type: =item 8552#: lib/Locale/Po4a/Xhtml.pm:8 8553msgid "B<includessi>[B<=>I<rootpath>]" 8554msgstr "" 8555 8556#. type: textblock 8557#: lib/Locale/Po4a/Xhtml.pm:9 8558msgid "" 8559"Include files specified by an include SSI (Server Side Includes) element " 8560"(e.g. <!--#include virtual=\"/foo/bar.html\" -->)." 8561msgstr "" 8562 8563#. type: textblock 8564#: lib/Locale/Po4a/Xhtml.pm:10 8565msgid "B<Note:> You should use it only for static files." 8566msgstr "" 8567 8568#. type: textblock 8569#: lib/Locale/Po4a/Xhtml.pm:11 8570msgid "" 8571"An additional I<rootpath> parameter can be specified. It specifies the root " 8572"path to find files included by a B<virtual> attribute." 8573msgstr "" 8574 8575#. type: textblock 8576#: lib/Locale/Po4a/Xhtml.pm:14 8577msgid "" 8578"\"It works for me\", which means I use it successfully on my personal Web " 8579"site. However, YMMV: please let me know if something doesn't work for " 8580"you. In particular, tables are getting no testing whatsoever, as we don't " 8581"use them." 8582msgstr "" 8583 8584#. type: verbatim 8585#: lib/Locale/Po4a/Xhtml.pm:18 8586#, no-wrap 8587msgid "" 8588" Yves Rütschlé <po4a@rutschle.net>\n" 8589" Nicolas François <nicolas.francois@centraliens.net>\n" 8590"\n" 8591msgstr "" 8592 8593#. type: verbatim 8594#: lib/Locale/Po4a/Xhtml.pm:20 8595#, no-wrap 8596msgid "" 8597" Copyright © 2004 Yves Rütschlé <po4a@rutschle.net>\n" 8598" Copyright © 2007-2008 Nicolas François <nicolas.francois@centraliens.net>\n" 8599"\n" 8600msgstr "" 8601 8602#. type: textblock 8603#: lib/Locale/Po4a/Xml.pm:2 8604msgid "Locale::Po4a::Xml - convert XML documents and derivates from/to PO files" 8605msgstr "" 8606 8607#. type: textblock 8608#: lib/Locale/Po4a/Xml.pm:5 8609msgid "" 8610"Locale::Po4a::Xml is a module to help the translation of XML documents into " 8611"other [human] languages. It can also be used as a base to build modules for " 8612"XML-based documents." 8613msgstr "" 8614 8615#. type: =head1 8616#: lib/Locale/Po4a/Xml.pm:6 8617msgid "TRANSLATING WITH PO4A::XML" 8618msgstr "" 8619 8620#. type: textblock 8621#: lib/Locale/Po4a/Xml.pm:7 8622msgid "" 8623"This module can be used directly to handle generic XML documents. This will " 8624"extract all tag's content, and no attributes, since it's where the text is " 8625"written in most XML based documents." 8626msgstr "" 8627 8628#. type: textblock 8629#: lib/Locale/Po4a/Xml.pm:10 8630msgid "" 8631"The global debug option causes this module to show the excluded strings, in " 8632"order to see if it skips something important." 8633msgstr "" 8634 8635#. type: =item 8636#: lib/Locale/Po4a/Xml.pm:12 8637msgid "B<nostrip>" 8638msgstr "" 8639 8640#. type: textblock 8641#: lib/Locale/Po4a/Xml.pm:13 8642msgid "Prevents it to strip the spaces around the extracted strings." 8643msgstr "" 8644 8645#. type: textblock 8646#: lib/Locale/Po4a/Xml.pm:15 8647msgid "" 8648"Canonicalizes the string to translate, considering that whitespaces are not " 8649"important, and wraps the translated document. This option can be overridden " 8650"by custom tag options. See the B<translated> option below." 8651msgstr "" 8652 8653#. type: =item 8654#: lib/Locale/Po4a/Xml.pm:16 8655msgid "B<unwrap_attributes>" 8656msgstr "" 8657 8658#. type: textblock 8659#: lib/Locale/Po4a/Xml.pm:17 8660msgid "Attributes are wrapped by default. This option disables wrapping." 8661msgstr "" 8662 8663#. type: =item 8664#: lib/Locale/Po4a/Xml.pm:18 8665msgid "B<caseinsensitive>" 8666msgstr "" 8667 8668#. type: textblock 8669#: lib/Locale/Po4a/Xml.pm:19 8670msgid "" 8671"It makes the tags and attributes searching to work in a case insensitive " 8672"way. If it's defined, it will treat E<lt>BooKE<gt>laNG and " 8673"E<lt>BOOKE<gt>Lang as E<lt>bookE<gt>lang." 8674msgstr "" 8675 8676#. type: =item 8677#: lib/Locale/Po4a/Xml.pm:20 8678msgid "B<escapequotes>" 8679msgstr "" 8680 8681#. type: textblock 8682#: lib/Locale/Po4a/Xml.pm:21 8683msgid "" 8684"Escape quotes in output strings. Necessary, for example, for creating " 8685"string resources for use by Android build tools." 8686msgstr "" 8687 8688#. type: textblock 8689#: lib/Locale/Po4a/Xml.pm:22 8690msgid "" 8691"See also: " 8692"https://developer.android.com/guide/topics/resources/string-resource.html" 8693msgstr "" 8694 8695#. type: =item 8696#: lib/Locale/Po4a/Xml.pm:23 8697msgid "B<includeexternal>" 8698msgstr "" 8699 8700#. type: textblock 8701#: lib/Locale/Po4a/Xml.pm:24 8702msgid "" 8703"When defined, external entities are included in the generated (translated) " 8704"document, and for the extraction of strings. If it's not defined, you will " 8705"have to translate external entities separately as independent documents." 8706msgstr "" 8707 8708#. type: =item 8709#: lib/Locale/Po4a/Xml.pm:25 8710msgid "B<ontagerror>" 8711msgstr "" 8712 8713#. type: textblock 8714#: lib/Locale/Po4a/Xml.pm:26 8715msgid "" 8716"This option defines the behavior of the module when it encounters invalid " 8717"XML syntax (a closing tag which does not match the last opening tag). It " 8718"can take the following values:" 8719msgstr "" 8720 8721#. type: textblock 8722#: lib/Locale/Po4a/Xml.pm:28 8723msgid "This is the default value. The module will exit with an error." 8724msgstr "" 8725 8726#. type: =item 8727#: lib/Locale/Po4a/Xml.pm:29 8728msgid "I<warn>" 8729msgstr "" 8730 8731#. type: textblock 8732#: lib/Locale/Po4a/Xml.pm:30 8733msgid "The module will continue, and will issue a warning." 8734msgstr "" 8735 8736#. type: =item 8737#: lib/Locale/Po4a/Xml.pm:31 8738msgid "I<silent>" 8739msgstr "" 8740 8741#. type: textblock 8742#: lib/Locale/Po4a/Xml.pm:32 8743msgid "The module will continue without any warnings." 8744msgstr "" 8745 8746#. type: textblock 8747#: lib/Locale/Po4a/Xml.pm:33 8748msgid "" 8749"Be careful when using this option. It is generally recommended to fix the " 8750"input file." 8751msgstr "" 8752 8753#. type: =item 8754#: lib/Locale/Po4a/Xml.pm:34 8755msgid "B<tagsonly>" 8756msgstr "" 8757 8758#. type: textblock 8759#: lib/Locale/Po4a/Xml.pm:35 8760msgid "Note: This option is deprecated." 8761msgstr "" 8762 8763#. type: textblock 8764#: lib/Locale/Po4a/Xml.pm:36 8765msgid "" 8766"Extracts only the specified tags in the \"tags\" option. Otherwise, it will " 8767"extract all the tags except the ones specified." 8768msgstr "" 8769 8770#. type: =item 8771#: lib/Locale/Po4a/Xml.pm:37 8772msgid "B<doctype>" 8773msgstr "" 8774 8775#. type: textblock 8776#: lib/Locale/Po4a/Xml.pm:38 8777msgid "" 8778"String that will try to match with the first line of the document's doctype " 8779"(if defined). If it doesn't, a warning will indicate that the document might " 8780"be of a bad type." 8781msgstr "" 8782 8783#. type: =item 8784#: lib/Locale/Po4a/Xml.pm:39 8785msgid "B<addlang>" 8786msgstr "" 8787 8788#. type: textblock 8789#: lib/Locale/Po4a/Xml.pm:40 8790msgid "" 8791"String indicating the path (e.g. E<lt>bbbE<gt>E<lt>aaaE<gt>) of a tag where " 8792"a lang=\"...\" attribute shall be added. The language will be defined as the " 8793"basename of the PO file without any .po extension." 8794msgstr "" 8795 8796#. type: =item 8797#: lib/Locale/Po4a/Xml.pm:41 8798msgid "B<optionalclosingtag>" 8799msgstr "" 8800 8801#. type: textblock 8802#: lib/Locale/Po4a/Xml.pm:42 8803msgid "" 8804"Boolean indicating whether closing tags are optional (as in HTML). By " 8805"default, missing closing tags raise an error handled according to " 8806"C<ontagerror>." 8807msgstr "" 8808 8809#. type: =item 8810#: lib/Locale/Po4a/Xml.pm:43 8811msgid "B<tags>" 8812msgstr "" 8813 8814#. type: textblock 8815#: lib/Locale/Po4a/Xml.pm:44 8816msgid "" 8817"Note: This option is deprecated. You should use the B<translated> and " 8818"B<untranslated> options instead." 8819msgstr "" 8820 8821#. type: textblock 8822#: lib/Locale/Po4a/Xml.pm:45 8823msgid "" 8824"Space-separated list of tags you want to translate or skip. By default, the " 8825"specified tags will be excluded, but if you use the \"tagsonly\" option, the " 8826"specified tags will be the only ones included. The tags must be in the form " 8827"E<lt>aaaE<gt>, but you can join some (E<lt>bbbE<gt>E<lt>aaaE<gt>) to say " 8828"that the content of the tag E<lt>aaaE<gt> will only be translated when it's " 8829"into a E<lt>bbbE<gt> tag." 8830msgstr "" 8831 8832#. type: textblock 8833#: lib/Locale/Po4a/Xml.pm:46 8834msgid "" 8835"You can also specify some tag options by putting some characters in front of " 8836"the tag hierarchy. For example, you can put 'w' (wrap) or 'W' (don't wrap) " 8837"to override the default behavior specified by the global \"wrap\" option." 8838msgstr "" 8839 8840#. type: textblock 8841#: lib/Locale/Po4a/Xml.pm:47 lib/Locale/Po4a/Xml.pm:89 8842msgid "Example: WE<lt>chapterE<gt>E<lt>titleE<gt>" 8843msgstr "" 8844 8845#. type: textblock 8846#: lib/Locale/Po4a/Xml.pm:49 8847msgid "" 8848"Space-separated list of tag's attributes you want to translate. You can " 8849"specify the attributes by their name (for example, \"lang\"), but you can " 8850"prefix it with a tag hierarchy, to specify that this attribute will only be " 8851"translated when it's in the specified tag. For example: " 8852"E<lt>bbbE<gt>E<lt>aaaE<gt>lang specifies that the lang attribute will only " 8853"be translated if it's in an E<lt>aaaE<gt> tag, and it's in a E<lt>bbbE<gt> " 8854"tag." 8855msgstr "" 8856 8857#. type: =item 8858#: lib/Locale/Po4a/Xml.pm:50 8859msgid "B<foldattributes>" 8860msgstr "" 8861 8862#. type: textblock 8863#: lib/Locale/Po4a/Xml.pm:51 8864msgid "" 8865"Do not translate attributes in inline tags. Instead, replace all attributes " 8866"of a tag by po4a-id=<id>." 8867msgstr "" 8868 8869#. type: textblock 8870#: lib/Locale/Po4a/Xml.pm:52 8871msgid "" 8872"This is useful when attributes shall not be translated, as this simplifies " 8873"the strings for translators, and avoids typos." 8874msgstr "" 8875 8876#. type: =item 8877#: lib/Locale/Po4a/Xml.pm:53 8878msgid "B<customtag>" 8879msgstr "" 8880 8881#. type: textblock 8882#: lib/Locale/Po4a/Xml.pm:54 8883msgid "" 8884"Space-separated list of tags which should not be treated as tags. These " 8885"tags are treated as inline, and do not need to be closed." 8886msgstr "" 8887 8888#. type: =item 8889#: lib/Locale/Po4a/Xml.pm:55 8890msgid "B<break>" 8891msgstr "" 8892 8893#. type: textblock 8894#: lib/Locale/Po4a/Xml.pm:56 8895msgid "" 8896"Space-separated list of tags which should break the sequence. By default, " 8897"all tags break the sequence." 8898msgstr "" 8899 8900#. type: textblock 8901#: lib/Locale/Po4a/Xml.pm:57 lib/Locale/Po4a/Xml.pm:61 8902#: lib/Locale/Po4a/Xml.pm:66 lib/Locale/Po4a/Xml.pm:76 8903#: lib/Locale/Po4a/Xml.pm:93 8904msgid "" 8905"The tags must be in the form <aaa>, but you can join some (<bbb><aaa>), if a " 8906"tag (<aaa>) should only be considered when it's within another tag (<bbb>)." 8907msgstr "" 8908 8909#. type: textblock 8910#: lib/Locale/Po4a/Xml.pm:58 8911msgid "" 8912"Please note a tag should be listed in only one of the B<break>, B<inline> " 8913"B<placeholder>, or B<customtag> setting string." 8914msgstr "" 8915 8916#. type: textblock 8917#: lib/Locale/Po4a/Xml.pm:60 8918msgid "" 8919"Space-separated list of tags which should be treated as inline. By default, " 8920"all tags break the sequence." 8921msgstr "" 8922 8923#. type: =item 8924#: lib/Locale/Po4a/Xml.pm:62 8925msgid "B<placeholder>" 8926msgstr "" 8927 8928#. type: textblock 8929#: lib/Locale/Po4a/Xml.pm:63 8930msgid "" 8931"Space-separated list of tags which should be treated as placeholders. " 8932"Placeholders do not break the sequence, but the content of placeholders is " 8933"translated separately." 8934msgstr "" 8935 8936#. type: textblock 8937#: lib/Locale/Po4a/Xml.pm:64 8938msgid "" 8939"The location of the placeholder in its block will be marked with a string " 8940"similar to:" 8941msgstr "" 8942 8943#. type: verbatim 8944#: lib/Locale/Po4a/Xml.pm:65 8945#, no-wrap 8946msgid "" 8947" <placeholder type=\\\"footnote\\\" id=\\\"0\\\"/>\n" 8948"\n" 8949msgstr "" 8950 8951#. type: =item 8952#: lib/Locale/Po4a/Xml.pm:67 8953msgid "B<break-pi>" 8954msgstr "" 8955 8956#. type: textblock 8957#: lib/Locale/Po4a/Xml.pm:68 8958msgid "" 8959"By default, Processing Instructions (i.e., C<<? ... ?>> tags) are handled as " 8960"inline tags. Pass this option if you want the PI to be handled as breaking " 8961"tag. Note that unprocessed PHP tags are handled as Processing Instructions " 8962"by the parser." 8963msgstr "" 8964 8965#. type: =item 8966#: lib/Locale/Po4a/Xml.pm:69 8967msgid "B<nodefault>" 8968msgstr "" 8969 8970#. type: textblock 8971#: lib/Locale/Po4a/Xml.pm:70 8972msgid "" 8973"Space separated list of tags that the module should not try to set by " 8974"default in any category." 8975msgstr "" 8976 8977#. type: textblock 8978#: lib/Locale/Po4a/Xml.pm:71 8979msgid "" 8980"If you have a tag which has its default setting by the subclass of this " 8981"module but you want to set alternative setting, you need to list that tag as " 8982"a part of the B<nodefault> setting string." 8983msgstr "" 8984 8985#. type: =item 8986#: lib/Locale/Po4a/Xml.pm:72 8987msgid "B<cpp>" 8988msgstr "" 8989 8990#. type: textblock 8991#: lib/Locale/Po4a/Xml.pm:73 8992msgid "" 8993"Support C preprocessor directives. When this option is set, po4a will " 8994"consider preprocessor directives as paragraph separators. This is important " 8995"if the XML file must be preprocessed because otherwise the directives may be " 8996"inserted in the middle of lines if po4a consider it belong to the current " 8997"paragraph, and they won't be recognized by the preprocessor. Note: the " 8998"preprocessor directives must only appear between tags (they must not break a " 8999"tag)." 9000msgstr "" 9001 9002#. type: =item 9003#: lib/Locale/Po4a/Xml.pm:74 9004msgid "B<translated>" 9005msgstr "" 9006 9007#. type: textblock 9008#: lib/Locale/Po4a/Xml.pm:75 9009msgid "Space-separated list of tags you want to translate." 9010msgstr "" 9011 9012#. type: textblock 9013#: lib/Locale/Po4a/Xml.pm:77 9014msgid "" 9015"You can also specify some tag options by putting some characters in front of " 9016"the tag hierarchy. This overrides the default behavior specified by the " 9017"global B<wrap> and B<defaulttranslateoption> option." 9018msgstr "" 9019 9020#. type: =item 9021#: lib/Locale/Po4a/Xml.pm:78 9022msgid "I<w>" 9023msgstr "" 9024 9025#. type: textblock 9026#: lib/Locale/Po4a/Xml.pm:79 9027msgid "Tags should be translated and content can be re-wrapped." 9028msgstr "" 9029 9030#. type: =item 9031#: lib/Locale/Po4a/Xml.pm:80 9032msgid "I<W>" 9033msgstr "" 9034 9035#. type: textblock 9036#: lib/Locale/Po4a/Xml.pm:81 9037msgid "Tags should be translated and content should not be re-wrapped." 9038msgstr "" 9039 9040#. type: =item 9041#: lib/Locale/Po4a/Xml.pm:82 9042msgid "I<i>" 9043msgstr "" 9044 9045#. type: textblock 9046#: lib/Locale/Po4a/Xml.pm:83 9047msgid "Tags should be translated inline." 9048msgstr "" 9049 9050#. type: =item 9051#: lib/Locale/Po4a/Xml.pm:84 9052msgid "I<p>" 9053msgstr "" 9054 9055#. type: textblock 9056#: lib/Locale/Po4a/Xml.pm:85 9057msgid "Tags should be translated as placeholders." 9058msgstr "" 9059 9060#. type: textblock 9061#: lib/Locale/Po4a/Xml.pm:86 9062msgid "" 9063"Internally, the XML parser only cares about these four options: I<w> I<W> " 9064"I<i> I<p>." 9065msgstr "" 9066 9067#. type: verbatim 9068#: lib/Locale/Po4a/Xml.pm:87 9069#, no-wrap 9070msgid "" 9071" * Tags listed in B<break> are set to I<w> or I<W> depending on the <wrap> " 9072"option.\n" 9073" * Tags listed in B<inline> are set to I<i>.\n" 9074" * Tags listed in B<placeholder> are set to I<p>.\n" 9075" * Tags listed in B<untranslated> are without any of these options set.\n" 9076"\n" 9077msgstr "" 9078 9079#. type: textblock 9080#: lib/Locale/Po4a/Xml.pm:88 9081msgid "" 9082"You can verify actual internal parameter behavior by invoking B<po4a> with " 9083"B<--debug> option." 9084msgstr "" 9085 9086#. type: textblock 9087#: lib/Locale/Po4a/Xml.pm:90 9088msgid "" 9089"Please note a tag should be listed in either B<translated> or " 9090"B<untranslated> setting string." 9091msgstr "" 9092 9093#. type: textblock 9094#: lib/Locale/Po4a/Xml.pm:92 9095msgid "Space-separated list of tags you do not want to translate." 9096msgstr "" 9097 9098#. type: textblock 9099#: lib/Locale/Po4a/Xml.pm:94 9100msgid "" 9101"Please note a translatable inline tag in an untranslated tag is treated as a " 9102"translatable breaking tag, I<i> setting is dropped and I<w> or I<W> is set " 9103"depending on the <wrap> option." 9104msgstr "" 9105 9106#. type: =item 9107#: lib/Locale/Po4a/Xml.pm:95 9108msgid "B<defaulttranslateoption>" 9109msgstr "" 9110 9111#. type: textblock 9112#: lib/Locale/Po4a/Xml.pm:96 9113msgid "" 9114"The default categories for tags that are not in any of the translated, " 9115"untranslated, break, inline, or placeholder." 9116msgstr "" 9117 9118#. type: textblock 9119#: lib/Locale/Po4a/Xml.pm:97 9120msgid "" 9121"This is a set of letters as defined in B<translated> and this setting is " 9122"only valid for translatable tags." 9123msgstr "" 9124 9125#. type: =head1 9126#: lib/Locale/Po4a/Xml.pm:98 9127msgid "WRITING DERIVATIVE MODULES" 9128msgstr "" 9129 9130#. type: =head2 9131#: lib/Locale/Po4a/Xml.pm:99 9132msgid "DEFINE WHAT TAGS AND ATTRIBUTES TO TRANSLATE" 9133msgstr "" 9134 9135#. type: textblock 9136#: lib/Locale/Po4a/Xml.pm:100 9137msgid "" 9138"The simplest customization is to define which tags and attributes you want " 9139"the parser to translate. This should be done in the initialize function. " 9140"First you should call the main initialize, to get the command-line options, " 9141"and then, append your custom definitions to the options hash. If you want " 9142"to treat some new options from command line, you should define them before " 9143"calling the main initialize:" 9144msgstr "" 9145 9146#. type: verbatim 9147#: lib/Locale/Po4a/Xml.pm:101 9148#, no-wrap 9149msgid "" 9150" $self->{options}{'new_option'}='';\n" 9151" $self->SUPER::initialize(%options);\n" 9152" $self->{options}{'_default_translated'}.=' <p> <head><title>';\n" 9153" $self->{options}{'attributes'}.=' <p>lang id';\n" 9154" $self->{options}{'_default_inline'}.=' <br>';\n" 9155" $self->treat_options;\n" 9156"\n" 9157msgstr "" 9158 9159#. type: textblock 9160#: lib/Locale/Po4a/Xml.pm:102 9161msgid "" 9162"You should use the B<_default_inline>, B<_default_break>, " 9163"B<_default_placeholder>, B<_default_translated>, B<_default_untranslated>, " 9164"and B<_default_attributes> options in derivative modules. This allow users " 9165"to override the default behavior defined in your module with command line " 9166"options." 9167msgstr "" 9168 9169#. type: textblock 9170#: lib/Locale/Po4a/Xml.pm:104 9171msgid "" 9172"If you don't like the default behavior of this xml module and its derivative " 9173"modules, you can provide command line options to change their behavior." 9174msgstr "" 9175 9176#. type: textblock 9177#: lib/Locale/Po4a/Xml.pm:105 9178msgid "See L<Locale::Po4a::Docbook(3pm)|Locale::Po4a::Docbook>," 9179msgstr "" 9180 9181#. type: =head2 9182#: lib/Locale/Po4a/Xml.pm:106 9183msgid "OVERRIDING THE found_string FUNCTION" 9184msgstr "" 9185 9186#. type: textblock 9187#: lib/Locale/Po4a/Xml.pm:107 9188msgid "" 9189"Another simple step is to override the function \"found_string\", which " 9190"receives the extracted strings from the parser, in order to translate them. " 9191"There you can control which strings you want to translate, and perform " 9192"transformations to them before or after the translation itself." 9193msgstr "" 9194 9195#. type: textblock 9196#: lib/Locale/Po4a/Xml.pm:108 9197msgid "" 9198"It receives the extracted text, the reference on where it was, and a hash " 9199"that contains extra information to control what strings to translate, how to " 9200"translate them and to generate the comment." 9201msgstr "" 9202 9203#. type: textblock 9204#: lib/Locale/Po4a/Xml.pm:109 9205msgid "" 9206"The content of these options depends on the kind of string it is (specified " 9207"in an entry of this hash):" 9208msgstr "" 9209 9210#. type: =item 9211#: lib/Locale/Po4a/Xml.pm:110 9212msgid "type=\"tag\"" 9213msgstr "" 9214 9215#. type: textblock 9216#: lib/Locale/Po4a/Xml.pm:111 9217msgid "" 9218"The found string is the content of a translatable tag. The entry " 9219"\"tag_options\" contains the option characters in front of the tag hierarchy " 9220"in the module \"tags\" option." 9221msgstr "" 9222 9223#. type: =item 9224#: lib/Locale/Po4a/Xml.pm:112 9225msgid "type=\"attribute\"" 9226msgstr "" 9227 9228#. type: textblock 9229#: lib/Locale/Po4a/Xml.pm:113 9230msgid "" 9231"Means that the found string is the value of a translatable attribute. The " 9232"entry \"attribute\" has the name of the attribute." 9233msgstr "" 9234 9235#. type: textblock 9236#: lib/Locale/Po4a/Xml.pm:114 9237msgid "" 9238"It must return the text that will replace the original in the translated " 9239"document. Here's a basic example of this function:" 9240msgstr "" 9241 9242#. type: verbatim 9243#: lib/Locale/Po4a/Xml.pm:115 9244#, no-wrap 9245msgid "" 9246" sub found_string {\n" 9247" my ($self,$text,$ref,$options)=@_;\n" 9248" $text = $self->translate($text,$ref,\"type \".$options->{'type'},\n" 9249" 'wrap'=>$self->{options}{'wrap'});\n" 9250" return $text;\n" 9251" }\n" 9252"\n" 9253msgstr "" 9254 9255#. type: textblock 9256#: lib/Locale/Po4a/Xml.pm:116 9257msgid "" 9258"There's another simple example in the new Dia module, which only filters " 9259"some strings." 9260msgstr "" 9261 9262#. type: =head2 9263#: lib/Locale/Po4a/Xml.pm:117 9264msgid "MODIFYING TAG TYPES (TODO)" 9265msgstr "" 9266 9267#. type: textblock 9268#: lib/Locale/Po4a/Xml.pm:118 9269msgid "" 9270"This is a more complex one, but it enables a (almost) total customization. " 9271"It's based on a list of hashes, each one defining a tag type's behavior. The " 9272"list should be sorted so that the most general tags are after the most " 9273"concrete ones (sorted first by the beginning and then by the end keys). To " 9274"define a tag type you'll have to make a hash with the following keys:" 9275msgstr "" 9276 9277#. type: =item 9278#: lib/Locale/Po4a/Xml.pm:119 9279msgid "B<beginning>" 9280msgstr "" 9281 9282#. type: textblock 9283#: lib/Locale/Po4a/Xml.pm:120 9284msgid "Specifies the beginning of the tag, after the \"E<lt>\"." 9285msgstr "" 9286 9287#. type: =item 9288#: lib/Locale/Po4a/Xml.pm:121 9289msgid "B<end>" 9290msgstr "" 9291 9292#. type: textblock 9293#: lib/Locale/Po4a/Xml.pm:122 9294msgid "Specifies the end of the tag, before the \"E<gt>\"." 9295msgstr "" 9296 9297#. type: =item 9298#: lib/Locale/Po4a/Xml.pm:123 9299msgid "B<breaking>" 9300msgstr "" 9301 9302#. type: textblock 9303#: lib/Locale/Po4a/Xml.pm:124 9304msgid "" 9305"It says if this is a breaking tag class. A non-breaking (inline) tag is one " 9306"that can be taken as part of the content of another tag. It can take the " 9307"values false (0), true (1) or undefined. If you leave this undefined, " 9308"you'll have to define the f_breaking function that will say whether a " 9309"concrete tag of this class is a breaking tag or not." 9310msgstr "" 9311 9312#. type: =item 9313#: lib/Locale/Po4a/Xml.pm:125 9314msgid "B<f_breaking>" 9315msgstr "" 9316 9317#. type: textblock 9318#: lib/Locale/Po4a/Xml.pm:126 9319msgid "" 9320"It's a function that will tell if the next tag is a breaking one or not. It " 9321"should be defined if the B<breaking> option is not." 9322msgstr "" 9323 9324#. type: =item 9325#: lib/Locale/Po4a/Xml.pm:127 9326msgid "B<f_extract>" 9327msgstr "" 9328 9329#. type: textblock 9330#: lib/Locale/Po4a/Xml.pm:128 9331msgid "" 9332"If you leave this key undefined, the generic extraction function will have " 9333"to extract the tag itself. It's useful for tags that can have other tags or " 9334"special structures in them, so that the main parser doesn't get mad. This " 9335"function receives a boolean that says if the tag should be removed from the " 9336"input stream or not." 9337msgstr "" 9338 9339#. type: =item 9340#: lib/Locale/Po4a/Xml.pm:129 9341msgid "B<f_translate>" 9342msgstr "" 9343 9344#. type: textblock 9345#: lib/Locale/Po4a/Xml.pm:130 9346msgid "" 9347"This function receives the tag (in the get_string_until() format) and " 9348"returns the translated tag (translated attributes or all needed " 9349"transformations) as a single string." 9350msgstr "" 9351 9352#. type: =head2 9353#: lib/Locale/Po4a/Xml.pm:132 9354msgid "WORKING WITH TAGS" 9355msgstr "" 9356 9357#. type: =item 9358#: lib/Locale/Po4a/Xml.pm:133 9359msgid "get_path()" 9360msgstr "" 9361 9362#. type: textblock 9363#: lib/Locale/Po4a/Xml.pm:134 9364msgid "" 9365"This function returns the path to the current tag from the document's root, " 9366"in the form E<lt>htmlE<gt>E<lt>bodyE<gt>E<lt>pE<gt>." 9367msgstr "" 9368 9369#. type: textblock 9370#: lib/Locale/Po4a/Xml.pm:135 9371msgid "" 9372"An additional array of tags (without brackets) can be passed as argument. " 9373"These path elements are added to the end of the current path." 9374msgstr "" 9375 9376#. type: =item 9377#: lib/Locale/Po4a/Xml.pm:136 9378msgid "tag_type()" 9379msgstr "" 9380 9381#. type: textblock 9382#: lib/Locale/Po4a/Xml.pm:137 9383msgid "" 9384"This function returns the index from the tag_types list that fits to the " 9385"next tag in the input stream, or -1 if it's at the end of the input file." 9386msgstr "" 9387 9388#. type: textblock 9389#: lib/Locale/Po4a/Xml.pm:138 9390msgid "" 9391"Here, the tag has structure started by E<lt> and end by E<gt> and it can " 9392"contain multiple lines." 9393msgstr "" 9394 9395#. type: textblock 9396#: lib/Locale/Po4a/Xml.pm:139 lib/Locale/Po4a/Xml.pm:142 9397#: lib/Locale/Po4a/Xml.pm:149 lib/Locale/Po4a/Xml.pm:158 9398msgid "" 9399"This works on the array C<< @{$self->{TT}{doc_in}} >> holding input document " 9400"data and reference indirectly via C<< $self->shiftline() >> and C<< " 9401"$self->unshiftline($$) >>." 9402msgstr "" 9403 9404#. type: =item 9405#: lib/Locale/Po4a/Xml.pm:140 9406msgid "extract_tag($$)" 9407msgstr "" 9408 9409#. type: textblock 9410#: lib/Locale/Po4a/Xml.pm:141 9411msgid "" 9412"This function returns the next tag from the input stream without the " 9413"beginning and end, in an array form, to maintain the references from the " 9414"input file. It has two parameters: the type of the tag (as returned by " 9415"tag_type) and a boolean, that indicates if it should be removed from the " 9416"input stream." 9417msgstr "" 9418 9419#. type: =item 9420#: lib/Locale/Po4a/Xml.pm:143 9421msgid "get_tag_name(@)" 9422msgstr "" 9423 9424#. type: textblock 9425#: lib/Locale/Po4a/Xml.pm:144 9426msgid "" 9427"This function returns the name of the tag passed as an argument, in the " 9428"array form returned by extract_tag." 9429msgstr "" 9430 9431#. type: =item 9432#: lib/Locale/Po4a/Xml.pm:145 9433msgid "breaking_tag()" 9434msgstr "" 9435 9436#. type: textblock 9437#: lib/Locale/Po4a/Xml.pm:146 9438msgid "" 9439"This function returns a boolean that says if the next tag in the input " 9440"stream is a breaking tag or not (inline tag). It leaves the input stream " 9441"intact." 9442msgstr "" 9443 9444#. type: =item 9445#: lib/Locale/Po4a/Xml.pm:147 9446msgid "treat_tag()" 9447msgstr "" 9448 9449#. type: textblock 9450#: lib/Locale/Po4a/Xml.pm:148 9451msgid "" 9452"This function translates the next tag from the input stream. Using each tag " 9453"type's custom translation functions." 9454msgstr "" 9455 9456#. type: =item 9457#: lib/Locale/Po4a/Xml.pm:150 9458msgid "tag_in_list($@)" 9459msgstr "" 9460 9461#. type: textblock 9462#: lib/Locale/Po4a/Xml.pm:151 9463msgid "" 9464"This function returns a string value that says if the first argument (a tag " 9465"hierarchy) matches any of the tags from the second argument (a list of tags " 9466"or tag hierarchies). If it doesn't match, it returns 0. Else, it returns the " 9467"matched tag's options (the characters in front of the tag) or 1 (if that tag " 9468"doesn't have options)." 9469msgstr "" 9470 9471#. type: =head2 9472#: lib/Locale/Po4a/Xml.pm:152 9473msgid "WORKING WITH ATTRIBUTES" 9474msgstr "" 9475 9476#. type: =item 9477#: lib/Locale/Po4a/Xml.pm:153 9478msgid "treat_attributes(@)" 9479msgstr "" 9480 9481#. type: textblock 9482#: lib/Locale/Po4a/Xml.pm:154 9483msgid "" 9484"This function handles the translation of the tags' attributes. It receives " 9485"the tag without the beginning / end marks, and then it finds the attributes, " 9486"and it translates the translatable ones (specified by the module option " 9487"\"attributes\"). This returns a plain string with the translated tag." 9488msgstr "" 9489 9490#. type: =head2 9491#: lib/Locale/Po4a/Xml.pm:155 9492msgid "WORKING WITH TAGGED CONTENTS" 9493msgstr "" 9494 9495#. type: =item 9496#: lib/Locale/Po4a/Xml.pm:156 9497msgid "treat_content()" 9498msgstr "" 9499 9500#. type: textblock 9501#: lib/Locale/Po4a/Xml.pm:157 9502msgid "" 9503"This function gets the text until the next breaking tag (not inline) from " 9504"the input stream. Translate it using each tag type's custom translation " 9505"functions." 9506msgstr "" 9507 9508#. type: =head2 9509#: lib/Locale/Po4a/Xml.pm:159 9510msgid "WORKING WITH THE MODULE OPTIONS" 9511msgstr "" 9512 9513#. type: =item 9514#: lib/Locale/Po4a/Xml.pm:160 9515msgid "treat_options()" 9516msgstr "" 9517 9518#. type: textblock 9519#: lib/Locale/Po4a/Xml.pm:161 9520msgid "" 9521"This function fills the internal structures that contain the tags, " 9522"attributes and inline data with the options of the module (specified in the " 9523"command-line or in the initialize function)." 9524msgstr "" 9525 9526#. type: =head2 9527#: lib/Locale/Po4a/Xml.pm:162 9528msgid "GETTING TEXT FROM THE INPUT DOCUMENT" 9529msgstr "" 9530 9531#. type: =item 9532#: lib/Locale/Po4a/Xml.pm:163 9533msgid "get_string_until($%)" 9534msgstr "" 9535 9536#. type: textblock 9537#: lib/Locale/Po4a/Xml.pm:164 9538msgid "" 9539"This function returns an array with the lines (and references) from the " 9540"input document until it finds the first argument. The second argument is an " 9541"options hash. Value 0 means disabled (the default) and 1, enabled." 9542msgstr "" 9543 9544#. type: textblock 9545#: lib/Locale/Po4a/Xml.pm:165 9546msgid "The valid options are:" 9547msgstr "" 9548 9549#. type: =item 9550#: lib/Locale/Po4a/Xml.pm:166 9551msgid "B<include>" 9552msgstr "" 9553 9554#. type: textblock 9555#: lib/Locale/Po4a/Xml.pm:167 9556msgid "This makes the returned array to contain the searched text" 9557msgstr "" 9558 9559#. type: =item 9560#: lib/Locale/Po4a/Xml.pm:168 9561msgid "B<remove>" 9562msgstr "" 9563 9564#. type: textblock 9565#: lib/Locale/Po4a/Xml.pm:169 9566msgid "This removes the returned stream from the input" 9567msgstr "" 9568 9569#. type: =item 9570#: lib/Locale/Po4a/Xml.pm:170 9571msgid "B<unquoted>" 9572msgstr "" 9573 9574#. type: textblock 9575#: lib/Locale/Po4a/Xml.pm:171 9576msgid "This ensures that the searched text is outside any quotes" 9577msgstr "" 9578 9579#. type: =item 9580#: lib/Locale/Po4a/Xml.pm:172 9581msgid "B<regex>" 9582msgstr "" 9583 9584#. type: textblock 9585#: lib/Locale/Po4a/Xml.pm:173 9586msgid "" 9587"This denotes that the first argument is a regular expression rather than an " 9588"plain string" 9589msgstr "" 9590 9591#. type: =item 9592#: lib/Locale/Po4a/Xml.pm:174 9593msgid "skip_spaces(\\@)" 9594msgstr "" 9595 9596#. type: textblock 9597#: lib/Locale/Po4a/Xml.pm:175 9598msgid "" 9599"This function receives as argument the reference to a paragraph (in the " 9600"format returned by get_string_until), skips his heading spaces and returns " 9601"them as a simple string." 9602msgstr "" 9603 9604#. type: =item 9605#: lib/Locale/Po4a/Xml.pm:176 9606msgid "join_lines(@)" 9607msgstr "" 9608 9609#. type: textblock 9610#: lib/Locale/Po4a/Xml.pm:177 9611msgid "" 9612"This function returns a simple string with the text from the argument array " 9613"(discarding the references)." 9614msgstr "" 9615 9616#. type: textblock 9617#: lib/Locale/Po4a/Xml.pm:179 9618msgid "This module can translate tags and attributes." 9619msgstr "" 9620 9621#. type: textblock 9622#: lib/Locale/Po4a/Xml.pm:181 9623msgid "DOCTYPE (ENTITIES)" 9624msgstr "" 9625 9626#. type: textblock 9627#: lib/Locale/Po4a/Xml.pm:182 9628msgid "" 9629"There is a minimal support for the translation of entities. They are " 9630"translated as a whole, and tags are not taken into account. Multilines " 9631"entities are not supported and entities are always rewrapped during the " 9632"translation." 9633msgstr "" 9634 9635#. type: textblock 9636#: lib/Locale/Po4a/Xml.pm:183 9637msgid "" 9638"MODIFY TAG TYPES FROM INHERITED MODULES (move the tag_types structure inside " 9639"the $self hash?)" 9640msgstr "" 9641 9642#. type: textblock 9643#: lib/Locale/Po4a/Xml.pm:185 9644msgid "" 9645"L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, " 9646"L<po4a(7)|po4a.7>" 9647msgstr "" 9648 9649#. type: verbatim 9650#: lib/Locale/Po4a/Xml.pm:187 9651#, no-wrap 9652msgid "" 9653" Jordi Vilalta <jvprat@gmail.com>\n" 9654" Nicolas François <nicolas.francois@centraliens.net>\n" 9655"\n" 9656msgstr "" 9657 9658#. type: verbatim 9659#: lib/Locale/Po4a/Xml.pm:189 9660#, no-wrap 9661msgid "" 9662" Copyright © 2004 Jordi Vilalta <jvprat@gmail.com>\n" 9663" Copyright © 2008-2009 Nicolas François <nicolas.francois@centraliens.net>\n" 9664"\n" 9665msgstr "" 9666