1. Ločitev kode in besedil
Temeljni pogoj za vsako lokalizacijo je stroga ločitev programske kode in besedilnih vsebin. Vsa besedila za prikaz naj bodo shranjena v zunanjih datotekah virov (npr. Properties, JSON, YAML), ne pa trdo kodirana v izvorni kodi. To prevajalcem omogoča delo brez spreminjanja kode. Uporabite edinstvene ključe nizov kot reference v kodi, ki kažejo na ustrezne prevode. Ta ločitev olajša vzdrževanje in omogoča naknadno dodajanje novih jezikov brez sprememb kode. Poskrbite, da so v teh datotekah tudi oznake uporabniškega vmesnika, sporočila o napakah in namigi.
2. Nadomestni znaki in spremenljivke
Besedila pogosto vsebujejo dinamične vsebine, kot so številke, imena ali datumi. Te je treba vstaviti prek nadomestnih znakov, npr. s printf oblikovanjem (%s, %d) ali sodobnejšimi pristopi, kot so zaviti oklepaji {0}. Pomembno je, da prevajalci poznajo vrstni red in pomen nadomestnih znakov. Uporabite poimenovane nadomestne znake (npr. „{username}“), da zagotovite kontekst. Pri jezikih z različnim besednim redom se lahko vrstni red nadomestnih znakov razlikuje. Zato omogočite prilagajanje vrstnega reda v prevodu. Preizkusite vse različice, da se izognete napačnim ali nepopolnim izhodom.
3. Pravila za množino in tvorjenje množine
V nemščini obstajata samo ednina in množina, vendar imajo številni jeziki bolj zapletena pravila za množino (npr. arabščina s šestimi kategorijami). Uporabite knjižnice, kot je ICU MessageFormat, ki obravnavajo množinska pravila glede na jezik. V svojih virih določite ločene ključe za različne množinske oblike (one, other). Koda nato samodejno izbere ustrezno obliko glede na število. Primer: „{count} {count, plural, one {jabolko} other {jabolka}}“. Preizkusite vsak jezik z več številskimi vrednostmi, da zagotovite prikaz pravilne množinske oblike. Izogibajte se trdim if-pogojem – to je nagnjeno k napakam.
4. Dolžina besedila in prostor v postavitvi
Prevodi so pogosto daljši ali krajši od izvirnega besedila. Zlasti pri gumbih, menijih in oznakah lahko to poruši postavitev. Zato načrtujte dovolj prostora za podaljšanje besedila – dobro merilo je 30 % dodatnega prostora za zahodne jezike, več za azijske. Uporabite dinamične postavitve, ki se prilagajajo dolžini besedila (npr. Auto Layout v iOS ali Flexbox na spletu). Izogibajte se fiksnim širinam. UI-elementom omogočite prelom besedila, kadar je to potrebno. Preizkusite vmesnik z najdaljšimi pričakovanimi prevodi, da se izognete prekrivanju ali obrezovanju.
5. Ključi nizov, kontekst za prevajalce in RTL
Edinstveni ključi nizov so hrbtenica lokalizacije. Uporabite opisna imena (npr. „login.button.title“) in dokumentirajte namen uporabe. Prevajalcem zagotovite kontekst: posnetke zaslona, največjo dolžino znakov, omejitve (npr. „ni daljše od 20 znakov“). Za jezike RTL, kot so arabščina ali hebrejščina, je treba uporabniški vmesnik zrcaliti. Uporabite atribute postavitve, ki samodejno podpirajo RTL (npr. start/end namesto left/right). Preizkusite celotno navigacijo v pogojih RTL. Pomislite tudi na simbole in grafike – lahko se različno razlagajo glede na kulturo.