1. Oddělení kódu a textů
Základním předpokladem každé lokalizace je důsledné oddělení programového kódu a textového obsahu. Všechny zobrazované texty by měly být uloženy v externích souborech prostředků (např. Properties, JSON, YAML), nikoli pevně zakódovány ve zdrojovém kódu. To umožňuje překladatelům pracovat bez úpravy kódu. Používejte jedinečné klíče řetězců jako reference v kódu, které odkazují na příslušné překlady. Toto oddělení také usnadňuje údržbu a umožňuje později přidávat nové jazyky bez změn kódu. Dbejte na to, aby popisky UI, chybové zprávy a tooltips byly také v těchto souborech.
2. Zástupné znaky a proměnné
Texty často obsahují dynamický obsah, jako jsou čísla, jména nebo data. Ty musí být vloženy pomocí zástupných znaků, např. pomocí formátování printf (%s, %d) nebo modernějších přístupů, jako jsou složené závorky {0}. Důležité je, aby překladatelé znali pořadí a význam zástupných znaků. Používejte pojmenované zástupné znaky (např. „{username}“) pro poskytnutí kontextu. U jazyků s odlišným slovosledem se může pořadí zástupných znaků lišit. Proto nabídněte možnost upravit pořadí v překladu. Otestujte všechny varianty, abyste předešli chybným nebo neúplným výstupům.
3. Pravidla množného čísla a tvoření plurálu
V němčině existuje pouze jednotné a množné číslo, ale mnoho jazyků má složitější pravidla pro množné číslo (např. arabština se šesti kategoriemi). Používejte knihovny jako ICU MessageFormat, které řeší pravidla pro množné číslo specificky pro jednotlivé jazyky. Definujte ve svých zdrojích samostatné klíče pro různé tvary množného čísla (one, other). Kód pak automaticky vybere vhodný tvar na základě čísla. Příklad: "{count} {count, plural, one {jablko} other {jablka}}". Otestujte každý jazyk s několika číselnými hodnotami, abyste se ujistili, že se zobrazuje správný tvar množného čísla. Vyhněte se pevným if dotazům – to je náchylné k chybám.
4. Délka textu a rezerva v rozvržení
Překlady jsou často delší nebo kratší než původní text. Zejména u tlačítek, nabídek a popisků to může narušit rozvržení. Proto naplánujte dostatek místa pro rozšíření textu – dobrým vodítkem je 30 % dodatečného prostoru pro západní jazyky, více pro asijské. Používejte dynamická rozvržení, která se přizpůsobí délce textu (např. Auto-Layout v iOS nebo Flexbox na webu). Vyhněte se pevným šířkám. V případě potřeby umožněte prvkům uživatelského rozhraní zalomení textu. Otestujte rozhraní s nejdelšími očekávanými překlady, abyste předešli překrývání nebo ořezávání.
5. Klíče řetězců, kontext pro překladatele a RTL
Jedinečné klíče řetězců jsou páteří lokalizace. Používejte výstižné názvy (např. "login.button.title") a dokumentujte účel použití. Poskytněte překladatelům kontext: screenshoty, maximální délku znaků, omezení (např. "ne delší než 20 znaků"). Pro jazyky RTL, jako je arabština nebo hebrejština, musí být uživatelské rozhraní zrcadleno. Používejte atributy rozvržení, které RTL automaticky podporují (např. start/end místo left/right). Otestujte celou navigaci v podmínkách RTL. Myslete také na ikony a grafiku – mohou být v různých kulturách interpretovány odlišně.