Internaciigo de komputilaj programoj/Teknikaj problemoj de plurlingveco

From Wikiversity

[1]

Teknikaj problemoj de plurlingveco[edit]

La metodoj, traduki tekstojn en la maŝina aŭ fonta program-kodo, estis multe aplikataj, sed ili havas elementajn malavantaĝojn.

Malsama longeco de tekstoj[edit]

Samsignifaj tekstoj kutime havas malsaman longeconen diversaj lingvoj. Ni vidis en la antaŭa ekzemplo, ke la germana teksto "Division durch Null" havis 19 signojn, sed la teksto en Esperanto, "divido per nulo", nur 15. Tio povas kaŭzi problemon ĉe la tradukado en maŝinkoda programo, ĉar tie ne eblas plilongigi tekstojn. Se la tradukita teksto estas pli longa ol la originala, necesas iel mallongigi ĝin.

Ĉe tradukado en fonto-kodo tiu problemo ne aperas, ĉar alt-nivelaj aŭ asemblaj program-lingvoj adaptas programon al la longo de uzataj tekstoj. Nur kelkfoje okazas, ke la longo de la teksto aperas ankaŭ en la program-kodo. Tiam necesas adapti ankaŭ ĝin. Jen ekzemplo, kiun oni nuntempe ne tiel programus: El unu mesaĝo-teksto oni produktas du mesaĝojn ("divido per nulo en linio 137", "divido per nulo"). Tiaj teknikoj, nun konsiderataj kiel "malpuraj" kaj evitindaj, estis kutimaj, kiam komputiloj estis malgrandaj kaj memoro multekosta. La ekzemplo tranĉas la germanan tekston post 19 signoj, sed la Esperanto-tekston post 15:

