Formatter-Instanzen für lokalisierte Unterzeichenfolgen verschachteln
Die Möglichkeit, in den aus Nachrichtenkatalogen abgerufenen Zeichenfolgen Teilzeichenfolgen für Variablen zu ersetzen, macht das Paket für lokalisierbaren Text besonders flexibel. Diese Flexibilität kann jedoch nur voll ausgeschöpft werden, wenn der Variablenwert selbst lokalisiert werden kann. Dies können Sie durch Verschachtelung von LocalizableTextFormatter-Instanzen erreichen.
Vorbereitende Schritte
Vorgehensweise
- Fügen Sie zum Nachrichtenkatalog Einträge hinzu, die den potenziellen Werten für die Teilzeichenfolge der Variablen entsprechen.
- Erstellen Sie im Anwendungscode eine LocalizableTextFormatter-Instanz für die Teilzeichenfolge der Variablen, die die erforderlichen Lokalisierungswerte definiert.
- Erstellen Sie eine LocalizableTextFormatter-Instanz für die Primärzeichenfolge, die eine Matrix mit der Formatter-Instanz für die Teilzeichenfolge der Variablen übergibt.
Beispiel
Die folgende Zeile eines englischen Nachrichtenkatalogs zeigt
einen Zeichenfolgeneintrag mit zwei Ersetzungen und Einträgen für die Unterstützung der lokalisierbaren Variablen mit dem
Index 0. (Die zweite Variable in der Zeichenfolge ist die Kontonummer und muss daher nicht
lokalisiert werden.)
successfulTransaction = The {0} operation on account {1} was successful. depositOpString = deposit withdrawOpString = withdrawal
Der folgende Code zeigt die Erstellung der verschachtelten
Formatter-Instanz und das Einfügen derselben (mit der Variablen für die Kontonummer) in die primäre
Formatter-Instanz:
public void updateAccount(String transactionType) { ... //Die Einzahlung ist erfolgt LocalizableTextFormatter opLTF = new LocalizableTextFormatter("BankingResources", "depositOpString", "BankingSample"); Object[] args = {opLTF, new String(this.accountNumber)}; ... LocalizableTextFormatter successLTF = new LocalizableTextFormatter ("BankingResources", "successfulTransaction", "BankingSample", args); ... successLTF.format(this.applicationLocale); ... }