PO4A-GETTEXTIZE.1P(1) User Contributed Perl Documentation NUME po4a-gettextize - convertete un fiier original (i traducerea sa) intr-un fiier PO SINOPSIS po4a-gettextize -f fmt -m principal.doc -l XX.doc -p XX.po (XX.po este ieirea, toate celelalte sunt intrarile) DESCRIERE po4a (PO pentru orice) faciliteaza intreinerea traducerii documentaiei utilizand instrumentele clasice gettext. Principala caracteristica a po4a este ca decupleaza traducerea coninutului de structura documentului. Va rugam sa consultai pagina po4a(7) pentru o introducere uoara in acest proiect. Scriptul po4a-gettextize va ajuta sa convertii traducerile existente anterior intr-un flux de lucru bazat pe po4a. Acest lucru trebuie facut o singura data pentru a salva o traducere existenta in timpul conversiei in po4a, nu in mod regulat dupa conversia proiectului dvs. Acest proces anevoios este explicat in detaliu in seciunea ,,Conversia unei traduceri manuale in po4a" de mai jos. Trebuie sa furnizai atat un fiier principal (de exemplu, sursa in limba engleza), cat i un fiier tradus existent (de exemplu, o incercare anterioara de traducere fara po4a). Daca furnizai mai multe fiiere principale sau de traducere, acestea vor fi utilizate in succesiune, dar poate fi mai uor sa ,,gettextizai" fiecare pagina sau capitol separat i apoi sa utilizai msgmerge pentru a fuziona toate fiierele PO produse. Dupa cum dorii. Daca documentul principal are caractere non-ASCII, noul fiier PO generat va fi in UTF-8. Daca documentul principal este complet in ASCII, PO generat va utiliza codificarea documentului de intrare tradus. OPIUNI -f, --format Formatul documentaiei pe care dorii sa o gestionai. Utilizai opiunea --help-format pentru a vedea lista de formate disponibile. -m, --master Fiier care conine documentul principal de tradus. Putei utiliza aceasta opiune de mai multe ori daca dorii sa ,,gettextizai" mai multe documente. -M, --master-charset Setul de caractere al fiierului care conine documentul de tradus. -l, --localized Fiier care conine documentul localizat (tradus). Daca ai furnizat mai multe fiiere principale, este posibil sa dorii sa furnizai mai multe fiiere localizate prin utilizarea acestei opiuni de mai multe ori. -L, --localized-charset Setul de caractere al fiierului care conine documentul localizat. -p, --po Fiier in care ar trebui scris catalogul de mesaje. Daca nu este dat, catalogul de mesaje va fi scris la ieirea standard. -o, --option Opiuni suplimentare pe care sa le transmitei modulului de format. Consultai documentaia fiecarui modul pentru mai multe informaii despre opiunile valide i semnificaiile acestora. De exemplu, ai putea transmite ,,-o tablecells" analizatorului AsciiDoc, in timp ce analizatorul de text ar accepta ,,-o tabs=split". -h, --help Afieaza un scurt mesaj de ajutor. --help-format Enumera formatele de documentaie inelese de po4a. -k --keep-temps Pastreaza fiierele principale temporare i fiierele POT localizate construite inainte de fuzionare. Acest lucru poate fi util pentru a inelege de ce aceste fiiere se desincronizeaza, ducand la probleme de gettextizare. -V, --version Afieaza versiunea scriptului i iese. -v, --verbose Crete nivelul de detaliere al programului. -d, --debug Afieaza unele informaii de depanare. --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". Conversia unei traduceri manuale in po4a po4a-gettextize sincronizeaza fiierele principale i localizate pentru a extrage coninutul acestora intr-un fiier PO. Coninutul fiierului principal da msgid, in timp ce coninutul fiierului localizat da msgstr. Acest proces este oarecum fragil: al N-lea ir din fiierul tradus ar trebui sa fie traducerea celui de-al N-lea ir din original. Gettextizarea funcioneaza cel mai bine daca reuii sa recuperai versiunea exacta a documentului original care a fost utilizat pentru traducere. Chiar i aa, este posibil sa fie nevoie sa va descurcai atat cu fiierele principale, cat i cu cele localizate pentru a le alinia structura daca aceasta a fost modificata de traducatorul original, astfel incat este recomandat sa lucrai pe copii ale fiierelor. La nivel intern, fiecare analizator po4a raporteaza tipul sintactic al fiecarui ir de caractere extras. Acesta este modul in care sunt detectate desincronizarile in timpul gettextizarii. In exemplul prezentat mai jos, este foarte puin probabil ca al 4-lea ir din traducere (de tip ,,capitol") sa fie traducerea celui de-al 4-lea ir din original (de tip ,,paragraf"). Este mai probabil ca un nou paragraf sa fi fost adaugat la original sau ca doua paragrafe originale sa fi fost fuzionate in traducere. Original Traducerea capitol capitol paragraf paragraf paragraf paragraf paragraf capitol capitol paragraf paragraf paragraf po4a-gettextize va diagnostica foarte detaliat orice desincronizare a structurii. Atunci cand se intampla acest lucru, ar trebui sa editai manual fiierele pentru a adauga paragrafe false sau pentru a elimina unele coninuturi ici i colo pana cand structura ambelor fiiere se potrivete cu adevarat. Mai jos sunt prezentate cateva trucuri pentru a salva cea mai mare parte din traducerea existenta in acest timp. Daca suntei suficient de norocos sa avei o potrivire perfecta in structurile de fiiere din cutie, construirea unui fiier PO corect este o chestiune de secunde. In caz contrar, vei inelege in curand de ce acest proces are un nume atat de urat :) Chiar i aa, ,,gettextizarea" ramane adesea mai rapida decat traducerea din nou a tot. Am ,,gettextizat" traducerea in franceza a intregii documentaii Perl intr-o singura zi, in ciuda multor probleme de sincronizare. Avand in vedere cantitatea de text (2 Mo de text original), reinceperea traducerii fara a salva mai intai vechile traduceri ar fi necesitat mai multe luni de munca. In plus, aceasta munca bruta este preul de platit pentru a obine confortul po4a. Odata convertita, sincronizarea intre documentele principale i traduceri va fi intotdeauna complet automata. Dupa o gettextizare reuita, documentele produse ar trebui sa fie verificate manual pentru disparitai nedetectate i erori silenioase, dupa cum se explica mai jos. Sfaturi i trucuri pentru procesul de ,,gettextizare" Gettextizarea se oprete imediat ce este detectata o desincronizare. Cand se intampla acest lucru, trebuie sa editai fiierele atat cat este necesar pentru a realinia structurile fiierelor. po4a-gettextize este destul de ,,guraliv" atunci cand lucrurile merg prost. Acesta raporteaza irurile care nu se potrivesc, poziiile lor in text i tipul fiecaruia dintre ele. In plus, fiierul PO generat pana acum este transferat ca gettextization.failed.po pentru o inspecie ulterioara. Iata cateva trucuri pentru a va ajuta in acest proces anevoios i pentru a va asigura ca salvai cea mai mare parte din traducerea anterioara: o Eliminai tot coninutul suplimentar al traducerilor, cum ar fi seciunea care ofera credite (recunoaterea meritelor, mulumiri, .a.) traducatorilor. Acestea ar trebui adaugate separat la po4a ca addenda (a se vedea po4a(7)). o Cand editai fiierele pentru a le alinia structurile, preferai editarea traducerii, daca este posibil. Intr-adevar, daca modificarile aduse originalului sunt prea intruzive, versiunile veche i noua nu vor fi comparate in timpul primei execuii po4a dupa ,,gettextizarea" (a se vedea mai jos). Orice traducere nepotrivita va fi oricum abandonata. Acestea fiind spuse, dorii in continuare sa editai documentul original in cazul in care este prea greu sa obinei ,,gettextizarea" pentru a continua altfel, chiar daca aceasta inseamna ca un paragraf din traducere este aruncat. Important este sa obinei un prim fiier PO pentru a incepe. o Nu ezitai sa eliminai orice coninut original care nu ar exista in versiunea tradusa. Acest coninut va fi reintrodus automat ulterior, la sincronizarea fiierului PO cu documentul. o Probabil ca ar trebui sa informai autorul original cu privire la orice modificare structurala in traducere care pare justificata. Problemele din documentul original ar trebui raportate autorului. Rezolvarea lor in traducerea dvs. le rezolva doar pentru o parte a comunitaii. In plus, este imposibil sa facei acest lucru atunci cand utilizai po4a ;) Dar probabil dorii sa ateptai pana la sfaritul conversiei la po4a inainte de a modifica fiierele originale. o Uneori, coninutul paragrafelor se potrivete, dar nu i tipurile lor. Rezolvarea depinde mai degraba de format. In POD i man, aceasta provine adesea din faptul ca unul dintre ele conine un rand care incepe cu un spaiu alb, in timp ce celalalt nu. In aceste formate, un astfel de paragraf nu poate fi incadrat i devine astfel un tip diferit. Indepartai spaiul i suntei in regula. De asemenea, poate fi vorba de o greeala de dactilografiere a numelui etichetei in XML. De asemenea, doua paragrafe pot fi imbinate in POD atunci cand linia de separare conine cateva spaii sau cand nu exista o linie goala intre linia =item i coninutul articolului. o Uneori, mesajul de desincronizare pare ciudat deoarece traducerea este ataata la paragraful original greit. Acesta este semnul unei probleme nedetectate mai devreme in proces. Cautai punctul real de desincronizare prin inspectarea fiierului gettextization.failed.po care a fost produs i rezolvai problema acolo unde este cu adevarat. o Alte probleme pot proveni din iruri de caractere duplicate, fie in original, fie in traducere. irurile duplicate sunt fuzionate in fiierele PO, cu doua referine. Acest lucru constituie o dificultate pentru algoritmul de gettextizare, care este o simpla imperechere unu la unu intre msgid-urile din fiierele principale i cele localizate. Cu toate acestea, se crede ca versiunile recente ale po4a trateaza in mod corespunzator irurile duplicate, astfel incat ar trebui sa raportai orice problema ramasa pe care o putei intalni. Revizuirea fiierelor produse de po4a-gettextize Orice fiier produs de po4a-gettextize trebuie revizuit manual, chiar i atunci cand scriptul se incheie cu succes. Ar trebui sa trecei cu vederea fiierul PO, asigurandu-va ca msgid i msgstr corespund efectiv. Nu este inca necesar sa va asigurai ca traducerea este perfect corecta, deoarece toate intrarile sunt oricum marcate ca traduceri neclare. Trebuie doar sa verificai daca exista probleme evidente de potrivire, deoarece traducerile cu potrivire proasta vor fi abandonate in etapele urmatoare, in timp ce ceea ce dorii, este sa le salvai. Din fericire, acest pas nu necesita cunoaterea limbilor inta, deoarece dorii doar sa recunoatei elemente similare in fiecare msgid i msgstr corespunzator. In calitate de vorbitor de franceza, engleza i ceva germana, pot face acest lucru cel puin pentru toate limbile europene, chiar daca nu pot spune un cuvant din majoritatea acestor limbi. Uneori reuesc sa detectez probleme de potrivire in limbile non-latine uitandu-ma la lungimea irurilor de caractere, la structura frazelor (se potrivete cantitatea de semne de interogaie?) i la alte indicii, dar prefer ca altcineva sa revizuiasca aceste limbi. Daca detectai o nepotrivire, editai fiierele original i de traducere ca i cum po4a-gettextize ar fi raportat o eroare i incercai din nou. Odata ce avei un fiier PO decent pentru traducerea dvs. anterioara, facei o copie de rezerva a acestuia pana cand po4a funcioneaza corect. Ruland po4a pentru prima data Cel mai simplu mod de a configura po4a este sa scriei un fiier de configurare po4a.conf i sa utilizai programul integrat po4a (po4a-updatepo i po4a-translate sunt depreciate). Va rugam sa consultai seciunea ,,FIIERUL DE CONFIGURARE" din documentaia po4a(1) pentru mai multe detalii. Cand po4a ruleaza pentru prima data, versiunea curenta a documentelor principale va fi utilizata pentru a actualiza fiierele PO care conin traducerile vechi pe care le-ai salvat prin ,,gettextizare". Acest lucru poate dura destul de mult timp, deoarece multe dintre msgid-urile de la ,,gettextizare" nu corespund exact elementelor din fiierul POT construit din fiierele principale recente. Acest lucru foreaza gettext sa caute cel mai apropiat folosind un algoritm costisitor de proximitate a irurilor. De exemplu, prima rulare a traducerii in franceza a documentaiei Perl (fiier PO de 5,5 MB) a durat aproximativ 48 de ore (da, doua zile), in timp ce cele ulterioare dureaza doar cateva secunde. Trecerea traducerilor dvs. in producie Dupa aceasta prima execuie, fiierele PO sunt gata pentru a fi revizuite de traducatori. Toate intrarile au fost marcate ca aproximative (fuzzy) in fiierul PO de catre po4a-gettextization, forand revizuirea lor atenta inainte de utilizare. Traducatorii trebuie sa examineze fiecare intrare pentru a verifica daca traducerea salvata corespunde de fapt textului original actual, sa actualizeze traducerea in funcie de necesitai i sa elimine marcajele de traducere aproximativa. Odata ce sunt eliminate suficiente marcaje ,,fuzzy" (de traducere aproximativa), po4a va incepe sa genereze fiierele de traducere pe disc i suntei gata sa trecei fluxul de lucru de traducere la producie. Unele proiecte considera ca este util sa se bazeze pe weblate pentru coordonarea intre traducatori i intreinatori, dar acest lucru depaete domeniul de aplicare al po4a. CONSULTAI I po4a(1), po4a-normalize(1), po4a-translate(1), po4a-updatepo(1), po4a(7). AUTORI Denis Barbier Nicolas Francois Martin Quinson (mquinson#debian.org) DREPTURI DE AUTOR i LICENA Drepturi de autor 2002-2023 pentru SPI, inc. Acest program este software liber; il putei redistribui i/sau modifica in conformitate cu termenii GPL v2.0 sau o versiune ulterioara (consultai fiierul COPYING). perl v5.42.0 2025-11-22 PO4A-GETTEXTIZE.1P(1)