1. Oddelenie kódu a textov
Základným predpokladom pre každú lokalizáciu je striktné oddelenie programového kódu a textového obsahu. Všetky zobrazované texty by mali byť uložené v externých súboroch zdrojov (napr. Properties, JSON, YAML), nie pevne zakódované v zdrojovom kóde. Prekladatelia tak môžu pracovať bez úpravy kódu. Používajte jedinečné kľúče reťazcov ako referenciu v kóde, ktoré odkazujú na príslušné preklady. Toto oddelenie tiež uľahčuje údržbu a umožňuje neskoršie pridávanie nových jazykov bez zmeny kódu. Dbajte na to, aby aj popisy UI, chybové hlásenia a tooltips boli v týchto súboroch.
2. Zástupné znaky a premenné
Texty často obsahujú dynamický obsah ako čísla, mená alebo dáta. Tie musia byť vložené pomocou zástupných znakov, napr. s printf formátovaním (%s, %d) alebo modernejšími prístupmi ako zložené zátvorky {0}. Dôležité je, aby prekladatelia poznali poradie a význam zástupných znakov. Používajte pomenované zástupné znaky (napr. „{username}“) na poskytnutie kontextu. V jazykoch s odlišným slovosledom sa poradie zástupných znakov môže líšiť. Preto poskytnite možnosť upraviť poradie v preklade. Testujte všetky varianty, aby ste predišli chybným alebo neúplným výstupom.
3. Pravidlá množného čísla a tvorenie plurálu
V nemčine existuje iba jednotné a množné číslo, no mnohé jazyky majú zložitejšie pravidlá množného čísla (napr. arabčina so šiestimi kategóriami). Používajte knižnice ako ICU MessageFormat, ktoré spracúvajú pravidlá množného čísla podľa jazyka. Vo svojich zdrojoch definujte samostatné kľúče pre rôzne tvary množného čísla (one, other). Kód potom automaticky vyberie správny tvar na základe čísla. Príklad: „{count} {count, plural, one {jablko} other {jablká}}“. Otestujte každý jazyk s viacerými číselnými hodnotami, aby ste sa uistili, že sa zobrazuje správny tvar množného čísla. Vyhnite sa pevným if-ovým podmienkam – sú náchylné na chyby.
4. Dĺžka textu a vyrovnávacia pamäť rozloženia
Preklady sú často dlhšie alebo kratšie ako pôvodný text. Najmä pri tlačidlách, ponukách a štítkoch to môže narušiť rozloženie. Naplánujte preto dostatok miesta na rozšírenie textu – dobrým odhadom je 30 % dodatočného priestoru pre západné jazyky, viac pre ázijské. Používajte dynamické rozloženia, ktoré sa prispôsobia dĺžke textu (napr. Auto Layout v iOS alebo Flexbox na webe). Vyhnite sa pevným šírkam. V prípade potreby umožnite UI prvkom zalomenie textu. Otestujte rozhranie s najdlhšími očakávanými prekladmi, aby ste predišli prekrývaniu alebo orezaniu.
5. Reťazcové kľúče, kontext pre prekladateľov a RTL
Jednoznačné reťazcové kľúče sú chrbtovou kosťou lokalizácie. Používajte výstižné názvy (napr. „login.button.title“) a zdokumentujte účel použitia. Poskytnite prekladateľom kontext: snímky obrazovky, maximálnu dĺžku znakov, obmedzenia (napr. „nie dlhšie ako 20 znakov“). Pre jazyky s pravým písmom (RTL), ako je arabčina alebo hebrejčina, musí byť UI zrkadlovo prevrátené. Používajte atribúty rozloženia, ktoré automaticky podporujú RTL (napr. start/end namiesto left/right). Otestujte celú navigáciu v podmienkach RTL. Myslite aj na ikony a grafiku – môžu byť v rôznych kultúrach interpretované odlišne.