Página anterior Voltar ao início do trabalhoPágina seguinte 

Resource e Internacionalização usando Visual Studio.NET 2005 (Parte V) (página 2)

Mauricio Junior

 

 

<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[arroba]aspneti.com.

Mauricio Junior - mauricio[arroba]ascompras.com



 Página anterior Voltar ao início do trabalhoPágina seguinte 



As opiniões expressas em todos os documentos publicados aqui neste site são de responsabilidade exclusiva dos autores e não de Monografias.com. O objetivo de Monografias.com é disponibilizar o conhecimento para toda a sua comunidade. É de responsabilidade de cada leitor o eventual uso que venha a fazer desta informação. Em qualquer caso é obrigatória a citação bibliográfica completa, incluindo o autor e o site Monografias.com.