Provided by: po4a_0.66-1_all bug

NAAM

       Locale::Po4a::Po - Module voor het manipuleren van PO-bestanden

OVERZICHT

           use Locale::Po4a::Po;
           my $pofile=Locale::Po4a::Po->new();

           # PO-bestand lezen
           $pofile->read('file.po');

           # Een element toevoegen
           $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour',
                         'flags' => "wrap", 'reference'=>'file.c:46');

           # Een vertaling extraheren
           $pofile->gettext("Hello"); # geeft als terugkeer 'bonjour'

           # Terug naar een bestand schrijven
           $pofile->write('anderbestand.po');

BESCHRIJVING

       Locale::Po4a::Po is een module die u toelaat berichtencatalogi te manipuleren. U kunt uit bestand
       lezen/naar bestand schrijven (de extensie ervan is vaak po), u kunt in een oogwenk nieuwe elementen
       bouwen of om de vertaling van een tekstfragment vragen.

       Voor een meer volledige beschrijving van berichtencatalogi in de PO-indeling en hun gebruik kunt u de
       infodocumentatie van het gettext-programma (sectie "'PO-bestanden"') raadplegen.

       Deze module is een onderdeel van het po4a-project, dat tot doel heeft PO-bestanden (oorspronkelijk
       ontworpen om de vertaling van programmaberichten te vergemakkelijken) te gebruiken om alles te vertalen,
       waaronder documentatie (man-pagina's, infohandleidingen), pakketbeschrijvingen, debconf-sjablonen en
       alles wat hiervan kan profiteren.

MOGELIJKE OPTIES BIJ DEZE MODULE

       --porefs type
           Het  referentieformaat  specificeren.  Het  argument type kan één van de volgende zijn: never om geen
           enkele referentie te produceren, file om enkel het bestand zonder  het  lijnnummer  te  specificeren,
           counter  om  het regelnummer te vervangen door een oplopende teller, en full om volledige referenties
           op te nemen (standaard: full).

       --wrap-po no|newlines|getal (standaard: 76)
           Specificeren hoe de regelafbreking voor po-bestanden er moet  uitzien.  Dit  geeft  de  keuze  tussen
           bestanden  met een mooie regelafbreking, die echter kunnen leiden tot git-conflicten en bestanden die
           makkelijker automatisch te behandelen zijn, maar voor mensen moeilijker leesbaar.

           Vanouds brak de gettext-suite uit cosmetische overwegingen de regels van po-bestanden af bij  de  77e
           kolom.  Deze  optie  specificeert  het  gedrag  van po4a. Indien dit ingesteld wordt op een numerieke
           waarde, zal po4a de regels van het po-bestand afbreken na deze kolom en  na  regeleinden  die  in  de
           inhoud voorkomen. Indien dit ingesteld wordt op newlines, zal po4a  de msgid en msgstr enkel afbreken
           na  regeleinden  die in de inhoud voorkomen. Indien dit ingesteld wordt op no, zal po4a helemaal geen
           regelafbreking toepassen in het po-bestand. De regelafbreking  in  het  referentiecommentaar  gebeurt
           steeds door het gettext-gereedschap dat we intern gebruiken.

           Merk  op  dat  deze  optie  geen  impact  heeft  op de wijze waarop regelafbreking in msgid en msgstr
           gebeurt, d.w.z. op hoe einderegels toegevoegd worden aan de inhoud van deze tekstfragmenten.

       --msgid-bugs-address email@adres
           Het adres instellen voor het rapporteren  van  msgid-bugs.  Standaard  bevatten  de  gecreëerde  POT-
           bestanden niet het veld Report-Msgid-Bugs-To.

       --copyright-holder tekenreeks
           Instellen  van  de copyrighthouder in de POT-header. De standaardwaarde is "Free Software Foundation,
           Inc."

       --package-name tekenreeks
           Instellen van de pakketnaam voor de POT-header. Standaard is dat "PACKAGE".

       --package-version tekenreeks
           Instellen van de pakketversie voor de POT-header. Standaard is dat "VERSION".

Functies met betrekking tot volledige berichtencatalogi

       new()
           Creëert een nieuwe berichtencatalogus. Als er een argument opgegeven wordt, is het de  naam  van  een
           PO-bestand dat geladen moet worden.

       read($)
           Leest  een  PO-bestand  (waarvan  de  naam  als argument opgegeven werd). Elementen in self die reeds
           eerder bestonden, worden niet verwijderd, nieuwe worden aan het einde van de catalogus toegevoegd.

       write($)
           Schrijft de huidige catalogus naar het opgegeven bestand.

       write_if_needed($$)
           Zoals write, maar als het PO- en het POT-bestand reeds bestaan, wordt het object naar  een  tijdelijk
           bestand  geschreven,  dat vergeleken wordt met het bestaande bestand om na te gaan of de update nodig
           is (dit vermijdt dat een POT-bestand gewijzigd wordt, enkel om een regelreferentie of het  veld  POT-
           Creation-Date bij te werken).

       gettextize($$)
           Deze functie produceert een vertaalde berichtencatalogus op basis van twee catalogi, een origineel en
           een vertaling. Dit proces wordt beschreven in po4a(7), afdeling Gettextize-proces: hoe werkt het?.

       filter($)
           Deze  functie  extraheert  een  catalogus  uit een bestaande catalogus. Enkel de elementen die in het
           opgegeven bestand een referentie hebben, zullen in de resulterende catalogus geplaatst worden.

           Deze functie ontleedt zijn argument, zet het om naar een Perl-functie, evalueert  deze  definitie  en
           filtert de velden waarvoor deze functie de waarde true (waar) teruggeeft.

           Soms hou ik van Perl ;)

       to_utf8()
           Zet de msgstrs in het PO-bestand om naar UTF-8 . Doet niets indien de tekenset in het PO-bestand niet
           gespecificeerd werd (waarde van "CHARSET"), of indien deze reeds UTF-8 of ASCII is.

Functies om een berichtencatalogus te gebruiken voor vertalingen

       gettext($%)
           Zoekt  in  de huidige catalogus de vertaling op van het als argument opgegeven tekstfragment. De door
           de functie teruggegeven waarde is het originele (niet-vertaalde) tekstfragment als het  tekstfragment
           onvindbaar is.

           Na  het te vertalen tekstfragment kunt u een hash van extra argumenten doorgeven. Dit zijn de geldige
           vermeldingen:

           wrap
               booleaanse operator die aangeeft of we de witruimtes in de  tekenreeks  als  onbelangrijk  kunnen
               beschouwen.  Indien  het  antwoord  ja  is,  canoniseert  de functie het tekstfragment voordat de
               vertaling ervan opgezocht wordt en past ze regelafbreking toe op het resultaat.

           wrapcol
               de kolom waar de regelafbreking moet gebeuren (standaard: 76).

       stats_get()
           Bezorgt statistieken over de  succesratio  van  gettext  sinds  de  laatste  keer  dat  stats_clear()
           aangeroepen  werd.  Merk  op  dat  dit  niet  dezelfde  statistieken  zijn  dan die welke door msgfmt
           --statistic weergegeven worden. Hier betreft het statistieken over het recente gebruik  van  het  PO-
           bestand, terwijl msgfmt rapporteert over de toestand van het bestand. Een gebruiksvoorbeeld:

               [een zeker gebruik van het PO-bestand om zaken te vertalen]

               ($percent,$hit,$queries) = $pofile->stats_get();
               print "Tot nu werden in $percent\%  ($hit op $queries) van de gevallen vertalingen gevonden voor tekstfragmenten.\n";

       stats_clear()
           Wist de statistieken over de succesratio van gettext.

Functies voor het bouwen van een berichtencatalogus

       push(%)
           Een  nieuw  element  toevoegen aan het einde van de huidige catalogus. De argumenten moeten een hash-
           tabel vormen. Geldige sleutelwaarden zijn:

           msgid
               het tekstfragment in de originele taal.

           msgstr
               de vertaling.

           reference
               een aanduiding over de vindplaats van  dit  tekstfragment.  Bijvoorbeeld:  bestand.c:46  (hetgeen
               betekent  in 'bestand.c' op regel 46). Het kan een door spaties gescheiden lijst zijn wanneer het
               meermaals voorkomt.

           comment
               een hier handmatig (door de vertalers) toegevoegde commentaar. Hier is de indeling vrij.

           automatic
               een commentaar dat automatisch toegevoegd  werd  door  het  programma  voor  het  extraheren  van
               tekstfragmenten. Zie de optie --add-comments van het xgettext-programma voor meer informatie.

           flags
               door spaties gescheiden lijst van alle gedefinieerde vlaggen voor dit element.

               Geldige  vlaggen  zijn:  c-text, python-text, lisp-text, elisp-text, librep-text, smalltalk-text,
               java-text, awk-text, object-pascal-text, ycp-text, tcl-text, wrap, no-wrap en fuzzy.

               Raadpleeg de gettext-documentatie voor hun betekenis.

           type
               dit is een hoofdzakelijk intern argument: het wordt gebruikt bij het uitvoeren van gettextize  op
               documenten.  Het  idee  hier  is om zowel het origineel als de vertaling te ontleden naar een PO-
               object en deze samen te voegen door de msgid van het ene als msgid te gebruiken en het msgid  van
               het  andere  als  msgstr.  Om  te verzekeren dat de zaken goed verlopen, krijgt elke msgid in PO-
               objecten op basis van zijn structuur (zoals "chapt", "sect1", "p" enzovoort in DocBook) een  type
               toegewezen.  Indien  tekstfragmenten niet hetzelfde type hebben, betekent dit dat beide bestanden
               niet dezelfde structuur hebben en zal het proces een fout rapporteren.

               Deze informatie wordt als automatische commentaar  opgeschreven  in  het  PO-bestand,  omdat  dit
               vertalers enige context geeft over de te vertalen tekstfragmenten.

           wrap
               booleaanse  operator  die aangeeft of witruimte kan aangepast worden in het kader van cosmetische
               opmaakaanpassingen. Indien de waarde  true  (waar)  is,  wordt  het  tekstfragment  voor  gebruik
               gecanoniseerd.

               Deze informatie wordt opgeschreven in het PO-bestand met de vlaggen wrap (indien waar) of no-wrap
               (indien niet waar).

           wrapcol
               de kolom waar de regelafbreking moet gebeuren (standaard: 76).

               Deze informatie wordt niet opgeschreven in het PO-bestand.

Diverse functies

       count_entries()
           Rapporteert het aantal elementen in de catalogus (zonder de header).

       count_entries_doc()
           Rapporteert het aantal elementen in het document. Indien een tekstfragment meerdere keren voorkomt in
           het document, zal het meerdere keren geteld worden.

       equals_msgid(po)
           Geeft  ($uptodate,  $diagnostic)  terug, waarbij $uptodate aangeeft of alle msgid van het huidige po-
           bestand ook aanwezig zijn in het bestand dat als parameter opgegeven werd (bij het vergelijken van de
           bestanden worden alle andere velden genegeerd). Indien $uptodate de waarde onwaar (false) teruggeeft,
           zouden de po-bestanden gewijzigd worden, mocht po4a-updatepo uitgevoerd worden.

           Indien $uptodate onwaar is, dan bevat $diagnostic diagnostische informatie over waarom dat zo is.

       msgid($)
           Geeft het msgid terug van het opgegeven getal.

       msgid_doc($)
           Geeft het msgid terug dat de opgegeven positie in het document bekleedt.

       get_charset()
           Rapporteert de in de PO-header opgegeven tekenset. Indien dit  daar  niet  ingesteld  werd,  zal  het
           "UTF-8" rapporteren.

       set_charset($)
           Stelt in de PO-header de tekenset in op de waarde die in het eerste argument opgegeven werd. Indien u
           deze functie nooit aanroept (en er geen bestand met een specifieke tekenset gelezen wordt), blijft de
           standaardwaarde  behouden  op "UTF-8". Deze waarde wijzigt het gedrag van deze module niet, zij wordt
           enkel gebruikt om dat veld in de header in te vullen en dat bij get_charset() terug te zenden.

AUTEURS

        Denis Barbier <barbier@linuxfr.org>
        Martin Quinson (mquinson#debian.org)

Po4a-hulpmiddelen                                  2022-01-02                              Locale::Po4a::Po(3pm)