![]() |
Particularităţi şi dificultăţi |
| Īnapoi | Traducerea interfeţei grafice | Īnainte |
Deja am menţionat că "#" şi "~" au un sens special. Iată alte cīteva lucruri de care trebuie să ţineţi cont:
Caracterul "&" dintr-unul din exemplele de mai sus este utilizat pentru a indica "tasta accelerator", adică litera care īn combinaţie cu Alt sau Alt Gr (pe tastaturile PC) va executa comanda. De exemplu Alt Gr + S pentru "Afişează bara de &stare". Trebuie să vă asiguraţi că aceeaşi literă nu este utilizată de două ori īn acelaşi meniu. Există un test semiautomat pentru a găsi duplicatele existente ("conflicte de acceleratori"). Vedeţi secţiunea Compilare, verificări pentru context şi acceleratori.
Unele fişiere PO conţin aşa numita "informaţie contextuală" pentru a permite traducătorilor să ştie că, de exemplu, "home" īnseamnă directorul personal, o tastă pe tastatură sau īnceputul unei linii. O astfel de informaţie de context īncepe īntotdeauna cu combinaţia de litere "_:". Important este că: Aceste texte nu trebuie să apară īn traducere. Cu alte cuvinte: Nu traduceţi sau copiaţi acea parte din "msgstr". Dacă faceţi acest lucru, īntregul fişier PO nu va mai fi funcţional.
Iată un exemplu corect de utilizare:
#: kdeui/kstdaction.cpp:669 msgid "" "_: beginning (of line)\n" "&Home" msgstr "Īn&ceput" #: src/kernel/qaccel.cpp:562 msgid "" "_: QAccel\n" "Home" msgstr "Home"
Caracterele speciale precum ghilimele trebuie "evitate" (adică precedate de un "backslash") dacă doriţi să le utilizaţi ca parte a textului (vedeţi exemplul de mai jos).
Ghilimele care sīnt introduse normal vor fi interpretate ca sfīrşit de "msgstr" de programele care citesc fişierul. Rutina de test msgfmt --statistics, descrisă mai jos, se va termina cu eroare īn acel loc. Rutinele de verificare şi evidenţiere a sintaxei din KBabel vă vor ajuta la lucrul cu acele caractere speciale.
#: cardmaps.cpp:105 #, c-format msgid "kpat: PANIC, cannot load card pixmap \"%1\"\n" msgstr "KPat: Eroare! Nu am putut īncărca fişierul imagine \"%1\"\n"
O problemă de care se lovesc limbajele cu o lungime medie mare a cuvintelor (germana este un astfel de exemplu) sīnt căsuţe de dialog prea mici, care taie sau rearanjează textul tradus. Acest lucru poate fi aflat cu certitudine numai verificīnd traducerea īn programul compilat. Soluţia evidentă, dar īntotdeauna temporară, este să căutaţi texte scurte. Asta faceţi numai dacă nu mai aveţi timp să rezolvaţi problema, adică să contactaţi autorul programului astfel īncīt să ajusteze geometria dialogurilor afectate. Īn oricare din cazuri, trebuie să trimiteţi un e-mail autorului īn care să-i descrieţi problema.
Uneori apar texte īn engleză īn program chiar dacă fişierul PO a fost complet tradus şi textul īn chestiune nu se găseşte acolo.
Acest lucru se poate īntīmpla cīnd textul vine din "altă parte" (adesea din "kdelibs" care este accesibil īn toată interfaţa KDE). Alteori din module separate ale aceluiaşi program care are fişiere PO suplimentare. O altă posibilitate este că acel text nu a fost marcat pentru internaţionalizare de către autorul programului.
Orice text care trebuie văzut de utilizator trebuie să fie pasat funcţiei C QString i18n(const char *text). Acest lucru asigură că va fi afişată versiunea localizată a textului (īn condiţiile īn care există o traducere). Numai textele care au fost prelucrate īn acest mod pot fi traduse. Īn cazurile īn care textul netradus nu poate fi găsit īn fişierul PO, este posibil ca autorul să fi uitat acest lucru. Dacă nu sīnteţi sigur, trebuie să vă uitaţi īn codul sursă al programului. De exemplu, puteţi găsi numele fişierului şi numărul liniei utilizīnd comanda grep -n "text īn cauză" *.cpp īn folderul cu codul sursă.
Īn orice caz dacă descoperiţi un astfel de caz, vă rog să raportaţi eroarea la bugs.kde.org sau scrieţi-i autorului programului. Nu lăsaţi problema nemenţionată.
| Īnapoi | Acasă | Īnainte |
| Pas cu pas: Traducerea fişierelor POT şi PO | Sus | Utilizarea programelor specializate pentru traducerea GUI |