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.
- 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
- 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)
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
- 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.
- setResourceBundleName(String resourceBundleName)
- setPatternKey(String patternKey)
- setApplicationName(String appName)
- setArguments(Object[] args)
API para Fornecer Informações de Alternativa
- 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.
- LocalizableTextLTZ
- LocalizableTextL
- LocalizableTextTZ
- 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.