1. Separarea codului de texte
Condiția fundamentală pentru orice localizare este separarea strictă a codului de conținutul textual. Toate textele care urmează să fie afișate trebuie stocate în fișiere de resurse externe (de ex., Properties, JSON, YAML), nu codificate direct în codul sursă. Astfel, traducătorii pot lucra fără a modifica codul. Utilizați chei de string-uri unice ca referință în cod, care indică traducerile respective. Această separare facilitează, de asemenea, întreținerea și permite adăugarea ulterioară de noi limbi fără modificări ale codului. Asigurați-vă că și etichetele UI, mesajele de eroare și tooltip-urile sunt incluse în aceste fișiere.
2. Substitute și variabile
Textele conțin adesea conținut dinamic, cum ar fi numere, nume sau date. Acestea trebuie inserate prin intermediul substituților, de ex., cu formatare printf (%s, %d) sau abordări mai moderne precum acoladele {0}. Este important ca traducătorii să cunoască ordinea și semnificația substituților. Utilizați substituți denumiți (de ex., „{username}”) pentru a oferi context. În limbile cu ordine diferită a cuvintelor, ordinea substituților poate varia. Prin urmare, oferiți posibilitatea de a ajusta ordinea în traducere. Testați toate variantele pentru a evita rezultate eronate sau incomplete.
3. Reguli de plural și formarea pluralului
În germană există doar singular și plural, dar multe limbi au reguli de plural mai complexe (de ex. araba cu șase categorii). Folosiți biblioteci precum ICU MessageFormat, care tratează regulile de plural specifice limbii. Definiți în resursele dvs. chei separate pentru diferitele forme de plural (one, other). Codul selectează automat forma potrivită în funcție de număr. Exemplu: „{count} {count, plural, one {măr} other {mere}}”. Testați fiecare limbă cu mai multe valori numerice pentru a vă asigura că este afișată forma corectă de plural. Evitați verificările if fixe – acestea sunt predispuse la erori.
4. Lungimea textului și buffer de layout
Traducerile sunt adesea mai lungi sau mai scurte decât textul original. În special în cazul butoanelor, meniurilor și etichetelor, acest lucru poate distruge aspectul. Așadar, planificați suficient spațiu pentru extinderi de text – o regulă bună este cu 30% mai mult spațiu pentru limbile occidentale, mai mult pentru cele asiatice. Utilizați layout-uri dinamice care se adaptează la lungimea textului (de ex. Auto Layout în iOS sau Flexbox în web). Evitați lățimile fixe. Permiteți elementelor UI să gestioneze împachetarea textului dacă este cazul. Testați interfața cu cele mai lungi traduceri așteptate pentru a evita suprapunerile sau tăierile.
5. Chei de șir, context pentru traducători și RTL
Cheile de șir unice sunt coloana vertebrală a localizării. Utilizați nume sugestive (de ex. „login.button.title”) și documentați scopul. Oferiți context traducătorilor: capturi de ecran, lungimea maximă a caracterelor, restricții (de ex. „nu mai lung de 20 de caractere”). Pentru limbile RTL precum araba sau ebraica, interfața trebuie oglindită. Utilizați atribute de layout care suportă automat RTL (de ex. start/end în loc de left/right). Testați întreaga navigare în condiții RTL. Gândiți-vă și la simboluri și grafice – ele pot fi interpretate diferit în funcție de cultură.