VB .NET - Internacionalização - Dias da Semana
Hoje vou mostrar uma aplicação muito simples feita no Visual Basic 2010 Express Edition que exibe os nomes dos dias da semana para o idioma selecionado.
Abra o Visual Basic 2010 Express Edition e crie um novo projeto do tipo Windows Forms Application com o nome DiasDaSemanaInternacional;
No formulário form1.vb inclua 7 Labels, 7 TextBox e um Combobox (vou usar os nomes padrão dos controles) conforme o leiaute abaixo:
A seguir defina no formulário namespace System.Globalization e no evento Load do formulário digite o código a seguir:
Imports System.Globalization Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dt As New DataTable dt.Columns.Add("0") dt.Columns.Add("1") dt.Columns.Add("2") dt.Columns.Add("3") dt.Columns.Add("4") dt.Columns.Add("5") dt.Columns.Add("6") dt.Columns.Add("cultureName") For Each ci As CultureInfo In CultureInfo.GetCultures(CultureTypes.SpecificCultures) Dim fields As New List(Of String)(New CultureInfo(ci.Name).DateTimeFormat.DayNames) fields.Add(ci.Parent.EnglishName) Dim dr As DataRow = dt.NewRow dr.ItemArray = fields.ToArray dt.Rows.Add(dr) Next dt = dt.DefaultView.ToTable(True, New String() {"cultureName", "0", "1", "2", "3", "4", "5", "6"}) For x As Integer = dt.Rows.Count - 1 To 0 Step -1 If dt.Rows(x).Item("cultureName").ToString = "Invariant Language (Invariant Country)" Then dt.Rows.Remove(dt.Rows(x)) End If Next ComboBox1.DisplayMember = "cultureName" ComboBox1.DataSource = dt TextBox1.DataBindings.Add("Text", dt, "0") TextBox2.DataBindings.Add("Text", dt, "1") TextBox3.DataBindings.Add("Text", dt, "2") TextBox4.DataBindings.Add("Text", dt, "3") TextBox5.DataBindings.Add("Text", dt, "4") TextBox6.DataBindings.Add("Text", dt, "5") TextBox7.DataBindings.Add("Text", dt, "6") End Sub End Class |
O namespace System.Globalization contém classes que definem informações relacionadas à cultura, incluindo idioma, país/região, calendários em uso, os padrões de formatação de datas, ordem de classificação, números, moeda e seqüências de caracteres. Essas classes são úteis para escrever aplicativos globalizados. Classes como StringInfo e TextInfo fornecem funcionalidades avançadas de globalização, incluindo processamento de elemento de suporte e o texto substituto.
As principais classes desse namespace são:
Classe | Descrição |
Calendar | Representa o tempo em divisões, como, por exemplo, semanas, meses e anos |
CultureInfo | Fornece informações sobre
uma cultura específica (chamada uma localidade para o
desenvolvimento de código não gerenciado). A informação inclui os nomes para a cultura, o sistema de escrita, o calendário usado, e formatação para datas e cadeias de caracteres de tipo. |
DateTimeFormatInfo | Fornece informações de cultura específicas sobre o formato dos valores de data e hora. |
DayLightTime | Define o período do horário de verão. |
NumberFormatInfo | Define como os valores numéricos são formatados e exibidos, dependendo da cultura. |
RegionInfo | Contém informações sobre o país/região. |
TextInfo | Define propriedades e comportamentos de texto, como a caixa, que são específicos para um sistemas de escrita. |
A classe CultureInfo classe processa informações específicas de cultura, como linguagem associada, sub-idioma, país/região, calendário e convenções culturais.
Essa classe também fornece acesso às instâncias especificas de cultura de DateTimeFormatInfo, NumberFormatInfo, CompareInfo e TextInfo.
Esses objetos contêm informações para operações específicas de cultura, como sistema autônomo, formatação de datas e números e comparação cadeias de caracteres.
Executando o projeto e selecionando um idioma teremos os nomes dos dias da semana exibidos para aquele idioma:
pegue o projeto completo aqui: DiasDaSemanaInternacional.zip
1Pe 3:7
Igualmente vós, maridos, vivei com elas com entendimento, dando honra à mulher, como vaso mais frágil, e como sendo elas herdeiras convosco da graça da vida, para que não sejam impedidas as vossas orações.1Pe 3:8
Finalmente, sede todos de um mesmo sentimento, compassivos, cheios de amor fraternal, misericordiosos, humildes,1Pe 3:9
não retribuindo mal por mal, ou injúria por injúria; antes, pelo contrário, bendizendo; porque para isso fostes chamados, para herdardes uma bênção.1Pe 3:10
Pois, quem quer amar a vida, e ver os dias bons, refreie a sua língua do mal, e os seus lábios não falem engano;1Pe 3:11
aparte-se do mal, e faça o bem; busque a paz, e siga-a.Referências:
http://msdn.microsoft.com/pt-br/library/system.globalization.aspx