APEX Translation

Um der Globalisierung Rechnung zu tragen ist es immer öfter notwendig Applikationen in verschiedenen Sprachen anzubieten. Das Schöne ist, mit APEX ist das möglich. Zu diesem Thema wurden im Laufe der Zeit bereits einige Blogs geschrieben. Ich möchte hier auf Multilinguale Anwendungen mit Oracle APEX verweisen, in dem verschiedene Möglichkeiten zur Übersetzung diskutiert werden.

Übersetzungsprozess mit APEX

1. Definition der Primary Language

In den Application Properties wird im Reiter Globalisation neben der Primärsprache definiert, unter welchen Voraussetzungen die Applikation in einer anderen Sprache angezeigt wird.

Aextrans Application Properties

Die Primary Language soll jene Sprache sein, in der die Applikation als erstes ausgeliefert (deployed) wird, bzw. jene Sprache, die für Sie am Wichtigsten ist. Diese Sprache dient auch als Fall-Back, d.h. es werden Texte in der Primärsprache angezeigt, wenn für die aktive Sprache keine Übersetzung vorhanden ist.

In „Application Language Derived From“ wird festgelegt, von welchen Einstellungen die Sprache abhängt. Ob aufgrund des Browsers, aufgrund Items oder der Spracheinstellungen in der APEX-Session.

Translate Application

In „Shared Components“ gibt es unter „Globalisation“ den Link „Translate Application.“ Hier ist step-by-step dargestellt, wie der Ablauf einer Übersetzung ist. Für jede Sprache wird in APEX eine eigene (Schatten-)Applikation erzeugt, die eine Kopie der originalen Applikation ist, wobei die Texte je nach Sprache geändert werden können. Je nachdem in welcher Sprache die Applikation dargestellt werden soll, wird somit intern eine andere Applikation angezeigt, in der URL erkennt man aber keinen Unterschied. Da die Schattenapplikationen in APEX nicht editiert werden können, müssen die Kopien auch nach Code-Änderungen erneut erstellt und deployed werden. Daher sollte der Schritt des Übersetzens am Schluss der Entwicklung einer Applikation stehen. Hierbei ist zu beachten, dass das Übersetzen nur am Entwicklungssystem möglich ist.

ApextransHow to translate

2. Definition der Sprachen, in die die Applikation übersetzt werden soll

Als erster Schritt werden alle Sprachen definiert, in die die Applikation übersetzt werden soll. Es kann aber jederzeit eine weitere Sprache hinzugefügt werden.

Die ID für diese Schattenappliaktion wird manuell definiert und muss eindeutig sein. Eine Möglichkeit zur Vergabe der IDs ist zur ID der Hauptapplikation 01,02,03.. hinzuzufügen. Angenommen die Applikation, die übersetzt werden soll, hat die ID 1616, so hätte z.B. die Übersetzung ins Deutsche die ID 161601, ins Italienische 161602 usw.

3. Kopieren der übersetzbaren Texte

Nun werden pro Sprache alle übersetzbaren Texte ins Repository kopiert. Dazu startet man ‚Seed translatable text to translation repository‘. Dieser Schritt muss für alle Sprachen durchgeführt werden.

4. Download XLIFF-File

XLIFF ist ein spezielles XML-Format für den Austausch von Übersetzungsdaten. In Schritt „Download XLIFF translation files from translation repository“ kann das File entweder für die ganze Applikation, oder für einzelne Seiten erzeugt werden. Der Export kann entweder alle übersetzbaren Texte beinhalten, oder nur solche, die seit dem letzten Publish neu sind oder geändert wurden.

Apextrans XLIFF

Es wird in unserem Fall ein File f1616_161601_en_de.xlf erzeugt. Im File wird der originale Text (source) und der Ziel-Text (target) angezeigt. Nun können die Texte übersetzt werden, wobei im Target-Tag die Übersetzungen eingetragen werden.

Apextrans XLIFF Trans

4. Upload Übersetzungen

Nachdem alle Texte übersetzt sind, wird das File wieder in Apex eingespielt. Dazu werden in „upload and apply XLIFF translation files to translation repository“ alle übersetzten Files upgeloaded. Danach werden diese Files der jeweiligen Schattenapplikation zugeordnet, d.h. in diesem Schritt werden die Übersetzungen in die Repository-Tabellen geschrieben, die Übersetzungen sind noch nicht in der Applikation sichtbar. Hier ein Hinweis: Zusätzlich zur Zuordnung der Sprache nicht vergessen, die Checkbox anklicken und erst dann „Apply checked“ ausführen.

5. Publish Translations

Um die übersetzten Texte in den Schattenapplikationen zu publizieren ist als letzter Schritt ‚Publish‘ notwendig. Nun sind die Übersetzungen auch beim Start der Applikation sichtbar.

Im ganzen Ablauf gibt es bei allen Anzeigen der Schattenapplikationen immer die Spalte „Requires Synchronisation“. Diese wird mit Publish auf No gesetzt und zeigt an, ob alle Schattenapplikationen am aktuellen Stand sind.

APEXTRANS requires synchronisation

Im nächsten Blog werden wir uns die Frage stellen, ob es zu diesem Standard-Apex-Translation-Mechanismus eine Erweiterung gibt, die das Übersetzen von Applikationen erleichtert.