Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

0 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.

Ähnliche Präsentationen


Präsentation zum Thema: "0 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner."—  Präsentation transkript:

1 0 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen 22.-24.4.2004 TU Wien/Ausseninstitut Internationalization und Localization DI Christian Donner cd (at) donners.com

2 1 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten.Einleitung 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?

3 2 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten.Definitionen Internationalisierung, Internationalization –Auch als I18N bezeichnet –Bezeichnet die Fähigkeit einer Applikation oder einer Website, im Wesentlichen folgende Eigenschaften anpassbar zu halten: Sprache (einschließlich semantischer Besonderheiten, Sortierreihenfolge etc.) Zeichensatz Datumsformat, Währung, Zahlenformat Lokalisierung, Localization –Auch als L10N bezeichnet –Bezeichnet die Anpassung einer Applikation oder einer Website an lokale Gegebenheiten

4 3 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten.Zeichensatzkodierung 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)

5 4 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Die Antwort: Unicode und UTF-8 Unicode ist ein Zeichensatz, der (theoretisch) einen Code für jedes Zeichen in der Welt enthält UTF-8 ist eine spezielle Kodierung von Unicode Zeichen (andere Kodierungen sind UTF-16 und UTF-32) Google z.B. verwendet UTF-8 als Standardkodierung Trotz aller Unzulänglichkeiten und Kritik scheinen sich Unicode und UTF-8 als Standard für mehrsprachige Webanwendungen zu etablieren Ein und die selbe Seite kann z.B. Inhalte in Deutsch, Englisch, Russisch und Japanisch korrekt anzeigen Java kodiert intern alle Strings in UTF-16. Auch Microsofts Produkte können Unicode verarbeiten.

6 5 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Voraussetzungen für die Verwendung von UTF-8 Ein Windows Font muss installiert sein, der die verwendeten Zeichen anzeigen kann Die Zuordnung von Fonts zu Zeichensätzen geschieht im Dialog Eigenschaften des Internet Explorer Die Installation von Locales erledigt dies automatisch Der Webserver und der Applikationsserver müssen einen UTF-8 kodierten Datenstrom senden Die Datenbank muß UTF-8 kodiert sein Falls Daten im Dateisystem abgelegt werden, müssen die Dateien ebenfalls UTF-8 kodiert sein

7 6 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Beispiel Solaris/Oracle/JSP

8 7 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. NLS in Oracle Queries 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, die nur französische Inhalte zuläßt

9 8 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Mögliche Problemstellen 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

10 9 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Java Locales 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) Suns Java Tutorial für Internationalization: –http://java.sun.com/docs/books/tutorial/i18n/

11 10 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Suns Checkliste 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.

12 11 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Code Reviews // ist ch ein Buchstabe? if ((ch >= 'a' && ch = 'A' && ch <= 'Z')) // ist target gleich candidate? String target; String candidate;... if (target.equals(candidate)) {... Falsch // ist ch ein Buchstabe? if (Character.isLetter(ch)) // ist target gleich candidate? String target; String candidate;... Collator myCollator = Collator.getInstance(); if( myCollator.compare(target, candidate) = 0 ) Richtig

13 12 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Was ist ein Token? Ein Token ist ein Platzhalter für Text Der Applikationsserver fügt den Text in der aktuellen Sprache dynamisch in die Seite ein Beispielhafter Aufruf des Custom Tags: – " region=" " token="title_home" /> 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 Sortierungfolge bereitstellen

14 13 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Where do you want to go today? Microsoft bietet umfangreiche Resourcen zum Thema auf http://www.microsoft.com/globaldev Microsoft veranstaltet ab 2004 sogar eine eigene Konferenzreihe (Microsoft Global Development Conference) Die Verwendung von String Resourcen ist weniger problematisch als Resource Bundles, kann aber auch durch ein eigenes Verfahren ersetzt werden.

15 14 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Mehrsprachige Inhalte Entgegen den Beteuerungen mancher Hersteller sind automatische Übersetzungstools immer noch nicht brauchbar Die Übersetzung von Inhalten, Navigationselementen etc muß daher weiterhin von Hand geschehen Es gibt Produkte, die bei diesem Prozess helfen können (z.B. Idioms World Server) Inhalte müssen Sprachinformation in den Metadaten haben

16 15 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Übersetzung einer Website - Localization z.B. Ausgangssprache = Englisch, Zielsprache = Deutsch Extrahieren aller Textelemente aus dem HTML-Code Tabellen mit Textelementen werden zur Übersetzung versendet Fertig übersetzte Tabellen werden in Datenbank gelesen Webseiten verwenden Token anstelle von Text. Ein Custom JSP Tag wird aufgerufen, um Textelemente in der jeweiligen Sprache anzuzeigen. Tabelle sollte nur 1x gelesen und dann im Hauptspeicher residieren

17 16 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Vorgangsweise für Localization Inhalte –kommen aus einer bestimmten Region z.B. ein Artikel aus dem Büro in Frankfurt –betreffen eine oder mehrere bestimmte Regionen z.B. den asiatischen Markt –interessieren Benutzer in einer oder mehreren bestimmten Regionen z.B. Europa und den USA –sind in einer Sprache verfaßt z.B. Deutsch und Englisch Der Content Manager bestimmt, für welche Regionen diese Inhalte angezeigt werden (basierend auf Sprache) Der Benutzer teilt der Anwendung mit, welche Region und welche Sprache ihn interessiert Die Applikation findet die Inhalte und zeigt sie an

18 17 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Mögliche Schwachstellen Ü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 selben Textes führen

19 18 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Design- und Architekturempfehlungen Verwendung von Unicode/UTF-8 Möglichst keine Texte in Grafiken verwenden Texte, die mehrfach vorkommen, sollten mehrere Token (Identifier) erhalten Seitenlayout auf die maximale Länge von Texten auslegen Keine kulturell problematischen Elemente verwenden (Landkarten)

20 19 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Vielen Dank für Ihre Aufmerksamkeit!


Herunterladen ppt "0 05.02.2003 21:35 Architektur Moderner Internet Applikationen – I18N, L10N Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner."

Ähnliche Präsentationen


Google-Anzeigen