1. Kód és szövegek szétválasztása
A lokalizáció alapvető feltétele a programkód és a szöveges tartalmak szigorú szétválasztása. Minden megjelenítendő szöveget külső erőforrásfájlokban (pl. Properties, JSON, YAML) kell tárolni, nem hardcode-olva a forráskódban. Így a fordítók a kód módosítása nélkül dolgozhatnak. Használjon egyedi string-kulcsokat hivatkozásként a kódban, amelyek a megfelelő fordításokra mutatnak. Ez a szétválasztás megkönnyíti a karbantartást, és lehetővé teszi új nyelvek későbbi hozzáadását kódmódosítás nélkül. Ügyeljen arra, hogy a UI feliratok, hibaüzenetek és eszköztippek is ezekben a fájlokban legyenek.
2. Helyettesítők és változók
A szövegek gyakran tartalmaznak dinamikus tartalmakat, mint számok, nevek vagy adatok. Ezeket helyettesítők segítségével kell beilleszteni, pl. printf formázással (%s, %d) vagy modernebb megközelítésekkel, mint a kapcsos zárójelek {0}. Fontos, hogy a fordítók ismerjék a helyettesítők sorrendjét és jelentését. Használjon elnevezett helyettesítőket (pl. „{username}”) a kontextus biztosításához. A különböző mondatszerkezetű nyelveknél a helyettesítők sorrendje változhat. Ezért biztosítson lehetőséget a sorrend fordításban történő módosítására. Tesztelje az összes változatot a hibás vagy hiányos kimenet elkerülése érdekében.
3. Többesszám szabályok és többes szám képzése
A német nyelvben csak egyes és többes szám van, de számos nyelv bonyolultabb többes számú szabályokkal rendelkezik (pl. arab hat kategóriával). Használjon olyan könyvtárakat, mint az ICU MessageFormat, amelyek nyelvspecifikusan kezelik a többes számú szabályokat. Definiáljon külön kulcsokat a forráskészletben a különböző többes számú alakokhoz (one, other). A kód ezután automatikusan kiválasztja a megfelelő alakot a szám alapján. Példa: „{count} {count, plural, one {alma} other {almák}}”. Teszteljen minden nyelvet több számértékkel, hogy biztosítsa a helyes többes számú alak megjelenését. Kerülje a rögzített if-utasításokat – az hibalehetőségeket rejt.
4. Szöveghossz és elrendezési pufferek
A fordítások gyakran hosszabbak vagy rövidebbek az eredeti szövegnél. Különösen gombok, menük és címkék esetében ez tönkreteheti az elrendezést. Ezért tervezzen elegendő helyet a szövegbővítések számára – egy jó irányelv a 30%-os többlethely a nyugati nyelveknél, több az ázsiai nyelveknél. Használjon dinamikus elrendezéseket, amelyek alkalmazkodnak a szöveghosszhoz (pl. Auto Layout iOS-ben vagy Flexbox a weben). Kerülje a rögzített szélességeket. Adjon lehetőséget az UI-elemeknek a szövegtörésre. Tesztelje a felületet a leghosszabb várható fordításokkal, hogy elkerülje az átfedéseket vagy a szövegcsonkítást.
5. String-kulcsok, kontextus a fordítók számára és RTL
Az egyedi string-kulcsok a lokalizáció gerincét képezik. Használjon beszédes neveket (pl. „login.button.title”) és dokumentálja a felhasználási célt. Adjon kontextust a fordítóknak: képernyőképek, maximális karakterszám, korlátozások (pl. „ne legyen hosszabb 20 karakternél”). Az RTL nyelveknél, mint az arab vagy a héber, az UI-t tükrözni kell. Használjon olyan elrendezési attribútumokat, amelyek automatikusan támogatják az RTL-t (pl. start/end a left/right helyett). Tesztelje a teljes navigációt RTL körülmények között. Gondoljon az ikonokra és grafikákra is – ezeket a kultúrától függően eltérően értelmezhetik.