LAYERDEV

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Desenvolvendo Aplicativos Multi-Idiomas

por rcrespi em 21/8/2009

Introdução

 

A importância dos sistemas multi-idiomas é algo que não precisa ser discutido, hoje em dia cada vez mais existem pessoas de todas as partes do globo trabalhando em qualquer parte, fico feliz em mostrar que o .Net Framework tem diversas facilidades para auxiliar na solução desta necessidade.

Em diversos projetos que eu participei foi importante ter tradução dos softwares para idiomas como espanhol, inglês ou alemão, porém estas traduções tanto para desenvolvimento de aplicações Windows Forms quanto para aplicações Web Forms, é facilitada com alguns conceitos e mecanismos básicos suportados pelo CLR. Os principais namespaces que iremos utilizar são System.Resources e System.Globalization.

 

Arquivos de Resources

 

Para conceituar os resource files, são arquivos que podem conter em sua estrutura imagens, informações como strings, inteiros e etc, ou seja, qualquer tipo de informação que poderá ser utilizada durante a execução do sistema.

 

Voltando aos aplicativos que atendem diversos idiomas, o suporte no .NET Framework sobre o multi-idiomas em geral é fácil, normalmente criamos arquivos de Resources para cada idioma que a aplicação irá suportar. Algumas vezes será apenas um arquivo para cada Web Forms ou Windows Forms, ou claro poderá ser um arquivo para cada idioma para atender todo o projeto.

 

Aplicando na prática (cenário)

 

Para ilustrar melhor o uso dos resources para fazer a tradução dos nossos forms, vamos criar um pequeno cenário.

Imagine que estamos trabalhando em uma grande companhia que possuí uma filial na Argentina e outra filial nos Estados Unidos da América, dentro deste cenário teremos colaboradores que não são nativos no idioma português e poderão ter dificuldades em aprender um idioma tão complexo quanto o nosso.

Seria interessante para esta companhia ter um software que disponibilizasse para os seus colaboradores a opção de idiomas em português, inglês ou espanhol.

Agora utilizando o Visual Studio 2008 vamos criar um pequeno aplicativo Web que possuí a opção de tradução dos componentes. Esta opção poderia estar relacionada ao perfil de usuário no cadastro dos colaboradores, porém para não perdermos o foco do artigo vamos o nosso aplicativo irá pegar o idioma padrão das configurações do browser.

 

Criando o aplicativo

Agora utilizando o Visual Studio 2008 vamos criar um pequeno aplicativo Web que possuí a opção de tradução dos componentes.

         Após criar um novo projeto, utilize o arquivo default.aspx para criar o nosso aplicativo, desenhe um form como a tela como a que segue na imagem abaixo:



Figura 1 - Exemplo da aplicação

 

         Ao montar a página acima utilize a nomenclatura dos objetos referenciados na tabela abaixo:


Tabela 1 - Propriedade dos objetos

 

Agora vamos adicionar um arquivo de recursos local para criar a referencia de cada idioma aos objetos que estão no Web Form. Para incluir o arquivo de recursos basta clicarmos no menu Tool e Generate Local Resource.



Figura 2 - Criando arquivo de resource

 

         Por padrão o Visual Studio adiciona na janela Solution Explorer uma pasta chamada App_LocalResources e dentro um arquivo nomeado Default.aspx.resx este arquivo irá conter o nome de todos os objetos e o seu respectivo valor para o campo Text.


Figura 3 - Os Resources

 

         Porém para trabalharmos com um novo idioma teremos que adicionar um novo arquivo de Resource para cada idioma, se seguirmos os mesmos passos para adicionar o Local Resource File não irá funcionar, pois o Visual Studio irá criticar perguntado se deseja sobrescrever o arquivo existente, por este motivo vamos copiar e colar o mesmo arquivo dentro da mesma pasta renomeado para Default.aspx.en-US.resx e o outro arquivo para Default.aspx.es-AR.resx. Para conhecer a lista de idiomas suportados e os prefixos a serem utilizados dentro da aplicação acesse o site MSDN.

         E quanto à tradução? As traduções estão por nossa conta basta abrir os arquivos e alterar os valores correspondentes a tradução de cada um dos objetos.

