Rich-UI bietet die Möglichkeit, anzeigbaren Text in einer externen Datei zu definieren, die während
der Ausführung verwendet wird. Text auf diese Weise zu definieren kann zum Beispiel die folgenden
speziellen Gründe haben:
- Überschreiben der Laufzeitnachrichten, die standardmäßig für fehlgeschlagene Eingabevalidierungen
oder für falsche Formatierungen von Ein- oder Ausgaben verfügbar sind
- Zuordnen von Text für Widgets, ohne diesen Text in der Rich-UI-Anwendung fest zu codieren
- Anzeigen von Text in der einen oder anderen Sprache, sodass der Code breitere Verwendungsmöglichkeiten bietet
Validierungs- oder Formatierungsnachrichten überschreiben
Wenn Sie Validierungs- oder
Formatierungsnachrichten überschreiben wollen, gehen Sie wie folgt vor:
- Stellen Sie sicher, dass Sie den Controllermechanismus verwenden, der in
Rich-UI - Validierung und Formatierung beschrieben wird.
- Erstellen Sie eine Rich-UI-Eigenschaftenbibliothek, d. h. einen Bibliotheksabschnitt
mit dem Stereotyp RUIProperties, wie in Stereotyp 'RUIPropertiesLibrary' beschrieben. Im nachfolgenden Beispiel ist der Bibliotheksname myLibrary und die Bibliothek enthält
Deklarationen von Zeichenfolgen mit den Namen entryForInputRequired und
entryForOthers.
Bei diesen Variablennamen muss die Groß-/Kleinschreibung beachtet werden.
- Geben Sie in einem Rich-UI-Handler oder einem anderen Code die Eigenschaft validationPropertiesLibrary in
einer Abschnittsdefinition oder einer Variablendeklaration zusammen mit anderen Validierungs- und
Formatierungseigenschaften an. Das folgende Beispiel zeigt eine solche Deklaration:
name STRING {inputRequired = yes,
lowercase = yes,
inputRequiredMsgKey = "entryForInputRequired",
typeChkMsgKey = "entryForOthers",
validationPropertiesLibrary=myLibrary };
Die Eigenschaft validationPropertiesLibrary
wird nur verwendet, wenn Sie Validierungs- und Formatierungsnachrichten überschreiben.
- Richten Sie eine Eigenschaftendatei ein und fügen Sie Einträge (Name/Wert-Paare) ein, bei denen die Namen
den Werten von MsgKey-Eigenschaften entsprechen.
In diesem Beispiel enthält die Eigenschaftendatei die folgenden Einträge:
entryForInputRequired=You must specify a value
entryForOthers=Your input is incorrect
someText=Not mentioned
Die Eigenschaftendatei ist eine Textdatei. Die Eintragsnamen sind von
der Groß-/Kleinschreibung abhängig und nur nützlich, wenn sie mit einer Zeichenfolgedeklaration in der
Rich-UI-Eigenschaftenbibliothek übereinstimmen.
Für das gezeigte Beispiel gilt Folgendes:
- Ein Fehler wegen erforderlicher Eingabe führt während der Ausführung zur Anzeige der Nachricht "You must
specify a value", die durch den Namen entryForInputRequired identifiziert wird.
- Eine Eingabe eines Großbuchstabens während der Ausführung führt ebenfalls zur Anzeige der Nachricht
"Your input is incorrect." Zu diesem Ergebnis kommt es, weil der Wert der Eigenschaft
typeChkMsgKey als Antwort auf eine Reihe von Fehlern verwendet wird; in diesem Fall
als Antwort auf eine Benutzereingabe (der Großbuchstabe), die von der Eigenschaft 'lowercase'
nicht zugelassen wird.
Die folgenden Regeln erläutern das oben beschriebene Verhalten:
- Für ein bestimmtes Datenfeld können Sie die Standardnachrichten überschreiben, die allen folgenden
Eigenschaften zugeordnet sind:
- inputRequired
- minimumInput
- validValues
Die Überschreibung hängt von einer der folgenden drei
"MsgKey"-Eigenschaften ab: inputRequiredMsgKey, minimumInputMsgKey und validValuesMsgKey.
- Für ein bestimmtes Datenfeld können Sie außerdem eine einzelne Überschreibung für Fehler
angeben, die sich auf eine der folgenden Eigenschaften beziehen:
- currency
- currencySymbol
- dateFormat
- fillCharacter
- isBoolean
- isDecimalDigit
- isHexDigit
- lowercase
- numericSeparator
- sign
- timeFormat
- timestampFormat
- uppercase
- zeroFormat
Die einzelne Überschreibung greift ebenfalls auf die
Eigenschaft typeChkMsgKey zurück.
Text zu Widgets zuordnen
Der Rich-UI-Mechanismus für das Anzeigen von Text aus einer
externen Datei basiert unabhängig vom Zweck des Texts immer auf der Verwendung einer
Rich-UI-Eigenschaftenbibliothek.
Die folgenden Aussagen treffen zu, wenn Sie die externe Datei aus anderen Gründen als dem Überschreiben
einer Standardnachricht verwenden:
Sie können auch die
Bibliotheksfunktion getMessage verwenden, um Einfügungen in eine Zeichenfolge
innerhalb Ihres Codes bereitzustellen. Details zur Verwendung von Einfügungen finden Sie in
Stereotyp 'RUIPropertiesLibrary'.
Text in der einen oder anderen Sprache anzeigen
Ein anzeigbarer Wert kommt aus
einer Eigenschaftendatei, deren Name einen Stamm (z. B. myLibrary) hat und eine
Ländereinstellung enthält, das heißt einen Code, der eine natürliche Sprache identifiziert. Zum
Beispiel ist en die Ländereinstellung, die Englisch darstellt. Der Dateiname
myLibrary-en verweist auf eine Eigenschaftendatei, die englischen
Text bereitstellt.
Jeder Dateiname hat einen Stammnamen und die Erweiterung
.properties. Die Ländereinstellung wird am Ende des Stammnamen und vor der Erweiterung angegeben.
Ländereinstellungen bestehen aus einer, zwei oder drei Kennungen, wobei der ersten ein Bindestrich vorangestellt
wird und den anderen (sofern vorhanden) ein Unterstreichungszeichen vorangestellt wird. Jede weitere Kennung
nach der ersten bietet die Möglichkeit, eine Sprache näher zu spezifizieren. Insbesondere können Sie den
Dialekt, die Variante oder die geografische Heimat einer Sprache angeben.
Die Kennungen sind der
Sprachencode, der Landescode und der Variantencode:
- Zu den Sprachencodes gehören en für Englisch und es für Spanisch. Der Sprachencode
entspricht in der Regel dem Standard ISO-639 (ISO, International Organization for Standardization).
- Der Landescode gibt ein Land an, in dem der Dialekt der Sprache gesprochen wird. Der Landescode US
gibt zum Beispiel die Vereinigten Staaten an, der Landescode GB gibt Großbritannien an. Auf diese Weise kann eine
Datei für amerikanisches Englisch den Namen myLibrary-en_US.properties erhalten, während
eine Eigenschaftendatei für britisches Englisch den Namen myLibrary-en_GB.properties erhalten kann.
Der Landescode entspricht in der Regel dem ISO-Standard ISO-3166.
- Der Variantencode definiert einen spezielleren Dialekt oder eine bestimmte Variante der Sprache
in der Eigenschaftendatei. Zum Beispiel könnten Sie die Variantencodes A und B verwenden, um zwei
verschiedene Varianten des in Norwegen gesprochenen Norwegisch zu unterscheiden. Diese beiden Dateien könnten die Namen
myLibrary-no_NO_A.properties und myLibrary-no_NO_B.properties erhalten.
Alternativ können Sie einen Standardtyp von Norwegisch als Ländereinstellung 'no_NO' definieren und eine Variante
als 'no_NO_B' definieren. Der Variantencode ist für einen Anbieter oder Browser spezifisch.
HTML-Dateien und zugehörige Eigenschaftendatei implementieren
Sie können mehrere
HTML-Dateien für eine bestimmte Rich-UI-Anwendung implementieren, d. h. eine für jede Sprache, die
unterstützt werden soll. Der Benutzer fordert die HTML-Datei für eine bestimmte Ländereinstellung an, indem
er die HTML-Datei über den Namen aufruft, zum Beispiel infolge eines Klicks auf einen Hypertext-Link, den
Sie bereitstellen. Das folgende Beispiel zeigt den HTML-Code, der die deutsche Version der Datei
'MyApplication.html' von der Website 'www.example.com' aufruft, wenn eine deutsche Version implementiert
wurde:
<a href="www.example.com/MyApplication-de.html">German version</a>
Sie
speichern die Eigenschaftendateien im Ordner 'WebContent/properties' Ihres Projekts. Der Stamm des Namens der
Eigenschaftendatei (z. B. myLibrary) muss der Name sein, der in der Eigenschaft
propertiesFile in der Rich-UI-Eigenschaftenbibliothek angegeben ist.
Der EGL-Implementierer
stellt sicher, dass die HTML-Datei eine Eigenschaftendatei für jede Rich-UI-Eigenschaftenbibliothek
angibt, auf die in Ihrer Anwendung verwiesen wird. Die folgenden Regeln geben an, wie der Dateiname für eine
bestimmte Sprache ermittelt wird:
- Wenn der Name einer verfügbaren Datei einer Ländereinstellung (Locale) genau entspricht, wird der Name
dieser Datei angegeben.
- Andernfalls gibt der EGL-Implementierer eine Datei an, deren Name der Ländereinstellung möglichst nahe
kommt. Beispiel: Wenn die erforderliche Ländereinstellung 'no_NO_B' ist, der Name der einzig verfügbaren
Datei für Norwegisch jedoch myLibrary-no_NO.properties ist, wird der Name der verfügbaren
Datei angegeben. Wenn keine Eigenschaftendatei für die Sprache Norwegisch verfügbar ist, wird der Name
der Standardeigenschaftendatei angegeben. Der Name der Standarddatei enthält keine Ländereinstellung,
wie zum Beispiel der Name myLibrary.properties.
Die Implementierung schlägt
fehl, wenn keine Eigenschaftendatei für eine bestimmte Rich-UI-Eigenschaftenbibliothek verfügbar ist. Zur
Vermeidung eines solchen Fehlers kann es sinnvoll sein, eine Standardeigenschaftendatei für jede Bibliothek
einzuschließen.
Mit dem EGL-Implementierungsdeskriptor arbeiten
Über die Registerkarte
'Rich-UI-Implementierung' im Editor für EGL-Implementierungsdeskriptor bereiten Sie eine Rich-UI-Anwendung
zur Installation auf einem Anwendungsserver vor. Die Ländereinstellungen, die auf dieser Registerkarte
angegeben sind, werden aus den Rich-UI-Vorgaben abgeleitet, in denen Sie Einträge hinzufügen oder entfernen
können:
- Sie können einen Eintrag für eine Ländereinstellung hinzufügen oder entfernen, die in Rich-UI allgemein
verfügbar ist. Beispiel: en_US für amerikanisches Englisch. Wenn Sie eine solche Ländereinstellung im
Implementierungsdeskriptor auswählen, können Sie die folgenden Anwendungskomponenten in die implementierte
Ausgabe einschließen:
- Eine ländereinstellungsspezifische Eigenschaftendatei, die Sie bereitstellen (sofern zutreffend)
- Ländereinstellungsspezifische Laufzeitnachrichten, d. h. Systemnachrichten, die als Antwort
auf Situationen angezeigt werden, die vom EGL-Laufzeitcode automatisch behandelt werden.
- Sie können einen Eintrag hinzufügen oder entfernen, der eine neue Ländereinstellung darstellt. Jede
neue Ländereinstellung ist nur für einen Zweck verfügbar: Einschließen einer ländereinstellungsspezifischen
Eigenschaftendatei, die Sie bereitstellen. Wenn Sie eine Ländereinstellung definieren, müssen Sie außerdem
eine Ländereinstellung angeben, die in Rich-UI allgemein verfügbar ist. Diese allgemein verfügbare
Ländereinstellung dient nur einem Zweck: Sicherstellen, dass EGL-Systemnachrichten für die angegebene
Ländereinstellung während der Ausführung verfügbar sind.