Busca online em todo site:
Heroes

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




Título do Artigo

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


Data Publicação: 20/6/2006 19:46:29
Total de visualizações: 3797

comente
 


 

 

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

 

 

 



Total de visualizações: 3797
voltar   comente  subir

Autor:


Por:Mauricio Junior
Maurício Júnior
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 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.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.orgSite pessoal  www.mauriciojunior.org


Comentários:


Comente (dê sua opinião): VOCÊ PRECISA ESTAR LOGADO

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

PodCast na Comunidade
Windows Form - Retornando valor entre formulários
Visual Studio 2010 Beta 2
Ophone The Microsoft - Vídeo
Novo SO Palm, depois da venda...
Themas - Muito Simples
Não publicação
Evento BrasilDotNet 2008
Lendo Arquivo txt usando Visual Studio.NET 2005
Confira os 5 primeiros ganhadores da promoção assinatura online grátis DEVMEDIA.COM e ASPNETI.COM
Vídeo - iGas - Sistema de Gasolina Mobile
Novo Firefox 3.0 - o chamado Minefield
Visual Source Safe ? Série 2
Armazenando Dados no ViewState Parte II
Pop3 aberto no Hotmail
ModalDialogExtender
Mudar de MasterPage em Tempo de Execução
Trabalhando com Session
O Avanço do Blu-Ray no Brasil
Sistema ASP 3.0 utilizando 3 camadas – Parte 2
IsAlpha
Cache
e-Book gratuito Microsoft Office 2010
WebServices - Desenvolvimento Parte 2
Aplicativos para Dispositivos Móveis, Usando C#.NET com a ferramenta Visual Studio.NET e com Banco de Dados MySQL e SQL Server
Usando themes ASP.NET 2.0 (Parte 1)
Vírus - Telegrama Eletrônico
Novo TechNet Experience Online
My Tracks
Media Center Microsoft bombando
Copiando Script
GridView Parte II
Visual SourceSafe - Série 4
Vídeo - Microsoft Surface: The Power
Certificação para Profissional de TI

Publicidade:

[sumir] [aparecer]
NETITC




Informações Online:

Usuários Online: 270
Artigos:  651
Vídeos:  47
PodCast's:  31
Fórum:  3098
Empregos:  1223
Usuários Cadastrados: 5783

Categoria de Artigos

Vídeos

Enquete - Dê sua opinião

 Os podcasts tem sido proveitoso pra você?

 

Colaboradores

Foto Autor autor: Mauricio Junior   
publicou 379 artigo(s).
Foto Autor autor: Júlio Battisti   
publicou 51 artigo(s).
Foto Autor autor: Fabio Galante Mans   
publicou 28 artigo(s).
Foto Autor autor: Kleber Becerra   
publicou 10 artigo(s).
Foto Autor autor: Ramon Durães   
publicou 6 artigo(s).
Foto Autor autor: Ebenézer de Souza   
publicou 5 artigo(s).
Foto Autor autor: Fabio Aguiar   
publicou 4 artigo(s).
NETITC