É importante perceber que temos um ganho nesse trabalho, em algumas empresas mesmo que o idioma seja o mesmo existe a necessidade de ter nomes diferentes. Vamos a tradução, abaixo segue as imagens da tradução em português, inglês e na seqüência em espanhol.


Figura 5 - Resources em Inglês [US]


Figura 6 - Resources em Espanhol - [AR]

 

Após traduzir, basta configurar para a nossa aplicação rodar.

 

Fazendo funcionar

Antes de fazer o “milagre da tradução” vamos rodar a nossa aplicação no Windows em Português teremos um retorno parecido com a imagem abaixo.


Figura 7 - O aplicativo em Português

 

Para rodarmos a nossa aplicação no idioma inglês americano vamos ter que alterar as permissões do browser, para isso o primeiro passo é acessar o menu Opções da Internet do site.


Figura 8 - Opções da Internet

 

Na tela que irá abrir vamos acessar a guia Geral e a opção Idiomas.


Figura 9 – Idiomas

 

Na tela de idiomas que irá aparecer (se estiver utilizando o Windows em português) irá aparecer uma tela como a que segue.


Figura 10 - Preferência de Idioma

 

Nesta tela teremos a oportunidade de adicionar o idioma de preferência, para isso basta acionar o botão Adicionar e escolher o idioma Inglês (Estados Unidos) – [en-US] agora basta selecionar o idioma Inglês como o primeiro da sua lista e confirmar.


Figura 11 - Selecionando o idioma Inglês [US]


Figura 12 - Definindo com o padrão

 

Após fazer as devidas confirmações basta recarregar a página, pressionando a tecla F5 que a “magia” está feita.


Figura 13 - Aplicação atualizada

 

         E para o idioma Espanhol da Argentina vamos utilizar o mesmo processo, porém o idioma a ser selecionado é Espanhol (Argentina) [es-AR].


Figura 14 - Idioma Espanhol [AR]

 

Conclusão

         Esse artigo demonstra como é fácil criar aplicativos multi-idiomas com o .NET Framework utilizando recursos básicos e poucos comandos. Existem diversos recursos que não abordei neste artigo, mas vale mencionar para futuras pesquisas como, por exemplo, o uso de Threads com CurrentCulture e CurrentUICulture.


voltar   comente  subir

Download Copy





 
rcrespi Rodrigo Crespi é Analista de Sistemas certificado Microsoft, possuí as certificações MCP, MCDBA, MCAD, MCSD, MCTS, MCITP com diversos anos de experiência em desenvolvimento de sistemas e administração de Banco de dados. Para maiores informações acesse o site www.crespi.pro.br.



Comentários:

Comentado por: Pedro Correa - 2/2/2010 0:00:00
Este recurso não é muito util no caso do sistema ter muitas paginas não é mesmo? Pois pelo que entendi temos que gerar um .resx para cada pagina e na linguagem que queremos?
Att
Pedro Correa
Comentado por: Mauricio Junior - 4/2/2010 0:00:00
Pedro, isso mesmo.
Existem outros artigos aqui na comunidade que fala sobre isso.
Comentado por: rcrespi - 4/2/2010 0:00:00
Pedro,
Desculpa a demora para retornar o seu comentário.
Realmente se tu tiveres muitos idiomas, ou para sistemas muito grandes não vale a pena. Eu escrevi esse tutorial apenas para exemplificar o uso.
Sugiro vc pesquisar o CurrentCulture, ou dependendo da sua necessidade uma tradução apartir de uma lógica montada em tabelas de banco de dados.
Comentado por: Alessandro - 30/7/2010 0:00:00
Vou procurar algo com o CurrentCulture, porem acho que esta uma forma muito mais rapida e eficaz do que se trabalhar com tradução armazenada em banco de dados - tabelas - uma vez que nao se precisar trafegar dados pela rede, e ficar fazendo validação do idioma toda vez que pagina for carregada.
Comentado por: Mauricio Junior - 11/8/2010 0:00:00
Dê uma olhada neste artigo: www.aspneti.com/resource+e+internacionalizacao+109,0.aspx que poderá te ajudar.

Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Primeiros passos com Ajax Control Toolkit
Desenvolvendo Aplicativos Multi-Idiomas
Utilizando Update Panel e Update Progress




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Notebook 3D ou 4K?

Notebook vem com tudo...

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...




NETITC