Stereotyp 'RUIPropertiesLibrary'

Sie richten eine Rich-UI-Eigenschaftenbibliothek (Stereotyp RUIPropertiesLibrary) ein, wenn Sie anzeigbaren Text aus externen Dateien abrufen wollen, um den Text nicht in der Rich-UI-Anwendung fest codieren zu müssen. Der allgemeine Mechanismus wird im Abschnitt Verwendung von Eigenschaftendateien für anzeigbaren Text beschrieben. Sie können auch eine implizite Funktion in einer Rich-UI-Eigenschaftenbibliothek verwenden, um Werte in eine beliebige Zeichenfolge einzusetzen.

Das folgende Beispiel zeigt eine Rich-UI-Eigenschaftenbibliothek:
Library myLibrary type RUIPropertiesLibrary {propertiesFile="myFile")
   entryForInputRequired STRING;
   entryForOthers STRING;
   someText STRING;
end 

Jeder Wert, der direkt in einer Deklaration zugeordnet wird (z. B. someText String = "Click!";) hat keine Wirkung. Jeder Laufzeitwert kommt aus einer externen Datei, mit einer Ausnahme: Wenn die Datei einen bestimmten Eintrag nicht enthält (z. B. wenn die Datei keinen Eintrag für someText enthält), ist der Wert während der Ausführung das Zeichenfolgeäquivalent des Variablennamens (z. B. "someText").

Eigenschaft 'propertiesFile'

Die Eigenschaft propertiesFile gibt den Stammnamen der Datei an. Die Datei (bzw. die Dateien, wenn mehrere Übersetzungen verfügbar sind) muss sich direkt im Verzeichnis "WebContent/properties" des Projekts befinden. Fügen Sie keine der folgenden Details in den Stammnamen ein:
  • Pfadinformationen wie "properties/myFile"
  • Bindestriche
  • Übersetzungsspezifische Informationen wie "en_US"
  • Dateierweiterung, die unbedingt properties sein muss

Der Standardwert für propertiesFile ist der Name der Bibliothek, in diesem Beispiel "myLibrary".

Funktion 'getMessage'

Jede RUI-Eigenschaftenbibliothek enthält implizit die Funktion getMessage, mit der Sie Einfügungen hinzufügen können, wenn Sie eine Nachricht aus der Eigenschaftendatei oder aus einer Zeichenfolge in Ihrem Code auswählen. Zum Beispiel erfordert die folgende Nachricht in einer Eigenschaftendatei zwei Einfügungen:
someText=Promote {0} in the {1} department
Im folgenden Beispielcode wird die Zeichenfolge "Promote Jeff in the Sales department" in eine Textbezeichnung geschrieben:
employeeName, departmentName String;
employeeName = "Jeff";
departmentName = "Sales";

myLabel TextLabel {text = 
   myLibrary.getMessage(myLibrary.someText, [employeeName, departmentName]);
Ein alternativer Aufruf hat dieselbe Wirkung wie der obige, greift jedoch nicht auf eine Eigenschaftendatei zu:
myMessage STRING = "Promote {0} in the {1} department";
myLabel TextLabel {text = 
   myLibrary.getMessage(myMessage, [employeeName, departmentName]); 
Die Funktionssignatur sieht wie folgt aus:
getMessage(baseMessage STRING in, inserts STRING[] in) returns (fullMessage STRING);
baseMessage
Eine Zeichenfolge oder ein Feld in einer RUI-Eigenschaftenbibliothek.
inserts
Eine Feldgruppe von Zeichenfolgen, wobei das erste Element eine Einfügung für den Platzhalter {0}, das zweite Element eine Einfügung für den Platzhalter {1} usw. bereitstellt.
fullMessage
Die Basisnachricht mit möglichst vielen aufgelösten Platzhaltern.
Die Einfügungen ('inserts') werden in aufsteigender Reihenfolge mit Beginn bei 0 angegeben. Die Platzhalter in der Nachricht können eine beliebige Reihenfolge haben und müssen nicht in aufsteigender Reihenfolge angegeben werden. Wenn eine Einfügung einem Platzhalter der Nummer nach nicht entspricht, wird die Einfügung nicht verwendet. Wenn ein Platzhalter nicht aufgelöst wird, wird der Platzhalter selbst in die zurückgegebene Nachricht eingefügt. Beispiel: Die zurückgegebene Nachricht lautet im folgenden Fall "Promote Jeff in the {1} department":
employeeName STRING = "Jeff";
myMessage STRING = "Promote {0} in the {1} department";
myLabel TextLabel {text = 
   myLibrary.getMessage(myMessage, [employeeName]); 

Sie können die Funktion getMessage nicht verwenden, wenn Sie eine Validierungs- oder Formatierungsnachricht überschreiben wollen. Sie können keine Einfügungen an eine solche Nachricht übergeben.


Feedback