Internacionalização: Universal Apps

Quando estamos desenvolvendo algum aplicativo, temos a necessidade em expandir o acesso do aplicativo para outros mercados. Dessa forma, temos prover suporte a outros idiomas. Esse recurso é mais conhecido como String Resources

Como então a aplicação define o idioma a ser utilizado? Ele irá utilizar o idioma escolhido no dispositivo pelo usuário. Caso o idioma escolhido não seja suportado pela aplicação, o mesmo irá utilizar o idioma definido como padrão nas propriedades do projeto. 

Para demonstrar como o processo de internacionalização ocorre, vamos criar um novo projeto (Blank App (Universal Windows)) no Visual Studio:

Criando novo projeto no Visual Studio

Após o projeto ser criado, devemos selecionar o idioma padrão para cada plataforma. Clique com o botão direito sobre o projeto e selecione a opção "Properties". Agora selecione a aba "Application" e clique no botão "Assembly Information".

Propriedades do projeto

Com a janela "Assembly Information" aberta, selecione no campo "Neutral language" o idioma padrão do seu aplicativo. Neste artigo iremos utilizar como idioma padrão o Português do Brasil.

Selecionando idioma padrão

Iremos criar nossos arquivos de internacionalização, onde estarão definidos os textos a serem exibidos para o usuário. No projeto crie uma nova pasta chamada "Strings", clicando com o botão direito sobre o projeto > Add > New Folder. Agora iremos criar sub pastas para os idiomas que vamos utilizar, que para este exemplo será o Português (Brasil) e Inglês (Estados Unidos). Clique com botão direito sobre a pasta Strings > Add > New Folder e adicione pt-BR. Repita o processo de criar uma sub pasta dentro da pasta String e crie outra pasta denominada en-US

Para acessar a todos os idiomas com seus respectivos nomes, acesse o seguinte link

A seguinte estrutura de pastas para os idiomas deverá estar dessa forma:

Estrutura de pastas

Agora vamos criar os arquivos de "Resources" para cada idioma. Para isso, clique com o botão direito sobre a pasta en-US > Add > New Item... Será aberta uma janela com várias opções e dentre elas, selecione Resources File (.resw) e clique em Add.

Adicionando arquivo Resources File (.resw)

Repita o mesmo procedimento acima para a pasta pt-BR, mantendo o arquivo com mesmo nome Resources.resw.

O próximo passo é abrir os arquivos Resources.resw e acrescentar os seguintes valores:

Arquivo Resources.resw (en-US)

Arquivo Resources.resw (pt-BR) 

Arquivos do tipo Resources.resw são compostos por três colunas:
  • Name: identifica a string do recurso (a chave Greeting.Text identifica um elemento dentro do XAML o qual recebe o texto da coluna "Value" automaticamente na propriedade Text);
  • Value: representa o texto no respectivo idioma;
  • Comment: representa uma descrição sobre o registro.

Nesse momento os arquivos estão prontos. Agora utilizaremos para exibir para o usuário as strings correspondentes com o idioma do dispositivo. Para isso, abra o MainPage.xaml e adicione um TextBlock:

  1. <TextBlock x:Uid="Greetings"/>  

O atributo x:Uid="Greetings" faz com que o identificador (Greetings) seja automaticamente utilizado para procurar a correta tradução para esse texto. Por isso nos arquivos Resources.resw inserimos a chave "Greetings.Text" indicando que a propriedade Text desse TextBlock será atualizada.

Às vezes nem sempre é possível realizar a tradução dos elementos no arquivo XAML, sendo necessário fazer a tradução em tempo de execução de código.

Adicione mais um TextBlock como mostrado abaixo na MainPage.xaml, e veja como recuperar o texto identificado pela chave Farewell conforme definimos nos arquivos Resources.resw.

  1. <TextBlock x:Name="FarewellTxtBlock"/>  

Agora acrescente o seguinte código no code behind da MainPage.xaml (MainPage.xaml.cs) conforme mostrado abaixo:

  1. var loader = new Windows.ApplicationModel.Resources.ResourceLoader();  
  2. this.FarewellTxtBlock.Text = loader.GetString("Farewell");  

Feito esses procedimentos execute a aplicação e verá que será exibido o conteúdo para o idioma definido no dispositivo como Português do Brasil.

Aplicação executada

Portanto finalizamos nosso projeto de internacionalização. Continue acompanhando o blog por mais dicas e tutoriais!

Como Instalar o Elcomsoft Forensic Disk Decryptor

O Elcomsoft Forensic Disk Decryptor é uma ferramenta para acesso forense a discos criptografados com o BitLocker, PGP ou TrueCrypt. Essa fer...