lang
-määritexml:lang
-määritelang
-määriteHTML: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.
Kielimerkkauksen käyttö on siis varsin yksinkertaista ja vaivatonta, kun kyse on koko dokumentista tai sen isohkoista osista. Kun mennään yhä pienempiin osiin, sanoihin ja jopa sananosiin, sitä hankalammaksi kielimerkkaus tulee. Näitä ongelmia käsitellään jäljempänä omissa luvuissaan. Tässä luetellaan vain muutamia yleisiä huomautuksia:
hreflang
-määritteellä, jota käsitellään
tarkemmin myöhemmin.
Englanniksi kielimerkkausta käsittelee HTML-määrittelyn luku Language information and text direction.
HTML:ssä on myös language
-määrite, jota
voi käyttää script
-elementissä ilmoittamaan
käytetty skriptikieli. Sillä ei siis ole mitään tekemistä
luonnollisten kielten kanssa. Paradoksaalista on, että tähän
tekniseen tarkoitukseen käytettävän määritteen nimeksi on otettu
englannin sana sellaisenaan kun taas luonnollisen kielen
(tai yleisemmin: ihmisten kielen) ilmoittamiseen käytetään
typistesanaa!
xml:lang
-määriteXML:n määrittelyn kohta
Language Identification esittää, että XML:ssä
käytetään xml:lang
-määritettä kielen ilmaisemiseen.
Se vastaa hyvin pitkälle HTML:n
lang
-määritettä.
XHTML 1.0 -spesifikaation liite
HTML Compatibility Guidelines suosittelee käytettäväksi
molempia määritteitä. Toisaalta XHTML 1.1 -määrittelystä on,
kuten sen kohdassa
Changes from XHTML 1.0 Strict sanotaan,
kokonaan poistettu lang
-määrite.
XSL
(eXtensible Stylesheet Language)
sisältää language
ominaisuuden, jonka tarkoitettua käyttöä
kuvastaa seuraava:
"Specifies the language to be used by the formatter in language-/locale-coupled services, such as line-justification strategy, line-breaking, and hyphenation.".
SVG
(Scaleable Vector Graphics)
ja
SMIL
(Synchronized Multimedia Integration Language)
ovat dataformaatteja, joihin voi sisältyä tekstiä ja
informaatiota tekstin kielestä. Kieli ilmoitetaan
systemLanguage
-määritteellä. Se on tarkoitettu
mahdollistamaan kielivalinta samaan tapaan kuin
HTTP:n kielivalintamekanismissa
mutta yhden dokumentin sisällä.
RTF-tiedostomuoto on eräänlainen merkkauskieli, joka useilla tavoilla muistuttaa HTML:ää. Siinä on käytössä kolme kieleen liittyvää merkkausta:
\deflangnnnn
\deflangfennnn
{langnnnn tekstiä}
Tässä nnnn on luku, joka ilmaisee kielen. RTF:ssä ovat käytössä erityiset numeeriset kielikoodit.
DocBook on
SGML-pohjainen
järjestelmä dokumenttien kirjoittamiseen.
Siinä on lang
-määrite,
mutta sen merkitys ja muotokin on hiukan epäselvä.
DocBook: The Definitive Guide sanoo
siitä, kohdassa
Common Attribute Parameter Entities:
Lang should be a language code drawn from ISO 639 (perhaps extended with a country code drawn from ISO 3166,
as en_US). Use it when you need to signal your application to change hyphenation and other display characteristics.
Kuten seuraavassa kohdassa selostetaan, Internetissä käytetyssä
kielikoodien järjestelmässä peruskielikoodin ja maakoodin
välinen erotin on yhdysmerkki (-
),
ei alaviiva (_
). Toisaalta poikkeamista
tästä ei ehkä koeta ongelmaksi, koska DocBook-muotoisia
dokumentteja ei juuri ole tarkoitus sellaisenaan levittää esimerkiksi
Internetissä, vaan niistä tuotetaan ohjelmilla erilaisia
esitysmuotoja.
Seuraava osa: Kielikoodit (kielten tunnukset)