Search
Categories
  ASP.NET
Visual C#
Visual Basic
.NET Framework
ADO.NET
AJAX
LINQ
Java
 
Tutorial Rating
 
3.0 out of 5


Total Votes: 10
         
1 2 3 4 5
 




Implement Globalization in VB.NET using CultureInfo class

Author: Waqas Anwar - Posted Date: 06-April-2008 - Category: Visual Basic   
Bookmark and Share
CultureInfo class provides culture-specific information in .NET applications. This information includes language, sublanguage, country or region, day names, month names, calendar etc. It also provides culture specific conversions of numbers, currencies, dates or strings. In the following tutorial, I will show you how you can retrieve this information from different cultures available in .NET Framework.
 
To use CultureInfo class you need to import System.Globalization namespace which contains many classes used in the following code such as RegionInfo, DateTimeFormatInfo or NumberFormatInfo.

Globalization using CultureInfo class


Following code is loading all specific cultures available in .NET Framework in the listbox.

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    ' Load All Specific Cultures
    Dim allCultures As CultureInfo() = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
    For Each culture As CultureInfo In allCultures
        listBox1.Items.Add(culture.EnglishName)
    Next
End Sub

When user select any culture from the listbox following code retrieve that culture, set current application and user interface culture and then display culture specific information on different labels.

Private Sub listBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    Try
        Dim allCultures As CultureInfo() = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
        Dim index As Integer = listBox1.SelectedIndex
       
        Dim c As CultureInfo = DirectCast(allCultures.GetValue(index), CultureInfo)
       
        ' Set Current Application and User Interface Culture
       
        System.Threading.Thread.CurrentThread.CurrentCulture = c
        System.Threading.Thread.CurrentThread.CurrentUICulture = c
       
        label1.Text = "Application Culture Name: " + c.Name
        label2.Text = "Application Culture Native Name: " + c.NativeName
        label3.Text = "Application Culture English Name: " + c.EnglishName
        label4.Text = "Application Culture Neutral Name: " + c.TwoLetterISOLanguageName
        label5.Text = "Application Culture Language Name: " + c.ThreeLetterISOLanguageName
        label6.Text = "Application Culture Windows Name: " + c.ThreeLetterWindowsLanguageName
       
        ' RegionInfo Object
       
        Dim r As New RegionInfo(c.Name)
       
        label7.Text = "Region English Name: " + r.CurrencyEnglishName
        label8.Text = "Currency Symbol: " + r.CurrencySymbol
        label9.Text = "Region English Name: " + r.EnglishName
       
        ' DateTimeFormatInfo Object is used
        ' to get DayNames and MonthNames
       
        Dim days As String() = c.DateTimeFormat.DayNames
        listBox2.Items.Clear()
        For Each day As String In days
            listBox2.Items.Add(day)
        Next
       
        Dim months As String() = c.DateTimeFormat.MonthNames
        listBox3.Items.Clear()
        For Each month As String In months
            listBox3.Items.Add(month)
        Next
       
        ' Formatting Currency and Numbers
       
        label10.Text = "Full Date Time Pattern: " + c.DateTimeFormat.FullDateTimePattern
        label11.Text = "Formatted Date: " + DateTime.Now.ToString("d", c.DateTimeFormat) 
            
        label12.Text = "Formatted Number: " + 65000.ToString("C", c.NumberFormat)
    Catch ex As Exception
    End Try
End Sub



RELATED TUTORIALS

  Using CultureInfo class in C# to implement Globalization
  Developing Multi Language Web Sites with ASP.NET

LEAVE YOUR COMMENTS LEAVE YOUR COMMENTS
 Name (required)  
 Email (required
 Website


 
POSTED COMMENTS POSTED COMMENTS

too good.hats off 2 u
Posted by Tarun on Sunday, May 11, 2008

use
Dim r As New RegionInfo(c.LCID)
instead of
Dim r As New RegionInfo(c.Name)
Posted by EmilM on Tuesday, June 17, 2008

Thank you.
Posted by Mustafa on Wednesday, July 09, 2008

This Coding Is Excellent , Great Job Man.
Posted by ashwin hegde on Thursday, July 17, 2008

Best
Posted by parag on Monday, October 13, 2008

GOOD
Posted by d on Thursday, November 13, 2008

Hi...
I'm sorry. i tried your code but was unsuccessful.
When i run the application, listbox1 was not populated. I imported system.globalization namespace, copied and pasted the form load sub, and listbox sub.

Where did i go wrong?
Posted by Fandi on Thursday, July 22, 2010

I realized there was no handles mybase.load on the load sub and no handles listbox1.selectedIndexChanged.
Added those codes and it worked gracefully.
Thanks for the tutorials. It was great.
Posted by Fandi on Thursday, July 22, 2010

 


 
 
 

Categories

My Portfolio

Website Links


Copyright @ 2009 EzzyLearning.com