Pesquisar

Utilizando Localization em Windows Forms

 

Bem neste post vou explicar para vocês como criar uma aplicação que tenha suporte a várias linguagens. Irei explicar passo a passo:

1º -> Criamos um projeto Windows Forms no Visual Studio.

2º -> No Form1 criado mudamos a propriedade Localizable do formulario para true, isto informa ao Visual Studio que ele deverá gerar os resources para cada linguagem diferente.

3º -> Acrescente um botão ao formulário e coloque no texto do botão: “Português”

4º -> Agora vem a parte principal, modifique a propriedade Language do formulário para Inglês(Estados Unidos).

5º -> Mude o texto do botão para: “Inglês(Estados Unidos)”.

6º -> Adicione o seguinte código no construtor do formulário antes de chamar o método InitializeComponent()

hreading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en-US")

7º -> Rode a aplicação, pronto a aplicação estará utilizando o texto em inglês, se não setar cultura nenhuma a aplicação ficará em português que é o default da aplicação.

O visual studio gerá um arquivo chamado “Form1.en-US.resx” para a cultura específica, pode-se criar várias culturas apenas criando cópias desse arquivo e mudando os textos dentro dele e mudando seu nome para por exemplo “Form1.de-DE.resx” com isto criamos um resource para alemão. Estes arquivos ficam dentro do projeto juntamente com os arquivos de código fonte, após criar os arquivos devemos lembrar de adicioná-los ao projeto dentro do visual studio.
É possível criar estes arquivos através do Visual Studio utilizando os passos 4 e 5, cada vez que mudarmos a linguagem do formulario e compilarmos a aplicação o Visual Studio gerá um novo arquivo resx.

Podemos utilizar mensagens de erro personalizadas para cada cultura também.
Criamos no arquivo resx uma propriedade MensagemDeErro conforme visto na figura, esta propriedade deve ser criada em todos os resources da nossa aplicação.

imagem

 

Para utilizarmos a mensagem do resource utiliza-se o seguinte código.


im resource As New Resources.ResourceManager("Application.Form1", GetType(Form1).Assembly)
sgBox(resource.GetString("MensagemDeErro"))

Temos nossa mensagem conforme a cultura escolhida


imagem2

Nenhum comentário: