ASP.NET - Globalizando sua aplicação II
Em meu artigo ASP.NET -Globalizando sua aplicação eu mostrei como você pode usar os recursos que ASP.NET lhe oferece para globalizar suas aplicações na web.
No artigo citado eu usei o Web Matrix como editor de código e como você já deve saber o Web Matrix não usa code-behind ; por isto eu volto a falar sobre o mesmo assunto criando uma aplicação Web que irá exibir os dados conforme a cultura selecionada mas desta vez usando o Visual Studio.
Inicie então um novo projeto no Visual Studio .NET e selecione em Templates : ASP.NET Web Application e em Project Types : Visual Basic. O nome que informei na caixa Location para o exemplo do artigo foi Localiza
O VS.NET irá criar o formulário Web WebForm1.aspx , vou usar este nome mas para aplicações reais você deve usar um nome pertinente.
Usando os recursos do VS.NET insira os controles: Label , Hyperlink, radiobutton e Image no formulário conforme figura abaixo:
O usuário irá poder selecionar no formulário um país , clicando em um dos radiobuttons , e , automaticamente os dados da página serão exibidos na cultura do país selecionado ( moeda , número , data , etc...)
Existem muitas formas de armazenar a informação sobre a cultura do cliente: cookies , sessão , banco de dados , etc. Qualquer que seja a forma a informação tem que estar disponível ao cliente enquanto ele navega nas páginas do site.
O namespace System.Globalization contém classes que definem a informação sobre uma cultura relacionada. Neste namespace a classe cultureinfo representa a informação sobre uma cultura específica e é usada para formatadas números , datas e outras informações.
Os imports necessários para a aplicação são:
Imports
Systema seguir devemos definir as variáveis usadas no projeto:
Private CULTURAPADRAO As [String] = "pt-BR"O código do evento Load da página irá
verificar qual opção o usuário selecionou e definir a cultura respectiva. A
cultura padrão é
pt-BR.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then ci = New CultureInfo(CULTURAPADRAO) Else If enUsRadioButton.Checked Then ci = New CultureInfo("en-US") Else If jaJpRadioButton.Checked Then ci = New CultureInfo("ja-JP") Else If frFrRadioButton.Checked Then ci = New CultureInfo("fr-FR") Else If ptBrRadioButton.Checked Then ci = New CultureInfo("pt-BR") End If End If End If End If End If atulizaDados() End Sub
|
A rotina atualizaDados() irá exibir os valores da página no idioma pertinente a cultura selecionada.
Private Sub atulizaDados() ' If Not (ci Is Nothing) Then Thread.CurrentThread.CurrentCulture = ci cultureNameLabel.Text = CultureInfo.CurrentCulture.Name & " (" & Thread.CurrentThread.CurrentCulture.Name & ")" cultureEnglishNameLabel.Text = CultureInfo.CurrentCulture.EnglishName cultureNativeNameLabel.Text = CultureInfo.CurrentCulture.NativeName End If dateLabel.Text = DateTime.Now.ToString("D") shortDateLabel.Text = DateTime.Now.ToString("d") Dim d As [Double] = 12345.678 numberLabel.Text = d.ToString() currencyLabel.Text = d.ToString("c") End Sub
|
Finalmente devemos criar a página nova página default.aspx que será chamada quando o usuário clicar no link Menu Principal. Para criar a página selecione a opção Project e a seguir Add Web Form.
Abaixo o layout da página :
A página exibe um controle hyperlink que remete a página WebForm1.aspx quando clicado. O código do hyperlink é
<asp:HyperLink id="HyperLink" runat="server" NavigateUrl="WebForm1.aspx" Font-Names="Trebuchet MS">Artigo - Localizando dados do Cliente</asp:HyperLink><BR>
Com isto chegamos ao final desta pequena revisão.
Eu sei , é apenas ASP.NET , mas eu gosto ...
José Carlos Macoratti