LOCALE::PO4A::PO.3PM(1) User Contributed Perl Documentation NUME Locale::Po4a::Po - modul de manipulare a fiierelor PO SINOPSIS use Locale::Po4a::Po; my $pofile=Locale::Po4a::Po->new(); # Citete fiierul PO $pofile->read('fiier.po'); # Adauga o intrare $pofile->push('msgid' => 'Hello', 'msgstr' => 'Salut', 'flags' => "wrap", 'reference'=>'file.c:46'); # Extrage o traducere $pofile->gettext("Hello"); # returneaza 'Salut' # Scrie inapoi intr-un fiier $pofile->write('alt-fiier.po'); DESCRIERE Locale::Po4a::Po este un modul care va permite sa manipulai cataloagele de mesaje. Putei incarca i scrie din/intr-un fiier (a carui extensie este adesea po), putei construi noi intrari din mers sau solicita traducerea unui ir de caractere. Pentru o descriere mai completa a cataloagelor de mesaje in format PO i a utilizarii acestora, consultai documentaia info a programului gettext (nodul ,,`PO Files"'). Acest modul face parte din proiectul po4a, al carui obiectiv este de a utiliza fiierele PO (concepute la origine pentru a facilita traducerea mesajelor de program) pentru a traduce totul, inclusiv documentaia (pagina man, manualul info), descrierea pachetului, abloanele debconf i tot ceea ce se poate beneficia de acest lucru. OPIUNI ACCEPTATE DE ACEST MODUL --porefs tip Specifica formatul referinei. Argumentul tip poate fi unul dintre never pentru a nu produce nicio referina, file pentru a specifica doar fiierul fara numarul de linie, counter pentru a inlocui numarul de linie cu un contor crescator i full pentru a include referine complete (implicit: full). --wrap-po no|newlines|numar (implicit: 76) Specifica modul in care liniile din fiierul po ar trebui sa fie incadrate. Acest lucru ofera posibilitatea de a alege intre fiiere care sunt bine ajustate ca incadrare, dar ar putea duce la conflicte git, sau fiiere care sunt mai uor de gestionat automat, dar mai greu de citit pentru oameni. Din punct de vedere istoric, suita gettext a reformatat fiierele po la a 77-a coloana pentru cosmetica. Aceasta opiune specifica comportamentul lui po4a. Daca este definita la o valoare numerica, po4a va impacheta fiierul po dupa aceasta coloana i dupa noile linii din coninut. Daca este definita la newlines, po4a va impari doar msgid i msgstr dupa linii noi din coninut. Daca este definita la no, po4a nu va incadra deloc fiierul po. Comentariile de referina sunt intotdeauna incadrate de instrumentele gettext pe care le folosim intern. Reinei ca aceasta opiune nu are niciun impact asupra modului in care msgid i msgstr sunt incadrate, adica asupra modului in care sunt adaugate linii noi la coninutul acestor iruri. --msgid-bugs-address adresa@pota.electronica Definete adresa de raportare pentru erori din msgid. In mod implicit, fiierele POT create nu au campuri Report-Msgid-Bugs-To. --copyright-holder ir Definete deinatorul drepturilor de autor in antetul POT. Valoarea implicita este ,,Free Software Foundation, Inc." --package-name ir Definete numele pachetului pentru antetul POT. Valoarea implicita este ,,PACKAGE". --package-version ir Definete versiunea pachetului pentru antetul POT. Valoarea implicita este ,,VERSION". Funcii privind cataloage intregi de mesaje new() Creeaza un nou catalog de mesaje. Daca este furnizat un argument, acesta este numele unui fiier PO pe care ar trebui sa il incarcam. read($) Citete un fiier PO (al carui nume este dat ca argument). Intrarile existente anterior in acesta nu sunt eliminate, cele noi sunt adaugate la sfaritul catalogului. write($) Scrie catalogul curent in fiierul dat. write_if_needed($$) Precum ,,write($)", dar daca fiierul PO sau POT exista deja, obiectul va fi scris intr-un fiier temporar care va fi comparat cu fiierul existent pentru a verifica daca actualizarea este necesara (astfel se evita modificarea unui POT doar pentru a actualiza o referina de linie sau campul POT-Creation-Date). filter($) Aceasta funcie extrage un catalog dintr-unul existent. Doar intrarile care au o referina in fiierul dat vor fi plasate in catalogul rezultat. Aceasta funcie analizeaza argumentul sau, il convertete intr-o definiie de funcie Perl, verifica aceasta definiie i filtreaza campurile pentru care aceasta funcie returneaza ,,true". Iubesc Perl uneori ;) Funcii pentru utilizarea unui catalog de mesaje pentru traduceri gettext($%) Solicita traducerea irului de caractere dat ca argument in catalogul curent. Funcia returneaza irul original (netradus) daca irul nu a fost gasit. Dupa irul de caractere de tradus, putei trece o serie de argumente suplimentare. Iata intrarile valide: wrap argument boolean care indica daca putem considera ca spaiile albe din ir nu sunt importante. Daca da, funcia canonizeaza irul inainte de a cauta o traducere i incadreaza rezultatul. wrapcol coloana la care ar trebui sa se faca incadrarea (implicit: 76). stats_get() Returneaza statistici despre rata de succes a gettext de la ultima data cand a fost apelat stats_clear(). Va rugam sa reinei ca nu este vorba de aceleai statistici ca cele afiate de msgfmt --statistic. Aici, este vorba de statistici despre utilizarea recenta a fiierului PO, in timp ce msgfmt raporteaza starea fiierului. Exemplu de utilizare: [unele utilizari ale fiierului PO pentru a traduce lucruri] ($percent,$hit,$queries) = $pofile->stats_get(); print "Pana acum, am gasit traduceri pentru $percent\% ($hit din $queries) de iruri.\n"; stats_clear() terge statisticile privind rezultatele (gasirile de iruri) gettext. Funcii pentru a construi un catalog de mesaje push(%) Introduce o noua intrare la sfaritul catalogului curent. Argumentele trebuie sa formeze un tabel de elemente asociative. Cheile valide sunt: msgid irul de caractere in limba originala. msgstr traducerea. reference o indicaie a locului in care a fost gasit acest ir de caractere. Exemplu: file.c:46 (adica in ,,file.c" la linia 46). Poate fi o lista separata prin spaii in cazul ocurenelor multiple. comment un comentariu adaugat aici manual (de catre traducatori). Formatul acestuia este liber. automatic un comentariu care a fost adaugat automat de programul de extragere a irurilor de caractere. Consultai opiunea --add-comments a programului xgettext pentru mai multe informaii. flags lista separata prin spaii a tuturor fanioanelor definite pentru aceasta intrare. Fanioanele valide sunt: 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 i fuzzy. Consultai documentaia gettext pentru semnificaia acestora. type acesta este in principal un argument intern: este utilizat in timpul gettextizarii documentelor. Ideea aici este de a analiza atat originalul, cat i traducerea intr-un obiect PO i de a le uni, folosind msgid-ul unuia ca msgid i msgid-ul celuilalt ca msgstr. Pentru a ne asigura ca lucrurile merg bine, fiecarui msgid din obiectele PO i se atribuie un tip, bazat pe structura lor (precum ,,chapt", ,,sect1", ,,p" i aa mai departe in DocBook). Daca tipurile de iruri de caractere nu sunt identice, inseamna ca ambele fiiere nu au aceeai structura, iar procesul raporteaza o eroare. Aceste informaii sunt scrise ca un comentariu automat in fiierul PO, deoarece ofera traducatorilor un anumit context cu privire la irurile de caractere de tradus. wrap boolean care indica daca spaiile albe pot fi manipulate in reformatarile cosmetice. Daca este adevarat, irul este canonizat inainte de utilizare. Aceste informaii sunt scrise in fiierul PO cu ajutorul fanionului wrap sau no-wrap. wrapcol ignorat; cheia este pastrata pentru compatibilitatea cu versiunile anterioare. Funcii diverse count_entries() Returneaza numarul de intrari din catalog (fara antet). count_entries_doc() Returneaza numarul de intrari din document. Daca un ir de caractere apare de mai multe ori in document, acesta va fi numarat de mai multe ori. msgid($) Returneaza msgid-ul numarului dat. msgid_doc($) Returneaza msgid-ul cu poziia data in document. type_doc($) Returneaza tipul msgidului cu poziia data in document. Acest lucru este probabil util doar pentru gettextizare i este stocat separat de {$msgid}{'type'} deoarece locaia ulterioara poate fi suprascrisa de un alt tip atunci cand $msgid este duplicat in documentul principal. get_charset() Returneaza setul de caractere specificat in antetul PO. Daca nu a fost definit, se va returna ,,UTF-8". AUTORI Denis Barbier Martin Quinson (mquinson#debian.org) perl v5.42.0 2025-11-22 LOCALE::PO4A::PO.3PM(1)