<<< [=] >>>

2 Internaciigo kaj lokecigo

2 Internationalisierung und Lokalisierung

2.1 Teorio

La komerca produktado kaj vendado de programoj baziĝas sur la ideo, ke ne ĉiu verku siajn proprajn programojn, sed programoj estu uzataj de multaj homoj. Tiu penso implicas, ke oni ne verku (kaj flegu) por ĉiu lingvo programojn kun identaj funkciadoj, sed igu unu saman programon funkcii en multaj lingvoj. Ĉar la aŭtoroj de programoj normale ne estas lingvistoj aŭ poliglotoj, necesas metodoj por "traduki programojn".

Tiu procezo, traduki programon en alian (uzo-)lingvon, nomiĝas lokecigo de la programo. La vorto devenas de la angla vorto localization, kiu baziĝas sur la supozo, ke la tradukado igas la programon taŭga por uzo en alia loko (lando, regiono alilingvaj). Lokecigo ne estas nura traduko, sed inkluzivas la adapton ekzemple de valutoj, hor-sistemoj ktp.

2.1 Theorie

Die kommerzielle Erstellung und Vermarktung von Programmen basiert auf dem Gedanken, dass nicht jeder seine eigenen Programme schreiben, Programme vielmehr von vielen Menschen benutzt werden sollten. Dieser Gedanke impliziert, dass man nicht für jede Sprache Programme mit identischer Funktion schreiben (und pflegen), sondern ein Programm dazu bringen sollte, in vielen Sprachen zu funktionieren. Da Programmierer gewöhnlich keine Linguisten oder Vielsprachler sind, sind Methoden notwendig, um "Programme zu übersetzen".

Dieser Prozess der Übersetzung eines Programms in eine andere (Benutzungs-)Sprache heißt Lokalisierung des Programms. Das Wort leitet sich vom englischen localization her, dem die Annahme zugrunde liegt, dass das Programm durch die Übersetzung geeignet wird für die Verwendung an einem anderen Ort (Land, Region mit anderer Sprache). Lokalisierung ist nicht nur Übersetzung, sondern umfasst auch die Anpassung z. B. der Währung, des Zeitsystems usw.

Por ĉiu lingvo, en kiu funkciu programo, necesas aparta lokecigo. Escepto estas la unua lingvo, en kiu la programo estas verkita; kvazaŭ ĝia "denaska" lingvo. Tiu lingvo ofte estas la ĉiutaga lingvo de la programistoj.

Für jede Sprache, in der ein Programm funktionieren soll, ist eine eigene Lokalisierung erforderlich. Ausgenommen ist die Sprache, in der das Programm geschrieben wird; sozusagen seine "Muttersprache". Es handelt sich oft um die Umgangssprache der Programmierer.

Kvanta ekzemplo klarigas la avantaĝon de lokecigo: Ni supozu, ke ni havas 8 programojn P1…P8, kiuj funkciu en 12 lingvoj L1…L12. Verkante propran programon por ĉiu lingvo ni bezonas 8×12 = 96 programojn, kiujn necesas ankaŭ flegi, t. e. korekti iliajn erarojn kaj pluevoluigi. Uzante lokecigon ni bezonas 8 programojn (en unu lingvo) kaj 88 lokecigojn. Se ni supozas, ke lokecigo estas pli simpla kaj malpli kosta ol verkado de programo, ni ŝparas.

Ein beispielhaftes Mengengerüst macht die Vorteile der Lokalisierung klar: Nehmen wir an, wir haben 8 Programme P1…P8, die in 12 Sprachen L1…L12 funktionieren sollen. Wenn wir jedes Programm für jede Sprache getrennt schreiben, brauchen wir 8×12 = 96 Programme, die auch gepflegt werden müssen (Fehlerkorrektur, Weiterentwicklung). Mit Lokalisierung brauchen wir 8 Programme (in einer einzigen Sprache) und 88 Lokalisierungen. Wenn wir annehmen, dass Lokalisierung einfacher und billiger als Programmierung ist, ergibt sich eine Ersparnis.

