Clase LocalizableTextFormatter

La clase LocalizableTextFormatter, que se encuentra en el paquete com.ibm.websphere.i18n.localizabletext, es la interfaz de programación principal para el uso del paquete de texto localizable (localizable-text). Las instancias de esta clase contienen la información necesaria para crear series específicas de cada idioma de los paquetes de recursos y claves.

La clase LocalizableTextFormatter amplía la clase java.lang.Object e implementa las interfaces siguientes:
  • 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

Creación e inicialización de instancias de clase

La clase LocalizableTextFormatter tiene soporte para los constructores siguientes:
  • LocalizableTextFormatter()
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName)
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName, Object[] args)
La instancia LocalizableTextFormatter debe tener determinados valores, como un nombre de paquete de recursos, una clave y el nombre de la aplicación de formato. Si no se pasan estos valores utilizando el segundo constructor listado anteriormente, se pueden establecer aparte realizando las llamadas siguientes:
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)

Se puede utilizar un cuarto método, setArguments(Object[] args), para establecer valores de localización opcionales tras la construcción. Consulte Proceso de valores específicos de aplicaciones. que aparece al final de este tema. Para obtener un ejemplo de uso, consulte Composición de series complejas.

API para formatear texto

Los métodos de formato de la clase LocalizableTextFormatter generan una serie a partir de claves de mensajes y paquetes de recursos, según la combinación de valores de entorno local y huso horario. Cada método se corresponde con una de las cuatro interfaces de texto de localización implementadas. La lista siguiente indica la interfaz en la que está definido cada método de formato:
  • LocalizableText.format()
  • LocalizableTextL.format(java.util.Locale locale)
  • LocalizableTextTZ.format(java.util.TimeZone timeZone)
  • LocalizableTextLTZ.format(java.util.Locale locale, java.util.TimeZone timeZone)

El método de formato sin argumentos utiliza los valores de entorno local y huso horario establecidos por omisión para la máquina virtual Java™. Los cuatro métodos emiten objetos LocalizableException según sea necesario.

Localización de catálogos de mensajes y el valor appName

Las aplicaciones escritas con el paquete de texto localizable pueden acceder a los catálogos de mensajes local o remotamente. En un entorno distribuido, se impone el uso remoto de catálogos de mensajes, ubicados de forma centralizada. Todos los clientes pueden utilizar los mismos catálogos, y el mantenimiento de estos es más sencillo. El formateo local es útil en situaciones de prueba y bajo determinadas circunstancias. Para dar soporte tanto a formateo local como remoto, una instancia LocalizableTextFormatter debe indicar el nombre de la aplicación de formateo.

Por ejemplo, cuando una aplicación formatea un mensaje utilizando catálogos remotos, el mensaje es formateado realmente por un enterprise bean del servidor. Aunque el paquete de texto localizable contiene el código para automatizar la búsqueda del bean de formato y emitir una llamada a él, la aplicación tiene que saber el nombre del bean de formato. Varios métodos de la clase LocalizableTextFormatter utilizan un valor descrito como appName, que hace referencia al nombre de la aplicación de formato. No es necesariamente el nombre de la aplicación en la que se establece el valor.

Carga en memoria caché de mensajes

Las instancias LocalizableTextFormatter pueden cargar opcionalmente los mensajes en la memoria caché, de forma que no hay que volver a formatearlos cuando se vayan a utilizar. De forma predeterminada, el uso de la memoria caché no está habilitado, pero puede utilizar una llamada LocalizableTextFormatter.setCacheSetting(true) para habilitarlo. Cuando la memoria caché está habilitada y se llama al método de formato, éste determina si el mensaje ya se ha formateado. De ser así, se devuelve el mensaje almacenado en memoria caché. Si el mensaje no se encuentra en la memoria caché, se formatea y se devuelve al emisor, colocando una copia en la memoria caché para un posible uso posterior.

Si la memoria caché se inhabilita después de haber colocado en ella los mensajes, dichos mensajes se mantienen en la memoria caché hasta que se borre mediante una llamada al método LocalizableTextformatter.clearCache. La memoria caché se puede borrar en cualquier momento; de hecho, se borra cuando se invoca alguno de los métodos siguientes:
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)
  • setArguments(Object[] args)

API para proporcionar información de repliegue

En determinadas circunstancias, es imposible formatear un mensaje. El paquete de texto localizable implementa una estrategia de repliegue, haciendo posible obtener alguna información, incluso si un mensaje no se ha podido formatear correctamente en el idioma solicitado. La instancia LocalizableTextFormatter puede almacenar opcionalmente valores de repliegue para una serie de mensaje, el huso horario y el entorno local. Estos valores se pueden ignorar a menos que la instancia LocalizableTextFormatter emita una excepción. Para establecer valores de repliegue, hay que invocar los métodos siguientes según sea necesario:
  • setFallBackString(String message)
  • setFallBackLocale(Locale locale)
  • setFallBackTimeZone(TimeZone timeZone)

Para obtener un ejemplo de uso, consulte Generación de texto adaptado al entorno local.

Proceso de valores específicos de aplicaciones

El paquete de texto localizable proporciona soporte nativo para localización basado en el huso horario y el entorno local, pero también se pueden construir mensajes según otros valores. Si es necesario tener en cuenta otras variables aparte del entorno local y el huso horario en el formato del texto localizado, se pueden escribir clases de formato personalizadas.

La clase de formato puede ampliar la clase LocalizableTextFormatter o implementar de forma independiente algunas o todas las interfaces de texto localizable de LocalizableTextFormatter. Como mínimo, la clase personalizada debe implementar la interfaz java.io.Serializable y al menos una de las interfaces de texto localizable y su método de formato correspondiente. Si la clase personalizada implementa más de una interfaz de texto localizable y métodos localizables, el orden de la evaluación de las interfaces es el siguiente:
  1. LocalizableTextLTZ
  2. LocalizableTextL
  3. LocalizableTextTZ
  4. LocalizableText

Como ejemplo, el paquete de texto localizable proporciona una clase que informa de la hora fecha (LocalizableTextDateTimeArgument). En esa clase, el formato de fecha y hora se localiza según tres valores: entorno local, huso horario y estilo.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rin_ltfapi
File name: rin_ltfapi.html