Origina fonto-kodo Tradukita kodo
        String mesagxo = "Division durch Null in Zeile ";
        ...
        System.err.println(mesagxo + " 137");
        ...
        System.err.println(mesagxo.substring(0, 19);
        String mesagxo = "divido per nulo en linio ";
        ...
        System.err.println(mesagxo + " 137");
        ...
        System.err.println(mesagxo.substring(0, 15);


Organizado de ŝanĝoj en programoj[edit]

La problemo[edit]

Grava problemo por plurlingveco estas, ke programoj ne estas konstantaj objektoj. Programoj evoluas, ili estas plibonigataj, akiras novajn kapablojn; ekestas novaj versioj de programoj. Tradukadon de tekstoj en maŝin-kodo necesas komplete refari por ĉiu nova versio de la programo. Eĉ se nova versio uzas la samajn tekstojn kiel la antaŭa, aŭ nur kelkaj aldoniĝis, necesas komplete refari la anstataŭigon de la tekstoj. Pro tio oni ofte emas ne transiri al nova versio por ŝpari la novan tradukadon. Se oni modifas la fonto-kodon, ekzistas du ebloj:

  • Oni faras la modifojn en unu lingvo kaj poste anstataŭigas la tekstojn por traduki. Tiu procedo estas komplete analoga al la modifado de maŝin-kodo, kaj ĝi estas same nekontentiga.
  • Oni faras la modifojn en ĉiuj jam ekzistantaj lingvaj variantoj. Tio estas teda, neinteresa laboro, kaj estas granda risko, ke enŝteliĝas eraroj.

La solvo: teksto-listoj[edit]

La solvo por tiu problemo estas klara: Necesas disigi la funkciadan parton de la programo (la "logikon") disde la tekstoj. Tiam ekzistas nur unu varianto de la program-kodo kaj aparte pluraj teksto-listoj por pluraj lingvoj. La tekstoj estas identigataj per numeroj aŭ per nomoj, kiuj povas esti en la lingvo de la programisto(j), ĉar la uzuloj ne vidos la nomojn. Kiam okazas ŝanĝoj en la programo, oni procedas jene:

  • La ŝanĝoj estas farataj al la (sola) program-fonto; ĝi ne enhavas tekstojn, sed nur numerojn aŭ teksto-nomojn.
  • Kiam necesas nova teksto, programisto elektas novan numeron aŭ nomon, uzas ĝin en la programo kaj enmetas ĝin en unu (fiksitan) teksto-liston.
  • Tradukistoj tradukas la novajn tekstojn kaj kompletigas la alilingvajn tekstolistojn.
  • Kiam la ruliĝanta programo bezonas tekston, ĝi prenas ĝin el la teksto-listo por la lingvo, kiun la uzulo elektis.

Kondiĉo por la uzo de teksto-listoj estas, ke la programo ne enhavas fiksajn tekstojn, sed prenas ĉiujn tekstojn el listo(j). Tio estas grava parto de la internaciigo. Ĝi estas ebla nur sur la nivelo de la fonto-kodo; la maŝina kodo preskaŭ ne ebligas internaciigon.

La principo de la teksto-listoj jam estis realigita de HP-NLS en 1985. HP-NLS nomis la teksto listojn per la angla vorto "catalog", do proksimume "katalogo". La transformo de teksta numero aŭ nomo al teksto el listo estas tipa tasko por internaciiga kadraĵo.

Malsamaj signaroj, alfabetoj kaj skribsistemoj[edit]

La problemo[edit]

Komence de la 1980-aj jaroj la plej multaj komputiloj estis konstruataj en Usono kaj Japanio, kaj preskaŭ ĉiuj mastrumaj sistemoj venis el Usono. Tio kaŭzis, ke la uzataj signo-kodoj orientiĝis laŭ la angla lingvo, kiu uzas preskaŭ nur la bazan latinan alfabeton sen diakritaj signoj. Estas kelkaj, malmultaj anglaj vortoj kun diakritaj signoj (ekz. resumé, por distingi ĝin de resume), sed tiujn oni ignoris. Necesis do signo-kodo kiu enhavas

  • 26 minusklajn latinajn literojn
  • 26 majusklajn latinajn literojn
  • 10 eŭropajn-arabajn ciferojn
  • spaceton
  • ĉirkaŭ 20 interpunkciojn: !?"$%&/() []<>+-*=,.;:
  • kelkajn reg-signojn, ekzemple "nova linio", "nova paĝo", "fino de datenoj"


La komputila aparataro pli kaj pli baziĝis sur grupoj de ok duumo, nomataj okopoj, aŭ bitokoj aŭ ankaŭ bajtoj). Ĉar la supre menciitaj signoj estas facile kodeblaj per 7 duumoj, oni normigis 7-duuman kodon nomatan ASCII la Usona Norma Kodo por Inform-Interŝanĝo; en Esperanto ĝi nomiĝas "Askio".

La ne-latin-skribaj kaj la plej multaj latin-skribaj lingvoj ne estas prezenteblaj per Askio:

  • Multaj lingvoj uzas alian alfabeton ol la latinan, ekzemple la grekan (αβγ...), la cirilan (абв…), la tajan (กขฃ…) ktp;
  • Kelkaj lingvoj ne uzas alfabeton, sed grandan aron da ideogramoj (ĉina, japana, …);
  • Multaj latinskribaj lingvoj uzas diakritajn signojn, ekzemple áâàåäãø;
  • Multaj latinskribaj lingvoj uzas ligaturojn kaj aliajn specialajn literojn, ekzemple ÆŒßÐÞ;
  • Kelkaj lingvoj havas specialajn simbolojn por la valuto (¥), kelkaj ankaŭ por interpunkcioj, ekzemple la hispana (¡¿).


Tabelo de Askio[2]
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2- 32 ! " # $ % & ' ( ) * + , - . /
3- 48 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4- 64 @ A B C D E F G H I J K L M N O
5- 80 P Q R S T U V W X Y Z [ \ ] ^ _
6- 96 ` a b c d e f g h i j k l m n o
7- 112 p q r s t u v w x y z { } ~

Por trovi la dek-ses-uman kodon de iu signo, kunmetu la nombron en la unua kolumno maldekstre de la signo kaj en la unua linio super ĝi kaj kunmetu ilin. Ekzemplo: Litero "M" havas maldekstre "4-" kaj supre "-D", do la kodo estas "4D". Por trovi la dekuman kodon adiciu la nombrojn maldekstre en la dua kolumno kaj supre en la dua linio: "M" havas "64" kaj "13", do la kodo estas 77. Kompreneble la dek-ses-uma "4D" kaj la dekuma "77" estas egalaj.

Simplaj solvoj[edit]

Facila, sed ne vere kontentiga solvo de tiu problemo estis uzi anstataŭajn sistemojn, kiuj bezonas nur la askiajn signojn. Tiaj sistemoj parte jam ekzistis pro la neceso sendi internaciajn telegramojn en tiuj lingvoj.

Ekzemple:

  • Kelkaj lingvoj havas establitan anstataŭan sistemon, kiu uzas nur la bazajn anglajn- latinajn literojn. Ekzemple la germana lingvo povas skribi la du-punktajn "umlaŭtojn" per aldonita litero "e": "ä" → "ae", "ö" → "oe", "ü" → "ue".
  • Kelkaj lingvoj anstataŭigas diakritajn markojn per postmeto de iuj signoj. Ekzemple la itala lingvo povas uzi apostrofon anstataŭ kornon super vokalo: "à" → "a`" ktp.
  • Kelkaj lingvoj povas simple forlasi la diakritajn markojn; tio faciligas la skribadon, sed malfaciligas la legadon.

Lingvoj kun ne-latina alfabeto aŭ kun ne-alfabeta skribo ne povas uzi Askion, escepte se oni transliterumas.

Surmetado de pluraj signoj[edit]

Diakritaj signoj aspektas proksimume, kvazaŭ oni prenis bazan latinan literon kaj sur- aŭ submetis ion. Tial oni proponis reprezenti diakritajn signojn per du signoj presitaj en la sama loko. Por atingi tion oni intermetis retro-paŝon, la signon, kiun en skribmaŝina klavaro ofte simbolas sago al maldekstro (←). Jen kelkaj ekzemploj:


á ' ← a apostrofo anstataŭ korno
ä " ← a citilo anstataŭ tremao
ç , ← c komo anstataŭ cedilo


Se oni sur papero kunmetas la signojn laŭ tiu maniero, ili ne aspektas tre bele; sur ekrano la kunmetado plej ofte ne eblas. Sed temas ja nur pri kodo; presilo aŭ ekrano rajtas (se ĝi kapablas) por la tri simboloj "komo"+"retropaŝo"+"c" produkti belan c kun cedilo.

Estas bona kialo, ke en tiuj kunmetaĵoj la litero venas je la fino: Se en la aparato, kiu prezentas la signojn, retropaŝo forviŝas la lastan simbolon, estas pli bone, ke de "á" restu la "a" kaj ne nur la apostrofo/korno.

Veraj solvoj: aliaj signaroj[edit]

Por vere solvi la problemon de mankantaj signoj necesis krei signarojn, kiuj enhavis almenaŭ la signojn necesajn por iu certa lingvo. Principe estis tri ebloj por tio;

  1. La kreo de tute novaj signaroj, tute malsamaj al Askio;
  2. La pligrandigo de Askio per uzo de pli ol 7 duumoj;
  3. La modifo de Askio per anstataŭigo de ne tro gravaj signoj.

La unua metodo estis preskaŭ ne uzata, ĉar neniu volis kodon, kiu ne enhavis la latinajn literojn kaj la eŭropajn ciferojn. La latinaj literoj necesis ne nur por reprezenti anglajn tekstojn, sed ankaŭ por kvazaŭ ĉiuj program-lingvoj, tial neniu volis rezigni pri ili.

La dua metodo ŝajnis ideala, ĉar komputiloj normale storis ĉiun Aski-koderon en 8-duuma okopo, do estis facile aldoni al Askio pliajn 128 koderojn. Tamen ankaŭ tiu metodo unue ne estis uzata, ĉar la 8-a duumo estis jam uzata en multaj cirkonstancoj. Dum transsendo de datenoj inter komputilo tiu duumo normale enhavis "parecan" informon; ĝi estis metita tiel, ke en ĉiu okopo la nombro de duumoj kun valoro "1" estis para. Tiel eblis rimarki teknikajn erarojn dum la transsendo (fuŝa modifo de duumo kaŭzis, ke en okopo estis malpara nombro da duumoj kun valoro "1"). Pro tio retpoŝto devas speciale kodi ĉiujn ne-askiajn signojn. Ankaŭ la unuaj versioj de la Uniksa tekst-redaktilo "vi" ne kapablis trakti ne-Askiajn okop-duumajn signojn.

Restis la tria metodo. Kelkaj signoj en Askio estas difinitaj kiel ŝanĝeblaj, kaj por pluraj lingvoj ekzistas "alternativa" Askio, kiu aldifinas al tiuj kod-valoro alian signon. Tiujn alternativajn kodojn normigis ISO 646. Ekzemple:


Aspekto de ĉi-supra ekzemplo
Numeroj: 35 36 64 91 92 93 94 96 123 124 125 126
Internacia # ¤ @ [ \ ] ^ ` { | } ~
Askio # $ @ [ \ ] ^ ` { | } ~
Franca £ $ à ° ç § ^ ` é ù è ¨
Germana # $ § Ä Ö Ü ^ ` ä ö ü ß

Ŝaltado inter kodoj[edit]

La uzo de tiaj lingvo-specifaj kodoj (precipe inter 1980 kaj 1990) signifis, ke francoj, germanoj ktp. ne povis uzi la ortajn kaj vostajn krampojn []{}, kiuj ja necesas por multaj programad-lingvoj. La afero ne estis granda problemo por program-lingvaj tradukiloj, ĉar ili ne interesiĝis pri la kodo. Se franco tajpis "é13è", la tradukilo akceptis tion kiel "[13]". Sed por homoj tiaj programoj estis malbone legeblaj.

Principe oni ja povus uzi malsamajn kodojn por, ekzemple, leteroj kaj programoj, aŭ eĉ por diversaj partoj de tekst-dosiero. Tiun teknikon jam aplikis la teleksa kodo, kiel Baudot-kodo kaj Murray-kodo, kiu per siaj 5 bitoj povis reprezenti nur 32 signojn kaj tamen havis (majusklajn) literojn, ciferojn kaj interpunkciojn.

Jena ekzemplo montras, kiel kodi la tekston "LA 15-A DE DECEMBRO 1859" en la urray-kodo (CCITT-2). Klarigo: La unua linio montras en ruĝaj kampoj, kie okazas ŝalto al la litera tavolo (LIT) respondo al la cifera tavolo (CIF). La dua linio montras la interpreton en la litera tavolo kaj indikas per verda koloro, kie tiu tavolo efektive validas. La tria linio montras la interpreton en la cifera tavolo kaj indikas per verda koloro, kie tiu tavolo efektive validas. La inversa demandosigno (¿) indikas specialan stir-kodon, kiu funkciigas la sonorilon de teleksilo.


LA CIF 15- LIT A DE DECEMBRO CIF 1859
Litera tavolo LA QTA A DE DECEMBRO QITO
Cifera tavolo )- 15- - ¿3 ¿3:3.?49 1859

