Käsitteet
I18N
|
Internationalization
|
Kansainvälistäminen. Tämä tarkoittaa ohjelman tai nettisivun tekemistä siten, että
lähdekoodiin ei tarvitse tehdä muutoksia, kun uusi kieli tai kulttuuri
lisätään.
|
L10N
|
Localization
|
Lokalisointi tarkoittaa varsinaista työtä eli kääntämistä, mahdollisia
ulkoasumuutoksia tekstien sovittamiseksi, paikallisia kuvia jne.
|
I18N+L10N
|
Globalization
|
Tämä viittaa molempiin yllä oleviin eli kaikkeen kulttuuri- ja
kielitukeen liittyvään työhön.
|
Kulttuuri ja kieli
|
Samassa kulttuurissa voi olla kaksi eri kieltä kuten Suomessa suomi
ja ruotsi. Toisaalta samaa kieltä voidaan puhua eri kulttuureissa, jolloin
mitat ja rahayksiköt voivat erota (esimerkiksi englanti eri maissa).
|
Kattavuus ja mahdolliset ongelmakohdat
Monesti lokalisoinnista tulee mieleen vain tekstien
kääntäminen. Sen sijaan pitää ottaa huomioon myös uusien tekstien sovittaminen
käyttöliittymään muun muassa eri css-tiedostojen avulla. Jotkin kuvat voivat
olla myös sellaisia, joita ei haluta näyttää joka maassa vaan halutaan tuoda
jotakin paikallista ja tuttua. Kulttuurien ja maiden mukaan vaihtuvat myös osoitteet (kansainväliset postinumerot), tittelit, rahayksiköt, mitat, numerosarjojen, kellon ja päivämäärien esitykset. Selaimen
tarjoamaan automaattiseen kulttuuritietoon ei voi luottaa vaan käyttäjälle
pitää aina antaa mahdollisuus valita myös toinen kieli.
Toteutustavat
ASP.NET MVC –sovelluksissa voi käyttää erilaisia toteutustapoja.
Microsoft on tuonut kulttuurituen mukaan frameworkiin, jonka avulla hoituu sekä
ajan että numeroiden esitykset. Myös yksinkertainen tekstien tuki on
resurssitiedostojen (esim. Resources.resx, Resources.fi.resx) kautta. Näiden
avulla ei kuitenkaan voi hoitaa kaikkea lokalisointia vaan on käytettävä apuluokkia
(Helper) kuten jokin imgHelper, joka hoitaa kuvan valinnan kielen mukaan. Erilaisten
osasivujen ja css:ien valintaan voi tehdä jonkinlaisen urlHelperin (Url.Content,
Html.Partial). Näitä apuluokkia löytyy valmiina hakukoneella. Myös
automaattiseen kääntämiseen on tehty Helper-luokkia. Ne hakevat käännöksen
jostakin netin käännöskoneesta (Bing translator, Google translator) ja
näyttävät sen.
Tietokannan käyttö
Toinen tapa on käyttää tietokantaa kaikkien tekstien ja
mahdollisesti myös kuvien tallennukseen, jolloin erillistä ohjelman kääntämistä
ja tiedostojen siirtelyä ei vaadita pieniä muutoksia tehdessä. Toki
tietokantaan on oltava silloin jokin järkevä käyttöliittymä. Hakukoneen avulla
löytyy joitakin valmiita paketteja tähän tarkoitukseen. Vaihtoehtoja kannattaa etsiä
Visual Studion NuGet-pakettienhallinassa hakusanalla globalization ja klikata niiden kotisivulle katsomaan lisätietoja.
Apuvälineitä
Resurssitiedostojen editointiin on varmasti useampiakin
työkaluja. Itse olen käyttänyt Zeta Resource Editoria,
joka on ilmainen ja osaa näyttää kerralla useamman kieliversion sarakkeittain.
Siinä on myös Exceliin tuonti ja vienti.
Mitä kannattaa lukea seuraavaksi
Suurin löytyneestä materiaalista oli tosiaan vanhaa, mutta AJ:n blogissa oli alle vuoden vanha juttu: AJ's Blog - ASP.NET MVC internationalization.