.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "LOCALE::PO4A::PO.3PM 1" .TH LOCALE::PO4A::PO.3PM 1 2025-11-22 "perl v5.42.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NUME .IX Header "NUME" Locale::Po4a::Po \- modul de manipulare a fișierelor PO .SH SINOPSIS .IX Header "SINOPSIS" .Vb 2 \& use Locale::Po4a::Po; \& my $pofile=Locale::Po4a::Po\->new(); \& \& # Citește fișierul PO \& $pofile\->read(\*(Aqfișier.po\*(Aq); \& \& # Adaugă o intrare \& $pofile\->push(\*(Aqmsgid\*(Aq => \*(AqHello\*(Aq, \*(Aqmsgstr\*(Aq => \*(AqSalut\*(Aq, \& \*(Aqflags\*(Aq => "wrap", \*(Aqreference\*(Aq=>\*(Aqfile.c:46\*(Aq); \& \& # Extrage o traducere \& $pofile\->gettext("Hello"); # returnează \*(AqSalut\*(Aq \& \& # Scrie înapoi într\-un fișier \& $pofile\->write(\*(Aqalt\-fișier.po\*(Aq); .Ve .SH DESCRIERE .IX Header "DESCRIERE" Locale::Po4a::Po este un modul care vă permite să manipulați cataloagele de mesaje. Puteți încărca și scrie din/într\-un fișier (a cărui extensie este adesea \fIpo\fR), puteți construi noi intrări din mers sau solicita traducerea unui șir de caractere. .PP Pentru o descriere mai completă a cataloagelor de mesaje în format PO și a utilizării acestora, consultați documentația info a programului gettext (nodul „\`PO Files”\*(Aq). .PP Acest modul face parte din proiectul po4a, al cărui obiectiv este de a utiliza fișierele PO (concepute la origine pentru a facilita traducerea mesajelor de program) pentru a traduce totul, inclusiv documentația (pagina man, manualul info), descrierea pachetului, șabloanele debconf și tot ceea ce se poate beneficia de acest lucru. .SH "OPȚIUNI ACCEPTATE DE ACEST MODUL" .IX Header "OPȚIUNI ACCEPTATE DE ACEST MODUL" .IP "\fB\-\-porefs\fR \fItip\fR" 4 .IX Item "--porefs tip" Specifică formatul referinței. Argumentul \fItip\fR poate fi unul dintre \&\fBnever\fR pentru a nu produce nicio referință, \fBfile\fR pentru a specifica doar fișierul fără numărul de linie, \fBcounter\fR pentru a înlocui numărul de linie cu un contor crescător și \fBfull\fR pentru a include referințe complete (implicit: full). .IP "\fB\-\-wrap\-po\fR \fBno\fR|\fBnewlines\fR|\fInumăr\fR (implicit: 76)" 4 .IX Item "--wrap-po no|newlines|număr (implicit: 76)" Specifică modul în care liniile din fișierul po ar trebui să fie încadrate. Acest lucru oferă posibilitatea de a alege între fișiere care sunt bine ajustate ca încadrare, dar ar putea duce la conflicte git, sau fișiere care sunt mai ușor de gestionat automat, dar mai greu de citit pentru oameni. .Sp Din punct de vedere istoric, suita gettext a reformatat fișierele po la a 77\-a coloană pentru cosmetică. Această opțiune specifică comportamentul lui po4a. Dacă este definită la o valoare numerică, po4a va împacheta fișierul po după această coloană și după noile linii din conținut. Dacă este definită la \fBnewlines\fR, po4a va împărți doar msgid și msgstr după linii noi din conținut. Dacă este definită la \fBno\fR, po4a nu va încadra deloc fișierul po. Comentariile de referință sunt întotdeauna încadrate de instrumentele gettext pe care le folosim intern. .Sp Rețineți că această opțiune nu are niciun impact asupra modului în care msgid și msgstr sunt încadrate, adică asupra modului în care sunt adăugate linii noi la conținutul acestor șiruri. .IP "\fB\-\-msgid\-bugs\-address\fR \fIadresă@poștă.electronică\fR" 4 .IX Item "--msgid-bugs-address adresă@poștă.electronică" Definește adresa de raportare pentru erori din msgid. În mod implicit, fișierele POT create nu au câmpuri Report\-Msgid\-Bugs\-To. .IP "\fB\-\-copyright\-holder\fR \fIșir\fR" 4 .IX Item "--copyright-holder șir" Definește deținătorul drepturilor de autor în antetul POT. Valoarea implicită este „Free Software Foundation, Inc.” .IP "\fB\-\-package\-name\fR \fIșir\fR" 4 .IX Item "--package-name șir" Definește numele pachetului pentru antetul POT. Valoarea implicită este „PACKAGE”. .IP "\fB\-\-package\-version\fR \fIșir\fR" 4 .IX Item "--package-version șir" Definește versiunea pachetului pentru antetul POT. Valoarea implicită este „VERSION”. .SH "Funcții privind cataloage întregi de mesaje" .IX Header "Funcții privind cataloage întregi de mesaje" .IP \fBnew()\fR 4 .IX Item "new()" Creează un nou catalog de mesaje. Dacă este furnizat un argument, acesta este numele unui fișier PO pe care ar trebui să îl încărcăm. .IP read($) 4 .IX Item "read($)" Citește un fișier PO (al cărui nume este dat ca argument). Intrările existente anterior în acesta nu sunt eliminate, cele noi sunt adăugate la sfârșitul catalogului. .IP write($) 4 .IX Item "write($)" Scrie catalogul curent în fișierul dat. .IP write_if_needed($$) 4 .IX Item "write_if_needed($$)" Precum „write($)”, dar dacă fișierul PO sau POT există deja, obiectul va fi scris într\-un fișier temporar care va fi comparat cu fișierul existent pentru a verifica dacă actualizarea este necesară (astfel se evită modificarea unui POT doar pentru a actualiza o referință de linie sau câmpul POT\-Creation\-Date). .IP filter($) 4 .IX Item "filter($)" Această funcție extrage un catalog dintr\-unul existent. Doar intrările care au o referință în fișierul dat vor fi plasate în catalogul rezultat. .Sp Această funcție analizează argumentul său, îl convertește într\-o definiție de funcție Perl, verifică această definiție și filtrează câmpurile pentru care această funcție returnează „true”. .Sp Iubesc Perl uneori ;) .SH "Funcții pentru utilizarea unui catalog de mesaje pentru traduceri" .IX Header "Funcții pentru utilizarea unui catalog de mesaje pentru traduceri" .IP gettext($%) 4 .IX Item "gettext($%)" Solicită traducerea șirului de caractere dat ca argument în catalogul curent. Funcția returnează șirul original (netradus) dacă șirul nu a fost găsit. .Sp După șirul de caractere de tradus, puteți trece o serie de argumente suplimentare. Iată intrările valide: .RS 4 .IP \fBwrap\fR 4 .IX Item "wrap" argument boolean care indică dacă putem considera că spațiile albe din șir nu sunt importante. Dacă da, funcția canonizează șirul înainte de a căuta o traducere și încadrează rezultatul. .IP \fBwrapcol\fR 4 .IX Item "wrapcol" coloana la care ar trebui să se facă încadrarea (implicit: 76). .RE .RS 4 .RE .IP \fBstats_get()\fR 4 .IX Item "stats_get()" Returnează statistici despre rata de succes a gettext de la ultima dată când a fost apelat \fBstats_clear()\fR. Vă rugăm să rețineți că nu este vorba de aceleași statistici ca cele afișate de msgfmt \-\-statistic. Aici, este vorba de statistici despre utilizarea recentă a fișierului PO, în timp ce msgfmt raportează starea fișierului. Exemplu de utilizare: .Sp .Vb 1 \& [unele utilizări ale fișierului PO pentru a traduce lucruri] \& \& ($percent,$hit,$queries) = $pofile\->stats_get(); \& print "Până acum, am găsit traduceri pentru $percent\e% ($hit din $queries) de șiruri.\en"; .Ve .IP \fBstats_clear()\fR 4 .IX Item "stats_clear()" Șterge statisticile privind rezultatele (găsirile de șiruri) gettext. .SH "Funcții pentru a construi un catalog de mesaje" .IX Header "Funcții pentru a construi un catalog de mesaje" .IP push(%) 4 .IX Item "push(%)" Introduce o nouă intrare la sfârșitul catalogului curent. Argumentele trebuie să formeze un tabel de elemente asociative. Cheile valide sunt: .RS 4 .IP \fBmsgid\fR 4 .IX Item "msgid" șirul de caractere în limba originală. .IP \fBmsgstr\fR 4 .IX Item "msgstr" traducerea. .IP \fBreference\fR 4 .IX Item "reference" o indicație a locului în care a fost găsit acest șir de caractere. Exemplu: file.c:46 (adică în „file.c” la linia 46). Poate fi o listă separată prin spații în cazul ocurențelor multiple. .IP \fBcomment\fR 4 .IX Item "comment" un comentariu adăugat aici manual (de către traducători). Formatul acestuia este liber. .IP \fBautomatic\fR 4 .IX Item "automatic" un comentariu care a fost adăugat automat de programul de extragere a șirurilor de caractere. Consultați opțiunea \fB\-\-add\-comments\fR a programului \&\fBxgettext\fR pentru mai multe informații. .IP \fBflags\fR 4 .IX Item "flags" listă separată prin spații a tuturor fanioanelor definite pentru această intrare. .Sp Fanioanele valide sunt: \fBc\-text\fR, \fBpython\-text\fR, \fBlisp\-text\fR, \&\fBelisp\-text\fR, \fBlibrep\-text\fR, \fBsmalltalk\-text\fR, \fBjava\-text\fR, \fBawk\-text\fR, \&\fBobject\-pascal\-text\fR, \fBycp\-text\fR, \fBtcl\-text\fR, \fBwrap\fR, \fBno\-wrap\fR și \&\fBfuzzy\fR. .Sp Consultați documentația gettext pentru semnificația acestora. .IP \fBtype\fR 4 .IX Item "type" acesta este în principal un argument intern: este utilizat în timpul gettextizării documentelor. Ideea aici este de a analiza atât originalul, cât și traducerea într\-un obiect PO și de a le uni, folosind msgid\-ul unuia ca msgid și msgid\-ul celuilalt ca msgstr. Pentru a ne asigura că lucrurile merg bine, fiecărui msgid din obiectele PO i se atribuie un tip, bazat pe structura lor (precum „chapt”, „sect1”, „p” și așa mai departe în DocBook). Dacă tipurile de șiruri de caractere nu sunt identice, înseamnă că ambele fișiere nu au aceeași structură, iar procesul raportează o eroare. .Sp Aceste informații sunt scrise ca un comentariu automat în fișierul PO, deoarece oferă traducătorilor un anumit context cu privire la șirurile de caractere de tradus. .IP \fBwrap\fR 4 .IX Item "wrap" boolean care indică dacă spațiile albe pot fi manipulate în reformatările cosmetice. Dacă este adevărat, șirul este canonizat înainte de utilizare. .Sp Aceste informații sunt scrise în fișierul PO cu ajutorul fanionului \fBwrap\fR sau \fBno\-wrap\fR. .IP \fBwrapcol\fR 4 .IX Item "wrapcol" ignorat; cheia este păstrată pentru compatibilitatea cu versiunile anterioare. .RE .RS 4 .RE .SH "Funcții diverse" .IX Header "Funcții diverse" .IP \fBcount_entries()\fR 4 .IX Item "count_entries()" Returnează numărul de intrări din catalog (fără antet). .IP \fBcount_entries_doc()\fR 4 .IX Item "count_entries_doc()" Returnează numărul de intrări din document. Dacă un șir de caractere apare de mai multe ori în document, acesta va fi numărat de mai multe ori. .IP msgid($) 4 .IX Item "msgid($)" Returnează msgid\-ul numărului dat. .IP msgid_doc($) 4 .IX Item "msgid_doc($)" Returnează msgid\-ul cu poziția dată în document. .IP type_doc($) 4 .IX Item "type_doc($)" Returnează tipul msgidului cu poziția dată în document. Acest lucru este probabil util doar pentru gettextizare și este stocat separat de {$msgid}{\*(Aqtype\*(Aq} deoarece locația ulterioară poate fi suprascrisă de un alt tip atunci când \f(CW$msgid\fR este duplicat în documentul principal. .IP \fBget_charset()\fR 4 .IX Item "get_charset()" Returnează setul de caractere specificat în antetul PO. Dacă nu a fost definit, se va returna „UTF\-8”. .SH AUTORI .IX Header "AUTORI" .Vb 2 \& Denis Barbier \& Martin Quinson (mquinson#debian.org) .Ve