Internationalisierung
Die Bezeichnungen in der Benutzeroberfläche des jadice web toolkit lassen sich mittels i18n in verschiedene Sprachen übersetzen. Das jadice web toolkit nutzt hierzu den Internationalisierungs-Support des GWT. Die Sprach-Mappings für die lokalisierten Versionen befinden sich an zwei Stellen:
-
Produktkern:
com.levigo.jadice.web.client.ui.i18n
-
Demos:
com.levigo.jadice.web.demo.common.client.ui.i18n
Dort findet sich jeweils deutsche und englische Sprachdateien mit der
Endung *Messages_de.properties
bzw. *Messages_en.properties
. Weitere
Sprachen können durch Hinzufügen weiterer namenskonformer
Properties-Dateien kundenspezifisch ergänzt werden. Zusätzlich ist in
den beiden Packages jeweils auch das zugehörige Interface für den
programmatischen Zugriff auf die lokalisierten Werte abgelegt.
Um die Internationalisierung zu aktivieren, muss in den einbindenden Projekten die Datei gwt.xml wie folgt ergänzt werden:
<!-- Bereitstellung der Sprachen englisch und deutsch -->
<extend-property name="locale" values="de,en" />
<set-property name="locale" value="de,en" />
<!-- Fallback- / Standardsprache = englisch -->
<set-property-fallback name="locale" value="en" />
Nachfolgend wird beispielhaft erläutert, wie zur EnterpriseDemo weitere Sprachen hinzugefügt werden können. Hierzu müssen die drei Dateien DemoMessages_de.properties,JadiceMessages_de und Enterprise_Messages_de.in die neue Sprache übersetzt werden und die Endungen der Dateien für die neue Sprache umbenannt werden. Gleiches gilt für die Datei EnterpriseMessages_de.properties. In den genannten Dateien müssen Sonderzeichen wie folgt escaped werden: Einem einfachen Anführungszeichen (') muss ein weiteres einfaches Anführungszeichen vorangestellt werden. Beispielsweise ist l'importazione zu l''importazione zu ändern. Die Sonderzeichen (zum Beispiel Zeichen mit Accent) sind mit dem jeweiligen UTF-8 Code zu ersetzen (zum Beispiel é mit U+00E9), sonst erscheinen bei Ausführung des Programms Ersetzungzeichen. Allgemeine Informationen zu Properties-Dateien können unter GWT Internationalisierung Dokumentation eingesehen werden.
Im Interface DemoMessages sind für jede neue Sprache die beiden folgenden Strings mit der passenden Endung hinzuzufügen:
public interface DemoMessages extends com.google.gwt.i18n.client.Messages {
String locale_de_abbreviated(); String locale_de();
}...
Die gwt.xml Dateien der Module webtoolkit-demo-enterprise (EnterpriseDemo.gwt.xml) sowie von webtoolkit-demo-common (DemoCommon.gwt.xml) sind wie oben beschrieben anzupassen.
Sämtliche in der EnterpriseDemo verwendeten Annotationsprofile sind anzupassen, das heißt alle, die sich in den Modulen webtoolkit-demo-common und webtoolkit-demo-enterprise befinden. Dort liegen sie jeweils im Ordner resources und dort im Ordner annotationConfigurations. In den Annotationsprofilen sind die Anführungszeichen und Akzente normal auszuschreiben, das heißt nicht durch UTF-8 zu ersetzen.
Die neu hinzugefügte Sprache kann ausprobiert werden, indem im Browser hinter die URL der Parameter für die zu verwendende Sprache hinzugefügt wird, zum Beispiel locale=it für Italienisch. Alternativ dazu kann ein neuer Button zum jadice web toolkit wie folgt hinzugefügt werden:
Das Menü für die Sprache der Enterprise-Demo wird in der Klasse
JadiceDocumentViewer angelegt. In der Methode
JadiceDocumentViewer.createMainMenu()
wird das Sprachenmenü
erstellt. Hier kann man analog zum Vorgehen für Deutsch und Englisch
einen neuen Eintrag für die hinzuzufügende Sprache in das Dropdown-Menü
hinzufügen.
Falls dem Menü auch ein Icon für die neue Sprache hinzugefügt werden soll, kann ein Icon erstellt werden. Dann die nachfolgenden Dateien im Modul webtoolkit-demo-enterprise ersetzen: jwt-icon-font.svg, jwt-icon-font.ttf, jwt-icon-font.woff und jwt-icon-font.woff2. Für das Icon in der neuen Sprache muss das Enum JWTIconFont ergänzt werden. In der Datei jwt-icon-font.css muss ein Eintrag für eine neue Klasse angelegt werden, analog zur Sprache Deutsch bzw. Englisch. Gegebenenfalls muss der Cache im Browser gelöscht werden, um die Icons zu aktualisieren. Allgemeine Informationen zu den IconFonts finden Sie unter IconFonts
Teil der EnterpriseDemo ist auch eine Beispielintegration für Audio und Video. Falls diese ebenfalls übersetzt werden soll, kann wie folgt vorgegangen werden:
Das Menü für die Beispielintegration Audio/Video kann in der Klasse
JadiceMediaViewer angepasst werden. In der Methode
JadiceMediaViewer.createMainMenu()
wird das Language Menu erstellt.
Hier kann man analog zum Vorgehen für Deutsch und Englisch einen neuen
Eintrag für die hinzuzufügende Sprache in das Dropdown-Menü hinzufügen.
In den Methoden JadiceMediaViewer.addFreezeFrames()
und
JadiceMediaViewer.fillVideoInfo()
sind die neuen Sprachen ebenfalls
zu ergänzen. Auch in die Dateien jwtaudio.mp3.json sowie
jwtvideo.mp4.json ist eine Übersetzung für die neue Sprache
hinzuzufügen.