sábado, 10 de abril de 2010

Internacionalização com JSF

Olá Pessoal,


Um dos recursos que o Framework JavaServer Faces (JSF) oferece, é a internacionalização da aplicação, possibilitando que a mesma tenha vários idiomas.
Neste post irei mostrar um exemplo, utilizando os idiomas: (Português, Inglês, Alemão, Italiano e Francês), é uma pequena aplicação, mas pode ser tomada com base para desenvolver qualquer tipo projeto.
O exemplo foi desenvolvido utilizando a IDE Eclipse e o servidor TomCat.
Ao final do post, o projeto será disponibilizado para download, para quem quiser baixar e testar.


1. Passo: A aplicação foi estruturada de acordo com a imagem:



2. Passo: A primeira coisa que iremos fazer, é criar o ManagedBean com o nome InternacionalizacaoMB dentro do pacote managedbean, esta Classe é bem simples, possui 2 atributos, a Linguagem (Locale) e o País, com seus metodos gets e sets, o método mudarIdioma() é envocado através da ação de um link, nele é testado se o Locale possui um Pais, e logo é chamado o metodo mudarLocalidade() que altera o Locale, o ser retorno é null, ou seja, será redirecionado para ficar na mesma página.



3. Passo: Agora iremos criar os arquivos de propriedades que armazenarão os textos de cada idioma, cria um arquivo properties chamado mensagem, conforme a imagem abaixo:



4. Passo: Neste exemplo foram criados 6 arquivos de properties, em todos os arquivos as propriedade não podem ser alterados, apenas seus valores. Um arquivo com o idioma Inglês, ficará conforme a imagem:



5. Passo: No nosso arquivo de configuração do JSF, o faces-config.xml, temos que configurar o managedbean, Locale e o arquivo properties, no Locale, informei apenas o idioma Português e Inglês, mas pode deve ser colocado os Locale dos idiomas Alemão, Francês e Italiano.



6. Passo: Configuração do arquivo web.xml:



7. Passo: Agora criamos nossa página jsp, no exemplo deixei o nome de formulario.jsp, na primeira parte da página contém o menu para escolher o idioma.



Ainda na página formulario.jsp, iremos colocar um pequeno bloco que contém um form, conforme a imagem:



8. Passo: Veja agora como ficou o exemplo, usando o idioma Inglês:



Idioma em português:



Idioma em alemão:



Bom pessoal, este foi um exemplo bem simples, de como fazer a internacionalização da sua aplicação usando o produtivo Framework JSF.
Toda tradução, mostrado no exemplo, foi feita usando o Google Translate. :)
Para quem quiser baixar o exemplo, clique aqui.
Qualquer dúvida, crítica ou sugestão, fico à disposição.

5 comentários:

Anônimo disse...

muito bom, bem explicativo

Anônimo disse...

Parabéns. Ajudou bastante

Anônimo disse...

Uma dúvida... quando tento fazer o mapeamento no faces-config, meu arquivo não encontra a tag . Será que isso pode ser problema da versão ultrapassada? A versão do MyFaces que utilizo é 1.1.10.

jkramer disse...

valeu! excelente artigo.

Unknown disse...

Para projetos de localização usando arquivos .properties, eu recomendo esta plataforma de tradução do softwares - https://poeditor.com

É uma excelente ferramenta colaborativa para criando apps Java multi-idioma.

Postar um comentário

Jabes Felipe RSS Feed Jabes Felipe