Programo estas lokecigita al pluraj lingvoj

Programo estas tradukita al pluraj lingvoj L2, L3, ktp. (lokecigita).

Ein Programm wird in mehrere Sprachen L2, L3, usw. übersetzt (lokalisiert).

Ni poste vidos, ke lokecigo ne estas tute simpla afero. Se programo ne estas preparita por ĝi, ĝia lokecigo estas ne nur malfacila kaj temporaba, sed eĉ suferas pro certaj restriktoj, kiuj limigas la kvaliton de la traduko.

Wie wir noch sehen werden, ist die Lokalisierung nicht ganz einfach. Wenn ein Programm nicht dafür vorbereitet ist, ist die Lokalisierung nicht nur schwierig und zeitraubend, sondern sogar bestimmten Einschränkungen unterworfen, die die Qualität der Übersetzung begrenzen.

Pro tio estas utile, eĉ preskaŭ necese, konsideri la postajn lokecigojn jam dum la verkado de programo, kaj prepari la programon al ili. Tiu preparo nomiĝas internaciigo de la programo. Ĝi ne inkluzivas tradukadon, sed nur rezultigas programon, kies lokecigo estas pli facila ol la lokecigo ne ne-preparita programo.

Temas tie ĉi pri "internaciigo en strikta senco", internaciigo kiel procezo aŭ ago de programanto. Ankaŭ la tuta tekniko de plurlingvaj programoj ja nomiĝas "internaciigo" (en vasta senco). Tio normale ne kaŭzas konfuzon.

En ju pli da lingvoj programo funkciu, des pli valoras zorga internaciigo, kiu ja estas farata nur unufoje por ĉiuj lingvoj. Praktike internaciigo estas tiom grava, ke ĝi necesas eĉ por nur 2 lingvoj.

Daher ist es sinnvoll, ja fast unabdingbar, die spätere Lokalisierung bereits beim Schreiben des Programms zu berücksichtigen und das Programm dafür vorzubereiten. Diese Vorbereitung heiß Internationalisierung des Programms. Sie umfasst keinerlei Übersetzung, sondern ergibt nur ein Programm, dessen Lokalisierung einfacher ist als die Lokalisierung eines nicht dafür vorbereiteten Programms.

Es handelt sich hier um die "Internationalisierung im engeren Sinne", die Internationalisierung als Prozess, als Tätigkeit des Programmierers. Auch das ganze Gebiet der mehrsprachigen Programme heißt ja Internationalisierung (im weiteren Sinne). Eine Verwechslungsgefahr besteht aber gewöhnlich nicht.

In je mehr Sprachen ein Programm laufen soll, desto mehr lohnt sich sorgfältige Internationalisierung, die ja nur ein Mal für alle Sprachen stattfindet. In der Praxis zeigt sich die Internationalisierung so wichtig, dass sie bereits für nur zwei Sprachen unbedingt erforderlich ist.

Programo estas internaciigita kaj poste lokecigita

Programo estas internaciigita kaj poste lokecigita.

Ein Programm wird internationalisiert und dann lokalisiert.

Ankaŭ la vorto internaciigo devenas de angla vorto: internationalization. Ĉar tiu vorto estas tre longa (20 literoj, 7 aŭ 8 silaboj), usonaj programistoj inventis la mallongigon "i18n", kiu anstataŭigas la mezajn 18 literojn per ilia nombro.

Auch das Wort "Internationalisierung" kommt von einem englischen Wort: internationalization. Da dieses Wort sehr lang ist (20 Buchstaben, 7 bis 8 Silben), haben US-amerikanische Programmierer die Abkürzung "i18n" erfunden, die die mittleren 18 Buchstaben durch ihre Anzahl ersetzt.

