LOCALE::PO4A::SGML.3PM(1) User Contributed Perl Documentation NUME Locale::Po4a::Sgml - convertete documente SGML din/in fiiere PO DESCRIERE Scopul proiectului po4a (PO pentru orice) este de a uura traducerile (i mai interesant, intreinerea traducerilor) folosind instrumente gettext in domenii in care nu erau ateptate, cum ar fi documentaia. Locale::Po4a::Sgml este un modul care ajuta la traducerea documentaiei in format SGML in alte limbi [umane]. Acest modul utilizeaza onsgmls(1) pentru a analiza fiierele SGML. Asigurai-va ca acesta este instalat. De asemenea, asigurai-va ca DTD-ul fiierelor SGML este instalat in sistem. OPIUNI ACCEPTATE DE ACEST MODUL debug Lista de cuvinte cheie separate prin spaii care indica categoria de mesaje suplimentare de depanare care ar trebui afiate. Valorile posibile sunt: "entities", "generic", "onsgml", "refs" i "tag". verbose Ofera mai multe informaii despre ceea ce se intampla. translate Lista separata prin spaii de etichete suplimentare (pe langa cele furnizate de DTD) al caror coninut ar trebui sa formeze un msgid suplimentar, adica care ar trebui tradus. section Lista separata prin spaii de etichete suplimentare (pe langa cele furnizate de DTD) care conin alte etichete, unele dintre ele fiind din categoria translate. indent Lista de etichete separate prin spaii care maresc nivelul de indentare. Acest lucru va afecta indentarea in documentul rezultat. verbatim Aspectul din cadrul acestor etichete nu trebuie modificat. Paragraful nu va fi incadrat i nu vor fi adaugate spaii suplimentare de indentare sau linii noi in scop cosmetic. empty Etichetele nu trebuie sa fie inchise. ignore Etichete ignorate i considerate de po4a ca date simple de tip caracter. Aceasta inseamna ca ele pot face parte dintr-un msgid. De exemplu, este un bun candidat pentru aceasta categorie, deoarece plasarea sa in seciunea translate ar crea un msgids numai cu coninutul sau, (i de obicei nu este o propoziie intreaga), ceea ce este greit. attributes O lista de atribute separate prin spaii care trebuie sa fie traduse. Putei specifica atributele dupa numele lor (de exemplu, "lang"), dar putei, de asemenea, sa le prefixai cu o ierarhie de etichete, pentru a specifica faptul ca acest atribut va fi tradus numai atunci cand se afla in eticheta specificata. De exemplu: "lang" specifica faptul ca atributul lang va fi tradus numai daca se afla intr-un tag "", care se afla intr-un tag "". Numele etichetelor sunt de fapt expresii regulate, astfel incat putei scrie i lucruri precum "lang" pentru a traduce numai atributele "lang" care sunt intr-o eticheta "" sau "". qualify O lista de atribute separate prin spaii pentru care traducerea trebuie calificata prin numele atributului, adica textul extras pentru traducere va include atat numele atributului, cat i valoarea acestuia. de exemplu, pentru o eticheta precum "" traducatorilor li se va prezenta irul "lang_en="foo"". Reinei ca acest lucru adauga automat atributul dat i in lista attributes. force Continua chiar daca DTD-ul este necunoscut sau daca onsgmls gasete erori in fiierul de intrare. include-all In mod implicit, msgid-urile care conin o singura entitate (precum "&version;") sunt ignorate pentru confortul traducatorilor. Activarea acestei opiuni impiedica aceasta optimizare. Poate fi utila daca documentul conine o construcie precum "Á", chiar daca ma indoiesc ca astfel de lucruri se vor intampla vreodata... ignore-inclusion Lista de entitai separate prin spaii care nu vor fi inserate. Utilizai aceasta opiune cu precauie: poate determina onsgmls (utilizat intern) sa adauge etichete i sa faca documentul de ieire nevalid. STAREA ACESTUI MODUL Rezultatul este perfect. Adica, documentele generate sunt exact la fel ca originalele. Dar exista inca unele probleme: o Ieirea de eroare a onsgmls este redirecionata implicit catre ,,/dev/null", ceea ce este clar rau. Nu tiu cum sa evit asta. Problema este ca trebuie sa ,,protejez" incluziunile condiionate (adica chestiile "i "]]>") de onsgmls. In caz contrar, onsgmls le mananca, iar eu nu tiu cum sa le restaurez in documentul final. Pentru a preveni acest lucru, le rescriu in "{PO4A-beg-foo}" i "{PO4A-end}". Problema este ca "{PO4A-end}" i altele pe care le adaug nu sunt valide in document (nu intr-o eticheta

sau aa ceva). Daca dorii sa vizualizai rezultatul onsgmls, trebuie doar sa adaugai urmatorul text la linia de comanda (sau la linia de configurare po4a): -o debug=onsgmls o Funcioneaza numai cu DTD-urile DebianDoc i DocBook. Adaugarea suportului pentru un nou DTD ar trebui sa fie foarte uoara. Mecanismul este acelai pentru fiecare DTD, trebuie doar sa furnizai o lista a etichetelor existente i unele dintre caracteristicile lor. Sunt de acord, acest lucru are nevoie de mai multa documentaie, dar este inca considerat beta i nu-mi place sa documentez lucruri care se pot/vor schimba. o Atenie, suportul pentru DTD-uri este destul de experimental. Nu am citit niciun manual de referina pentru a gasi definiia fiecarei etichete. Am adaugat definiii de etichete la modul pana cand a funcionat pentru unele documente pe care le-am gasit in internet. Daca documentul dvs. utilizeaza mai multe etichete decat al meu, nu va funciona. Dar, aa cum am spus mai sus, remedierea acestui lucru ar trebui sa fie destul de uoara. Am testat DocBook doar pe SAG (,,System Administrator Guide": Ghidul administratorului de sistem), dar acest document este destul de mare i ar trebui sa utilizeze majoritatea specificitailor DocBook. Pentru DebianDoc, am testat unele dintre manualele din DDP, dar nu toate inca. o In cazul includerii unui fiier, referina de ir de caractere a mesajelor din fiierele PO (de exemplu, linii precum "#: en/titletoc.sgml:9460") va fi greita. Acest lucru se datoreaza faptului ca preprocesez fiierul pentru a proteja includerea condiionata (de exemplu, chestiunea "") i unele entitai (cum ar fi "&version;") de onsgmls, deoarece le vreau textuale pentru documentul generat. Pentru aceasta, fac o copie temporara a fiierului de intrare i efectuez toate modificarile pe care le doresc la acesta inainte de a-l transmite lui onsgmls pentru analizare. Pentru a funciona, inlocuiesc entitaile care solicita includerea unui fiier cu coninutul fiierului dat (astfel incat sa pot proteja i ceea ce trebuie sa fie intr-un subfiier). Dar nimic nu se face pana acum pentru a corecta referinele (adica numele fiierului i numarul liniei) dupa aceea. Nu sunt sigur care este cel mai bun lucru de facut. AUTORI Acest modul este o versiune adaptata a sgmlspl (postprocesor SGML pentru analizatorul ONSGMLS) care a avut: Drepturi de autor (C) 1995 David Megginson Adaptarea pentru po4a a fost facuta de: Denis Barbier Martin Quinson (mquinson#debian.org) DREPTURI DE AUTOR i LICENA Drepturi de autor (C) 1995 David Megginson . Drepturi de autor (C) 2002-2005 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 LOCALE::PO4A::SGML.3PM(1)