Curso Windows Phone – Como criar APPs com suporte a vários idiomas

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.

...
<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

MCP

Post Relacionado: 

[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]

Marcado com: , , , , , , , , , , , , ,
5 comentários sobre “Curso Windows Phone – Como criar APPs com suporte a vários idiomas
  1. Muito bom, ajudou bastante!

  2. Ewerton disse:

    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

      • Ewerton disse:

        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

1 Pings/Trackbacks para "Curso Windows Phone – Como criar APPs com suporte a vários idiomas"
  1. […] Como criar APPs com suporte a vários idiomas […]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*