This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Die Gründe für die zunehmende Bedeutung dieses Themas:– Konsolidierung von kleinen lokalen Sites hin zu großen mehrsprachigen
Sites zur Verringerung der laufenden Wartungskosten– Anbieter, die erfolgreiche Websites betreiben, expandieren in
internationale Märkte– Starkes Wachstum im asiatischen Raum veranlaßt US und europäische
Firmen, sich für diese Märkte auch im Web zu rüsten
Lange Zeit hindurch wurden die technischen Voraussetzungen für mehrsprachige und lokaliserte Sites von Herstellern nur zögernd unterstützt, so daß es effektiv nicht möglich war, solche Sites wirklich zu erstellen
Heute sind UTF-8 und Unicode von den meisten wichtigen Produkten unterstützt, sodaß einer Implementierung nichts im Wege steht .... oder?
Das Hantieren mit unterschiedlichen Zeichensätzen und Kodierungen (character encoding) ist sehr umständlich und macht es unmöglich, auf einer Web Seite gleichzeitig z.B. deutsche und japanische Texte darzustellen.
Der Zeichensatz gibt an, welcher Code welchem Zeichen zugeordnet ist
Traditionell wurden Single Byte codes verwendet (z.B. 7 Bit ASCII)
Eine Webseite enthält eine Anweisung für den Browser, welche Zeichensatzcode anzuwenden ist.
Beispiel:– ISO8859-1 (Westeuropea, unterstützt u.a. Deutsch ohne Euro-Symbol)– ISO8859-15 (Westeuropea, enthält auch das Euro-Symbol)– SHIFT-JIS (Japanisch)
Datumsformat und Währungssymbol werden von den NLS Einstellungen bestimmt, können aber in einer Abfrage übersteuert werden (wichtig bei UTF-8 Datenbanken, die mehrere Sprachen unterstützen)
Sortierreihenfolge hängt von der verwendeten Sprache ab:– CREATE INDEX french_index ON emp (NLSSORT(emp_name,
'NLS_SORT=FRENCH')); – Eine Abfrage auf diesen Index schließt typischerweise eine Bedingung ein,
Fremdsoftware unterstützt nicht UTF-8– z.B. Verity bis zur Version 4.5 kann nur mit umfangreichen Tricks zur
Zusammenarbeit bewegt werden– Einzelheiten dazu auf Anfrage
Umwandlung der Kodierung von Daten aus externen Datenquellen klappt nicht fehlerfrei– Obwohl theortisch alle Zeichen verlustlos nach UTF-8 kodiert werden
können sollten, gibt es in der Praxis gelegentlich Probleme
Verwendete Produkte sind fehlerhaft– UTF-8 ist nach wie vor nicht weit verbreitet und Hersteller testen die
Unterstützung oft nur mangelhaft, v.a. in älteren Versionen
Java unterstützt von Haus aus das Konzept von Locales
Eine Web-Anwendung kann entweder – den Benutzer bestimmen lassen, welches Locale er verwenden möchte– das Locale aus dem Kontext ermittlen (z.B. wenn die Applikation lokale
Seiten hat)– das Locale auf Grund der geographischen Zuordnung der IP Addresse des
Benutzers setzen (nicht immer zuverlässig)
Sun’s Java Tutorial für Internationalization:– http://java.sun.com/docs/books/tutorial/i18n/
Messages Labels on GUI components Online help Sounds Colors Graphics Icons Dates Times Numbers Currencies Measurements Phone numbers Honorifics and personal titles Postal addresses Page layouts
Zusammengesetzte Texte:
Integer fileCount;
...
String diskStatus = "The disk contains " + fileCount.toString()
+ " files.";
Diese Beispiel stellt ein Problem dar, weil die Position der Zahl nicht in allen Sprachen gleich ist. Solche Meldungen sollten daher vermieden werden.
Resource Bundles:
Diese Technik ist für Webanwendungen nur bedingt geeignet, da zu viel I/O generiert wird. Besser ist ein Token-Modell wie im folgenden beschrieben.
Der Applikationsserver fügt den Text in der aktuellen Sprache dynamisch in die Seite ein
Beispielhafter Aufruf des Custom Tags:– <title><sp:translate language="<%=language%>" region="<%=region%>"
token="title_home" /></title>
Text für Listelemente erfordert etwas mehr Code, speziell wenn in der jeweiligen Sprache sortiert werden soll – DHTML kennt keinen einfachen Weg zum Umsortierten einer List Box– Daher muss die Datenbankabfrage mit einem ORDER BY die richtige
Übersetzungen wird nicht in Kontext gemacht, was oft zu Fehlübersetzungen führt– Erfordert eine zusätzliche Qualitätssicherungsphase– Wer viel Zeit und Geld hat, kann ein Inline-Übersetzungstool schreiben
Bestimmte Textelemente kommen häufig vor und werden mehrfach und sogar unterschiedlich übersetzt– Übersetzung hängt manchmal vom Kontext ab– Mehrfache Übersetzung ist mehr Arbeit– Schlampigkeit der Übersetzer kann zu unerwünschten ‘Varianten’ des