Praktika subteno

Kiel ni vidos, dum la internaciigo de programo aperas multaj taskoj, kiuj postulas scion pri lingvoj, sed estas kvazaŭ identaj por diversaj programoj. Ekzemplo estas la alfabeta ordigo de vortoj en diversaj lingvoj.

Estus malŝparo, se ĉiu programisto farus tiujn taskojn. Pli racia estas subteno de la internaciigo pere de

  1. iloj (helpaj programoj) por programistoj (sendepende de la internaciigataj programoj)
  2. program-bibliotekoj ligitaj al la internaciigataj programoj
  3. instruado (kursoj) por la programistoj

Por tiuj taskoj ekzistas specialaj fakuloj, institucioj kaj firmaoj.

Praktische Unterstützung

Wie wir sehen werden, treten bei der Internationalisierung eines Programms viele Aufgaben auf, die Wissen über Sprachen erfordern, aber für verschiedene Programme fast identisch sind. Ein Beispiel ist die alphabetische Ordnung von Wörtern in verschiedenen Sprachen.

Es wäre Verschwendung, wenn jeder Programmierer diese Aufgaben unabhängig durchführen würde. Sinnvoller ist eine Unterstützung der Internationalisierung durch

  1. Werkzeuge (Hilfsprogramme) für Programmierer (unabhängig von den zu internationalisierenden Programmen)
  2. Programm-Bibliotheken zur Anbindung an die zu internationalisierenden Programme
  3. Schulung (Kurse) für die Programmierer

Für diese Aufgaben gibt es spezialisierte Fachleute, Einrichtungen und Firmen.

La menciita sistemo NLS estas precipe program-biblioteko, kiu helpas pri internaciigo. Ĝiaj konceptoj ankaŭ helpas programiston rekoni eblajn problemajn situaciojn de internaciigo. Speciala instruado tamen estas necesa, ĉar multaj programistoj ne estas lingvistike spertaj, kaj preskaŭ neniu scias sufiĉe da lingvoj por mem ekkoni ĉiujn eblajn problemojn.

Das erwähnte System NLS ist vor allem eine Programmbibliothek, die bei der Internationalisierung hilft. Ihre Konzepte helfen dem Programmierer auch bei der Erkennung möglicher Problemsituationen bei der Internationalisierung. Eine besondere Schulung ist dennoch erforderlich, da viele Programmierer keine linguistische Erfahrung besitzen und fast niemand genügend Sprachen kann, um selbst alle möglichen Probleme zu erkennen.

2.3 Resumo

Por havi programon, kiu funkcias en pluraj lingvoj, necesas scioj lingvaj (tradukistoj) kaj teknikaj (programistoj). Ideale oni dividas la taskojn jene:

  • Por la lokecigo necesu nur lingvaj scioj; ĝin faru tradukistoj, kiuj ne konas la funkciadon de la programo, sed ja la fakan terminologion.
  • Por la internaciigo necesu nur teknikaj scioj; ĝin faru la evoluigantoj de la programo, kiuj konas ties funkciadon. Ili faras ankaŭ la unuan lokecigon por sia propra lingvo.
  • Por ĉiuj taskoj, kiuj postulas kaj teknikan kaj lingvan scion, oni disponigu taŭgan kadraĵon en la formo de iloj kaj program-bibliotekoj. Tiuj taskoj estu tiom abstraktigitaj, ke ili ne dependas de la funkciado de unuopaj programoj. La menciita sistemo NLS estas tia kadraĵo.

La taskoj kaj la necesaj scioj do estas divideblaj jene:

2.3 Zusammenfassung

