Kirjoitusjärjestelmä, englanniksi script, tarkoittaa ihmiskielen kirjoittamisen perusmenetelmää. Se voi olla aakkoskirjoitusta, tavukirjoitusta, sanakirjoitusta tms. Käytännössä erotetaan toisistaan joukko suuria kirjoitusjärjestelmiä, kuten latinalainen, kyrillinen, kreikkalainen, kiinalainen, hieroglyfit ym. Samasta kirjoitusjärjestelmästä on erilaisia muunnelmia ainakin merkistön tasolla. Esimerkiksi suomi ja ranska käyttävät latinalaista kirjoitusjärjestelmää, mutta erilaisia lisämerkkejä käyttäen.
Periaatteessa kirjoitusjärjestelmä on erotettava kielestä. Jos esimerkiksi venäjää kirjoitetaan latinalaisin kirjaimin, se on edelleen venäjää. Itse asiassahan monet kielet ovat vaihtaneet kirjoitusjärjestelmää aikojen kuluessa, eikä tähän sisälly, että itse kieli silloin muuttuisi toiseksi.
Toistaiseksi ei ole määritelty mitään tapaa merkkauksessa ilmoittaa, mikä on käytetty kirjoitusjärjestelmä. Käytännössä sen oletetaan olevan se, mitä kullekin kielelle yleisimmin käytetään. Vertaa kohtaan Riittääkö kielikoodi?
Loogista olisi, että kieli ja kirjoitusjärjestelmä ilmaistaan toisistaan riippumatta. Täten on erikoista, että IANAn rekisteriin on otettu koodeja, joissa kirjoitusjärjestelmä ilmaistaan kielikoodin nelikirjaimisella alakoodilla, esimerkiksi siten, ettäaz-Cyrl
tarkoittaa
kyrillisin kirjaimin kirjoitettua azeria ja
az-Latn
latinalaisin kirjaimin kirjoitettua azeria.
Ääntämisohjeet ovat tavallaan kielen ja muun notaation välimaastossa oleva asia. Jos kirjoitan, että englannin sana "people" ääntyy suunnilleen "piipl", niin mitä kieltä "piipl" on? Periaatteessa voisimme sanoa, että se on englantia mutta kirjoitettuna englannin normaalista kirjoitusjärjestelmästä poikkeavasti. Parasta lienee käytännössä jättää kielimerkkaus pois, koska puhesynteesissä tulos voisi olla absurdi, kun ohjelma yrittää lukea ilmaisun "piipl" englannin sääntöjen mukaan. Oikeastaan tarvitsisimme tavan kertoa kirjoitusjärjestelmä. Sen ei tarvitsisi olla muuta kuin tapa kertoa, että jokin ilmaisu luetaan vaikkapa suomen kielen sääntöjen mukaan mutta sitä ei muutoin käsitellä suomenkielisenä. - Tässä käytettiin yksinkertaisuuden vuoksi esimerkkinä suomen kielen sääntöjen mukaan kirjoitettua ääntämisohjetta. Usein käytetään järjestelmiä, joissa on erilaisia lisämerkkejä ehkä hyvinkin paljon ja jotka on usein pyritty tekemään hyvinkin täsmällisiksi, esimerkiksi IPA-kirjoitus. Koska IPA-kirjoituksen lukemisen oikea tapa kielestä riippumatonta, niin IPA:lla esitetyn ääntämisohjeen voi merkata tekstin kielen mukaiseksi.
Entä mitä pitäisi ajatella sellaisista ilmaisuista kuin "tuu tii to tööti tuu", jonka on tarkoitus parodioida huonoa englannin taitoa, tarkemmin sanoen esittää ilmaisun "two tea to thirty-two" kehnoa ääntämystä? Niihin voi suhtautua kuten yksinkertaisiin ääntämisohjeisiin, joissa ääntämys esitetään suomen kirjoitusjärjestelmän mukaan. Käytännössä siis on parasta jättää kielimerkkaus pois.
Se, että kirjoitusjärjestelmää ei voi ilmoittaa, aiheuttaa
ongelmia myös silloin, kun teksti esitetään käyttäen jotakin
translitteraatiota tai transkriptiota.
Silloin teksti kirjoitetaan eri kirjoitusjärjestelmällä kuin sillä,
jolla kyseistä kieltä normaalisti esitetään.
Jos esimerkiksi halutaan kirjoittaa kreikkalainen nimi latinalaisin
kirjaimin,
niin tulisiko käyttää sentapaista
merkkausta
<span lang="el">Stephanos Piperoglou</span>
?
Ainakaan puhesyntetisaattori ei voi tuottaa kovin hyvää tulosta,
koska se ei tiedä, mitä translitterointimenetelmää on käytetty.
Käytössä on useita erilaisia
kreikan translitteroinnin ja
transkription menetelmiä.
Ongelma on vielä suurempi esimerkiksi
venäläisten nimien osalta, koska
niille käytetään hyvin monenlaisia translitterointeja.
Esimerkiksi merkkauksesta
<i lang="ru">chas</i>
ei ohjelma voi edes
periaatteessa tietää, tarkoitetaanko venäjän
sanaa
час 'tunti', kuten
tarkoitetaan, jos translitterointi
on tulkittava englannissa vallitsevan käytännön mukaan, vaiko ehkä
шас ranskalaisen translitteraation mukaan tai
хас saksalaisen translitteraation mukaan tai
kenties
цхас
kansainvälisen standardin (ISO 9) mukaan.
Ohjelman voi tuskin olettaa tarkistavan sanakirjoista, mitkä
tulkinnoista vastaavat todellisia sanoja, varsinkaan, kun kieli muuttuu
ja tekstissä voidaan toki käyttää myös keksittyjä ja kuvitteellisia sanoja.
(Näitä vastaavat suomen kielen mukaiset translitteroinnit ovat
tšas,
šas,
has ja
tshas.
Ks. sivua Venäjän translitterointi.)
On kaksi isohkoa käytännön ongelmaa, joiden takia on ehkä parempi välttää kielimerkkausta silloin, kun teksti on translitteroitu tai transkriboitu eli siirretty toiseen kirjoitusjärjestelmään:
<p>Mielikirjailijani
on <span lang="ru">Dostojevski</span>.</p>
<p>Luen mielelläni <span lang="ja">manga</span>-sarjakuvia.</p>
Mozillassa on erityiset asetukset, joissa voi valita, mitä fontteja selain käyttää erikielisten tekstien esittämiseen. Oletusarvot ovat sellaiset, että esimerkiksi japaninkielisen tekstin fontti on myös latinalaisten merkkien osalta erilainen kuin "länsieurooppalaisen", mistä seuraa yllä kuvattu ilmiö. Aiheesta kertoo lisää Alan Flavellin sivu I18n - Browsers and fonts kohdassa Mozilla.
Ongelma voi ilmetä myös silloin, kun suomenkielisellä sivulla on esimerkiksi puolankielisiä sanoja, joille on käytetty kielimerkkausta. Jos sivulla ei aseteta tekstin fonttia, Mozilla tällöin käyttää kyseisille sanoille sitä fonttia, joka on Mozillan asetuksissa liitetty keskieurooppalaiseen merkistöön. Tällöin tekstin ulkoasu voi ikävästikin poiketa muun tekstin asusta. Käytännössä ongelma on pieni, koska Mozillan oletusasetukset keskieurooppalaisen merkistön fonteille ovat samat kuin länsieurooppalaisen merkistön fonteille.
Edellä kuvatut fonttiongelmat voidaan välttää
asettamalla tekstin fontti erikseen, esimerkiksi CSS-säännöllä
body { font-family: Arial, sans-serif; }
sillä Mozillan fontinvalintasäännöt koskevat vain tilannetta,
jossa sivu jättää fonttien valinnan selainten tehtäväksi.
Kielimerkkaus voi vaikuttaa siihen, millä tavoin selain esittää ns. kiinalais-japanilais-korealaiset kirjoitusmerkit (CJK-merkit). Unicodessa ne on yhtenäistetty niin, että kielieroa ei oteta huomioon merkkien (koodien) tasolla, vaikka merkeistä käytetään eri kielissä osittain erilaisia muotoja. Selain saattaa kuitenkin ottaa kielieron huomioon, jos kieli on ilmoitettu merkkauksessa.
Seuraava taulukko esittää erään CJK-merkin (U+9FA5) ensin ilman kielimerkkausta, sitten kolmea eri kielimerkkausta käyttäen. Esimerkiksi Mozilla (ja Firefox) esittää oletusarvoisesti merkin eri tavoilla kielimerkkauksen mukaan siten, että se käyttää japanin mukaista esitystä, jos kieltä ei ole ilmoitettu (tai jos ilmoitettu kieli ei ole sellainen, jossa käytetään CJK-merkkejä). Jotta erot olisi helpompi havaita, on merkki esitetty tässä hyvin isokokoisena.
merkkaus | merkki | kieli |
---|---|---|
龥 | 龥 | ei ilmoitettu |
<span lang="zh">龥</span> | 龥 | kiina (yksinkertaistettu kirjoitusjärjestelmä) |
<span lang="zh-Hant">龥</span> | 龥 | kiina (perinteinen kirjoitusjärjestelmä) |
<span lang="ja">龥</span> | 龥 | japani |
Kiinan kieltä kirjoitetaan sekä ns. perinteisellä
(traditional)
että
ns. yksinkertaistetulla (simplified)
kirjoitusjärjestelmällä. Näitä ei kuitenkaan aiemman
käytännön mukaan erotettu
toisistaan loogisella koodauksella vaan maakoodeilla siten, että
zh-CN
(missä CN
on Kiinan maakoodi) tai
pelkkä zh
tarkoittavat yksinkertaistettua ja
zh-TW
(missä TW
on maakoodi, joka on
annettu Taiwanille) tarkoittaa perinteistä kirjoitusjärjestelmää.
Maakoodien käyttö perustuu siihen, että Kiinassa käytetään
enimmäkseen yksinkertaistettua järjestelmää mutta Taiwanin
maakunnassa perinteistä.
Jotkin ohjelmat saattavat edelleenkin tukea vain sellaista
menetelmää.
Loogisempi ratkaisu on käyttää alakoodeja, jotka on erikseen
rekisteröity tähän tarkoitukseen:
zh-Hans
tarkoittaa yksinkertaistettua,
zh-Hant
perinteistä
kirjoitusjärjestelmää. Käytännössä pelkkä
zh
tarkoittaa yleensä samaa kuin
zh-Hans
.