![]() |
Pas cu pas: Traducerea fişierelor POT şi PO |
| Īnapoi | Traducerea interfeţei grafice | Īnainte |
Informaţii generale despre acest subiect găsiţi īn paginile Info ale pachetului "gettext". Pentru a īnţelege mai bine la ce se aşteaptă KDE de la traducerea dumneavoastră să vedem cum se traducea īnainte să apară programe specializate cum este KBabel:
Dacă nu există nici un fel de traducere pentru un anumit program (adică nu există fişiere PO cu acelaşi nume īn folderul corespunzător "kde-i18n/$LANG/messages/(nume-pachet)/") -- şi numai dacă acesta este cazul! -- atunci fişierul POT este īncărcat īntr-un editor ASCII şi salvat cu extensia "PO" īn folderul din care lipsea. Acest lucru produce un fişier cu un nume īn stilul "kde-i18n/$LANG/messages/(nume-pachet)/(nume-program).po". De exemplu: dacă ştiţi că programul KWrite nu a fost tradus īn limba dumneavoastră, deschideţi un fişier POT recent kde-i18n/templates/kdeutils/kdewrite.pot şi salvaţi-l ca kde-i18n/$LANG/messages/kdeutils/kwrite.po.
Din acest moment toată munca de traducere pentru un program dat o faceţi īn fişierul PO. Cea mai mare parte din muncă stă īn actualizarea, īmbunătăţirea şi unificarea traducerilor precedente, adică a PO-urilor care existau deja acolo.
După ce aţi completat (sau actualizat) antetul (cine, unde etc., precum şi ştergerea primului tag "fuzzy") veţi umple şirurile text goale cu traduceri noi. Īn PO-urile care erau traduse de mai īnainte, verificaţi traducerile "fuzzy" şi corectaţi-le dacă este necesar. Nu uitaţi să ştergeţi tagul "fuzzy" de la īnceputul liniei după ce aţi terminat de lucrat la īnregistrarea respectivă.
La ora actuală mulţi din aceşti paşi sīnt făcuţi automat de programe specializate precum KBabel -- de la alegerea fişierelor POT şi salvarea lor ca PO-uri, pīnă la actualizarea antetului, eliminarea īnregistrărilor "fuzzy" şi verificărilor de sintaxă.
Un model de antet ar putea să arate astfel pentru limba romānă:
msgid "" msgstr "" "POT-Creation-Date: 2004-02-17 00:58+0100\n" "PO-Revision-Date: 2004-02-17 08:43+0200\n" "Last-Translator: Claudiu Costin <claudiuc@kde.org>\n" "Language-Team: Romanian <ro-kde@yahoogroups.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3\n"
Dacă lucraţi cu un editor ASCII nu ştergeţi īnregistrarea "msgid / msgstr" iniţială. Altfel compilarea se va termina cu eroare de sintaxă. Pe de altă parte, trebuie să ştergeţi tagul "fuzzy" care iniţial este acolo. Altfel veţi rămīne mirat de numărul mare de īnregistrări netraduse din lista "Traduceri Parţiale" a "Statisticilor interfeţei grafice", deşi traducerea este īn regulă.
Īnregistrările pentru Content-Type şi Transfer-Encoding nu sīnt relevante la ora actuală. Dar setul de caractere trebuie să fie corect (UTF-8 īn acest caz, adică Unicode Transfer Format pe 8 biţi). Despre tranziţia la Unicode citiţi īn secţiunea introductivă.
Īn continuare veţi vedea cum se traduce. Linia originală:
#: kedit.cpp:90 kedit.cpp:1071 msgid "Show &Status Bar" msgstr ""
...ar putea fi tradusă ca:
#: kedit.cpp:90 kedit.cpp:1071 msgid "Show &Status Bar" msgstr "Afişează bara de &stare"
Şi din traducerea incorectă:
#: ReniceDlg.cpp:31 #, fuzzy msgid "Renice Process" msgstr "Omoară procesul"
...s-ar putea produce traducerea corectă:
#: ReniceDlg.cpp:31 msgid "Renice Process" msgstr "Prioritate nouă"
Există o eroare subtilă care apare adesea la tranziţia de la KDE 1.x la KDE "generaţia următoare":
#: kpackage.cpp:613 #, fuzzy, c-format msgid "Unknown package type: %1" msgstr "Tip de pachet necunoscut: %s"
Traducerea este corectă, dar şirul variabilei are un format vechi. El trebuie schimbat astfel:
#: kpackage.cpp:613 #, c-format msgid "Unknown package type: %1" msgstr "Tip de pachet necunoscut: %1"
A propos: Cu variabile de tip corect ("%1", "%2" şi aşa mai departe) nu contează ordinea īn care apar īn traducerea dumneavoastră. Pe de altă partea īn stilul vechi variabilele ("%d", "%s" şi cele similare) trebuie să fie exact īn aceeaşi ordine ca īn original. Puteţi raporta ca eroare dacă īntīlniţi variabile de tip vechi īn fişierele dumneavoastră PO.
După corecţii trebuie să ştergeţi tagul "fuzzy". Altfel īnregistrarea corectată va fi ignorată la compilare.
S-ar putea să īntīlniţi la sfīrşitul fişierului linii care īncep cu "#~":
#~ msgid "Where do you want to go tomorrow?" #~ msgstr "Where do you want to go tomorrow?" #~ msgid "No comment available" #~ msgstr "Nici un comentariu"
Aceste linii au fost comentate deoarece nu mai sīnt utilizate de program şi ar trebui ştese din cīnd īn cīnd pentru a salva spaţiul de disc şi a micşora resursele de reţea consumate. KBabel face automat acest lucru.
Pentru orice alte īntrebări asupra acestui subiect, vă recomand să aruncaţi o privire īn paginile Info ale pachetului GNU gettext (vedeţi documentaţia de ajutor KDE).
| Īnapoi | Acasă | Īnainte |
| Liste de activităţi pentru traducerea GUI | Sus | Particularităţi şi dificultăţi |