Kielimerkkaus, luku 2 Kielimerkkauksen toteutus HTML:ssä ja XML:ssä (ja muissa järjestelmissä):

HTML:ssä lang-määrite

HTML:ssä voidaan elementin sisällön kieli ilmaista lang-määritteellä, jonka arvo on jokin seuraavassa kohdassa kuvattava kielikoodi. Esimerkiksi
<html lang="fi">
ilmoittaa, että dokumentti kokonaisuutena on suomenkielinen.

Useimpiin HTML-elementteihin voidaan liittää lang-määrite. Poikkeukset ovat: applet, base, basefont, br, frame, frameset, iframe, param ja script. Osa poikkeuksista on outoja, sillä esimerkiksi iframe-elementissä kielen ilmoittaminen voisi olla tarpeen, esimerkiksi kun sillä liitetään dokumenttiin tekstitiedosto, joka on eri kieltä kuin ympäröivä teksti. Tämä ongelma voidaan periaatteessa kiertää panemalla iframe-elementti span-elementin sisään.

Kaikkien elementtien kieltä ei suinkaan tarvitse merkata erikseen, vaan vain niissä tapauksissa, joissa kieli poikkeaa ympäröivän tekstin eli ylemmän tason elementin kielestä. Jos suomenkielisessä dokumentissa on vaikkapa pitkä ruotsinkielinen lainaus, se on syytä merkata näin:
<blockquote lang="sv">...</blockquote>
Ja jos sen sisällä taas on tekstiä, joka ei ole ruotsia, sille on syytä olla oma lang-määritteensä.

Lainausten (sitaattien) lisäksi etenkin kirjojen ja muiden teosten nimet ovat tekstejä, joiden kieli on hyvä merkitä. Sopiva elementti teoksen nimelle on cite, joten merkkaus voi olla esimerkiksi seuraavanlaista:
Monet tuntevat nimeltä teoksen <cite lang="en">Origin of Species</cite>.

Jos jokin teksti on eri kieltä kuin ympäröivä teksti mutta ei ole omana elementtinään, sille voidaan ottaa käyttöön oma merkkaus, oma elementti, vain lang-määritteen liittämiseksi siihen. Jos kyse on yksittäisestä sanasta tai muutamista peräkkäisistä sanoista, käytetään span-elementtiä, esimerkiksi
Teoksen kirjoitti <span lang="en">Charles Darwin</span>.
Jos taas kyse on laajemmasta kokonaisuudesta, kuten peräkkäisistä kappaleista, kirjoitetaan sen ympärille div-merkkaus.

Esimerkiksi FrontPage 2003 -ohjelmassa voi tekstin sanoja merkata muunkielisiksi seuraavasti: Maalataan sanat hiirellä, ja valitaan Työkalut-valikosta kohta "Määritä kieli", jonka jälkeen voidaan valita pudotusvalikosta oikean kielen nimi. Valitettavasti tarjolla ei ole pelkkiä kieliä vaan esimerkiksi englannin kieltä valittaessa on valittava myös maa. Valinnan jälkeen ohjelma osaa käyttää kyseisen kielen oikolukua, jos se on ohjelmassa ylipäänsä käytettävissä.

Taulukoissa lang-määrite voi olla myös sarakekohtainen, esimerkiksi <col lang="en">. Tämä on hyödyllistä silloin, kun taulukko esimerkiksi sisältää sanaston, jossa erikieliset vastineet ovat eri sarakkeissa. Ei siis tarvitse kirjoittaa lang-määritettä kuhunkin soluun erikseen. Jos esimerkiksi taulukon ensimmäinen sarake on suomea, toinen saksaa, riittää kirjoittaa <table>-tägin jälkeen, ennen taulukon rivejä, vain
<col lang="fi">
<col lang="de">

Asia on selitetty HTML-spesifikaatiossa melko oudossa kohdassa, Inheritance of alignment specifications.


Kirjoittamisen ajankohta: 2002-06-23. Päivitetty viimeksi 2007-12-03. Teknisiä korjauksia 2017-12-11.
Tämä sivu kuuluu Jukka "Yucca" Korpelan avoimeen tietosivustoon Datatekniikka ja viestintä.