segunda-feira, 10 de junho de 2013

Internacionalizando Apps no Windows Phone

Internacionalizar quer dizer criar um aplicativo que permita o usuário mudar a linguagem, se ele quiser. Quando fui fazer meu primeiro App eu achei um artigo (link no final deste post) que me explicou muito bem como fazer.

A idéia é criar vários arquivos de recursos, um para cada linguagem, e nos componentes do seu app (labels, botões, etc), ao invés de ter o texto digitado, trará uma referência à chave que o windows phone buscará no arquivo de recursos.

Primeiramente, adicione um arquivo de recursos à sua aplicação. Eu sempre dou o nome de AppResources.resx. Este arquivo vai conter as chaves e valores dos textos para a linguagem padrão da sua aplicação.


Abra o arquivo e adicione as chaves e valores dos textos que deseja. Lembrando que o nome deve ser único, não pode repetir, o valor é o texto que vai aparecer na tela, e o comentário é só para ajudar, principalmente quando o arquivo vai ficando maior.

Duplique o arquivo AppResources para cada linguagem adicional que você queira colocar. O nome destes novos arquivos devem conter as informações corretas de linguagem/cultura conforme observado neste link. O formato do nome do arquivo deve ser <nome do arquivo de recursos>.<linguagem/cultura>.resx. Então, se quisermos colocar a linguagem alemã no nosso programa, criariamos um arquivo assim: AppResources.de-DE.resx. Se fosse para o inglês dos Estados Unidos: AppResources.en-US.resx, e assim por diante.

No novo arquivo, traduza todas as strings adicionadas anteriormente.




Agora você deve editar o arquivo do projeto para adicionar a informação de quais culturas seu app suporta. Mas para fazer isto, primeiro você precisa dar unload no projeto, para isto, clique com o botão direito no projeto e selecione "Unload Project".
Depois, clique novamente com o botão direito em cima do projeto e selecione a opção para editar o projeto.




Agora, procure pela tag <SupportedCultures> e adicione os nomes das culturas suportadas pelo seu aplicativo. Você pode adicionar mais de uma cultura separando por ";". A cultura padrão do seu aplicativo não precisa ser incluída nesta tag.



Salve e recarregue o projeto.
Tenha certeza que os arquivos de recursos estão com o "Access Modifier" setados para público.


Agora, crie uma nova classe que vai expor o recurso:

public class LocalizedStrings
{
    public LocalizedStrings()
    {
    }
 
    private static AppResources localizedResources = new AppResources();
 
    public AppResources AppResources
    {
        get { return localizedResources; }
    }
}

No código acima, AppResources é o nome da classe gerada automaticamente para o arquivo de recursos adicionado anteriormente.




Abra o arquivo App.xml e adicione o seguinte código:

    


Sempre que você quiser mostrar a string internacionalizada, basta apontar para o nome da chave do arquivo de recursos.
Exemplo:




 

Para testar, altere a liniguagem do seu smartphone, ou do emulador, para isto, acesse as configurações, região e idioma e mude o idioma. Após a mudança será pedido para reinicar o telefone.

Fonte: http://www.geekchamp.com/articles/localizing-a-windows-phone-app-step-by-step

Nenhum comentário:

Postar um comentário