Wert aus Sprachverwaltung
Wertauflöser - Kurzfassung
Zweck: Sucht nach einer Lokalisierung für eine gegebene Bundle/Resource-Kombination und gibt diese oder (als Fallback) den Standardwert zurück.
Im Server-Kontext (z. B. Ereignisbehandlungen) |
Im Client-Kontext (z. B. Client Workflow) |
|
|
Der Wert aus Sprachverwaltung-Resolver sucht nach einer Lokalisierung für eine gegebene Bundle/Resource-Kombination in der angegebenen Sprache und gibt diese oder (als Fallback) den Standardwert zurück.
Sofern die Lokalisierung bzw. der stattdessen zugewiesene Standardwert Referenzen auf Parameter ({0}, {1}, ...) enthält, werden - sofern vorhanden - die Rückgabewerte der für diese Parameter konfigurierten Wertauflöser eingesetzt.
Es wird kein spezifischer Eingabewert erwartet. Der Eingabewert des Wertauflösers dient allerdings als Bezugsobjekt für innerhalb konfigurierte Wertauflöser.
Konfiguration
►HINWEIS◄ Die Werte aller Text-Parameter des Wertauflösers können wahlweise per Direkteingabe (Standard) oder über Wertauflöser definiert werden. Ein Klick auf den kleinen grauen Pfeil links unten im Textfeld für die Direkteingabe schaltet zur Wertauflöser-Konfiguration um.
Parameter |
Beschreibung |
Beispiele |
Bundle |
Der hier eingegebene oder zur Laufzeit ermittelte Text muss mit dem Bundle Name eines Lokalisierungseintrags exakt übereinstimmen (inkl. Groß-/Kleinschreibung), damit der Eintrag zugeordnet wird. |
error de.lobster.scm.doc.Document DIRECTIONS |
Resource |
Der hier eingegebene oder zur Laufzeit ermittelte Text muss mit dem Resource Name eines Lokalisierungseintrags exakt übereinstimmen (inkl. Groß-/Kleinschreibung), damit der Eintrag zugeordnet wird. |
CUSTOM_myBigFatGreekError... für einen individuellen Fehlercode (im Bundle error) $name NE |
Standardwert |
Dieser Wert wird zurückgegeben falls für die Kombination von Bundle und Resource keine Lokalisierung zugeordnet ist. |
Es ist gute Praxis, hier den Wert von Resource einzutragen (evtl. sogar Bundle/Resource), damit beim Fehlen einer Lokalisierung am Rückgabewert erkennbar ist, wonach erfolglos gesucht wurde. |
Parameter |
Der Liste Parameter können per Klick auf das Ein Klick auf das ►HINWEIS◄ Abhängig vom Inhalt der Parameter kann es sinnvoll bzw. notwendig sein, deren Werte wiederum über den Wert aus Sprachverwaltung-Wertauflöser zu generieren. |
Die Standard-Lokalisierung für den Lokalisierungseintrag (Bundle/Resource): error/CORESYSTEM_BaseDataManager_accessDenied lautet für die Sprache "Deutsch": |
Statisch (Option) ►WICHTIG◄ Diese Parameter sind nur im serverseitigen Einsatz des Wertauflösers verfügbar (z. B. in einer Ereignisbehandlung). Clientseitig (z. B. in einem Client Workflow) steht nur die Aktuelle Sprache für Lokalisierungen zur Verfügung. |
Ist Option Statisch abgewählt (Standard), dann wird der Lokalisierungstext in der Sprache nachgeschlagen, die die Wertauflöser-Konfiguration für den Parameter Sprache zur Laufzeit angibt. Der Rückgabewert muss dabei vom Typ Sprache (Locale)sein. Ein Text, der eine Sprache über deren internen Namen identifizieren soll (z. B. fr), wird nicht automatisch umgewandelt.
Wird die Option Statisch ausgewählt, dann erscheint anstelle der Wertauflöser-Konfiguration für den Parameter Sprache ein Auswahlfeld, über das eine statische Auswahl für die Sprache vorgenommen werden kann.
Als Fallback für die Sprache gilt unabhängig von der Methode zur Definition die Aktuelle Sprache, also die Sprache, mit der die aktuelle Sitzung angemeldet ist. |
|
|
Beispiele
Einfaches Beispiel: Lokalisieren einer Meldung (Aktuelle Sprache)
Zu Beginn einer Sitzung soll ein Benutzer, der sich mit einer von mehreren besonders privilegierten Rolle anmeldet durch eine Pop-Benachrichtigung (vom Typ "Info") auf die verwendete Rolle hingewiesen werden.
Soweit für den Namen der verwendete Rolle eine Lokalisierung (für die Aktuelle Sprache) existiert, soll diese angezeigt werden. Anderenfalls soll der interne Rollenname (roleName) erscheinen.
Laufzeitbeispiel:
Diese Warnmeldung soll zu Beginn einer Sitzung erscheinen, wenn sich ein Benutzer mit der Rolle "Administrator für Dokumente" (intern: DocAdmin) anmeldet.
Konfiguration:
Eine Ereignisbehandlung, die auf das Ereignis "Client angemeldet" (s. Anmeldung (Ereignisse)) reagiert, stellt in der Prüfenden Regel fst, ob die Anmeldung eine der "besonders privilegierten Rollen" betrifft. Wie im Screenshot zu sehen, können die betreffenden Rollen in einer Rollenregel per Mehrfachauswahl buchstäblich "handverlesen" festgelegt werden. ►ANMERKUNG◄ Das Label in der Mehrfachauswahl zeigt die internen Rollennamen (roleName) unabhängig davon ob eine Lokalisierung vorliegt. |
|
Als einzige Aktion bei bestandener Regel wird muss eine Hinweis anzeigen (Popup)-Ereignisaktion konfiguriert werden:
►ANMERKUNG◄ Für den Parameter Schließen nach (Sekunden) wird hier der Wert 0 angegeben, damit die Warnmeldung "unbegrenzt" angezeigt bleibt (bzw. bis der Anwender sie schließt). Sie bleibt dann allerdings auch sichtbar, wenn ein Schnellwechsel zu einer anderen (ggf. weniger privilegierten) Rolle ausgeführt wird, für die keine neue Warnung erscheint. |
|
Komplexeres Beispiel: E-Mail in der Sprache des Empfängers lokalisieren
Wenn in Lobster Data Platform / Orchestration Entitäten besonders "sensibler" Typen (hier: Benutzerkonto, Firmenkonto oder Rolle) erstellt oder gelöscht werden, soll automatisch eine Benachrichtigung des zuständigen Administrators per E-Mail ausgelöst werden.
Die Benachrichtigung soll in der Sprache lokalisiert werden, die dieser Benutzer für die Anmeldung bei Lobster Data Platform / Orchestration nutzt.
Für unser Beispiel beziehen wir uns ausschließlich auf den "Betreff" der E-Mail.
Laufzeitbeispiel:
Der Screenshot rechts zeigt in der Vorschau für E-Mails den Betreff für eine E-Mail die beim Löschen einer Rolle mit der internen ID #3301 ausgelöst wird. Relevant für eine Lokalisierung sind im Betreff die folgenden Komponenten:
|
|
Zum Vergleich zeigt der Screenshot rechts ein Beispiel für eine Nachricht, die ohne Lokalisierung ausgegeben wurde.
|
|
Konfiguration:
Für die E-Mail-Benachrichtigung wird eine Ereignisbehandlung wie rechts abgebildet konfiguriert:
►HINWEIS◄ Nachfolgend wird nur die Lokalisierung für den "Betreff" der E-Mail im Detail ausgeführt. |
|
Der Text für den Betreff innerhalb der E-Mail-Versand-Ereignisaktion wird hier über einen Textverkettung-Wertauflöser schrittweise aufgebaut:
|
|
|
|
Alternative Konfiguration:
Bisher wird der Betreff für die E-Mail per Textverkettung nach dem folgenden Schema aufgebaut:
@EVENT
@ /
@ENTITYCLASS
@ #
@ID
@
Dasselbe Ergebnis kann allerdings auch durch die folgende Konfiguration erreicht werden, bei der anstelle der Verkettung der .Wert aus Sprachverwaltung v4.12.0-Wertauflöser verwendet wird, um die variablen Teilzeichenfolgen in einen vordefinierten Text als Parameter einzubinden:
{
0
} / {
1
} #{
2
}
Die folgende Konfiguration demonstriert diese Alternative für den Parameter Mail-Body-Erzeuger der E-Mail-Versand-Ereignisaktion:
Anstelle des Textverkettung-Wertauflösers wird in der rechts abgebildeten Konfiguration eine weitere Instanz des Wert aus Sprachverwaltung-Wertauflösers eingerichtet:
|
|
Laufzeitbeispiel: Wie ein Screenshot der E-Mail-Vorschau belegt, liefert diese Konfiguration für den "Mail-Body" denselben Text wie die oben gezeigte für den Betreff. Die "Textverkettung" per Standardwert wirkt sogar übersichtlicher und ist flexibler, v. a. wenn die Reihenfolge der Platzhalter für Parameter nachträglich geändert wird oder derselbe Parameter mehrfach "zitiert" werden soll. |
|
►ANMERKUNG◄ Falls der Mail-Body die im Betreff sehr knapp und strukturiert zusammengefasste Information etwas weniger "militärisch" wiedergeben soll, empfiehlt es sich einen eigenen Sprachverwaltungseintrag anzulegen, der die Parameter verwendet.
Servervorschlag:
Bundle |
Name |
Sprache |
Lokalisierung |
custom |
adminMail.Critical.Body |
DE |
Der guten Ordnung halber möchten wir Sie hiermit über das {0} der Entität #{2} des Typs {1} informieren. |
EN |
For the sake of orderliness, we would like to notify you of the {0} of {1} entity #{2}. |
Wie das Beispiel demonstriert, kann es auch vorkommen, dass die Lokalisierung in unterschiedlichen Sprachen aufgrund der Satzstellung die Parameter in unterschiedlicher Reihenfolge "zitiert".
Wenn man diesen Lokalisierungseintrag erstellt hat, kann man dessen Bundle/Resource-Kombination im Wert aus Sprachverwaltung-Wertauflöser für den Mail-Body-Erzeuger ergänzen.
►WICHTIG◄ Bisher wurde für den äußeren Wert aus Sprachverwaltung-Wertauflöser keine Sprache zugeordnet. Damit der parametrierbare "Textbaustein" in der passenden Sprache verwendet wird, muss hier noch die Definition für die Sprache aus einem der Parameter ergänzt werden (Feld lovale aus der Variable mailtoUser).