<<< [=] >>>

7 Prilaborado de tekstoj

Ĉiuj aspektoj diskutitaj ĝis nun koncernis la uzan plurlingvecon, t. e. 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 lingvoj.

7 Textverarbeitung

Alle bisher behandelten Aspekte betreffen die Benutzer-Mehrsprachigkeit, d. h. die Fähigkeit eines Programms, mit verschiedensprachigen Benutzern in deren Sprachen zu arbeiten. Bei Programmen, die Texte be- und verarbeiten, gibt es auch die Daten-Mehrsprachigkeit, die Fähigkeit, Texte in mehreren Sprachen zu verarbeiten. Solche Programme sind zum Beispiel:

  • Text-Editoren
  • Dokument-Editoren (typographische Programme)
  • Netzpostprogramme
  • WWW-Browser

Wenn so ein Programm Texte in mehreren Sprachen nur anzeigt, gibt es keine besonderen Probleme, denn das tun auch Programme mit reiner Benutzer-Nehrsprachigkeit. Aber manche Programme bearbeiten Texte wirklich oder analysieren sie zumindest, und dabei gibt es durchaus entscheidende Unterschiede zwischen verschiedenen Sprachen. Die Unterschiede sind so groß, dass hier eine getrennte Behandlung der Sprachen im Programm notwendig ist. Beispiele sind die Kontrolle von Rechtschreibung und Grammatik in Editierprogrammen.

Für solche Programme gewinnt der Ausdruck "Internationalisierung" eine etwas andere Bedeutung. Er bedeutet die Identifizierung und Realisierung von Techniken, die mehr oder weniger sprachunabhängig sind und sich auf mehrere, viele oder gar alle Sprachen anwenden lassen.

7.1 Rompo de linioj ("enpaĝigo")

Kiam 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:

7.1 Zeilenumbruch (und Seitenumbruch)

Wenn die Länge von Texten oder der verfügbare Platz variiert, müssen Texte in Zeilen (oder sogar in Absätze und Seiten) aufgeteilt werden. Die Regeln dafür sind sprachabhängig. Zum Beispiel darf man in manchen Sprachen eine Zeile stets nach einem Bindestrich (Divis) umbrechen. Im Deutschen und im Esperanto gilt das jedoch nicht, wenn vor dem Bindestrich ein Leerzeichen steht, weil der Bindestrich nicht alleine am Zeilenende stehen darf:

…ĉ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.

Daher enthält ein guter Internationalisierungs-Rahmen Methoden zur Aufteilung von Sätzen in Wörter. In Java gibt es dazu die Klasse java.text.BreakIterator.

7.2 Ortografia kontrolo

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

7.2 Rechtschreib-Prüfung

Eine Rechtschreibprüfung in einem Programm basiert gewöhnlich auf einem Lexikon der betreffenden Sprache. Wenn ein Wort im Lexikon gefunden wird, akzeptiert das Programm das Wort, andernfalls meldet es einen (möglichen) Fehler.

Eine Grundvoraussetzung für so einen Algorithmus ist die Fähigkeit, Sätze in Wörter aufzuteilen. In manchen Sprachen ist das einfach, weil Wörter immer von Leerzeichen oder Satzzeichen umgeben sind. In anderen Sprachen kann man Wörter zusammensetzen. Auch die Funktion der Satzzeichen ist unterschiedlich. Hier kommen dieselben Rahmen-Methoden zur Anwendung wie beim Umbruch.

Ein weiteres Problem ist, dass ein Lexikon gewöhnlich nur die Grundform von Wörtern enthält. Wenn sich andere Formen durch regelmäßige Beugung (Deklination, Konjugation) bilden lassen, will man sie nicht im Lexikon aufführen. Dann ist ein Algorithmus zur Analyse solcher Formen nötig. Ein solcher Algorithmus muss meistens innerhalb des Programms realisiert werden; eine Lokalisierung ohne Programmänderung ist also gewöhnlich nicht möglich.

Hier ist es besonders gefährlich, wenn Programmierer nur von der eigenen Sprache ausgehen. Zum Beispiel besitzt die englische Sprache nur drei wirkliche Endungen (-s, -ed kaj -ing), die an nahezu alle Wörter angehängt werden können. Die Rechtschreibprüfung basiert damit fast nur auf dem Lexikon. In anderen Sprachen kann das ganz anders sein.

7.3 Gramatika kontrolo

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

7.3 Grammatikprüfung

Eine Rechtschreibprüfung, die nur einzelne Wörter prüft, hat bestimmte Grenzen und kann nicht alle Fehler finden. Zum Beispiel erkennt sie nicht, wenn statt "den" "der" verwendet wird. Dazu ist es notwendig, die Grammatik eines ganzen Satzes zu betrachten.

Die Prüfung der Grammatik ist eine komplizierte Angelegenheit. Wenn sie wirklich die Struktur von Sätzen analysieren möchte, betritt sie das Gebiet der künstlichen Intelligenz (KI, AI), und dort sind die Ergebnisse oft nicht klar und eindeutig. Und die Techniken hängen sehr stark von der Sprache ab. Zum Beispiel erkennt man ein Substantiv im Rumänischen und im Esperanto oft an der Endung, im Deutschen am großen Anfangsbuchstaben, im Englischen an keinem formalen Kriterium.

