Andere Sprachen Deutsch ; English ; Français ; Nederlands ; português brasileiro ; |
}}
Einleitung: Die Begriffe i18n und l10n werden oft verwechselt und falsch verwendet. Sie sind miteinander verwandt, haben aber nicht dieselbe Bedeutung. Sie beziehen sich auf unterschiedliche Ebenen der Implementierung und des Fachwissens, so dass ein richtiges Verständnis wichtig ist, um zu erkennen, wo genau ein Problem oder ein Entwicklungsbedarf liegt. |
Was diese Akronyme bedeuten
Nun, was bedeuten diese seltsamen Akronyme eigentlich? Es sind Abkürzungen, die sich aus dem ersten und letzten Buchstaben eines Wortes zusammensetzen, und dazwischen steht die Anzahl der Buchstaben.
- i18n = Internationalisierung: i, dann 18 Buchstaben, dann n
- l10n = Lokalisierung: l, dann 10 Buchstaben, dann n
Ist das nicht dasselbe?
Sie fragen sich vielleicht ob Internationalisierung und Lokalisierung nicht dasselbe sind? Eigentlich nicht.
Es gibt eine Menge Verwirrung. Zum Teil weil die Konzepte relativ neu sind, zum Teil auch aus historischen Gründen. In der Vergangenheit wurde die Unterstützung von Computern, die nicht nur für die englische Sprache bestimmt waren, zumindest anfangs in Form von Ad-hoc-Lösungen vorgenommen, die nur für eine einzige Sprache geeignet waren. Man hatte also ein Betriebssystem das für sagen wir, Französisch lokalisiert war, und eine andere Version für Spanisch; und sie können durchaus inkompatibel sein, selbst wenn beide Sprachen einen gemeinsamen (und recht einfachen) Zeichensatz verwenden können.
Anders ausgedrückt: Historisch gesehen wurde l10n gemacht, bevor man an i18n dachte.
Aber konzeptionell muss i18n an erster Stelle stehen, denn Internationalisierung ist der Prozess der sicherstellt, dass eine Software tatsächlich flexibel genug und bereit ist, mehrere potenzielle Sprachumgebungen zu unterstützen. Eine Anwendung wird vielleicht nie übersetzt, aber wenn sie richtig internationalisiert ist, ist die Übersetzung recht einfach (und was noch wichtiger ist, sie erfordert keinerlei Entwicklungs- oder Computerkenntnisse, sondern nur die Kenntnis der Zielsprache). Internationalisierung bedeutet also Software lokalisierungsfreundlich zu machen.
Bei der Lokalisierung hingegen geht es (hauptsächlich, siehe unten) um die Übersetzung in eine bestimmte, echte Sprache. Die Lokalisierung an sich setzt keine Internationalisierung voraus, aber wenn die Anwendung nicht vorher internationalisiert wurde, dann bedeutet das, dass der Lokalisierungsprozess ziemlich tiefgreifende Änderungen im Quellcode der Anwendung erfordert, d. h. Entwicklungskenntnisse. In alten Zeiten wurde die Lokalisierung manchmal "einfach" durch Bearbeiten des Quellcodes und Ändern der Textzeichenfolgen im Quellcode durchgeführt. Das führt zu zwei (oder mehr) verschiedenen Binärdateien, d.h. zwei (oder mehr) verschiedenen Produkten, die unterstützt werden müssen, mit unterschiedlicher Versionierung, Fehlerverfolgung usw. Manchmal sind sie sogar inkompatibel zueinander. Und wenn man die Anwendung auf eine andere Sprache portieren wollte, musste man alles noch einmal von vorne beginnen (und entscheiden, von welcher Version man abweichen wollte). Außerdem gab es nie einen richtigen verallgemeinerbaren Überblick über das Problem. Wenn eine Lokalisierung für eine neue Sprache mit bestimmten Anforderungen gefordert wurde, konnte das alles kaputt machen, weil es nicht eingeplant war.
Also l10n ohne i18n ist schlecht, sehr schlecht. Hoffentlich ist das heutzutage, und besonders in der Welt der freien Software unüblich. In unserer Welt der freien Software haben wir sehr gute Internationalisierungs-Frameworks, die in den Kern der gängigen Toolkits eingebaut sind (ein Toolkit ist ein Satz von Werkzeugen und Bausteinen aus denen Entwickler Anwendungen erstellen). Diese Frameworks sind generisch genug, um alle derzeit verwendeten menschlichen Schriftsysteme zu unterstützen und zu umfassen.
Die beiden Konzepte von i18n und l10n sind zwei verschiedene Ebenen. Sie sind miteinander verbunden, aber sie befinden sich auf unterschiedlichen Ebenen - das heißt, es sind unterschiedliche Personen mit unterschiedlichen Fähigkeiten beteiligt. Das ist wichtig zu wissen, denn wenn man ein Problem auf der falschen Ebene meldet, hilft dies nicht, es zu lösen.
i18n
Internationalisierung ist der Prozess (oder das Konzept des Prozesses), um eine Anwendung "international" zu machen, d.h. sie in die Lage zu versetzen, praktisch jede Sprache oder lokale Einstellung auf der Erde zu unterstützen.
Es handelt sich dabei immer um Änderungen im Quellcode, d.h. es betrifft die Entwickler (die auch mit der i18n-Problematik vertraut sein müssen). Es gibt verschiedene Aspekte von i18n, einige komplexer als andere:
- Fähigkeit, Text anzuzeigen/zu drucken
- Unterstützung für jede komplexe Schriftart
- Unterstützung für Zeichennormalisierung
- Unterstützung für Glyphen-Substitution und -Rendering (es gibt keine Äquivalenz zwischen Zeichen und Glyphe; stattdessen erzeugen einige Zeichenfolgen (im einfachen Fall kann es sich um eine Folge von nur einem Zeichen handeln) einige Glyphenfolgen (im einfachen Fall kann es sich um eine Folge von einem Zeichen handeln)
- Unterstützung für die Umordnung von Glyphen (die Anzeige erfolgt nicht immer in der gleichen Reihenfolge wie beim logischen Sprechen/Schreiben)
- Unterstützung für bidirektionales Rendering (sowohl von links nach rechts als auch von rechts nach links)
- Fähigkeit zur Textmanipulation
- Unterstützung für die Manipulation von Textstrings in Programmen
- Unterstützung für Mausauswahl, Ausschneiden und Einfügen usw. (beachten Sie, dass Sie Glyphen auf dem Bildschirm auswählen, der Puffer jedoch Text (Zeichen) auswählt => komplexe Substitution)
- Hilfsprogramme für die Zeichensatzkonvertierung (weil wir mit dem Vor-Unicode-Altbestand zurechtkommen müssen)
- Suchen von Text (grep, etc)
- Sortieren von Text nach komplexen Regeln
- Möglichkeit der Texteingabe
- Unterstützung für die Definition von Tastaturlayouts
- Unterstützung für die Verknüpfung mit Eingabeanwendungen für komplexe Fälle, in denen eine Tastaturbelegung nicht ausreicht)
- Fähigkeit zur Manipulation/Wiedergabe von Datum/Zeit
- Anzeige-/Eingabeformat
- Definition des ersten Wochentags
- Definition von Zeitzonen
- Definition von nicht-gregorianischen Kalendern
- Funktionen zur Konvertierung zwischen verschiedenen Formaten/Kalendern
- Möglichkeit, lokale Einstellungen zu definieren und zu handhaben
- verschiedene Einheiten (km/Meilen °C/°F, etc.), Währungseinheiten, etc.
- verschiedene Möglichkeiten zur Formatierung/Anzeige von Zahlen
l10n
Lokalisierung ist der Prozess (oder das Konzept des Prozesses), um eine Anwendung "lokalisiert" zu machen, d.h. für einen gegebenen lokalen und konkreten Kontext zu funktionieren, angepasst an den Benutzer.
Dabei wird der Quellcode nicht verändert; die Entwickler sind nicht involviert (naja, nur ein bisschen, um den ersten Haken hinzuzufügen. Wenn eine Sprache verfügbar ist, muss ein Entwickler sie in eine Liste eintragen, dem l10n-Team Zugang geben usw.).
Bei l10n geht es darum, den Inhalt bereitzustellen, um die Container zu füllen, die der i18n-Prozess geschaffen hat.
Die verschiedenen Aspekte sind:
- Übersetzen übersetzbarer Textdaten (das ist der bekannteste)
- Bereitstellung einzigartiger lokalisierter Textdaten (keine Übersetzung eines bestehenden Textes, sondern ein eigenständiger Text), falls erforderlich
- Rechtschreibprüfung (siehe unten)
- Tastaturlayouts
- Eingabemethoden (siehe unten)
- Sortierregeln
Wie gesagt, die Entwickler sind nicht involviert. Nun, in einigen Fällen kann etwas Entwicklung involviert sein; es handelt sich um einige sehr spezifische Dinge, wie die Erstellung einer neuen Rechtschreibprüfung, einzigartig für eine Sprache oder Sprachfamilie, oder ein Eingabemethodenprogramm (aber es gibt auch generische Rechtschreibprüfungen und Eingabemethoden, bei denen man nur l10n Daten angeben muss).
Kurz gesagt
- l10n-Probleme sind nur für Übersetzer einer bestimmten Sprache von Belang. Niemand sonst kümmert sich darum oder kann etwas dagegen tun, nur die Übersetzer für diese spezielle Sprache können sie beheben.
- i18n-Probleme sind ein Problem in der i18n-Infrastruktur. Es kann potenziell viele Sprachen betreffen (auch wenn vielleicht nur eine die Symptome tatsächlich bemerkt), aber Übersetzer können nichts tun, um es zu lösen, nur Entwickler können es.