Internaciigo de komputilaj programoj/Prilaborado de tekstoj
Enhavo:
Prilaborado de tekstoj
editĈiuj aspektoj diskutitaj ĝis nun koncernis la uzan plurlingvecon, tio estas la kapablo de programo, dialogi en pluraj lingvoj kun diverslingvaj uzantoj. Por programoj, kiuj prilaboras tekstojn, ekzistas ankaŭ la datena plurlingveco, la kapablo prilabori tekstojn en pluraj lingvoj. Tiaj programoj estas ekzemple:
- tekst-redaktaj programoj;
- tekst-redaktaj kaj tekst-aranĝaj (tipografiaj) programoj;
- retpoŝtaj programoj;
- ret-kroziloj.
Se tia programo devas nur vide montri (vidigi) tekstojn en pluraj lingvoj, ne estas specialaj problemoj, ĉar tion faras ankaŭ programoj kun uzula plurlingveco. Sed kelkaj programoj vere prilaboras aŭ almenaŭ analizas tekstojn, kaj tie ja estas gravaj diferencoj inter diversaj lingvoj. Tiom gravaj diferencoj, ke nepre necesas aparta traktado de la lingvoj. Ekzemploj estas ortografia kaj gramatika kontrolo de tekstoj en tekst-redaktaj programoj.
Por tiaj programoj la vorto "internaciigo" havas iom alian signifon. Ĝi signifas la trovon kaj realigon de teknikoj, kiuj estas pli-malpli lingvo-sendependaj kaj adapteblaj al pluraj, multaj aŭ eĉ ĉiuj (skribataj) lingvoj.
Rompo de linioj ("enpaĝigo")
editKiam varias la longo de mesaĝoj aŭ la disponebla spaco, necesas disigi tekstojn al linioj (eble eĉ alineoj aŭ paĝoj). La reguloj por tio estas dependaj de la lingvo. Ekzemple en kelkaj lingvoj oni rajtas ĉiam rompi linion post ligo-streko. Sed en Esperanto aŭ en la germana tio ne eblas, se la streko estas post spaceto, ĉar la streko ne estu sola fine de linio:
…ĉiuj programŝanĝoj kaj -adaptoj… …alle Programmänderungen und -anpassungen…
Tial bona internaciiga kadraĵo havas metodojn por dividi frazojn al vortoj. Java havas por tio la klason java.text.BreakIterator.
Ortografia kontrolo
editOrtografia kontrolo en programoj kutime baziĝas sur leksikono de la koncerna lingvo. Se vorto estas en la leksikono, la programo akceptas ĝin, alie ĝi raportas (eblan) eraron.
Baza kapablo por tia algoritmo estas dividi frazojn al vortoj. En kelkaj lingvoj tio estas facila, ĉar vortoj ĉiam estas ĉirkaŭataj de spacetoj aŭ interpunkcioj. En aliaj lingvoj eblas "kunmeti" vortojn. Ankaŭ la reguloj pri interpunkcioj estas malsamaj.
Plia problemo estas, ke leksikono kutime enhavas nur la bazajn formojn de vortoj. Se aliaj (fleksiaj, deklinaciaj, konjugaciaj) formoj estas formeblaj regule, oni ne volas listigi ilin en leksikono. Tiam necesas metodo (algoritmo) por analizi tiujn formojn. Tia algoritmo kutime estas parto de la programo, do ne eblas lokecigo sen modifo de la programo.
Tie ĉi estas aparte danĝere, se programantoj eliras nur de la propra lingvo. Ekzemple la angla lingvo havas nur tri verajn finaĵojn (-s, -ed kaj -ing), kaj ili estas aplikeblaj al preskaŭ ĉiuj vortoj. La ortografia kontrolo do baziĝas preskaŭ tute sur la leksikono. En aliaj lingvoj tio povas esti tute malsama. Tie ĉi utilas la samaj kadraĵo-metodoj kiel por enpaĝigo.
Gramatika kontrolo
editOrtografia kontrolo, kiu ekzamenas nur unuopajn vortojn, havas certajn limojn kaj ne povas trovi ĉiujn erarojn. Ekzemple ĝi ne povas trovi mankantan akuzativon aŭ pluralon. Por tio necesas konsideri la gramatikon de tuta frazo.
La gramatika kontrolo estas komplika afero. Se ĝi volas vere kompreni la strukturon de frazoj, ĝi eniras la kampon de artefarita inteligenteco (AI), kaj tie la rezultoj ofte ne estas klaraj kaj unikaj. Kaj la teknikoj estas tre dependaj de la lingvo. Ekzemple substantivon oni rekonas en la rumana aŭ en Esperanto ofte laŭ finaĵo, en la germane per komenca majusklo, en la angla laŭ neniu formala kriterio.
Se oni tamen trovas facile kontroleblan aferon, oni emas tuj ĝeneraligi ĝin. Ekzemple en la angla lingvo neniam la sama vorto aperas dufoje sinsekve (sen intera komo). Tajpi la saman vorton dufoje estas eraro, kiu ofte okazas, kiam oni estas interrompata dum tajpado. Tial ekzemple la angla versio de la programo Microsoft Word markas ripeton de vorto kiel eraron.
Ankaŭ la germana versio de Microsoft Word faras tion. Bedaŭrinde en la germana lingvo ja povas okazi ripetoj de vortoj, ĉar kelkaj vortoj havas plurajn funkciojn (artikoloj / rilativoj / demonstrativoj). Tial en la germana lingvo ripeto de vorto ne ĉiam estas eraro.
…der Passant, der der Frau begegnete… …die Zeugin, die die Kollision beobachtete… …das Kleid, das das Mädchen trug…
Tiajn specialaĵojn programistoj malfacile povas antaŭvidi en lingvo, kiujn ili ne konas. Necesas diri, ke tiaj aferoj estas preskaŭ ne internaciigeblaj; oni devas aparte trakti ilin por ĉiu lingvo.
Tie ĉi, internaciigo povas okazi nur en tre alta nivelo: Eblas oferti en kadraĵo kompletan ortografian aŭ/kaj gramatikan kontrolon por ĉiu unuopa lingvo. Tiel pluraj programoj povas uzi la kontrolilojn. Sed la kontrol-modjuloj mem ne estas plene internaciigeblaj.
Inteligentaj citiloj
editKomputila aŭ skribmaŝina klavaro, kiel azerty, ofte havas nur unu citilon, la supran, rektan, duoblan citilon ("). Oni povas uzi ĝin, sed la uzo de malfermaj kaj fermaj citiloj estas pli kongrua kun lokaĵa kutimo. Ni jam vidis, ke tiuj dependas de la lingvo.
Iuj programoj proponas "inteligentajn citilojn", kiuj aŭtomate alprenas la ĝustan formon, kiam la uzulo tajpas ". Ofte tio funkcias ankaŭ por unuoblaj (simplaj) citiloj, tajpataj kiel apostrofoj. La algoritmo por la angla lingvo estas sufiĉe simpla: Se antaŭ la citilo estas spaceto, ĝi estu malferma citilo, alie ferma. En la angla tio funkcias, ĉar la ferma unuopa citilo havas la saman formon kiel (vera) apostrofo.
En la germana lingvo la unuoblaj citiloj havas la formon de komo (malferma citilo) kaj de turnita, altigita komo (ferma citilo), sed ne de apostrofo. Tial per programo, kiu havas "inteligentajn citilojn" laŭ la anglaj reguloj, en la germana lingvo ne eblas tajpi apostrofon post litero; ĝi tuj estas transformita al ferma citilo. Tiaj aferoj indikas malĝustan elekton de la nivelo de internaciigo; evidente la traktado de citiloj devas okazi komplete en internaciiga kadraĵo.
Angle | citiloj: | ‘no | ‘no' | ‘no’ |
---|---|---|---|---|
apostrofo: | it | it' | it's | |
Germane | citiloj: | ‚ja | ‚ja' | ‚ja‘ |
apostrofo ("geht's"): | geht | geht' | geht‘s |
En la unuaj tri ekzemploj la uzulo ricevas, kion li deziris. En la lasta ekzemplo la uzulo volis tajpi la tekston "geht's" (kun apostrofo), sed la sistemo transformis la apostrofon al ferma citilo, kiu havas alian formon.
Specimenaj demandoj
editTestu vin!
Referencoj
edit- ↑ Parto aŭ ĉiu enhavo de tiu paĝo reprenas tiun originan verkon.