Wenn man nun trotzdem etwas leicht Überprüfbares findet, neigt man dazu, es gleich zu verallgemeinern. Zum Beispiel erscheint in der englischen Sprache nie dasselbe Wort zweimal hintereinander (ohne Komma dazwischen). Ein Wort zweimal zu tippen ist ein Fehler, den man häufig macht, wenn man beim Schreiben unterbrochen wird. Daher markiert zum Beispiel die englische Version von Microsoft Word die Wiederholung eines Wortes als Fehler.

Auch die deutsche Version von Microsoft Word tut das, obwohl im Deutschen durchaus Wiederholungen von Wärtern vorkommen; denn manche Wörter haben mehrere Bedeutungen (Artikel / Relativpronomen / Demonstrativpronomen). Im Deutschen ist daher ein Wortwiederholung nicht immer ein Fehler (höchstens schlechter Stil).

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

Solche Besonderheiten kann ein Programmierer, der die betreffende Sprache nicht kennt, kaum voraussehen; auch ein Rahmen kann sie kaum behandeln. Es bleibt feststellen, dass solche Dinge fast nicht zu internationalisieren sind, man muss sie für jede Sprache eigens behandeln.

Die Internationalisierung findet hier daher auf sehr hoher Ebene statt: Man kann für jede Sprache eine Rechtschreib- und/oder Grammatikprüfung in einen Rahmen aufnehmen, und mehrere Programme können dann diese Prüfmodule verwenden. Die Prüfmodule selbst dagegen können nicht völlig internationalisiert werden.

7.4 Inteligentaj citiloj

Komputila aŭ skribmaŝina klavaro kutime havas nur unu citilon, la supran, rektan, duoblan citilon ("). Oni povas uzi ĝin, sed la uzo de malfermaj kaj fermaj citiloj estas pli bela. 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.

7.4 Intelligente Anführungszeichen

Eine Rechner- oder Schreibmaschinentastatur hat gewöhnlich nur ein einziges Anführungszeichen, das obere, gerade, doppelte Anführungszeichen ("). Man kann es verwenden, aber schöner ist es, öffnende und schließende Anführungszeichen zu verwenden. Wir haben bereits gesehen, dass diese sprachabhängig sind.

Manche Programme bieten "intelligente Anführungszeichen" an, die automatisch die richtige Form annehmen, wenn der Benutzer ein " tippt. Oft funktioniert das auch für einfache ("halbe") Anführungszeichen, die als Apostroph getippt werden. Der Algorithmus für die englische Sprache ist recht einfach: Wenn vor dem Anführungszeichen ein Leerzeichen steht, ist es ein öffnendes Anführungszeichen, sonst ein schließendes. Im Englischen funktioniert das, denn das schließende einfache Anführungszeichen sieht aus wie ein (echter) Apostroph.

Im Deutschen dagegen haben die halben Anführungszeichen die Form eines Kommas (öffnendes A.) bzw. eines gedrehten, hochgestellten Kommas (schließendes A.). Daher kann man in einem Programm, das den englischen Algorithmus auf deutsche Anführungszeichen anwendet, nach einem Buchstaben keinen (echten) Apostrophen tippen; er wird sofort in ein schließendes Anführungszeichen verwandelt. Solche Mängel sind ein Zeichen, dass die Ebene der Internationalisierung nicht richtig gewählt wurde; die Behandlung der Anführungszeichen gehört offenbar in einen Internationalisierungsrahmen.

Anglecitiloj: ‘no‘no'‘no’ AnführungszeichenEnglisch
apostrofo: itit'it's Apostroph
Germanecitiloj: ‚ja‚ja'‚ja‘ AnführungszeichenDeutsch
apostrofo ("geht's"): gehtgeht'geht‘s Apostroph

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.

In den ersten drei Beispielen bekommt der Benutzer, was er wollte. Im letzten Beispiel wollte der Benutzer den Text "geht's" (mit Apostroph) tippen, aber das System wandelte den Apostroph in ein schließendes Anführungszeichen um, das eine etwas andere Form hat.


Specimenaj demandoj:

  • Donu ekzemplon, kiam necesas disigo de teksto al vortoj aŭ al linioj.
  • Donu ekzemplon, kial la datena plurlingveco estas pli malfacila ol uza plurlingveco.
  • Ĉu gramatika kontrolilo povas uzi internaciigan kadraĵon aŭ mem estu parto de tia kadraĵo? Kial?

Beispielfragen:

  • Geben Sie ein Beispiel, wo eine Aufteilung eines Textes in Wörter oder in Zeilen notwendig ist.
  • Geben Sie ein Beispiel, warum Daten-Mehrsprachigkeit schwieriger ist als Benutzer-Mehrsprachigkeit.
  • Kann ein Grammatik-Prüfmodul einen Internationalisierungsrahmen benutzen, oder sollte es selbst Teil dieses Rahmens sein? Warum?

>>>