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:
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:
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:
- Clique com o botão direito no nome do projeto do seu aplicativo e selecione a opção Propriedades;
- Na guia Application, na caixa de seleção Supported Cultures, selecione os idiomas que você deseja suportar;
- 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;
- 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.
... <TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/> <TextBlock Text="{Binding Path=LocalizedResources.PageTitle, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> ...
Pronto, agora é só derivar a ideia e aplicar isso em suas APPs.
Abraços,
Eduardo Henrique Rizo
Post Relacionado:
[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]
Pingback: Free: Curso Windows Phone – Vários tópicos | Blog do Eduardo H. Rizo
Muito bom, ajudou bastante!
Muito boma ajuda.
Mas funciona a partir do WP 8.1 acima ou no 8.0 também ?
Obrigado. Continue com os posts.
Ewerton, funciona a partir do Windows Phone 7.1. OK?
[]s
Eduardo H. Rizo
Obrigado por tirar a dúvida. Continue com as postagens … ajudam muito. Ainda mais sendo em Português.
Confesso que procuro praticamente em inglês já, por saber a falta de material em PT-br.
Mas quando tenho a oportunidade vejo suas postagens, assim entendo melhor do que antes e as vezes tiro dúvidas.
Falar nisto você irá postar algo relacionando a Azure, notificações ?
Ewerton, ainda não tenho nada sobre esse assunto, mas assim que eu conseguir tempo faço um post.
Grande abraço,
Eduardo H. Rizo