Um ein Programm zu erhalten, das in mehreren Sprachen funktioniert, sind sprachliche Kenntnisse (Übersetzer) und technische Kenntnisse (Programmierer) nötig. Idealerweise sollten für die Internationalisierung nur technische, für die Lokalisierung nur sprachliche Kenntnisse notwendig sein.

  • Für die Lokalisierung sollen nur sprachliche Kenntnisse erforderlich sein. Sie wird von Übersetzern erledigt, die das Programm und seine Funktion (Logik) nicht kennen, wohl aber die fachliche Terminologie.
  • Für die Internationalisierung sollen nur technische Kenntnisse erforderlich sein. Sie wird von den Entwicklern des Programms erledigt, die dessen Funktion kennen. Sie machen auch die erste Lokalisierung für ihre eigene Sprache.
  • Für alle Aufgaben, die sowohl technische als auch sprachliche Kenntnisse erfordern, muss ein geeigneter Rahmen (engl. framework) in Form von Werkzeugen und Programmbibliotheken zur Verfügung gestellt werden. Diese Aufgaben müssen so weit abstrahiert werden, dass sie nicht von der Logik einzelner Programme abhängen. Das erwähnte System NLS ist ein solcher Rahmen.

Die Aufgaben und die erforderlichen Kenntnisse lassen sich also grob folgendermaßen einteilen:

Scio pri la tasko de la programo Scio pri la tekniko de programado Scio pri la cel-lingvo
Lokecigo (×)   ×
Internaci- igo × ×  
Kadraĵoj   × ×
Wissen über die Aufgabe des Programms Wissen über die Program- mierung Wissen über die Ziel-Sprache
Lokalisierung (×)   ×
Internationali- sierung × ×  
Rahmen   × ×

Kiel montras la tabelo, la celo de internaciigo (en vasta senco) estas eviti, ke iu bezonu scion pri ĉiuj tri kampoj.

Kondiĉo por lokecigo sen teknika scio estas bona internaciigo: Nur se la programisto antaŭvidis kaj evitis problemajn situaciojn, tradukisto povas bone labori. Kondiĉo por internaciigo sen lingvaj scioj estas teknika scio pri la eblaj problemoj kaj dispono pri tauŭgaj iloj kaj program-bibliotekoj (kadraĵo).

Wie die Tabelle zeigt, ist es das Ziel der Internationalisierung (im weiteren Sinne), zu vermeiden, dass jemand Wissen auf allen drei Gebieten braucht.

Voraussetzung für eine Lokalisierung ohne technische Kenntnisse ist eine saubere Internationalisierung; nur wenn der Programmierer mögliche Probleme vorhergesehen und vermieden hat, kann der Übersetzer gute Arbeit leisten. Voraussetzung für eine Internationalisierung ohne sprachliche Kenntnisse ist technisches Wissen über die möglichen Probleme sowie geeignete Werkzeuge und Programmbibliotheken (Rahmen).

La pozicion de kadraĵo por internaciigo oni povas imagi laŭ la sekva bildo: Ĝi staras centre inter

  • plurlingvaj programoj (P1, P2, …) unuflanke kaj
  • lingvoj (da = dana lingvo, de = germana, …) kaj iliaj specialaj ecoj aliflanke. Pri tiuj ecoj ni ankoraŭ parolos.

Die Stellung eines Rahmens zur Internationalisierung kann man sich wie im folgenden Bild vorstellen: Es steht in der Mitte zwischen

  • mehrsprachigen Programmen (P1, P2, …) einerseits und
  • Sprachen (da = Dänisch, de = Deutsch, …) und ihren besonderen Eigenschaften andererseits. Über diese Eigenschaften werden wir noch sprechen.
daInternaciiga
kadraĵo

Internationalisierungs-
Rahmen
P1
deP2
enP3
eoP4
roP5
P6

Bona kadraĵo izolas la programojn komplete de la ecoj de unuopaj lingvoj. Anstataŭ okupiĝi pri la ecoj de multaj lingvoj la programanto devas okupiĝi nur pri la ecoj de la kadraĵo.

