Web-sivuston tekeminen niin, että samat tiedot ovat saatavilla eri kielillä käyttäjän valinnan mukaan, asettaa omat tekniset vaatimuksensa. Tämä dokumentti käsittelee erityisesti tätä varten kehitettyä kielivalintamekanismia (language negotiation) sekä sitä täydentävää linkittämistä sivun erikielisiin versioihin.
Tämä dokumentti käsittelee sitä, miten erikielisiä sivuja "tarjoillaan" käyttäjille; se ei käsittele kysymystä sivujen erikielisten versioiden kirjoittamisesta. Siinä voidaan ehkä jossain määrin käyttää automaattisia käännösohjelmia, ks. kirjoitustani Translation-friendly authoring, mutta käännöstyön on kuitenkin syytä olla työnsä osaavan kääntäjän vastuulla. Parasta on, jos kääntäjä myös tuntee HTML-kielen perusteet, jolloin hän voi tuottaa käännöksen suoraan HTML-dokumentteina. Tällöin voidaan esim. antaa kääntäjälle käännettävä aineisto HTML-muodossa, ja hän korvaa tekstit toisilla jättäen HTML-merkkauksen (yleensä) ennalleen.
Erikielisten versioiden nimeämisestä niiden Web-osoitteiden (URLien) ei oleteta tässä mitään erityistä. Käytännön syistä kuten sivujen luonnin ja ylläpidon takia on parasta olla systemaattinen, mutta tämä voidaan toteuttaa eri tavoin. Menetelmä voi olla esimerkiksi jompikumpi seuraavista:
http://www.jotain.example/en/foo.html
(englanninkielinen),
http://www.jotain.example/fi/foo.html
(suomenkielinen);
tätä vastaa tavallisesti käytännössä se, että kunkinkieliset
sivut ovat palvelimessa omana hakemistonaan
.html
(t. vast.) lähinnä
edeltävässä osassa on yhdysmerkki (tai muu välimerkki) ja kielikoodi, esim.
http://www.jotain.example/foo-en.html
ja
http://www.jotain.example/foo-fi.html
;
tätä vastaa tavallisesti käytännössä se, että erikieliset
sivut ovat palvelimessa samassa hakemistossa mutta erinimisinä
tiedostoina, systemaattisesti nimettyinä
Molemmissa menetelmissä ongelmana on, että yhdysmerkkiä
edeltävän osan (esimerkissä foo
) on syytä olla
sellainen, että se on ymmärrettävissä kohtalaisen kansainvälisesti.
Tämä onnistuu luontevasti silloin, kun tällaiseksi osaksi sopii
luontevasti jokin yleisesti tunnettu lyhenne taikka kansainvälisen
sanan osa - mutta nämä ovat periaatteessa poikkeustilanteita.
Muissa tapauksissa osoitteet voivat näyttää aika oudoilta;
jokin katsaus-en
näyttää oudolta sille, joka ei osaa suomea.
Vaikka käyttäjien ei
pitäisikään yleensä joutua tulkitsemaan ja käyttelemään URLeja, sellaiseen
kuitenkin usein joudutaan. Eräs periaatteellinen vaihtoehto on, että
erikielisten versioiden osoitteet ovat toisistaan täysin riippumattomia,
esim. loppuosa katsaus.html
, review.html
jne.,
mutta tällöin toteutus ja ylläpito mutkistuu
etenkin kielivalintamekanismin osalta.
Kielivalintamekanismilla voidaan mahdollisesti
saada aikaan, että yleinen, "geneerinen" osoite kuten
http://www.jotain.example/foo.html
viittaa eri tilanteissa
erikielisiin sivuihin. Sen tarkoitus ei ole syrjäyttää edellä kuvatun kaltaisia
kielikohtaisia osoitteita vaan tarjota toinen vaihtoehto niiden rinnalle.
Tässä jutussa ei käsitellä merkistöongelmia, joita aiheeseen väistämättä liittyy ainakin silloin, kun mukana on kieliä, joita ei kirjoiteta latinalaisin aakkosin. Tämä rajaus johtuu lähinnä siitä, että aihepiirit ovat mutkikkaita ja siksi asia on syytä jakaa hallittavissa oleviin osiin, eli käsitellä yksi aihe kerrallaan. Käytännön syynä on lisäksi se, että Suomessa monikielisen sivuston kielinä ovat tavallisimmin suomi, ruotsi, englanti ja mahdollisesti muut sellaiset kielet, joita voidaan kirjoittaa ISO Latin 1 -merkistöä käyttäen, jolloin monikielisyys ei tuo mukanaan sellaisia merkistöongelmia, joita ei olisi jo suomeksi kirjoitettaessa.
Tarkastelun ulkopuolelle on jätetty myös lang
-määrite,
jolla HTML-merkkauksessa voidaan ilmoittaa käytetty kieli.
Hyvä kuvaus sen taustalla olevista ideoista sekä teknisistä
menettelyistä on
HTML-spesifikaation luvussa
Language information and text direction.
Valitettavasti vain selainten ja muiden ohjelmien tuki
tälle määritteelle on lähinnä olematon.
Linkittäminen yleensä on suhteellisen yksinkertaista HTML:ssä. Erikielisiin versioihin viitattaessa keskeisenä ongelmana on linkkitekstin valinta eli se, mikä linkin osa toimii "oliona", jonka voi klikkaamalla tai muulla keinoin valita. Periaatteessa tällaisena oliona voi olla myös kuva, mutta yleensä tekstilinkit toimivat parhaiten. Varsinkaan tässä yhteydessä kuvan käyttö ei ole ollenkaan hyvä ajatus, koska luonnollisin tapa viitata dokumentin muunkieliseen versioon on käyttää sanoja tai muuta tekstiä: dokumentin otsikko kyseisellä kielellä tai kielen nimi tai kielen nimen koodilyhenne. Poikkeuksena voi olla tilanne, jossa että linkkiteksti olisi kieltä, jota merkkikoodiongelmien takia ei voi käytännössä esittää dokumentissa riittävän luotettavasti muuten kuin kuvana. Erityisesti on syytä varoittaa lippujen käytöstä kielten symboleina.
Yksinkertainen esimerkki suomenkieliselle sivulle sijoitettavasta linkistä, joka viittaa jutun englanninkieliseen versioon:
<p>Tämä sivu englanniksi - This page in English: <cite><a href="multi-en.html">Techniques for multilingual Web sites</a></cite>.</p>
Tämä näyttäisi seuraavalta (linkki ei valitettavasti toimi vielä!):
Tämä sivu englanniksi - This page in English: Techniques for multilingual Web sites.
Tässä linkkitekstinä on toiskielisen version nimi kyseisellä kielellä. Tästä on se etu, että jos joku suomea osaamaton eksyy sivulle, hän näkee heti, linkkiä seuraamattakin, mitä sivu käsittelee. Joskus tällainen linkkiteksti toimii itsenäisenäkin, mutta usein sen eteen on hyvä kirjoittaa edellä esitetyn tapainen selitys. Suomenkielinen selitys on siinä siksi, että englantia osaamaton ei rupea ihmettelemään, mistä on kyse; tämän merkitys ehkä avautuu, jos kuvittelet englannin tilalle suahilin tai kiinan. Englanninkielinen selitys taas kertoo englantia osaavalle, mistä on kyse; muutoinhan jäisi hänen arvattavakseen, onko kyseessä vain sivulla muuten vain oleva englanninkielinen linkki, jollaiset toki ovat aika tavallisia.
Entä jos kieliä on useita? Silloin voisi tehdä listan tai taulukon, jossa on edellä kuvatun kaltaisia linkkejä ja niille yhteinen alussa oleva selitys, esim. otsikkona, esim. tähän tyyliin:
Tämä sivu muilla kielillä - This page in other languages Deutsch Techniken für mehrsprachige Web-Sites English Techniques for multilingual Web sites svenska Tekniker för mångspråkiga Webbsajter
Taulukkoon voisi vielä ajatella lisättäväksi kielten kaksikirjaimiset, ISO 639:n mukaiset koodit. Tällöin listan tai taulukon järjestys voisi olla koodien mukainen aakkosjärjestys. Näin tehtäisiin tunnetuiksi näitä koodeja. On kohtuullista, että jokainen oppii sellaisen pienen asian kuin niiden kielten kaksikirjaimiset tunnukset, joita hän osaa hyvin, koska monissa yhteyksissä on tarpeen viitata kieliin sellaisilla tunnuksilla. Tunnukset voisi tällaisissa yhteyksissä esittää isolla kirjasinlajilla:
de
(Deutsch) Techniken für mehrsprachige Web-Sites en
(English) Techniques for multilingual Web sites sv
(svenska) Tekniker för mångspråkiga Webbsajter
Tilanteen mukaan voidaan esitystä tiivistää, äärimmillään siten, että linkkinä on kielen koodi. Näin on menetelty esimerkiksi monilla EU:n sivuilla. Esimerkiksi sivulla, joka sisältää tietosuojadirektiivin suomeksi, on yläreunassa "kielinapit" seuraavaan tapaan:
Tässä tosin koodit ovat tarpeettomasti kuvina. Lisäksi sivu
toimii huonosti ilman kuvia; pienille kuville ei kannata
kirjoittaa width
- ja height
-määritteitä,
koska se aiheuttaa
ongelmia graafisissa selaimissa.
Lisäksi sivulla on epäloogisesti
ja tilankäyttöä sotkevasti
esim. alt="Francais"
(!),
kun loogista olisi käyttää merkkausta
alt="fr" title="en français"
.
EU:n pääsivu, tai "sisääntulosivu", on luonteeltaan pelkkä läpikulkusivu, jolta voi vain valita kielen. Linkkeinä toimii sana "Tervetuloa" eri kielillä. Tämä on huonohko ratkaisu monessakin mielessä - siinäkin, että tämä sana on eri kielissä osittain hämäävän samanlainen.
Debian-projektin sivuilla on kunkin sivun loppupuolella teksti "Tämä sivu on on olemassa myös seuraavilla kielillä:" tai vastaava sivun kielellä sekä kielten nimet, jotka ovat linkkejä erikielisiin versioihin. Tämäkin on melko toimiva ratkaisu. Tosin linkkien paneminen intuitiivisesti selvään järjestykseen kuten aakkosjärjestykseen on mahdotonta, jos mukana on muitakin kuin latinalaisin aakkosin kirjoitettavia nimiä. Voitaneen kuitenkin olettaa, että se, joka jotakin kyseisistä kielistä osaa, löytää sen joukosta.
Minne linkit erikielisiin versioihin kannattaisi sivulla sijoittaa? Varmaankin aina samaan paikkaan yhdessä sivustossa, mutta minne? Seuraavassa on lyhyesti muutama vaihtoehto ja niiden hyviä ja huonoja puolia:
Ehkäpä paras ratkaisu olisi seuraava siinä tapauksessa, että
kielilinkit vievät suhteellisen vähän tilaa (esim. enintään
tusinan verran linkkejä, joiden tekstinä on kielikoodi):
Kielilinkit kirjoitetaan dokumentin loppuun, mutta
tyylisäännöstöillä ehdotetaan, ns.
absoluuttista positiointia
käyttäen, niiden fyysistä sijoittamista
alkuun, oikeaan nurkkaan. Tällä sivulla olevat (toistaiseksi
toimimattomat) kielilinkit on tehty siten, että lopussa
on div
-elementti, jossa linkit ovat ja jolle on
annettu tunniste määritteellä id=langlinks
, ja
tyylisäännöstössä on seuraava:
div#langlinks { position: absolute; top: 0; right: 0; text-align: right; height : 1.2em; } h1 { margin-top : 1.2em; }
Täten selain, joka ei tue positiointia tai joka syystä tai toisesta
jättää kyseisen tyylisäännöstön soveltamatta, linkit näkyvät sivun
lopussa. Positiointia tukeva selain näyttää ne oikeassa yläkulmassa.
Kyseisen osan korkeus on erikseen asetettu tyylisäännöstössä
(1,2 kertaa fontin korkeus), jotta on sitten voitu asettaa sama määrä
tilaa pääotsikon ylämarginaaliksi. Tällöin kielilinkit ja otsikko
eivät mene päällekkäin. Menettely tietenkin olettaa, että dokumentin
rungon ensimmäinen elementti on pääotsikko (h1
-elementti).
Teoriassa kielilinkit voisi tehdä
link
-elementtien muodossa, jolloin
niiden esitystapa jäisi selaimen tehtäväksi kuhunkin selailutilanteeseen
sopivassa muodossa. Valitettavasti vain tätä tapaa ei juuri mikään selain
tue mitenkään, eikä sen varaan siten voida lähivuosina rakentaa
mitään.
Kielivalintamekanismi (language negotiation) ei ole välttämätön. Se ei myöskään ole käytännössä luotettava, vaikka se teknisesti toimisikin. Sen lisäksi tarvitaan joka tapauksessa linkittäminen sivun erikielisiin versioihin. Täten on käytännössä järkevää aloittaa linkittämisestä ja vasta sitten selvittää, missä määrin on tarvetta ja aihetta käyttää myös kielivalintamekanismia.
Aika usein yritetään kielivalinta tehdä käyttäjän
Internet-osoitteen, tarkemmin sanoen sen alueosan (domain)
perusteella. Sellainen on melkoista arvailua. Ei suinkaan jokaisella
.fi
-alueessa olevalla, tai oikeammin sanoen .fi
-alueessa
olevaa konetta käyttävällä, ole suomi äidinkielenä. Ja tietenkin
suomenkieliset käyttävät monia muitakin osoitteita kuin
.fi
-osoitteita. Mutta jos kuitenkin yrität tehdä
kielivalinnan käyttäjän osoitteen perusteella, muista, että valinta
tällöin varmasti menee pieleen merkittävän usein, joten
kirjoita joka tapauksessa sivuille seuraavassa kuvattavat linkit,
joiden kautta käyttäjä voi löytää sivut hänelle sopivalla kielellä.
Viimeisimmän päivityksen ajankohta: 2000-03-03
Jukka Korpela, jkorpela@malibutelecom.com