Gefahren und Fallen beim Umgang mit APEX Translations

In der Hoffnung, Ihre Arbeit etwas zu erleichtern und Zeit zu sparen möchte ich Ihnen hier einige Hinweise, Tipps und Tricks mitgeben.

Themen

  • Änderungen an der Anwendung werden mir nicht angezeigt.
  • Interne Messages und dynamische Übersetzungen werden nicht in das XLIFF-File exportiert.
  • Umlaute werden im XLIFF-File als Sonderzeichen dargestellt.

Änderungen an der Anwendung werden mir nicht angezeigt.

Es gibt eine Tücke beim Umgang mit dem APEX Übersetzungsmechanismus, der mir persönlich immer wieder Probleme bereitet.

Ich habe eine Änderung durchgeführt, führe die Anwendung aus bzw. teste meine Änderung, aber meine Änderungen sind nicht zu sehen bzw. wirken sich nicht aus.

Beispiel:

Änderung des SELECT-Statements für einen Report

oder irgendeine Eigenschaft eines Items verändert.

Ursache

Wenn ich eine Übersetzung erzeuge, wird von APEX intern eine neue Application erzeugt. D.h. wenn ich die Anwendung mit der Primary Language (bei mir „English“) ausführe, wird die Primary Application ausgeführt (bei mir z.B. Application-ID „150“. Wechsle ich die Sprache nun auf „Deutsch“ (bei mir ID „1501“), dann wird nicht mehr die Application 150, sondern die 1501 ausgeführt. Da APEX nun auch gewisse Codestellen innerhalb der übersetzten Application speichert, werden diese nicht direkt mit aktualisiert. D.h. meine Änderung ist nur innerhalb der Primary Application verfügbar. Alle Übersetzungen müssen neu durchgeführt werden, damit dort auch die Änderungen aktiv werden.

TIPP!

Wenn Sie Änderungen an der Anwendung machen, stellen Sie in dem Browser, in dem Sie testen, die Sprache der Primary Language ein oder wählen Sie im Browser eine Sprache, zu der es definitiv keine Übersetzung gibt. In diesem Falle wird immer die Primary Application verwendet.

Testen Sie dann Ihre Änderungen und wenn alles funktioniert, führen Sie alle Übersetzungen nochmal aus. Danach sollte alles funktionieren.

Interne Messages und dynamische Übersetzungen werden nicht in das XLF-File exportiert

Eine der Hauptursachen, dass interne Messages oder dynamische Übersetzungen im XLF-File nicht eingetragen sind, ist eine falsche Definition der Sprache. Die Sprache, die bei der Application-Definition (Globalization) eingetragen ist, muss mit der bei dem Übersetzungstext angegebenen absolut übereinstimmen.

Wenn Sie z.B. in der Definition „English (United States) (en-us)“ und beim Erzeugen „English (en)“ angeben, funktioniert es nicht.

Prüfen Sie also, dass überall die gleiche Sprache angegeben wurde und korrigieren es ggf..

Deutsche Umlaute werden in der Anwendung als Sonderzeichen dargestellt

Das übliche Problem bei deutschsprachigen Anwendungen: Umlaute werden als Sonderzeichen dargestellt. Was tun?

Generell gilt für HTML-Anwendungen, HTML-Encodings mit der Notation „ä“, „ü“, etc. zu verwenden, damit auch wirklich unter allen Umständen und in allen Browsern die richtigen Zeichen dargestellt werden.

In Oracle APEX 4.0 gibt es jetzt aber dummerweise ein kleines Problem damit.

Ich lade das XLIFF-File hoch (über „Shared Components“ -> „Translate“ -> „Apply XLIFF translation…”), klicke auf das File, um es anzuwenden und zu veröffentlichen und nun kommt folgender Fehler:

ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing LPX-00118: Warning: undefined entity "uuml" Error at line 63

LÖSUNG!

Oracle hat Probleme mit der einfachen „&“-Notation. Damit alles richtig funktioniert, müssen wir das „&“ ebenfalls encoden.

Beispiel: Wir möchten den Text „Löschen“ encoden.

Falsch: Löschen

Richtig: Löschen      (wir müssen das „&“ ebenfalls encoden)

Wenn Sie alle Umlaute im XLIFF-File so encoden, sollte das Importieren und Veröffentlichen funktionieren und die Umlaute in Ihrer Anwendung korrekt dargestellt werden.

Schreibe einen Kommentar