André Alves de Lima

Talking about Software Development and more…

Localizando sua Aplicação WPF utilizando Arquivos de Recursos

[Atenção!!! Este artigo tem sua versão em vídeo! Se quiser pular a parte escrita e só assistir o vídeo, dê uma olhada no final do post!]

A possibilidade de localizar aplicações de negócios em múltiplos idiomas é um requisito usual de aplicações no mundo globalizado. No escopo do WPF existem várias maneiras de possibilitar que sua aplicação rode em diferentes idiomas. Uma das maneiras de atingir esse objetivo é utilizarmos arquivos de recursos, que é o que veremos neste artigo. No exemplo abaixo, utilizei o Visual Studio 2010 com .NET Framework 4.0, mas, o mesmo exemplo é válido em qualquer edição do WPF.

Primeiramente, vamos criar um novo projeto Visual C# (ou Visual Basic, como preferir) WPF Application, selecionando essa opção na caixa de diálogo que se abre ao executar File -> New -> Project. Dê o nome de WPFLocalization para essa nova aplicação.

Na nossa nova aplicação, vamos utilizar a MainWindow que já é criada automaticamente para construirmos um layout bem simples para a nossa aplicação que será localizada. A ideia é montarmos uma tela de entrada de dados semelhante à imagem abaixo:

O código XAML correspondente à interface acima é o seguinte:

Feito isso, agora vamos começar a localizar essa nossa aplicação. Como disse no início do artigo, vamos utilizar arquivos de recursos para fazer a localização, então, vamos incluir um Resource File no nosso projeto. Para isso, na janela Solution Explorer, clique com o botão direito no projeto e escolha a opção Add -> New Item. Na caixa de diálogo exibida, escolha a opção Resource File e dê o nome de MainWindowMessages.resx.

Ao fazer isso, um arquivo de recursos é adicionado ao nosso projeto. O próximo passo é incluir as chaves que corresponderão aos textos que são exibidos na nossa aplicação, então, crie os seguintes itens nesse arquivo de recursos:

Agora é hora de alterarmos o nosso XAML para que nossa aplicação busque os textos dos nossos controles no nosso arquivo de recursos. Para isso, o primeiro passo é incluir um XML namespace no nosso XAML que aponte para no namespace da nossa aplicação. Portanto, nas declarações dos XML namespaces (na tag Window do nosso XAML), acrescente a seguinte entrada:

xmlns:local="clr-namespace:WpfLocalization"

Dessa forma, podemos alterar os textos dos nossos labels e botão para que sejam buscados no nosso arquivo de recursos, utilizando a seguinte sintaxe na propriedade Text do nosso TextBlock, por exemplo:

Após alterar o XAML todo, o resultado deverá ser o seguinte:

Com isso, nossa aplicação já estará buscando as descrições do arquivo de recursos. Então, para que ela seja multi-idiomas, basta acrescentar outros arquivos de recursos com o mesmo nome e o código do idioma, como, por exemplo, MainWindowMessages.en-US.resx, com os seguintes itens:

Aproveite e crie também o arquivo MainWindowMessages.pt-BR.resx com o mesmo conteúdo do primeiro arquivo de recursos criado, para caso o idioma padrão do seu sistema operacional não seja o português.

Após isso, ao rodar a sua aplicação novamente, se o seu sistema operacional for em inglês, sua aplicação será exibida em inglês. Já se o seu sistema operacional for em português ou outro idioma, sua aplicação será exibida em português.

Para testarmos melhor as alterações, você pode forçar a cultura da sua aplicação para pt-BR no construtor da sua MainWindow, da seguinte forma:

public MainWindow()
{
   System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("pt-BR");
   InitializeComponent();
}

Ou, caso queira forçar o idioma inglês, você pode alterar o “pt-BR” para “en-US”:

public MainWindow()
{
   System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("pt-BR");
   InitializeComponent();
}

Para tornar sua aplicação localizável em outros idiomas, é só criar outros arquivos de recursos com o mesmo nome, utilizando somente o código do idioma antes da extensão .resx.

É isso aí. Dessa forma a sua aplicação será exibida no idioma correspondente ao idioma do sistema operacional do seu cliente.

Espero que vocês tenham gostado. Deixem suas dúvidas, sugestões, etc. nos comentários desse post.

E abaixo você pode conferir a versão em vídeo deste artigo:

[Observação: para assistir o vídeo em uma qualidade melhor, clique no botão HD do Media Player abaixo]

Este artigo / vídeo foi baseado no exemplo encontrado no site de Windows Client da Microsoft: http://windowsclient.net/learn/video.aspx?v=297139

Espero que tenham gostado! Até a próxima!

André Alves de Lima.

7 thoughts on “Localizando sua Aplicação WPF utilizando Arquivos de Recursos

Deixe uma resposta

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