Classe LocalizableTextFormatter

A classe LocalizableTextFormatter, localizada no pacote com.ibm.websphere.i18n.localizabletext, é a interface de programação principal para usar o pacote de texto localizável. Instâncias dessa classe contêm as informações necessárias para criar cadeias específicas de idioma a partir de chaves e pacotes de recursos.

A classe LocalizableTextFormatter estende a classe java.lang.Object e implementa as seguintes interfaces:
  • 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

Criação e Inicialização de Instâncias da Classe

A classe LocalizableTextFormatter suporta os seguintes construtores:
  • LocalizableTextFormatter()
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName)
  • LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName, Object[] args)
A instância LocalizableTextFormatter deve ter determinados valores, como um nome de pacote de recursos, uma chave e o nome do aplicativo de formatação. Se esses valores não forem transmitidos utilizando o segundo construtor relacionado anteriormente, poderão ser definidos separadamente fazendo as seguintes chamadas:
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)

Pode-se usar um quarto método, setArguments(Object[] args), para definir valores de localização opcionais após a construção. Consulte Processamento de Valores Específicos do Aplicativo no final deste tópico. Para obter um exemplo de uso, consulte Compondo Cadeias Complexas.

API para Formatar Texto

Os métodos de formatação na classe LocalizableTextFormatter geram uma cadeia de um anel de chaves de mensagens e pacotes de recursos, com base em alguma combinação valores de código do idioma e de fuso horário. Cada método corresponde a uma de quatro interfaces localizable-text implementadas. A lista a seguir indica a interface na qual cada método de formatação está definido:
  • LocalizableText.format()
  • LocalizableTextL.format(java.util.Locale locale)
  • LocalizableTextTZ.format(java.util.TimeZone timeZone)
  • LocalizableTextLTZ.format(java.util.Locale locale, java.util.TimeZone timeZone)

O método de formato sem argumentos utiliza os valores de fuso horário e código do idioma definidos como padrões para a Java™ virtual machine. Todos os quatro métodos emitem objetos LocalizableException, conforme necessário.

Localização de Catálogos de Mensagens e o Valor de appName

Aplicativos criados com o pacote localizable-text podem acessar catálogos de mensagens localmente ou remotamente. Em um ambiente distribuído, o uso de catálogos de mensagens remotos localizados centralmente é apropriado. Todos os clientes podem usar os mesmos catálogos, e a manutenção dos catálogos é simplificada. A formatação local é útil em situações de teste e apropriada sob determinadas circunstâncias. Para suportar a formatação local ou remota, uma instância de LocalizableTextFormatter deve indicar o nome do aplicativo de formatação.

Por exemplo, quando um aplicativo formata uma mensagem utilizando catálogos remotos, a mensagem na verdade é formatada por um enterprise bean no servidor. Embora o pacote de texto localizável contenha o código para automatizar a consulta do bean formatador e para emitir uma chamada a ele, o aplicativo precisa conhecer o nome do bean formatador. Vários métodos na classe LocalizableTextFormatter utilizam um valor descrito como appName, que se refere ao nome do aplicativo de formatação. Ele não é necessariamente o nome do aplicativo no qual o valor está definido.

Armazenamento em Cache de Mensagens

As instâncias LocalizableTextFormatter podem, opcionalmente, armazenar em cache as mensagens formatadas para que não precisem ser reformatadas quando forem novamente necessárias. Por padrão, o armazenamento em cache não está ativado, mas você pode usar uma chamada LocalizableTextFormatter.setCacheSetting(true) para ativar o armazenamento em cache. Quando o armazenamento em cache está ativado e o método format é chamado, o método determina se a mensagem já está formatada. Em caso afirmativo, a mensagem armazenada em cache é retornada. Se a mensagem não for localizada no cache, ela será formatada e retornada ao responsável pela chamada, e uma cópia da mensagem será armazenada em cache para uso futuro.

Se o armazenamento em cache for desativado após o armazenamento em cache das mensagens, estas permanecerão no cache até que o cache seja limpo por uma chamada para o método LocalizableTextformatter.clearCache. O cache pode ser limpo a qualquer momento; ele é limpo automaticamente quando qualquer dos seguintes métodos é chamado:
  • setResourceBundleName(String resourceBundleName)
  • setPatternKey(String patternKey)
  • setApplicationName(String appName)
  • setArguments(Object[] args)

API para Fornecer Informações de Alternativa

Sob certas circunstâncias, pode ser impossível formatar uma mensagem. O pacote localizable-text implementa uma estratégia de alternativa, tornando possível obter algumas informações mesmo que não seja possível formatar uma mensagem corretamente para o idioma pedido. A instância de LocalizableTextFormatter pode opcionalmente armazenar valores alternativos para uma cadeia de mensagem, o fuso horário e o locale. Esses valores podem ser ignorados, a menos que a instância LocalizableTextFormatter emita uma exceção. Para definir valores alternativos, chame os seguintes métodos conforme apropriado:
  • setFallBackString(String message)
  • setFallBackLocale(Locale locale)
  • setFallBackTimeZone(TimeZone timeZone)

Para obter um exemplo de uso, consulte Gerando Texto Localizado.

Processamento de Valores Específicos do Aplicativo

O pacote de texto localizável fornece suporte nativo para localização com base no fuso horário e código do idioma, mas também é possível construir mensagens com base em outros valores. Se for preciso considerar variáveis que não o fuso horário e o locale na formatação de texto localizado, crie sua própria classe de formatador.

Sua classe de formatador pode estender a classe LocalizableTextFormatter ou implementar independentemente algumas ou todas as interfaces de texto localizável. Como um mínimo, sua classe deve implementar a interface java.io.Serializable e pelo menos uma das interfaces de texto localizável e seu método format correspondente. Se sua classe implementar mais de uma interfacelocalizable-text e método format, a ordem de avaliação das interfaces é a seguinte:
  1. LocalizableTextLTZ
  2. LocalizableTextL
  3. LocalizableTextTZ
  4. LocalizableText

Como um exemplo, o pacote localizable-text fornece uma classe que relata a hora e a data (LocalizableTextDateTimeArgument). Nessa classe, a formatação da data e hora é localizada de acordo com três valores: locale, fuso horário e estilo.


Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rin_ltfapi
Nome do arquivo: rin_ltfapi.html