Text Messages zentralisieren Beschriftungen, Hinweise und Fehlermeldungen in einer APEX-Anwendung. Das erleichtert Übersetzungen und verhindert, dass derselbe Satz an vielen Stellen unterschiedlich gepflegt wird. Oracle APEX 24.2 ergänzt dafür eine erweiterte Substitutionssyntax: Text Messages können mit geschweiften Klammern referenziert und mit benannten Parametern befüllt werden.
1. Die neue Referenzsyntax
Angenommen, unter Shared Components → Text Messages existiert die Nachricht TEXT.MSG. In einem unterstützten Textfeld können Sie sie mit &{TEXT.MSG}. referenzieren. Im Vergleich zur älteren APP_TEXT$-Schreibweise ist der Bezug direkt als Text-Message-Name erkennbar.
Die Nachrichtennamen dürfen auch Sonderzeichen enthalten. Leerzeichen und eine schließende geschweifte Klammer gehören nicht in den Namen. Legen Sie deshalb ein konsistentes Schema fest, zum Beispiel ORDER.STATUS.OPEN oder VALIDATION.REQUIRED, und verwenden Sie dieselben Namen in allen Übersetzungen.
2. Werte als Parameter übergeben
Eine Text Message muss nicht statisch sein. Zwischen dem Namen und der schließenden Klammer können Sie benannte Paare übergeben. Ein Message-Text könnte etwa lauten: „Hallo %name, Ihre Bestellung ist %status.“ Die konkrete Message-Definition und die verwendeten Parameternamen sollten dabei gemeinsam versioniert und getestet werden.
Als Parameterwerte sind unter anderem Substitutionen aus der Session sowie literale Werte möglich. APEX escaped Substitutionen standardmäßig für HTML. Verwenden Sie einen RAW- oder HTML-Filter nur, wenn die Herkunft und der gewünschte Inhalt sicher kontrolliert sind. Eine Übersetzung darf nicht automatisch als vertrauenswürdiges HTML behandelt werden.
3. Sprache pro Kontext steuern
Die Syntax unterstützt den speziellen Parameter $lang, wenn eine Message gezielt in einer Sprache aufgelöst werden soll. Im Normalfall sollte APEX die Benutzersprache der Anwendung verwenden. Eine explizite Sprache ist dann sinnvoll, wenn ein Dokument, eine E-Mail oder ein Prozess unabhängig von der aktuellen UI-Sprache erzeugt werden muss.
Prüfen Sie bei jeder Sprache, ob die Platzhalter vorhanden sind. Ein deutscher Satz braucht eventuell eine andere Reihenfolge als die englische Version, die Parameternamen sollten aber stabil bleiben. So kann die Übersetzung den Satzbau ändern, ohne dass der aufrufende APEX-Code angepasst wird.
4. Migration und Kompatibilität
Die neue Syntax ist kein Grund, eine bestehende Anwendung sofort vollständig umzuschreiben. Inventarisieren Sie zunächst die bisherigen Text-Message-Referenzen und migrieren Sie wiederkehrende oder neu entwickelte Komponenten zuerst. Behalten Sie ältere Referenzen in unveränderten Bereichen, bis der Compatibility Mode und alle Zielumgebungen geprüft sind.
Testen Sie die Auflösung in Regionen, Labels, Buttons, Validierungen, Dynamic Actions und E-Mail-Templates. Achten Sie außerdem auf Zeilenumbrüche, Sonderzeichen und die Ausgabe in Dialogen. Wenn eine Message nicht gefunden wird, ist der resultierende Text meist weniger hilfreich als ein gezielter Test im betroffenen Kontext.
Praktische Checkliste
- Compatibility Mode auf 24.2 oder höher prüfen.
- Text Messages mit stabilen, übersetzbaren Namen anlegen.
- Neue Referenzsyntax mit
&{MESSAGE.NAME}.verwenden. - Parameter, Sprache und Output-Escaping bewusst festlegen.
- Alle unterstützten Komponenten und Sprachen vor dem Rollout testen.
Fazit
Die erweiterte Text-Message-Syntax in APEX 24.2 macht zentrale Anwendungstexte leichter lesbar und flexibler. Besonders bei mehrsprachigen Anwendungen lohnt sich der Einsatz, wenn Message-Namen, Parameter und Ausgabe-Escaping sauber definiert sind. Eine schrittweise Migration hält das Risiko gering und lässt bestehende Komponenten zunächst unangetastet.
Weiterführend: Text-Message-Substitutionen in APEX 24.2, die Dokumentation zu Text Messages und die Hinweise zum geänderten Verhalten.