Classe LocalizableTextFormatter

La classe LocalizableTextFormatter, qui se trouve dans le package com.ibm.websphere.i18n.localizabletext, est la principale interface de programmation utilisée avec le package de texte localisable. Les instances de cette classe contiennent les informations permettant de créer des chaînes dans la langue appropriée à partir de clés et de regroupements de ressources.

La classe LocalizableTextFormatter étend la classe java.lang.Object et implémente les interfaces suivantes :
  • 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

Création et initialisation d'instances de classe

La classe LocalizableTextFormatter prend en charge les constructeurs suivantes :
  • LocalizableTextFormatter()
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName)
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName, Object[] args)
L'instance LocalizableTextFormatter doit comporter certaines valeurs, telles qu'un nom de regroupement de ressources, une clé et le nom de l'application de formatage. Si vous ne transmettez pas ces valeurs à l'aide du deuxième constructeur répertorié précédemment, vous pouvez les définir séparément en appelant les éléments suivants :
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)

Vous pouvez utiliser une quatrième méthode, setArguments(Object[] args), pour définir des valeurs de localisation facultatives après la construction. Voir Traitement des valeurs spécifiques de l'application à la fin de cette rubrique. Pour obtenir un exemple, voir Composition de chaînes complexes.

API pour formatage de texte

Les méthodes de formatage de la classe LocalizableTextFormatter génèrent une chaîne à partir d'un ensemble de clés de messages et de regroupements de ressources, en fonction d'une combinaison de l'environnement local et du fuseau horaire. Chaque méthode correspond à l'une des quatre interfaces de texte localisable implémentées. La liste suivante indique l'interface dans laquelle chaque méthode de formatage est définie :
  • LocalizableText.format()
  • LocalizableTextL.format(java.util.Locale locale)
  • LocalizableTextTZ.format(java.util.TimeZone timeZone)
  • LocalizableTextLTZ.format(java.util.Locale locale, java.util.TimeZone timeZone)

La méthode de formatage sans argument utilise les valeurs d'environnement local et de fuseau horaire définies par défaut pour la machine virtuelle Java™ (JVM). Si nécessaire, les quatre méthodes émettent des objets LocalizableException.

Emplacement des catalogues de messages et valeur appName

Les applications écrites à l'aide du package de texte localisable peuvent accéder aux catalogues de messages en local ou à distance. Dans un environnement réparti, l'utilisation de catalogues éloignés dont l'emplacement est central se révèle la mieux appropriée. Tous les clients peuvent utiliser les mêmes catalogues et la maintenance des catalogues est simplifiée. Le formatage local est utile dans les environnements de test, et approprié dans certaines circonstances. Pour permettre le formatage local ainsi que le formatage à distance, une instance LocalizableTextFormatter doit indiquer le nom de l'application de formatage.

Par exemple, lorsqu'une application formate un message à l'aide des catalogues éloignées, celui-ci est en réalité formaté par un bean enterprise sur le serveur. Bien que le package de texte localisable contienne le code permettant d'automatiser la recherche de ce bean de formatage et d'appeler ce bean, l'application doit connaître son nom. Plusieurs méthodes de la classe LocalizableTextFormatter utilisent une valeur désignée appName correspondant au nom de l'application de formatage. Il ne s'agit pas nécessairement du nom de l'application dans laquelle cette valeur est définie.

Mise en cache des messages

Les instances LocalizableTextFormatter peuvent éventuellement mettre en mémoire cache les messages formatés afin d'éviter un nouveau formatage de ces messages lors de leur utilisation suivante. Par défaut, cette option n'est pas activée mais vous pouvez utiliser un appel LocalizableTextFormatter.setCacheSetting(true) pour activer la fonction de mise en cache. Lorsque la mise en mémoire cache est activée et que la méthode de formatage est appelée, cette méthode détermine si le message est déjà formaté. Si tel est le cas, le message conservé en mémoire est renvoyé. Sinon, le message est formaté et renvoyé à l'appelant, et une copie en est placée en mémoire cache en vue d'une utilisation ultérieure.

Si la mise en mémoire cache est désactivée alors que cette mémoire contient déjà des messages, ces derniers restent dans cette mémoire jusqu'à ce que celle-ci soit purgée par un appel de la méthode LocalizableTextFormatter.clearCache. Vous pouvez nettoyer la mémoire cache à tout moment ; elle l'est automatiquement lorsque l'une des méthodes suivantes est appelée :
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)
  • setArguments(Object[] args)

API fournissant des informations sur la procédure de secours

Dans certaines circonstances, le formatage d'un message peut s'avérer impossible. Le package de texte localisable implémente une stratégie de secours qui permet d'obtenir tout de même certaines informations lorsqu'un message ne peut être formaté correctement dans la langue requise. L'instance LocalizableTextFormatter peut stocker des valeurs de secours pour la chaîne de message, le fuseau horaire et l'environnement local. Ces valeurs sont ignorées tant que l'instance LocalizableTextFormatter n'émet pas d'exception. Pour définir les valeurs de secours, appelez les méthodes suivantes en fonction des besoins :
  • setFallBackString(String message)
  • setFallBackLocale(Locale locale)
  • setFallBackTimeZone(TimeZone timeZone)

Pour obtenir un exemple, voir Génération de texte localisé.

Traitement des valeurs spécifiques de l'application

Le package de texte localisable offre une prise en charge native de la localisation sur la base du fuseau horaire et de l'environnement local, mais il est également possible de construire des messages sur la base d'autres valeurs. Si vous devez définir des variables autres que la variable d'environnement local et la variable de fuseau horaire lors du formatage de texte localisé, écrivez vos propres classes de formatage.

Votre classe de formatage peut étendre la classe LocalizableTextFormatter ou implémenter indépendamment certaines ou toutes les interfaces de texte localisable. Votre classe doit au moins implémenter l'interface java.io.Serializable ainsi que l'une des interfaces de texte localisable et sa méthode de formatage correspondante. Si votre classe implémente plusieurs interfaces de texte localisable et plusieurs méthodes de formatage, l'ordre d'évaluation des interfaces est le suivant :
  1. LocalizableTextLTZ
  2. LocalizableTextL
  3. LocalizableTextTZ
  4. LocalizableText

Le package de texte localisable fournit comme exemple une classe faisant état de l'heure et de la date (LocalizableTextDateTimeArgument). Dans cette classe, le formatage de la date et de l'heure est localisé en fonction de trois valeurs : environnement local, fuseau horaire et style.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rin_ltfapi
Nom du fichier : rin_ltfapi.html