Serviço de Internacionalização
Em um ambiente distribuído de cliente/servidor, os processos aplicativos podem ser executados em máquinas diferentes, configuradas para diferentes códigos do idioma, correspondendo a diferentes convenções culturais; eles também podem ser localizados em limites geográficos. O serviço de internacionalização pode ajudar a gerenciar seu aplicativo em um ambiente distribuído globalmente.
Para ter um entendimento de como as diferenças de código do idioma afetam o desenvolvimento de aplicativos, leia Globalização.
Java™ Platform, Enterprise Edition (Java EE) fornece suporte para componentes de aplicativo que são executados em computadores com conjuntos de código e arquitetura endian diferentes. Ele não fornece suporte dedicado para componentes de aplicativo executados em computadores com diferentes códigos do idioma ou fusos horários.
O serviço de internacionalização trata dos desafios apresentados pela incompatibilidade de códigos do idioma e fusos horários sem incorrer nas limitações de técnicas convencionais. O serviço gerencia sistematicamente a distribuição de contextos de internacionalização nos diversos componentes de aplicativos EJB, incluindo aplicativos clientes, enterprise beans e servlets.
O serviço funciona pela associação de um contexto de internacionalização a cada pedido de serviço em um aplicativo. Quando um componente do lado cliente chama um método de negócios, o serviço de internacionalização interfere, obtendo o contexto de internacionalização associado ao processo do lado cliente atual e anexando esse contexto ao pedido que sai. No lado do servidor, o serviço de internacionalização interfere novamente desanexando o contexto do pedido que chega e associando-o ao processo do lado do servidor no qual o método de negócios será executado, definindo efetivamente o escopo do contexto no método de negócios. Para pedidos HTTP, o contexto do responsável pela chamada é construído a partir dos atributos e valores padrão de HTTP. O serviço propaga o contexto de internacionalização em chamadas subsequentes do método de negócios da mesma maneira que distribui o contexto do pedido de origem para a cadeia inteira de chamadas do método de negócios.
Essa operação básica de escopo e propagação é definida exatamente pelos critérios de gerenciamento do contexto de internacionalização. As políticas de internacionalização especificam se um componente de aplicativo ou seu contêiner Java EE de hospedagem deverão gerenciar o contexto de internacionalização. Para componentes gerenciados por contêiner, a política indica qual contexto de internacionalização o contêiner abrangerá para chamadas nesse componente. Os componentes de servidor configurados para gerenciar o contexto de internacionalização, bem como os clientes EJB, devem utilizar a API do contexto de internacionalização para gerenciar os elementos do contexto de internacionalização abrangidos em suas chamadas.
Todo componente de aplicativo possui uma política padrão, que pode ser substituída e adaptada para servlets e beans corporativos na hora da montagem.
No tempo de execução, os componentes de aplicativos podem utilizar a API do contexto de internacionalização para obter qualquer elemento dos contextos de internacionalização abrangidos em uma chamada. Para acessar os elementos do contexto por meio de programação, os componentes de aplicativos primeiramente resolvem uma referência da API do contexto de internacionalização, em seguida, chamam o método apropriado da API para acessar os diversos elementos do contexto, como o código do idioma do responsável pela chamada ou o fuso horário da chamada. Esses elementos podem ser utilizados em chamadas para os métodos da API de internacionalização do SDK Java, como por exemplo, para executar localizações como formatação de mensagens, configuração de datas ou comparação de cadeias.