|
Lietuvių kalba ir daugiakalbiškumas elektroniniame pašte
Gintautas Grigas
MII
Įvadas
Elektroniniame pašte keičiamasi informacija tarp dviejų kompiuterių:
laiško siuntėjo ir laiško gavėjo. Juose gali būti skirtinga programinė
įranga, naudojanti skirtingas kodų lenteles. Skirtingų kodavimų
suderinamumą reglamentuoja MIME protokolas, paskelbtas 1993 m. Laišką
siunčianti programa jį perkoduoja iš kompiuteryje naudojamos kodų lentelės
(trumpiau kodo) į kodą, naudojamą elektroniniame pašte, o laišką
priimanti programa laišką iškoduoja iš elektroniniame pašte naudojamo kodo
į laiško gavėjo kompiuterio kodą, kuris gali būti kitoks, negu laiško
siuntėjo kompiuteryje. Kokia kodų lentele siunčiamas laiškas, siuntėjo
programa informuoja gavėją įrašydama į laiško antraštę kodų lentelės
pavadinimą, pavyzdžiui:
Content-type: text/plain; charset=iso-8859-13
Laiško gavėjo programa, turėdama šią informaciją, laišką perkoduoja
į gavėjo kompiuteryje naudojamą kodą.
Persiunčiant lietuviškus laiškus atsirasdavo nesklandumų dėl to, kad
ilgą laiką Lietuvoje buvo platinama elektroninio pašto programa Demos Mail,
turinti tik rusiškas perkodavimo lenteles. Apie tai buvo kalbama Kompiuterininkų
dienose'97 [1]. Problema buvo išspręsta dalinai lokalizavus minėtos
programos naują versiją Demos Mail 2.06 [2].
Dabar lietuviškų raidžių persiuntimas elektroniniu paštu nebekelia
problemų. Tačiau dar pasitaiko nesklandumų, kai: 1) susiduriama su pašto
programomis, neturinčiomis perkodavimo lentelių, 2) laiškuose vartojami tam
tikri skyrybos ženklai (kabutės, apostrofas ir brūkšnys), 3) tame pačiame
laiške vartojamos kelios kalbos. Panagrinėsime šias problemas, jų atsiradimo
priežastis ir sprendimo kelius.
Kodų lentelės, vartojamos elektroniniame pašte
Elektroniniame pašte pirmenybė teikiama ISO standarto ISO/IEC 8859-x
serijos kodų lentelėms. Šias kodų lenteles naudoja UNIX genties operacijų
sistemos. Firma Microsoft terpėje Windows naudoja serijos 125x
kodų lenteles, turinčias ISO standartų atitikmenis (1 lentelė).
1 lentelė. Kodų lentelių ISO 8859-x ir 125x atitikmenys
|
ISO 8859-x |
125x |
Regionas |
|
ISO 88591 |
1252 |
Vakarų Europa |
|
ISO 88592 |
1250 |
Vidurio Europa |
|
ISO 88599 |
1254 |
Turkija |
|
ISO 885913 |
1257 |
Baltijos valstybės |
Esminis skirtumas tarp ISO 8859-x ir 127x kodų lentelių yra tas, kad ISO
kodų lentelėse kodai 128160 skirti valdymo ženklams, o 127x kodų
lentelėse šie kodai panaudoti teksto ženklams ir jie yra beveik vienodi
visose šios serijos kodų lentelėse.
Vakarų Europos lentelėje ISO 8859-1 visi teksto ženklai (jų kodai 161255)
yra perkelti į kodų lentelę 1252 ir į tas pačias pozicijas. Todėl jeigu
elektroniniame laiške nenaudojami papildomi kodų lentelės ženklai, esantys
128160 pozicijose, tai abi kodų lenteles galima laikyti tapačiomis. Tokiu
atveju galima neperkoduoti siunčiamo laiško iš kompiuterio kodo 1257 į
tarptautinį kodą ISO 8859-1, o gaunamo laiško iš ISO 8859-1 į gavėjo
kompiuterio kodą 1252.
Vidurio Europos valstybių kalbų kodų lentelėse ISO 8859-2 ir 1250
skirtingai koduojama net 20 raidžių. Todėl perkodavimai būtinai reikalingi.
Baltijos šalių (tiksliau Lietuvos ir Latvijos, nes Estija nesenai pakeitė
savo kodavimo lentelę) kodų lentelės užima tarpinę padėtį. Jose
skirtingai koduojami 4 ženklai (2 lentelė).
2 lentelė
Ženklai, skirtingai koduojami ISO 8859-13 ir 1257 kodų lentelėse
|
Ženklas |
Ženklo pavadinimas |
Kodas ISO 8859-13 |
Kodas 1257 |
|
|
Atidaromosios kabutės |
165 |
132 |
|
" |
Uždaromosios kabutės |
180 |
147 |
|
|
Apostrofas |
255 |
146 |
|
" |
Kabutės du kableliai viršuje |
161 |
148 |
Taigi, galima tvirtinti, kad perkodavimas tarp ISO ir 125x kodų lentelių
Vakarų Europos šalims nebūtinas, Vidurio Europos šalims būtinas, o Baltijos
šalims pageidautinas.
Vakarų Europos kodų lentelę naudoja didžiosios Europos valstybės
(Vokietija, Prancūzija, Ispanija, Italija ir kt.), kurios elektroninio pašto
abonentų skaičiumi žymiai pralenkia likusias visas kitas drauge paimtas
(Vidurio Europos ir Baltijos) valstybes. Dėl to yra plačiai naudojamų pašto
programų (pvz., Pine), neatliekančių parkodavimų.
Kabutės, apostrofas ir brūkšnys
Gerai sutvarkytos elektroninio pašto programos kabutes perkoduoja teisingai.
Tačiau priėmus prielaidą, kad pasitaiko pašto programų, neturinčių
perkodavimo galimybės, kabučių galima nenaudoti ir problema bus išspręsta.
Brūkšnį (kodas 150) ir ilgą brūkšnį (kodas 151) turi tik kodų
lentelė 1257, o lentelėje ISO 8859-13 jo nėra. Todėl elektroniniuose
laiškuose jo geriau nenaudoti. Čia galima pasinaudoti užsieniečių praktika:
jie brūkšnį keičia dviem brūkšneliais.
Daugiakalbiškumas naudojant 8 bitų kodavimą
Elektroniniai laiškai, kuriuose vartojami dviejų (ar daugiau) kalbų
tekstai dažniausiai pasitaiko minint skirtingų kalbų vardus, pavardes,
įstaigų pavadinimus, vietovardžius.
Dažniau kalbėsime tik apie dviejų kalbų problemą, kadangi daugelio
kalbų atvejus galima pakeisti dviejų kalbų atvejais.
Problemos sprendimas priklauso nuo dviejų dalykų:
1. Ar abi kalbos turi tą pačia kodų lentelę.
2. Ar valstybės, tarp kurių siunčiami laiškai, naudoja tą pačią kodų
lentelę.
Panagrinėsime įvairius atvejus.
1. Laiško siuntėjas ir gavėjas yra valstybėse, naudojančiose tą pačią
kodų lentelę. Lietuvoje ir Latvijoje vartojama ta pati kodų lentelė ISO
8859-13. Joje yra anglų, danų, latvių, lenkų, lietuvių, lotynų, norvegų,
slovėnų, suomių, švedų ir vokiečių kalbų abėcėlių raidės. Todėl
tame pačiame laiške, persiunčiamame abiejų Lietuvoje ir Latvijoje gali būti
vartojami visų minėtų kalbų tekstai. Jeigu laiškas siunčiamas į kitą
valstybę, reikia, kad gavėjo kompiuteryje būtų nustatyta lietuvių arba
latvių kalba.
Šiais atvejais daugiakalbio laiško persiuntimas nesiskirs nuo vienkalbio
vien lietuvių kalba parašyto laiško persiuntimo.
2. Laiško siuntėjas ir gavėjas yra valstybėse, naudojančiose skirtingas
kodų lenteles, o abiejose kodų lentelėse yra visos reikiamų abėcėlių
raidės ir jos koduojamos vienodai. Kodų lentelėse ISO 8859-13 ir ISO
8859-1 sutampa šių kalbų raidžių kodai: anglų, estų, lotynų, norvegų,
slovėnų, suomių, švedų ir vokiečių. Laiškas, parašytas šiomis kalbomis
naudojantis kodų lentele ISO 8859-13, bus teisingai skaitomas ir tuo atveju,
kai gavėjo kompiuteryje bus naudojama kodų lentelė ISO 8859-1, t.y. kai
gavėjo kompiuteryje nustatyta bet kuri Vakarų Europos kalba, o jo pašto
programa laiško neperkoduoja. Tačiau šiuo atveju lietuviškos raidės gavėjo
kompiuteryje bus matomos tik pasirinkus šriftą, turintį lietuviškas raides.
3. Laiško siuntėjas ir gavėjas yra valstybėse, naudojančiose skirtingas
kodų lenteles, o abiejose kodų lentelėse yra visos reikiamų abėcėlių
raidės, bet jos koduojamos skirtingai. Kodų lentelėse ISO 8859-13 ir ISO
8859-1 skirtingai koduojamos danų kalbos raidės. Todėl laiškas bus teisingai
matomas, jeigu gavėjo kompiuteris jį perkoduos.
4. Laiško siuntėjas ir gavėjas yra valstybėse, naudojančiose skirtingas
kodų lenteles, o abiejose kodų lentelėse nėra visų reikiamų abėcėlių
raidžių. Tokiu atveju (naudojant 8 bitų kodavimą) laiško nebus galima
persiųsti.
Daugiakalbiškumas naudojant 16 bitų kodavimą
Idealus daugiakalbiškumo problemos sprendimas yra Unikodas [3]. Į jį telpa
visų pasaulyje vartojamų kalbų ženklai. Todėl galima laikyti, kad visi
naudoja tą pačią kodų lentelę. Todėl gauname atveją analogišką
ankstesnio skyrelio 1 atvejui. Nebereikia perkodavimų tarp skirtingų kodų
lentelių.
Tačiau ir vartojant Unikodą reikalingi tam tikri perkodavimai tarp paties
Unikodo ir persiuntimui telekomunikacijose priimtino kodavimo. Mat tiesiogiai
perduoti Unikodo ženklus dabartine telekomunikacijų įranga nėra galimybės,
nes ji pritaikyta 8 bitų kodavimui ir vieną Unikodo ženklo 16 bitų kodą
traktuoja kaip du 8 bitų ženklų kodus. O juose yra išnaudojami visos bitų
kombinacijos, ir tokios, kurios 8 bitų kode reiškia valdančiuosius ženklus.
Dėl to Unikodo ženklai perkoduojami į kodą UTF-8, t.y., į 1, 2 arba 3
baitų sekas, kuriose nėra valdymo ženklų kodų.
Vartodami Unikodą ir UTF kodavimą išspręstume ne tik daugiakalbystės
problemą, bet ir visų kitų ženklų (pvz., kabučių, brūkšnio)
persiuntimą elektroniniu paštu. Tačiau norint visuotinai taikyti UTF-8
kodavimą reikia, kad būtų pakankamai jį realizuojančių elektroninio pašto
programų bent po vieną kiekvienoje plačiau naudojamoje operacijų
sistemoje (taip, kaip dabar yra su kodų lentele ISO 8859-13).
Literatūra
1. Grigas G. Lietuviškų rašmenų problemos kompiuterių pašte.
Kompiuterininkų dienos '97: Renginio medžiaga. Vilnius: Žara, 1997,
125-128.
2. Grigas G., Laurinavičius T. UUPC jau gali susikalbėti su kitomis
pašto programomis. Kompiuterija, 1998, Nr. 3(7), p. 2830.
3. The Unicode Standard. Version 2.0. Addison-Wesley Developers Press, 1993.
Kompiuterininkų dienos99, I dalis, Devintosios mokslinės
praktinės kompiuterininkų konferencijos ir ketvirtosios mokyklinės
informatikos konferencijos mokslo darbai, Birštonas, 1999 m. rugsėjo 16-18
d., Žara, Vilnius, 1999, 47-51.
|