La tekniko de transŝalto inter diversaj kodoj do ekzistis delonge; Baudot evoluigis sian kodon en 1870 kaj Murray sian en 1901. La tekniko eĉ estis plivastigita al pliaj "tavoloj", greka kaj cirila. Tiu sama tekniko principe permesas ŝalti inter la diversaj variantoj de ISO 646, kvazaŭ ili estus tavoloj de unu sama, pli ampleksa kodo. Efektive la tekniko estis normigita per ISO 2022, kiu permesas ŝalti de japana, ĉina aŭ korea kodo al Askio kaj kelkaj aliaj kodoj. Simila tekniko por ŝalti inter diversaj latinaj kodoj neniam estis normigita, aŭ eĉ nur iom vasta uzata. La kialo(j) estas unu el la historiaj enigmoj de informadiko; eble oni sentis veran bezonon. La eblo, havi ne-Askiajn signojn kaj tamen konservi la tutan Aski-signaron, venis do nur per la okop-duumaj kodoj, normigitaj per ISO 8859. Ekzistas diversaj variantoj de tiu kodo, ĉar ankaŭ 256 signoj ne sufiĉas por kodi eĉ nur la signojn de la eŭropaj lingvoj:

8859/1
"Latina 1": okcidenta Eŭropo
8859/2
"Latina 2": centra/orienta Eŭropo
8859/3
"Latina 3": suda Eŭropo (turka, malta, Esperanto
8859/4
"Latina 4": norda Eŭropo
8859/5
cirila
8859/6
araba
8859/7
greka
8859/8
hebrea
8859/9
"Latina 5": turka
8859/10
"Latina 6": nordiaj lingvoj, 1992
8859/11
taja
8859/12
(proponoj neniam normigitaj)
8859/13
"Latina 7": balta
8859/14
"Latina 8": kelta
8859/15
"Latina 9": okcidenta Eŭropo, kun €
8859/16
"Latina 10": sud-orienta Eŭropo, kun €

Sed ankaŭ ISO 8859 ne permesis ŝalton inter diversaj kodoj. Kiu uzas la cirilan varianton (5) de ISO 8859, ne povas uzi la francan signon "ç", ĉar ĝi estas nur en la variantoj 1, 2 kaj 3.


Tabelo de ISO 8859-1[3]
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
2- ! " # $ % & ' ( ) * + , - . /
3- 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4- @ A B C D E F G H I J K L M N O
5- P Q R S T U V W X Y Z [ \ ] ^ _
6- ` a b c d e f g h i j k l m n o
7- p q r s t u v w x y z { } ~
8- La kodpozicioj 80 ĝis 9f ne enhavas signojn
9-
A- ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯
B- ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
C- À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
D- Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
E- à á â ã ä å æ ç è é ê ë ì í î ï
F- ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
Tabelo de ISO 8859-3[4]
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
2- ! " # $ % & ' ( ) * + , - . /
3- 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4- @ A B C D E F G H I J K L M N O
5- P Q R S T U V W X Y Z [ \ ] ^ _
6- ` a b c d e f g h i j k l m n o
7- p q r s t u v w x y z { } ~
8- La kodpozicioj 80 ĝis 9f ne enhavas signojn
9-
A- Ħ ˘ £ ¤ Ĥ § ¨ İ Ş Ğ Ĵ Ż
B- ° ħ ² ³ ´ µ ĥ · ¸ ı ş ğ ĵ ½ ż
C- À Á Â Ä Ċ Ĉ Ç È É Ê Ë Ì Í Î Ï
D- Ñ Ò Ó Ô Ġ Ö × Ĝ Ù Ú Û Ü Ŭ Ŝ ß
E- à á â ä ċ ĉ ç è é ê ë ì í î ï
F- ñ ò ó ô ġ ö ÷ ĝ ù ú û ü ŭ ŝ ˙


Interesa propono: Videotex[edit]

Kiam televidstacioj enkondukis la sistemon "Videotex", ili deziris havi je dispono laŭeble multajn simbolojn, sen ŝanĝi inter kodoj. Ili profitis de la eblo "kunmeti" diakritajn literojn, same kiel ISO 646 faris per retropaŝo. Ekestis nova kodo-normo ISO 6937, kiu tamen ne uzis retropaŝon, sed difinis 16 simbolojn, kiuj ĉiam kombiniĝas kun la sekva simbolo. Ili do funkcias kiel "morta klavo" en skribmaŝino, kiu tajpas signon, sed ne movas la ĉarumon.


La 16 diakritigaj simboloj de ISO 6937
nomo kodo ekzemplo
dekstra korno 193 `a = à
maldekstra korno 194 ´a = á
ĉapelo 195 ^a = â
tildo 196 ~a = ã
supera streko 197 ‾a = Ā
hoketo 198 ua = ă
supera punkto 199 ·c = ċ
supera dupunkto 200 ¨a = ä
suba punkto 201 .b = ḅ
supera ringo 202 °a = å
cedilo 203 ¸c = ç
suba streko 204
hungara duobla korno 205 "o = ő
ogoneko 206 ,a = ą
haĉeko 207 ve = ě

La fina (?) solvo: Unikodo[edit]

Ĉiuj priskribitaj solvoj estas aŭ estis aplikataj, sed neniu vere universale. Tiel ekestis problemoj ĉe interŝanĝo de datenoj. Necesis vere universala solvo.

Tiu solvo nun ŝajnas trovita, ĝi nomiĝas Unikodo (angle: Unicode). Versio 3.2 de Unikodo enhavis 95,156 signojn, versio 4.0 96,382. Intertempe ekzistas versio 4.1, kiu havas 97.655.

La unuaj 128 signoj de Unikodo estas identaj kun tiuj de Askio, la unuaj 256 kun tiujn de ISO 8859/1. Unikodo do estas kongrua kun tiuj kodoj. Estas tre facile transformi datenojn el tiuj kodoj al Unikodo. Ĉe aliaj kodoj tio estas iom malpli facila. Unikodo difinas nur kod-numerojn por signoj, sed ne, kiel oni prezentas tiujn numerojn, ekzemple en okopo-vico. Sed estas klare, ke ne eblas kodi ĉiujn unikodajn signojn en po unu okopo. Eĉ du okopoj ne sufiĉas, ĉar ili povas havi nur 65,536 malsamajn valorojn. Por kodi Unikodon kun fiksa kod-longo oni uzas kvar okopojn, ĉar Unikodo permesas vastigon al 221 signoj. Tiu kvar-okopa prezentado nomiĝas UTF-32. Ekzistas du pliaj gravaj prezentad-manieroj: UTF-16, ĉe kiu unu signo okupas inter 2 kaj 4 okopoj, kaj UTF-8, ĉe kiu unu signo okupas inter 1 kaj 6 okopoj. UTF-16 estas uzata ekzemple de la program-lingvo Ĝavo (Java).

Unikodo ebligas ne nur reprezentadon de signoj el preskaŭ ĉiuj konataj homaj lingvoj, sed ankaŭ mikslingvajn tekstojn.

La signoj de la ĉi-suba tabelo estas montrataj de via krozilo. Tial eble kelkaj signoj ne aperas aŭ aperas kiel kvadratoj, blokoj aŭ similaj anstataŭaj signoj.

Tabelo de kelkaj unikodaj signoj[5]
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
2- ! " # $ % & ' ( ) * + , - . /
3- 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4- @ A B C D E F G H I J K L M N O
5- P Q R S T U V W X Y Z [ \ ] ^ _
6- ` a b c d e f g h i j k l m n o
7- p q r s t u v w x y z { } ~
8- La kodpozicioj 80 ĝis 9f ne enhavas signojn
9-
A- ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯
B- ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
C- À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
D- Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
E- à á â ã ä å æ ç è é ê ë ì í î ï
F- ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
10- ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď
11- Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ
12- Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ ĭ Į į
13- İ ı IJ ij Ĵ ĵ Ķ ķ ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ
14- ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ
16- Š š Ţ ţ Ť ť Ŧ ŧ Ũ ũ Ū ū Ŭ ŭ Ů ů
17- Ű ű Ų ų Ŵ ŵ Ŷ ŷ Ÿ Ź ź Ż ż Ž ž ſ
18- ƀ Ɓ Ƃ ƃ Ƅ ƅ Ɔ Ƈ ƈ Ɖ Ɗ Ƌ ƌ ƍ Ǝ Ə
19- Ɛ Ƒ ƒ Ɠ Ɣ ƕ Ɩ Ɨ Ƙ ƙ ƚ ƛ Ɯ Ɲ ƞ Ɵ
1A- Ơ ơ Ƣ ƣ Ƥ ƥ Ʀ Ƨ ƨ Ʃ ƪ ƫ Ƭ ƭ Ʈ Ư
1B- ư Ʊ Ʋ Ƴ ƴ Ƶ ƶ Ʒ Ƹ ƹ ƺ ƻ Ƽ ƽ ƾ ƿ
1C- ǀ ǁ ǂ ǃ DŽ Dž dž LJ Lj lj NJ Nj nj Ǎ ǎ Ǐ
1D- ǐ Ǒ ǒ Ǔ ǔ Ǖ ǖ Ǘ ǘ Ǚ ǚ Ǜ ǜ ǝ Ǟ ǟ
1E- Ǡ ǡ Ǣ ǣ Ǥ ǥ Ǧ ǧ Ǩ ǩ Ǫ ǫ Ǭ ǭ Ǯ ǯ
1F- ǰ DZ Dz dz Ǵ ǵ Ƕ Ƿ Ǹ ǹ Ǻ ǻ Ǽ ǽ Ǿ ǿ

Signaroj vivas[edit]

Fina rimarkigo: Lingvoj kaj skriboj evoluas, kaj la signaroj ŝanĝiĝas. Jen du ekzemploj: Ĉirkaŭ 1990 ukrainoj memoris, ke iam ili havis du formojn de la litero G (Γ, Ґ); Stalinismo estis foriginta la duan formon. Kaj fine de la 20-a jarcento ekestis la nova signo "€" por eŭro, antaŭe ne nur nekonata, sed neekzistinta. En la ĉina lingvo regule ekestas novaj signoj. Precipe la universala signaro Unikodo devas adaptiĝi al tiaj ŝanĝoj.

Skribdirekto[edit]

Latinskribaj lingvoj ordinare skribas en linioj de maldekstre dekstren kaj aranĝas la liniojn de supre malsupren sur paĝo. Sed principe eblas ankaŭ la inversaj aranĝoj. Eĉ ekzistas altern-direkta skribo ("kiel pluganto sur agro"), kiu post ĉiu linio ŝanĝas la skribdirekton kaj komencas sub la fino de la antaŭa linio.

Konataj ekzemploj de lingvoj, kiuj skribas de dekstre maldekstren, estas la araba kaj la hebrea. La ĉina, mongola kaj japana lingvo tradicie skribas plej ofte vertikale, sed sub influo de okcidenta kulturo (kaj tekniko) uzas ankaŭ horizontalan skribon.

Se programo lasas la aranĝon de tekstoj al presilo, ekrano aŭ al alia programo, ĝi povas ignori la skribdirekton. Sed programoj, kiuj mem aranĝas tekstojn, devas konsideri ĝin. Kaj la skribdirekto validas ne nur interne de frazo, sed ankaŭ inter diversaj tekstpartoj, ekzemple kampo por teksto-enigo kaj ĝia etikedo.

Kiel ekzemplon imagu programon, kiu prezentas serĉo-dialogon kun tri elementoj:

  • La etikedon "serĉo-vorto"
  • Teksto-kampon por enigo de la vorto
  • butonon kun la teksto "serĉu"

Programo kun latinskriba "gepatra lingvo" verŝajne emas doni al tiuj tri elementoj fiksajn poziciojn de maldekstre dekstren, sed en araba versio necesas aranĝi ilin de dekstre maldekstren. Tion montras la ekzemplo de serĉo-dialogo de Vikipedio, en la lingvoj rumana kaj araba:

Ekzemplo de serĉo-dialogo de Vikipedio, en la lingvo araba
Ekzemplo de serĉo-dialogo de Vikipedio, en la lingvo rumana
Ekzemplo de hebrea teksto kun numerita listo; la tri-ŝtupaj numeroj aspektas same kiel en latin-litera teksto.

Aparta problemo de malsamaj skribdirektoj estas, ke skribdirektoj povas miksiĝi. En lingvoj skribataj de dekstre maldekstren tio ofte okazas, ĉar ili enhavas signojn kun mala skribdirekto, ekzemple ciferojn aŭ alilingvajn vortojn. Estas rekomendinde, ke programojlasu tiujn detalojn al iu kadraĵo, ekzemple al ret-krozilo, se temas pri reta programo. Modernaj ret-kroziloj nun sufiĉe bone traktas tiujn problemojn.

Tradukado de signoj kaj simboloj[edit]

Oni emas kredi, ke bildoj kaj simboloj ne bezonas tradukadon aŭ internaciigon, sed ankaŭ ili povas dependi de lingvo aŭ kulturo. Simpla kazo estas sagoj en teksto, kiuj ofte devas esti inversigitaj, se la lingvo havas alian skrib-direkton.

Ankaŭ interpunkcioj principe bezonas tradukon. Ekzemple citiloj tre diferencas inter lingvoj. Krome kelkaj lingvoj uzas citilojn por la rekta parolo, aliaj uzas enkondukon per longa streko (–). Se citiloj estas uzataj, fina komo povas esti antaŭ (angla lingvo) aŭ post (germana lingvo) la ferma citilo.


Ekzemploj de citiloj laŭ diversaj lingvoj.
Rumana „xyz“
Germana „xyz“
Germana »xyz«
Angla “xyz”
Franca « xyz »


Enkondukon kaj fina komo laŭ diversaj lingvoj.
Rumana – Evident, respinse Radu.
Germana „Offensichtlich“, antwortete Radu.
Angla “Obviously,” Radu replied.

Kulturaj diferencoj[edit]

Kulturaj diferencoj, kiuj koncernas pli ol la lingvon, estas tre malfacile antaŭvideblaj kaj trakteblaj. Kelkaj tamen rilatas al la lingvo; ekzemple la skribdirekto influas ankaŭ la manieron, legi bildstrion.

Konata ŝerco estas, ke firmao pri lavmaŝinoj faras "internacian" reklam-bildon sen vortoj, kiu montras unue (maldekstre) malpuran tukon, poste lavmaŝinon kaj fine puran tukon. La firmao tre miras, ke ĝi nenion vendas en arab-lingvaj landoj


Bildo el la artikoloj pri la urbo Mekao en la araba kaj en Esperanto

Estas bona instruo kompari arablingvajn kaj latin-literajn retpaĝojn. Bona okazo estas Vikipedio:

  • La araba teksto uzas ne la malnovajn arabajn, sed la eŭrop-arabajn ciferojn. Pro la komputilo kaj la influo de aliaj kulturoj araboj kutimiĝis al tiuj ciferoj.
  • La litero "W", simbolo de Vikipedio, ne estas tradukita.
  • La araba paĝo ne enhavas bildojn, verŝajne ĉar Islamo malpermesas fari bildojn de personoj. Tio eĉ kaŭzas, ke la eta homfiguro supre ĉe la vorto "Ensalutu", kiu simbolas la uzulon, mankas en la araba versio.

Specimenaj demandoj[edit]

Testu vin!

1 Kial estas problemo, se teksto havas malsaman longecon en diversaj lingvoj?

La tradukado en maŝinkoda programo ne ĉiam eblas uzi plilongajn tekstojn
Kodo, se misverkita, povas fari operaciojn kiuj dependas el longeco.

2 Per kiuj kodoj eblas reprezenti la literojn de la angla lingvo?

Askio (ASCII)
UTF-8

3 Per kiuj kodoj eblas reprezenti la literojn de la esperanta lingvo?

Askio (ASCII)
Unikodo
8859/3 "Latina 3"

4 Kiom da bitoj bezonas unu signo de Askio?

1
7
8
9
10
16
32

5 Kiom da bitoj bezonas unu signo de ISO 8859/1?

1
7
8
9
10
16
32

6 Kie internaciigita programo havas siajn mesaĝo-tekstojn?

En la fontkodo
En apartaj teksto-listoj

7 Donu ekzemplon por du lingvoj kun malsamaj skribdirektoj!

Angla kaj Franca lingvo
Germana kaj Itala lingvo
Rumana lingvo kaj Esperanto



Referencoj[edit]

  1. Parto aŭ ĉiu enhavo de tiu paĝo reprenas tiun originan verkon.
  2. Askiaj signoj laŭ AIS
  3. ISO 8859-1 laŭ AIS
  4. ISO 8859-3 laŭ AIS
  5. Ekzemplo provizita per AIS