Klasse "LocalizableTextFormatter"

Die Klasse "LocalizableTextFormatter" im Paket "com.ibm.websphere.i18n.localizabletext" ist die primäre Programmierschnittstelle für die Verwendung des Pakets "localizable-text". Instanzen dieser Klasse enthalten die Informationen, die zum Erstellen sprachspezifischer Zeichenfolgen aus Schlüsseln und Ressourcenpaketen erforderlich sind.

Die Klasse "LocalizableTextFormatter" erweitert die Klasse "java.lang.Object" und implementiert die folgenden Schnittstellen:
  • java.io.Serializable
  • com.ibm.websphere.i18n.localizabletext.LocalizableText
  • com.ibm.websphere.i18n.localizabletext.LocalizableTextL
  • com.ibm.websphere.i18n.localizabletext.LocalizableTextTZ
  • com.ibm.websphere.i18n.localizabletext.LocalizableTextLTZ

Erstellung und Initialisierung von Klasseninstanzen

Die Klasse "LocalizableTextFormatter" unterstützt die folgenden Konstruktoren:
  • LocalizableTextFormatter()
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName)
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName, Object[] args)
Die LocalizableTextFormatter-Instanz muss bestimmte Werte, wie z. B. einen Ressourcenpaketnamen, einen Schlüssel und den Namen der Formatierungsanwendung haben. Wenn Sie diese Werte nicht durch Verwendung des zweiten, zuvor aufgelisteten Konstruktors übergeben, können Sie sie separat durch die folgenden Aufrufe festlegen:
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)

Sie können eine vierte Methode, setArguments(Object[] args), verwenden, um nach der Erstellung optionale Lokalisierungswerte festzulegen. Lesen Sie den Abschnitt Anwendungsspezifische Werte am Ende dieses Artikels. Ein Verwendungsbeispiel finden Sie im Artikel Komplexe Zeichenfolgen erstellen.

API für Textformatierung

Die format-Methoden in der Klasse "LocalizableTextFormatter" generieren eine Zeichenfolge aus einer Gruppe von Nachrichtenschlüsseln und Ressourcenpaketen, die auf einer Kombination aus Locale- und Zeitzonenwerten basieren. Jede Methode entspricht einem oder vier implementierten localizable-text-Schnittstellen. In der folgenden Liste sind die Schnittstellen aufgeführt, in denen die einzelnen format-Methoden definiert sind:
  • LocalizableText.format()
  • LocalizableTextL.format(java.util.Locale locale)
  • LocalizableTextTZ.format(java.util.TimeZone timeZone)
  • LocalizableTextLTZ.format(java.util.Locale locale, java.util.TimeZone timeZone)

Die format-Methode ohne Argumente verwendet die Werte "locale" und "time-zone", die als Standardwerte für die JVM (Java™ Virtual Machine) definiert wurden. Alle vier Methoden erstellen bei Bedarf LocalizableException-Objekte.

Position der Nachrichtenkataloge und des appName-Werts

Anwendungen, die mit dem localizable-text-Paket geschrieben wurden, können lokal oder fern auf Nachrichtenkataloge zugreifen. In einer verteilten Umgebung ist die Verwendung ferner, zentral abgelegter Nachrichtenkataloge angebracht. Alle Clients können dieselben Kataloge verwenden, und die Verwaltung der Kataloge wird vereinfacht. Die lokale Formatierung ist in Testsituationen nützlich und unter manchen Bedingungen geeignet. Wenn Sie die lokale oder ferne Formatierung unterstützen möchten, muss eine LocalizableTextFormatter-Instanz den Namen der Formatierungsanwendung anzeigen.

Wenn z. B. eine Anwendung eine Nachricht mit fernen Katalogen formatiert, wird die Nachricht tatsächlich von einer Enterprise-Bean auf dem Server formatiert. Obwohl das localizable-text-Paket den Code zur Automatisierung des Lookup der Formatter-Bean sowie Informationen zu den Gründen für einen Aufruf der Bean enthält, muss die Anwendung den Namen der Formatter-Bean kennen. Verschiedene Methoden in der Klasse "LocalizableTextFormatter" verwenden einen Wert, der mit appName beschrieben wird und auf den Namen der Formatierungsanwendung verweist. Dies ist nicht zwangsläufig der Name der Anwendung, in der der Wert definiert ist.

