Internationalisierung Softwareentwicklung
Internationalisierung bedeutet in der Informatik beziehungsweise in der Softwareentwicklung, ein Programm so zu gestalten, dass es leicht (ohne den Quellcode ändern zu müssen) an andere Sprachen und Kulturen angepasst werden kann.
Internationalisierung (engl. internationalization) wird im englischen Sprachraum gerne mit I18N abgekürzt (im englischen Wort befinden sich 18 Buchstaben zwischen I und N).
Hierunter fallen diejenigen Aufgaben, die der Entwickler/Programmierer eines Programms machen muss. Dazu darf er zum Beispiel Beschreibungstexte nicht im Quellcode fest codieren, sondern muss Variablen benutzen, die von einer Quelle zur Laufzeit eingelesen werden. Aber auch Datumsformatierungen und die sprachabhängige Oberflächengestaltung (Text kann unterschiedlich lang sein, Rechts-Nach-Links-Orientierung, …) gehören hierzu.
Im nächsten Schritt erfolgt die Lokalisierung (engl. localization), die als L10N abgekürzt wird. (10 Buchstaben zwischen L und N). Ein Programm sollte im vorigen Schritt so gestaltet sein, dass diese Änderungen nicht mehr vom Programmierer durchgeführt werden müssen. Dieser Prozess bezeichnet die reine Übersetzung von zum Beispiel Texten in eine Landessprache.
→ Hauptartikel Lokalisierung (Softwareentwicklung)
Charakteristika internationalisierter Programme
- Ausführbares Programm und Benutzungsoberfläche sind voneinander getrennt.
- Textdaten sind in externen Dateien abgelegt und werden dynamisch geladen.
- Ortsspezifische Konventionen (Datum/Uhrzeit, Feiertage, Dezimaldarstellung, Währungssymbole, Zeichensätze und so weiter) werden unterstützt.
Umfang einer Internationalisierung und Lokalisierung (Auswahl)
- Sprache
- Elektronische Texte
- Die modernen Systeme verwenden Unicode-Standards um viele Probleme der Zeichenkodierung zu lösen.
- verschiedene Zahlensysteme
- verschiedene Schreibrichtungen
- Schreibvarianten in verschiedenen Ländern mit der selben gesprochenen Sprache, zum Beispiel en-US, en-CA, en-GB-oed, en-GB, en-AU
- Unterschiede in der Textverarbeitung, wie das Konzept der Großbuchstaben, das es in manchen Schriftsprachen gibt und in anderen nicht
- Eingabe
- Ermöglichen der Eingabe von Tastaturkürzeln mit beliebigen Tastaturlayouts
- grafische Darstellung von Text (Druckausgabe; Online-Bilder, die Text enthalten)
- Sprachausgabe (Audio)
- Untertitel in Filmen und Video
- Elektronische Texte
- Kultur
- Bilder und Farben: Probleme bei der Verständlichkeit und kulturellen Angemessenheit
- Namen und Titel
- vom Staat vergebene Nummern wie Passnummern oder die Sozialversicherungsnummer (engl. Social Security number) in den Vereinigten Staaten, die „National Insurance number“ im Vereinigten Königreich oder die „Isikukood“ in Estland
- Telefonnummern, Andresse und internationale Postleitzahlen
- Währungsformate (Symbole, Position der Währungszeichen)
- Gewichte und Maße
- Papierabmessungen
- Schreibkonventionen
- Datums- und Zeitformat, einschließlich der verschiedenen Kalender
- Zeitzonen
- Formatierung von Zahlen (Dezimalzeichen, Position con Trennzeichen, Schriftzeichen als Trennzeichen)
- jeder andere Aspekt des Produktes oder des Dienstes, der reguliert werden muss
Unterschied zwischen Internationalisierung und Lokalisierung
Der Unterschied zwischen Internationalisierung und Lokalisierung ist subtil aber wichtig. Internationalisierung ist die Anpassung eines Produkts, damit es theoretisch überall eingesetzt werden kann. Lokalisierung ist das Hinzufügen spezieller Eigenschaften für die Anwendung in einem bestimmten geographisch oder ethnisch umschriebenen Absatz- oder Nutzungsgebiet (Land, Region oder ethnische Gruppe). Internationalisierung wird pro Produkt einmal durchgeführt. Lokalisierung wird ein mal für jede Kombination von Produkt und Nutzungsgebiet. Die Prozesse ergänzen einander und müssen kombiniert werden, um ein System zu erhalten, das global funktioniert.
Geschäftsprozess der Internationalisierung von Software
Um ein Produkt zu internationalisieren, müssen die verschiedenen Märkte betrachtet werden, in die das Produkt voraussichtlich eingebracht werden soll. Details wie Feldlängen von Adressen, optionale Felder für Postleitzahlen und die Einführung neuer Registrierungsprozesse, um die lokalen Rechtsituationen zu bedienen sind eine Beispiel dafür, wie komplex das Projekt einer Internationalisierung sein kann.
Ein umfassender Ansatz geht bis zu kulturellen Faktoren wie die Anpassung von Geschäftsprozesslogik oder die Berücksichtigung individueller kultureller Verhaltensaspekte.[1].
Programmierpraxis
Die 2009 vorherrschende Praxis für Anwendungen ist es, die Texte in Hilfszeichenketten (engl. resource strings) auszulagern, die während der Programmausführung bei Bedarf geladen werden. Die Zeichenketten werden in Hilfsdateien gespeichert und sind verhältnismäßig einfach zu übersetzen. Programme werden oft so gebaut, dass sie je nach gesetztem Vertriebsgebiet auf Hilfsbibliotheken zugreifen. Eine Programmbibliothek, die das unterstützt, ist GNU gettext.
Schwierigkeiten
Während das Übersetzen existierenden Textes in eine andere Sprach einfach erscheint, ist es weitaus schwieriger, gleichzeitig Sprachversionen von Texten während des Produktlebenszyklus zu verwalten. Wenn ein Nachricht, die dem Benutzer angezeigt wird verändert wird, müssen alle übersetzten Versionen auch geändert werden. Das verlängert den Entwicklungszyklus.
Viele Lokalisierungsaufgaben (Schreibrichtung, Textsortierung, usw.) verlangen eine tiefgreifendere Änderung der Software als nur die reine Übersetzung. OpenOffice.org löst das beispielsweise mit Kompilierungsverzweigung (engl. compilation switches).
Ab einem bestimmten Grad an Komplexität (zum Beispiel für die Qualitätssicherung) braucht das Entwicklungsteam jemanden, der andere Sprachen und Kulturen versteht und einen technischen Hintergrund hat.
Kosten-Nutzen-Analyse
In einer kommerziellen Umgebung ist der Vorteil der Lokalisierung der Zugang zu mehr Märkten. Es gibt die Auffassung, dass die Lokalisierung eines Produktes in verschiedene Sprachen beziehungsweise Kulturen selbstverständlich ist. Alles was nötig sei, sei die Bestätigung der Höhe der Kosten. Es kostet mehr, Produkte für internationale Märkte zu produzieren, aber in einer immer globaleren Ökonomie ist die Unterstützung nur einer Sprache beziehungsweise nur eines Marktes kaum eine Option. Jedoch ist die Lokalisierung selbstentwickelter Software von ökonomischen Unwägbarkeiten beeinflusst und entbehrt zumeist der Möglichkeit, dass Endbenutzer und Freiwillige die Lokalisierung vornehmen können, wie es in Open Source-Umgebungen üblich ist. Da Open Source-Software im Allgemeinen frei verändert und weiterverbreitet werden kann, ist sie zugänglicher für eine Internationalisierung. Das K Desktop Environment-Projekt ist zum Beispiel in 100 Sprachen übersetzt worden.[2]
Text layoutDirectional focus navigation Writing mode I18N Linksammlung – Links aus Entwicklersicht. Debian I18N Introduction – Einführung zum Thema Internationalisierung von Software (englisch). The Localization Tool – Blog mit Tipps und Tricks für Einsteiger in die Lokalisierung von Software (englisch). Siehe auch
- Lokalisierung
- CJK
- Complex Text Layout (CTL)
- Bidirektionaler Text (BiDi)
- ISO 8601
- National Language Support (NLS)
Fußnoten
- ↑ Pawlowski, J.M.. Culture Profiles: Facilitating Global Learning and Knowledge Sharing. Proc. of ICCE 2008, Taiwan, Nov. 2008. (englisch) (PDF). Abgerufen am 21. Oktober 2009.
- ↑ Die aktuelle Liste der KDE-Lokalisierungen (englisch). Abgerufen am 24. Oktober 2009.
unter GFDL. Hier können Sie den Original-Artikel zu Internationalisierung_(Softwareentwicklung) , die Versionsgeschichte
und die Liste der Autoren einsehen.