1. Koodin ja tekstien erottaminen
Lokalisoinnin perusedellytys on ohjelmakoodin ja tekstisisältöjen tiukka erottaminen toisistaan. Kaikki näytettävät tekstit tulee tallentaa ulkoisiin resurssitiedostoihin (esim. Properties, JSON, YAML), ei koodiin kovakoodattuina. Tällöin kääntäjät voivat työskennellä muuttamatta koodia. Käytä koodissa yksilöllisiä merkkijonoavaimia, jotka viittaavat vastaaviin käännöksiin. Tämä erottelu helpottaa myös ylläpitoa ja mahdollistaa uusien kielten lisäämisen myöhemmin ilman koodimuutoksia. Varmista, että myös käyttöliittymän selitteet, virheilmoitukset ja työkaluvinkit ovat näissä tiedostoissa.
2. Paikkamerkit ja muuttujat
Tekstit sisältävät usein dynaamista sisältöä, kuten numeroita, nimiä tai päivämääriä. Nämä on lisättävä paikkamerkkien avulla, esim. printf-muotoilulla (%s, %d) tai uudemmilla tavoilla, kuten aaltosulkeilla {0}. On tärkeää, että kääntäjät tietävät paikkamerkkien järjestyksen ja merkityksen. Käytä nimettyjä paikkamerkkejä (esim. "{username}") kontekstin antamiseksi. Kielissä, joissa sanajärjestys on erilainen, paikkamerkkien järjestys voi vaihdella. Siksi on tarjottava mahdollisuus järjestyksen muuttamiseen käännöksessä. Testaa kaikki variaatiot virheellisten tai puutteellisten tulosteiden välttämiseksi.
3. Monikkosäännöt ja monikon muodostus
Saksassa on vain yksikkö ja monikko, mutta monissa kielissä on monimutkaisempia monikkosääntöjä (esim. arabiassa kuusi luokkaa). Käytä kirjastoja kuten ICU MessageFormat, jotka käsittelevät monikkosääntöjä kielikohtaisesti. Määritä resursseissasi erilliset avaimet eri monikkomuodoille (one, other). Koodi valitsee sitten automaattisesti oikean muodon luvun perusteella. Esimerkki: „{count} {count, plural, one {omena} other {omenaa}}“. Testaa jokainen kieli useilla lukuarvoilla varmistaaksesi, että oikea monikkomuoto näytetään. Vältä kiinteitä if-ehtoja – ne ovat virhealttiita.
4. Tekstin pituus ja layout-puskuri
Käännökset ovat usein pidempiä tai lyhyempiä kuin alkuperäinen teksti. Erityisesti painikkeissa, valikoissa ja nimikkeissä tämä voi rikkoa layoutin. Varaa siksi riittävästi tilaa tekstin laajentumiselle – hyvä nyrkkisääntö on 30 % lisätilaa läntisille kielille, enemmän aasialaisille. Käytä dynaamisia layoutteja, jotka mukautuvat tekstin pituuteen (esim. Auto Layout iOS:ssä tai Flexbox webissä). Vältä kiinteitä leveyksiä. Anna käyttöliittymäelementtien tarvittaessa kääriä tekstiä. Testaa käyttöliittymä pisimmillä odotettavissa olevilla käännöksillä välttääksesi päällekkäisyydet tai katkaisut.
5. Merkkijonoavaimet, konteksti kääntäjille ja RTL
Yksilölliset merkkijonoavaimet ovat lokalisoinnin selkäranka. Käytä kuvaavia nimiä (esim. „login.button.title”) ja dokumentoi käyttötarkoitus. Anna kääntäjille kontekstia: kuvakaappauksia, enimmäismerkkimäärä, rajoituksia (esim. „enintään 20 merkkiä”). RTL-kielille kuten arabia tai heprea käyttöliittymä on peilattava. Käytä layout-attribuutteja, jotka tukevat RTL:ää automaattisesti (esim. start/end left/rightin sijaan). Testaa koko navigointi RTL-olosuhteissa. Muista myös symbolit ja grafiikat – ne voidaan tulkita eri tavoin kulttuurista riippuen.