Globalization in Visual Basic

Introduction

Hello and welcome to my article! Today I will introduce you to the world of globalization in your Visual Basic .NET programs

Globalization

Globalization is basically the process of making your application culture-friendly. You have to realize that the users of your application may speak a different language than you, and therefore their language adheres to different rules, apart from being a different language. For example, some languages are displayed left to right, while others should be displayed right to left. Now, you have to not only think about the different language, but different currencies, date and time settings as well as different colors being used with different cultures.

With Globalization you can make your application useable with any culture irrespective of their language.

Here are some more articles on Globalization

Today I will concentrate on the CultureInfo class; perhaps in a future article I can delve a bit deeper into more Globalization techniques and other classes.

Let's do a project!

The aim of today's little project is to load all available culture settings, and then use those settings to display the various days inside any given culture. Create a new Visual Basic Windows Forms application and design your form to resemble Figure 1.

Our design
Figure 1 - Our design

Coding

As usual, let me star with the namespaces. Add the following namespace to your code:

Imports System.Globalization 'Import Globalization Namespace

This imports the Globalization namespace, which in turn imports all its functionalities as well. Create the following modular array:

    Private ciAllCultures() As CultureInfo 'Array To Hold All Cultures

This array will hold all the information available in the CultureInfo class. Here is some more information on the CultureInfo class.

Double click your form to show the Form_Load event procedure, then add this code inside it:

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        ' Get & Enumerate All Cultures.
        ciAllCultures = CultureInfo.GetCultures(CultureTypes.AllCultures)

        Dim ciCurrentCulture As CultureInfo

        For Each ciCurrentCulture In ciAllCultures

            ' Display Name Of Each Culture And English Name
            ComboBox1.Items.Add(ciCurrentCulture.Name & " [ " & ciCurrentCulture.EnglishName & " ]")

        Next

    End Sub

The first line of code, obtains all the cultures and stores it inside the ciAllCultures array, then, I looped through each of the cultures and loaded them inside the Combobox. Inside the Combobox, I display both the Culture's native name as well as its English name. The user is now able to select any culture from this list. Now, let us make use of this list productively. Add the following code behind the 'Get days' button:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ListBox1.Items.Clear() 'Clear ListBox

        'Get Selected Culture Via ComboBox
        Dim ciCulture As CultureInfo = New CultureInfo(ciAllCultures(ComboBox1.SelectedIndex).ToString())

        Dim ciDays As String() = ciCulture.DateTimeFormat.DayNames 'Display Day Names

        For Each day As String In ciDays 'Show All Days

            ListBox1.Items.Add("Day Name for " & ciCulture.DisplayName & " " & day)

        Next

    End Sub

I cleared the listbox, then get the chosen culture from the combobox. I specify what I want from the Culture object; in this case I want the DayNames. Lastly, I then loop through the days and display each day inside the listbox, as per Figure 2.

Days in a different language
Figure 2 - Days in a different language

Obviously this is only a tiny part of globalization; you can have a look at some of these articles to learn more:

Conclusion

Short and sweet! I hope you liked today's article, until next time, this is me signing off!



Related Articles

Downloads

Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: March 19, 2015 @ 1:00 p.m. ET / 10:00 a.m. PT The 2015 Enterprise Mobile Application Survey asked 250 mobility professionals what their biggest mobile challenges are, how many employees they are equipping with mobile apps, and their methods for driving value with mobility. Join Dan Woods, Editor and CTO of CITO Research, and Alan Murray, SVP of Products at Apperian, as they break down the results of this survey and discuss how enterprises are using mobile application management and private …

  • On-demand Event Event Date: February 12, 2015 The evolution of systems engineering with the SysML modeling language has resulted in improved requirements specification, better architectural definition, and better hand-off to downstream engineering. Agile methods have proven successful in the software domain, but how can these methods be applied to systems engineering? Check out this webcast and join Bruce Powel Douglass, author of Real-Time Agility, as he discusses how agile methods have had a tremendous …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date