Provided by: po4a_0.67-2_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".

       dedup
           Boolean indicating whether we should deduplicate msgids.  If true, when the same
           string is added again, a space is appended to deduplicate it.  This is probably only
           useful in the gettextization context, where dupplicate msgids break the string pairing
           algorithm.  See https://github.com/mquinson/po4a/issues/334 for more info.

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.

       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)