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.
- 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
- LocalizableTextFormatter()
- LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName)
- LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName, Object[] args)
- 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
- 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.
- setResourceBundleName(String resourceBundleName)
- setPatternKey(String patternKey)
- setApplicationName(String appName)
- setArguments(Object[] args)
API fournissant des informations sur la procédure de secours
- 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.
- LocalizableTextLTZ
- LocalizableTextL
- LocalizableTextTZ
- 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.