[Desenvolvimento] Como criar APPs com suporte a vários idiomas

1

Olá pessoal, tudo bom?

Uma coisa comum em APPs é o suporte a vários idiomas, recurso também conhecido como Localized Resources. O comportamento natural de uma APP preparada para esse fim é que a mesma seja versionada para idioma que estiver configurado no celular do usuário, dessa forma, se o idioma padrão do dispositivo é o Português (pt-BR) a APP apresenta suas mensagens e demais textos em português do Brasil, caso o idioma padrão seja o English (en-US) os textos são apresentados em inglês dos Estados Unidos e assim sucessivamente.

O suporte padrão para o versionamento das APPs para Windows Phone é através dos arquivos de recursos (Resources.resx) que fazem parte da estrutura padrão de arquivos do projeto da APP no Visual Studio. Veja abaixo:

wp-solution-resources

A estrutura desses arquivos de recursos (.resx) é baseada em um esquema de chave => valor, sendo assim, neles você irá definir as chaves para mensagens e labels e seus respectivos valores em relação ao idioma que você pretende suportar na APP. Veja o exemplo:

resources.resx

Vale ressaltar que o arquivo de recurso Resources.resx é considerado o arquivo com os textos do idioma padrão do seu aplicativo, ou seja, caso a configuração do idioma do celular do usuário seja uma que sua APP não tem suporte, a aplicação irá utilizar os textos definidos no arquivo Resources.resx.

Para ativar o suporte a outros idiomas, você deverá fazer o seguinte: 

  1. Clique com o botão direito no nome do projeto do seu aplicativo e selecione a opção Propriedades;
  2. Na guia Application, na caixa de seleção Supported Cultures, selecione os idiomas que você deseja suportar;
    project-properties
  3. Salve as alterações realizadas e verifique que na pasta Resources do seu projeto foram criados arquivos Resources.XXXX.resx, onde o XXXX seria a sigla do idioma que você selecionou no passo anterior;
    resources.resx.pt-br
  4. Agora, traduza as expressões textuais dos novos arquivos de acordo com seus respectivos idiomas.

E em termos de código XAML, como fica?

Veja abaixo o exemplos para o elemento TextBlock onde o valor da propriedade Text é exibido de acordo com o idioma padrão do celular. Repare que o texto vai ser buscado diretamente no arquivo de recurso e não via hardcode, ou seja, texto inserido no código XAML.

1
2
3
4
5
...
<textblock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"></textblock>
 
<textblock Text="{Binding Path=LocalizedResources.PageTitle, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"></textblock>
...

Pronto, agora é só derivar a ideia e aplicar isso em suas APPs.

Abraços,

Eduardo Henrique Rizo (@eduardorizo)

MCP

Post Relacionado: 

Fonte: Blog do Eduardo H. Rizo

Share.

About Author

Bacharel em Ciência da Computação pela FIPP/Unoeste, Pós-Graduado em Desenvolvimento de Sistemas Web, Segurança da Informação e Avaliação do Ensino e da Aprendizagem, Professor universitário e responsável pelo setor de desenvolvimento de sistemas web da Universidade do Oeste Paulista. MCP e MCPS pela Microsoft e nas horas vagas dedica um pouco do seu tempo escrevendo posts técnicos sobre desenvolvimento de sistemas web, windows phone, gerenciamento de servidores e outros assuntos para a comunidade.