LAYERDEV

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Resource e Internacionalização – Parte V Usando Visual Studio.NET 2005

por Mauricio Junior em 1/1/2011 0

 

 

Olá pessoal, com esse artigo termino de falar e mostrar como desenvolver utilizando internacionalização junto com o Visual Studio.NET 2005. Espero que possa valer para vocês como valeu para mim.

 

Os passos anteriores estão no site www.aspneti.com.

Continuando, mostro de outra forma como utilizar em seu sistema ou site.

 

 

Outra forma de Internacionalização

 

Mudarei o dispositivo de escolha da linguagem dentro do sistema. O próximo passo foi desenvolver com o mesmo sistema de mudança de cultura apenas clicando nos link’s logo no início da página.

 

Criei uma página chamada Exemplo.aspx com code behing Exemplo.aspx.cs. Adicionei apenas dois objetos do Visual Studio.NET 2005 à página. (3.3)

 

 

 

Objeto MENU - <asp:menu id=”menu” .... />

Objeto Label - <asp:label id=”lblDescricao” ... />

 

Referência: 3.3

 

 

Para melhor entendimento, a referência 3.4 mostra o código html da página exemplo.aspx total.

 

 

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Exemplo.aspx.cs" Inherits="Exemplo" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Internacionalização - Parte III</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:Menu ID="menu" runat="server" Orientation="Horizontal">

            <Items>

                <asp:MenuItem NavigateUrl="~/Exemplo.aspx?lang=1" Text="Português | "></asp:MenuItem>

                <asp:MenuItem NavigateUrl="~/Exemplo.aspx?lang=2" Text="English | "></asp:MenuItem>

                <asp:MenuItem NavigateUrl="~/Exemplo.aspx?lang=3" Text="German"></asp:MenuItem>

            </Items>

        </asp:Menu>

        <br /><br />

        <asp:Label ID="lblDescricao" runat="server"></asp:Label>

    </div>

    </form>

</body>

</html>

 

Referência: 3.4

 

 

Dentro do objeto menu da ferramenta, pode ser adicionado a propriedade items e em seguida menuitem. A propriedade NavigateUrl é a página ou link que será clicado. A propriedade Text é mostrada ao usuário.

 

Note que os links são adicionados para a mesma página apenas mudando os valores do parâmetro lang. Esses valores irão indicar qual a linguagem dentro do código C#.NET. (3.5)

 

 

<asp:Menu ID="menu" runat="server" Orientation="Horizontal">

            <Items>

                <asp:MenuItem NavigateUrl="~/Exemplo.aspx?lang=1" Text="Português | "></asp:MenuItem>

                <asp:MenuItem NavigateUrl="~/Exemplo.aspx?lang=2" Text="English | "></asp:MenuItem>

                <asp:MenuItem NavigateUrl="~/Exemplo.aspx?lang=3" Text="German"></asp:MenuItem>

            </Items>

        </asp:Menu>

 

Referência: 3.5

 

 

 

 

 

 

 O objeto label é simples e fácil de criar. Nenhum segredo. (3.6)

 

 

 

<asp:Label ID="lblDescricao" runat="server"></asp:Label>

 

Referência: 3.6

 

 

Passando para o código .cs, usei o mesmo método mostrado anteriormente, porém feito para a página exemplo.aspx com algumas alterações.

 

 

 

//ímportes

using System.Globalization;

using System.Threading;

 

Referência: 3.7

 

A referência 3.7 mostra os importes feitos para uso de métodos específicos.

Dentro do método InitializeCulture(), usei uma função para verificar o tipo de parâmetro enviado onde define a cultura que deve ser criada e em seguida mostrar ao usuário final. (3.8)

 

 

  protected override void InitializeCulture()

    {

        if (Request.Params["lang"] != null)

        {

            String selectedLanguage = string.Empty;

            switch (Request.Params["lang"])

            {

                case "1":

                    selectedLanguage = "pt-BR";

                    break;

                case "2":

                    selectedLanguage = "en-US";

                    break;

                case "3":

                    selectedLanguage = "de-CH";

                    break;

            }

            UICulture = selectedLanguage;

            Culture = selectedLanguage;

 

            Thread.CurrentThread.CurrentCulture =

                CultureInfo.CreateSpecificCulture(selectedLanguage);

            Thread.CurrentThread.CurrentUICulture = new

                CultureInfo(selectedLanguage);

 

        }

        base.InitializeCulture();

    }

 

