[=]

3 Teknikaj problemoj de plurlingveco

3 Technische Probleme der Mehrsprachigkeit

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

3.1 Malsama longeco de tekstoj

Samsignifaj tekstoj kutime havas malsaman longecon en diversaj lingvoj. Ni vidis en la supra 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 programad-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.

3.2 Organizado de ŝanĝoj en programoj

3.2.1 La problemo

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.

3.2.2 La solvo: teksto-listoj

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, kiu 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 deziras.

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".

3.3 Malsamaj signaroj, alfabetoj kaj skribsistemoj

3.3.1 La problemo

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 bitoj (nomataj bitokojbajtoj). Ĉar la supre menciitaj signoj estas facile kodeblaj per 7 bitoj, oni normigis 7-bitan kodon nomatan ASCII (angle American Standard Code for Information Interchange = 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.
  • 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 (¡¿).

3.3.2 Facilaj solvoj

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.

3.3.3 Veraj solvoj: aliaj signaroj

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;

  • La kreo de tute novaj signaroj, kompete malsamaj al Askio;
  • La pligrandigo de Askio per uzo de pli ol 7 bitoj;
  • 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 programad-lingvoj, tial neniu volis rezigni pri ili.

La dua metodo ŝajnis ideala, ĉar komputiloj normale storis ĉiun Aski-koderon en 8-bita bajto, do estis facile aldoni al Askio pliajn 128 koderojn. Tamen ankaŭ tiu metodo unue ne estis uzata, ĉar la 8-a bito estis jam uzata en multaj cirkonstancoj. Dum transsendo de datenoj inter komputilo tiu bito normale enhavis "parecan" informon; ĝi estis metita tiel, ke en ĉiu bajto la nombro de bitoj kun valoro "1" estis para. Tiel eblis rimarki teknikajn erarojn dum la transsendo (fuŝa modifo de bito kaŭzis, ke en bajto estis malpara nombro da bitoj 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 ok-bitajn 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 aternativajn kodojn normigis ISO 646. Ekzemple:

3.3 Unterschiedliche Zeichensätze, Alphabete und Schriftsysteme

Numeroj: 35366491 92939496 123124125126
Internacia: #¤@[ \]^` {|}~
Askio #$@[ \]^` {|}~
Franca £$à° ç§^` éùè¨
Germana #$§Ä ÖÜ^` äöüß

Specimenaj demandoj:

  • Kial estas problemo, se teksto havas malsaman longecon en diversaj lingvoj?
  • Kial povas esti problemo, se ekestas nova versio de programo?

Beispielfragen:

  • Warum ist es ein Problem, wenn ein Text in verschiedenen Sprachen unterschiedliche Länge hat?
  • Warum kann es ein Problem sein, wenn eine neue Version eines Programms erscheint?

>>>