Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Internacionalizao (i18n) Uma aplicao internacionalizada pode ter sua camada de viso adaptvel a vrios idiomas O ideal que no seja necessrio modificar os fontes ou mesmo recompilar a aplicao Motivao:
vrias empresas brasileiras produzem software para vrios pases sistemas inicialmente desenvolvidos em filiais no Brasil so adotados nas matrizes de multinacionais
Arquivos de Propriedades
A ideia bsica ter cada rtulo, ttulo, descrio dos campos e mensagens vindo de arquivos de propriedades Esses arquivos so tambm chamados de "Resource Bundles" e possuem a extenso ".properties"; Deve-se ter um arquivo de propriedades com as "strings" usadas pelo sistema para cada idioma Ex:
messages_pt_BR.properties: portugus/Brasil messages_de_DE.properties: alemo messages_en_US.properties: ingls/EUA messages.properties: idioma padro, caso a mensagem no seja encontrada nos outros arquivos
3
Arquivos de Propriedades
Formado por entradas chave=valor.
Ex: //aquivo messages_pt_BR registrationTitle=Cadastro registrationText=Preencha seu nome, sobrenome e e-mail //arquivo messages_en_US registrationTitle=Registration registrationText=Enter your first name,last name and e-mail.
O arquivo deve ser colocado dentro de um pacote de cdigo-fonte (ex: br.projetoi18n.visao) Para criar um arquivo de propriedades no NetBeans: File New Other Properties Files
4
Arquivos de Propriedades
messages_pt_BR.properties
registrationTitle=Cadastro registrationText=Preencha seu Nome, Sobrenome e E-mail firstName=Nome lastName=Sobrenome emailAddress=E-mail buttonLabel=Cadastrar successTitle=Sucesso successText=Cadastro realizado com sucesso requiredField=Campo obrigatrio
messages_en_US.properties
registrationTitle=Registration registrationText=Enter your First name,Last name and E-mail. firstName=First name lastName=Last name emailAddress=E-mail buttonLabel=Register successTitle=Success successText=Registered successfully. requiredField=Required field
messages_es_ES.properties
registrationTitle=Catastro registrationText=Escriba su Nombre, Apellido y E-mail. firstName=Nombre lastName=Apelido emailAddress=E-mail buttonLabel=Registro successTitle=xito successText=Registrado con xito. requiredField=Campo obligatorio
Arquivos de Propriedades
Arquivos de propriedades
Requisita-se do navegador, pelo request, a localidade atual A tag <f:loadBundle/> carrega o arquivo de propriedades:
O arquivo carregado o da localidade atual, por isso pode-se omitir o restante do nome do arquivo As mensagens so acessveis atravs da referncia msgs Deve-se fornecer o nome do pacote onde o arquivo se encontra Em memria, o arquivo mantido como um mapa 10 sendo acessvel pelo padro chave/valor
Carregando um arquivo de propriedades Alternativa 2: Registrar o arquivo no faces-config (no necessrio usar as tags anteriores na viso)
<faces-config version="2.0" ... <application> <resource-bundle> <base-name>br.projetoi18n.visao.messages</base-name> <var>msgs</var> </resource-bundle> <locale-config> <default-locale>pt_BR</default-locale> <supported-locale>en_US</supported-locale> <supported-locale>pt_BR</supported-locale> <supported-locale>es_ES</supported-locale> </locale-config> </application> 11 </faces-config>
12
13
14
15
Pode-se substituir os itens repetidos em registrationText por parmetros e posteriormente preencher esses valores:
registrationText=Enter your {0},{1} and {2}.
16
Mensagens Idnticas Caso uma mesma mensagem seja a mesma para todos os idiomas, pode-se coloc-la no arquivo messages.properties Esse arquivo, sem a declarao da localizao/idioma, buscado caso a chave pesquisada no exista em nenhum dos outros arquivos
18
Traduzindo mensagens do JSF O JSF armazena suas mensagens internas no pacote javax.faces aconselhvel criar ou obter uma verso traduzida desse arquivo Para isso, deve-se criar um pacote javax.faces em sua aplicao e nele colocar o arquivo traduzido
19
20
10
11
12