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

Slides:



Advertisements
Ähnliche Präsentationen
DI Christian Donner cd (at) donners.com
Advertisements

Be.as WEB Technologie
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Agenda DataAssist e.K. Probleme heutiger Ansätze der Netzwerkdokumentation Management der Netzwerkdokumentation Management von Rechnern Der NetDoc Server.
Internet Applikationen – Java und.Net Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.
:33 Architektur Moderner Internet Applikationen – Prolog Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
Internet Applikationen – Search Engines Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner Internet Applikationen.
DI Christian Donner cd (at) donners.com
- 0 - Sicherheit Copyright ©2001 Granitar Incorporated. All rights reserved. Architektur Moderner Internet Applikationen TU Wien/Ausseninstitut.
Inhalt – Technische Grundlagen
:33 Internet Applikationen – Hard und Softwareplattform Copyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
:35 Architektur Moderner Internet Applikationen – Sonderthema 1 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
:33 Architektur Moderner Internet Applikationen – Sonderthema 4 Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur.
:33 Architektur Moderner Internet Applikationen – Hard- und Software Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur.
Kurze Einführung in ASP
1-1 Schlank und schnell zum Datawarehouse Marc Bastien Oracle Deutschland GmbH BTW Leipzig,
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Vorstellung von PaderWAVE Generierung von Web-Anwendungen aus visuellen Spezifikationen, SS04 Projektgruppe der AG Kastens.
HTML - Einführung Richard Göbel.
Java: Grundlagen der Sprache
Internetstruktur Das Internet besteht aus vielen Computern, die weltweit untereinander vernetzt sind.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Introducing the .NET Framework
Einführung in Visual C++
Tobias Högel & Dennis Böck,
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Jetzt lernen wir.
ODBC (Open Database Connectivity)
Automatische Übersetzungen mit Google
Einstellungen im Web für Outlook
Gegenstand EDV Thema: Informative Webseiten
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
2007 Office - Bestellung Backup Medium -Schritt für Schritt Anleitung- Hinweis: Die Bildausschnitte wurden mit Windows Vista Ultimate (Aero Oberfläche)
JavaScript.
Warum brauche ich ein CMS – Content Management System?
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Basiswissen für Partner und interessierte Kunden Technologie.
Wo finde ich Meta-Tags…? Was sind Metatags…? Welche Meta-Tags sind am beliebtesten…? Sprachen von Meta-Tags…? Was ist eine Profildatei…? VTAB-09 Fenster.
Reasoner Semantische Interoperabilität
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Folgendes kann missbraucht werden: formulare unverschlüsselte login-informationen ungeschützte includes SQL-injection reto ambühler
EP Media Group SiteKist CMS Version 6.9. ©2014 EP Media Group Internet:
Einrichtung eines Data-Warehouse Servers
PHP Basic.
Grundlagen der Kommunikation in Verbindung mit der Codierung von Daten
1 Copyright 2005 SCADA SOFT AG WizReport XL Professional Version 6 Produkte Übersicht Peter Schöttli.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Datentypen: integer, char, string, boolean
Suchmaschinen.
Auf ins Web!. Das World Wide Web 1990 in Genf am Hochenergieforschungszentrum CERN Ziele: neuer wissenschaftlicher Informationsaustausch über das Internet.
Wie funktionieren Internetseiten? Html und Co – Teil 2 Heimo Reiter.
Willkommen zum Brückensemester
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Semantic Web.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Bern University of Applied Sciences Engineering and Information Technology Documentation generator for XML-based description standards Ausgangslage: Die.
Datenbanken im Web 1.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Florian Hutter & Nicole Waibel
ASCII Was ist ein ASCII Code?.
ARIS Web Publisher Schnelle und weltweite Informationsbereitstellung Additional Release.
IIS The microsoft way. © Windows NT Option pack optionale Server Komponenten IIS (Internet Information Server) Webserver von Microsoft.
Datentypen: integer, char, string, boolean
 Präsentation transkript:

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

: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?

: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

: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: –ISO (Westeuropea, unterstützt u.a. Deutsch ohne Euro-Symbol) –ISO (Westeuropea, enthält auch das Euro-Symbol) –SHIFT-JIS (Japanisch)

: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.

: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

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

: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

: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

: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: –

: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.

: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

: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

: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 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.

: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

: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

: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

: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

: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)

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