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:


José Carlos Macoratti