Kielimerkkaus:

Muita erityiskysymyksiä

Sisältö:

Linkin kohteen kieli: hreflang

Edellä mainittiin lyhyesti, että linkkien osalta lang-määrite ilmaisee vain itse linkin kielen ja linkin kohteen kieli voidaan ilmoittaa hreflang-määritteellä. Yleensä on parasta, että linkkiteksti on samalla kielellä kuin dokumentti, johon linkki viittaa, koska tämä antaa lukijalle tai kuulijalle oikean ennakko-odotuksen. Mutta välttämätöntä se ei ole.

HTML:n määrittelyssä ei ole sanottu mitään hreflang-määritteen oletusarvosta, siis ei esimerkiksi sellaista aika luonnollisentuntuista sääntöä, että oletusarvo olisi itse linkin kieli. Käytännössä voisi ehkä lähteä siitä, että ainakaan yksikielisessä dokumentissa ei linkin kohteen kieltä tarvitse ilmoittaa, jos se on sama kuin dokumentin kieli.

Jostakin syystä hreflang-määrite on sallittu vain a-elementeissä eli normaaleissa linkeissä ja link-elementeissä, ei siis area-elementeissä, vaikka nekin ovat luonteeltaan eräänlaisia linkkejä. Määritteen merkitys on hiukan epämääräinen: se ilmoittaa linkin kohteen peruskielen, base language. Käytännössä tämä epämääräisyys ei yleensä haittaa.

MS Word ja kielimerkkaus

MS Word sisältää monenlaista tukea eri kielille. Tosin tuen laajuus riippuu Wordin versiosta ja asennustavasta.

Kun esimerkiksi kirjoitetaan lainausmerkit tavallisen näppäimistön lainausmerkkinäppäintä käyttäen, Word pyrkii korvaamaan lainausmerkin oikealla kielikohtaisella lainausmerkillä. Usein tämä on hyvin hyödyllistä, joskus Word taas on arvannut kielen väärin tai muusta syystä tekee vääriä "korjauksia".

Word sisältää jonkinlaisen automaattisen kielentunnistuksen eli pyrkii kirjoitettaessa tunnistamaan, mitä kieltä teksti on. Tämä piirre voidaan poistaa käytöstä, mutta yleensä se on hyödyllinen. Jos Word on tunnistanut kielen väärin, voidaan "käsin" korjata tieto kielestä, maalaamalla teksti ja valitsemalla Työkalut-valikon Kieli-kohdan kautta haluttu kieli.

Tieto kielestä ilmeisesti tallentuu jossakin Wordin sisäisessä muodossa. Mutta jos leikataan ja liimataan selaimessa näkyvästä HTML-dokumentista tekstiä Wordiin, niin Word tunnistaa sen kielen HTML:ssä olevan kielimerkkauksen mukaiseksi. Siis jos sivulla on esimerkiksi <html lang="fi">, niin Word pitää kielenä suomea, jos taas <html lang="ru">, niin venäjää, jne. Näin riippumatta siitä, mitä kieltä teksti todellisuudessa on, eli Word "uskoo" tekstin venäjäksi vaikka se on latinalaisin kirjaimin ja selvää suomea.

Sama toimii toisinkin päin. Ja se toimii, tavallaan. Riippumatta siitä, onko Word itse tunnistanut kielen vai onko käyttäjä sen kertonut, Word "HTML-muotoon" tallentaessaan kirjoittaa mukaan lang-määritteet tyyliin
<p class=MsoNormal><span lang=FI>Tämä on testi.</span></p>
Vahinko vain, että Wordin tuottama "HTML-muoto" on kokonaisuutena erittäin sekavaa ja sisältää piirteitä, jotka tekevät sen Webiin huonosti sopivaksi. Ja valitettavasti HTML-Kit-ohjelma (tai sen sisältämä Tidy), joka muuten tekee hyvän työn peratessaan sitä moskaa, heittää lang-määritteet menemään pesuveden mukana.

Edellä (kohdassa Muita kielikoodijärjestelmiä) jo mainittiin, että RTF-muotoon tallentaessaan Word tallentaa myös kielitiedon, mutta Microsoftin omia koodeja käyttäen.

Unicoden "kielimerkkaus"

Unicode-merkistö sisältää myös eräänlaisen "kielimerkkauksen". Tämä tarkoittaa, että merkkien tasolla, siis myös esimerkiksi pelkkää tekstiä sisältävässä asiakirjassa, voisi erityisillä ohjausmerkeillä ilmoittaa kielen. Periaatteet on kuvattu UAX #27:ssä, kohdassa 13.7, Tag Characters.

Tämän suhdetta merkkauskielten kielimerkkaukseen käsittelee dokumentin Unicode in XML and other Markup Languages kohta Language Tag Characters, U+E0000 .. U+E007F. Kyseisiä merkkejä käytetään melko vähän, eikä Unicode-standardikaan suosittele niiden käyttöä.

Eräs väärinkäsitys: kielikoodi DOCTYPE-määrittelyssä

Monet Web-sivujen tekijät ovat arvanneet väärin, mitä EN tarkoittaa niin sanotuissa dokumenttityypin määrittelyssä eli HTML-dokumentin alussa olevassa ilmaisussa kuten
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Monet ovat arvanneet, että EN on kielikoodi ja tarkoittaa englantia. Niin se onkin, mutta se ei ilmoita HTML-dokumentissa käytettyä kieltä eikä sitä pidä mennä vaihtamaan toiseksi. Se ilmoittaa, mitä kieltä on käytetty HTML:n (tai yleisemmin: merkkausjärjestelmän) muodollisen kuvauksen yhteydessä, siis itse HTML:n määrittelyssä. Aiheesta kertoo syvällisemmin katsauksen Language Identifiers in the Markup Context kohta SGML.


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

Seuraava osa: English summary: language markup in markup systems