Ankaŭ la programoj mem havas strukturon laŭ la lingvoj: Ili konsistas el ne-lingvodependa parto kaj por ĉiu lingvo unu lingvo-dependa parto (P1-ro por la rumana ktp.). Ideale, se la internaciigo estis perfekta, la ne-lingvodependa parto enhavas la tutan funkciadon ("logikon"), la aliaj partoj enhavas nur "statikan" materialon (tekstoj, bildoj ktp.).

Ein guter Rahmen isoliert das Programm völlig von den Eigenschaften der einzelnen Sprachen. Statt sich mit den Eigenschaften vieler Sprachen auseinandersetzen zu müssen, braucht sich der Programmierer nur mit den Eigenschaften des Rahmens zu beschäftigen.

Auch die Programme selbst haben eine Struktur, die sich nach den Sprachen richtet: Sie bestehen aus einem sprach-unabhängigen Teil und für jede Sprache aus einem sprachabhängigen Teil (P1-ro für Rumänisch usw.). Im Idealfall, wenn die Internationalisierung vollkommen war, enthält der sprachunabhängige Teil die gesamte Funktion ("Logik") des Programms und die anderen Teile enthalten nur "statisches" Material (Texte, Bilder usw.).

ne-lingvodependa
parto de P1

Sprachunabhängiger
Teil von P1
P1-da
P1-de
P1-en
P1-eo
P1-ro
dinamika / dynamisch statika
statisch

Alternativa difino de "internaciigo" do estas: Internaciigo estas la procezo, kiu disigas la funkciadon de la programo de la lingvo-dependaj partoj. Tiu difino estas pli teknika ol la supre donita, sed por la praktiko sam-signifa

Eine alternative Definition von "Internationalisierung" lautet daher: Internationalisierung ist der Prozess, der die Funktion eines Programms von den sprachabhängigen Teilen trennt. Diese Definition ist technischer als die oben gegebene, bedeutet für die Praxis aber dasselbe.


Rimarkigo: En la Interreto (TTT) ekzistas multlingva enciklopedio nomata "Vikipedio". Ĝi donas bonan studmaterialon pri diverslingvaj tekstoj, ĉar multaj artikoloj ekzistas en pluraj lingvoj kaj estas inter si reciproke ligitaj per referencoj (ret-ligiloj).

Im Internet (WWW) gibt es eine mehrsprachige Enzyklopädie namens "Wikipedia". Sie bietet gutes Anschauungsmaterial für verschiedensprachige Texte, da viele ihrer Artikel in mehreren Sprachen existieren und miteinander durch Verweise verbunden sind.


Specimenaj demandoj:

  • Kio estas lokecigo de programo?
  • Kio estas internaciigo de programo?
  • Kiom da lokecigoj necesas por 3 programoj, kiuj funkciu en 5 lingvoj?
  • Kiom da internaciigoj necesas por 3 programoj, kiuj funkciu en 5 lingvoj?
  • Kiuj tri specoj de scio necesas por plurlingvaj programoj?
  • Kiel rilatas internaciiga kadraĵo, programoj kaj specialaj ecoj de lingvoj?
  • Kies tasko estas la internaciigo de programoj?
  • Kies tasko estas la lokecigo de programoj?

Beispielfragen:

  • Was ist die Lokalisierung eines Programms?
  • Was ist die Internationalisierung eines Programms?
  • Wie viele Lokalisierungen sind für 3 Programme nötig, die in 5 Sprachen laufen sollen?
  • Wie viele Internationalisierungen sind für 3 Programme nötig, die in 5 Sprachen laufen sollen?
  • Welche drei Arten von Wissen sind für mehrsprachige Programme notwendig?
  • In welcher Beziehung stehen ein Internationalisierungs-Rahmen, Programme und besondere Eigenschaften von Sprachen?
  • Wessen Aufgabe ist die Internationalisierung von Programmen?
  • Wessen Aufgabe ist die Lokalisierung von Programmen?

>>>