Caching von Nachrichten

LocalizableTextFormatter-Instanzen können formatierte Nachrichten zwischenspeichern, damit sie bei nochmaligem Bedarf nicht erneut formatiert werden müssen. Das Caching ist standardmäßig nicht aktiviert, aber mit dem Aufruf LocalizableTextFormatter.setCacheSetting(true) können Sie das Caching aktivieren. Wenn das Caching aktiviert ist und die format-Methode aufgerufen wurde, legt die Methode fest, ob die Nachricht bereits formatiert wurde. Ist dies der Fall, wird die zwischengespeicherte Nachricht zurückgegeben. Wenn die Nachricht nicht im Cache ermittelt wird, wird sie formatiert und an den aufrufenden Prozess (Caller) zurückgegeben. Eine Kopie der Nachricht wird für zukünftige Verwendung zwischengespeichert.

Wenn das Caching inaktiviert wird, nachdem Nachrichten zwischengespeichert wurden, bleiben diese Nachrichten im Cache, bis der Cache durch einen Aufruf der Methode "LocalizableTextformatter.clearCache" gelöscht wird. Sie können den Cache zu jeder Zeit löschen. Der Cache wird automatisch gelöscht, wenn eine der folgenden Methoden aufgerufen wird:
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)
  • setArguments(Object[] args)

API für die Bereitstellung von Zurücksetzungsinformationen

Unter bestimmten Umständen kann es unmöglich sein, eine Nachricht zu formatieren. Das Paket "localizable-text" implementiert eine Zurücksetzungsstrategie, die es ermöglicht, Informationen auch dann abzurufen, wenn eine Nachricht nicht in der angeforderten Sprache formatiert werden kann. Die LocalizableTextFormatter-Instanz kann Zurücksetzungswerte für eine Nachrichtenzeichenfolge, die Zeitzone und die Locale speichern. Diese Werte können ignoriert werden, es sei denn, die LocalizableTextFormatter-Instanz löst eine Ausnahme aus. Wenn Sie die Zurücksetzungswerte definieren möchten, rufen Sie die folgenden Methoden nach Bedarf auf:
  • setFallBackString(String message)
  • setFallBackLocale(Locale locale)
  • setFallBackTimeZone(TimeZone timeZone)

Ein Verwendungsbeispiel finden Sie im Artikel Lokalisierten Text generieren.

Anwendungsspezifische Werte

Das Paket "localizable-text" bietet basierend auf Zeitzone und Locale native Unterstützung für die Lokalisierung, Nachrichten können jedoch auch basierend auf anderen Werten erstellt werden. Wenn Sie bei der Formatierung von lokalisiertem Text andere Variablen als die Locale und die Zeitzone berücksichtigen müssen, empfiehlt es sich, Ihre eigene formatter-Klasse zu schreiben.

Ihre formatter-Klasse kann die Klasse "LocalizableTextFormatter" erweitern oder einige bzw. alle localizable-text-Schnittstellen separat implementieren. Ihre Klasse muss zumindest die Schnittstelle "java.io.Serializable" und eine der localizable-text-Schnittstellen sowie dessen entsprechende format-Methode implementieren. Wenn Ihre Klasse mehrere localizable-Text-Schnittstellen und format-Methoden implementiert, ist die Prüfreihenfolge die folgende:
  1. LocalizableTextLTZ
  2. LocalizableTextL
  3. LocalizableTextTZ
  4. LocalizableText

Das Paket "localizable-text" stellt eine Klasse bereit, die die Zeit und das Datum aufzeichnet (LocalizableTextDateTimeArgument). In dieser Klasse wird die Formatierung des Datums und der Uhrzeit in Übereinstimmung mit drei Werten lokalisiert: Locale, Zeitzone und Darstellung.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rin_ltfapi
Dateiname:rin_ltfapi.html