Referência: 3.8

 

 

Explicação:

 

Logo no início do método, verifico se existe algum valor para o parâmetro “lang” enviado pela página via querystring. Se estiver diferente de nulo faço uma verificação usando switch case onde é verificado o valor atribuindo a variável global selectedLanguage declarada anteriormente.

Usei as mesmas culturas. (3.9)

 

 

 

 

Português:

pt-BR

 

Inglês:

en-US

 

Alemão:

de-CH

 

Referência: 3.9

 

Se o valor for igual a 1, atribuo a variável o valor português, sendo 2 atribuo o valor inglês e por final sendo 3 atribuo o valor alemão.

O restante do código foi explicado nos itens anteriores.

 

 

No método Page_Load apenas atribuo ao label da tela o valor do recurso. (4.0)

 

 

    protected void Page_Load(object sender, EventArgs e)

    {

        lblDescricao.Text = Resources.ResourceKey.Label;

    }

 

Referência: 4.0

 

 

 

Segue o código da página Exemplo.aspx total. (4.1)

 

 

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

//ímportes

using System.Globalization;

using System.Threading;

 

 

public partial class Exemplo : System.Web.UI.Page

{

    protected override void InitializeCulture()

    {

        if (Request.Params["lang"] != null)

        {

            String selectedLanguage = string.Empty;

            switch (Request.Params["lang"])

            {

                case "1":

                    selectedLanguage = "pt-BR";

                    break;

                case "2":

                    selectedLanguage = "en-US";

                    break;

                case "3":

                    selectedLanguage = "de-CH";

                    break;

            }

            UICulture = selectedLanguage;

            Culture = selectedLanguage;

 

            Thread.CurrentThread.CurrentCulture =

                CultureInfo.CreateSpecificCulture(selectedLanguage);

            Thread.CurrentThread.CurrentUICulture = new

                CultureInfo(selectedLanguage);

 

        }

        base.InitializeCulture();

    }

 

    protected void Page_Load(object sender, EventArgs e)

    {

        lblDescricao.Text = Resources.ResourceKey.Label;

    }

}

 

Referência: 4.1

 

 

Referência: 4.2

 

No início da página, o recurso já traz a língua default do cliente, ou seja, português. Cliquei no menu English passando o parâmetro 2. Veja o resultado. (4.3)

 

 

Referência: 4.3

 

 

E para finalizar, cliquei na opção do menu German onde todo valor da página foi alterado para alemão. (4.4)

 

 

 

 

 

Referência: 4.4

 

 

Bom, fico por aqui.

Espero ter ajudado a todos.

Qualquer dúvida, favor entrar em contato pelo e-mail: mauricio@aspneti.com.

 

 

Livros publicados:

 

 

 

 

Mauricio Junior

www.aspneti.com

www.mauriciojunior.org

www.ascompras.com

 

 

 

voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:


Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Gravando erros com eventlog - Parte I
Generics na prática
Formatando String rapidamente
Montando estrutura de um site MVC 2 com Visual Studio .NET 2010 - Parte 2
Themas - Muito Simples
Ebook: Aprendendo Desenvolver WebServices
Exemplo usando try e catch
Comunicação .NET e VB 6.0 – Parte I
Evento BrasilDotNet 2008
Problemas na acentuação
Token e Sessão Corrente com C#.NET
Trabalhando com STORED PROCEDURE
Criando uma aplicação de uma maneira nova para melhor publicação
Envio de e-mail através de formulário web
Ajax parte II
GridView Parte III
Validator no VS 2005
Windows Phone 7, nada como aprender vendo
Windows 7 funciona até no Mac
Sistema de Login com ASP 3.0 usando três camadas – Parte I
Emulando o Windows Phone 7 em seu celular
Sistema de Catalogar Livros
Dell Streak Demo
Enviando E-mail com Anexo
Encontrar o valor no texto
Vídeo Aula: Criando e Publicando Site de uma melhor maneira com C#.NET
Método para ordenar DataTable
Desenvolvendo software com qualidade
Nova versão iCredCard aprovado pela Apple
WebService utilizando soapHeader e token
Definindo o botão padrão.
Download grátis - Sistema de Controle de Combustível
Flickr para Windows 7 e Windows Phone 7
Configurar Style
Pagamento via celular




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Notebook 3D ou 4K?

Notebook vem com tudo...

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...




NETITC