Globalization in .NET

Now a day it is very difficult to think about building any application without globalization. If we are building an internet application, then it is very much required that our application supports all the languages with respect to the customer's locality.

What is Globalization?

The Globalization process basically includes,

  1. Internationalizing the application code
  2. Followed by localizing the application to other languages and cultures

    Internationalization: This includes translate, store, retrieve, and present application content for any locale. This means identify all parts of our application that need to be different from respective languages.

    Localization: adapting your application to other locales by translating and formatting content according to culture. This involves configuring the application for the specific languages.

    Culture: This is the combination of Language and the location. For example
    En-US - indication English spoken at United States.
    En-GB - indication English spoken at Great Briton.

Resource files in .NET

When we create a window application and click on Show All Files in the Solution Explorer we will get below view,

Fig. 1

If we see above figure, application automatically added an XML
resource file (in above case Form1.resx). Here we can set the language the form supports. This can be done by the form properties as shown in Fig.2


This will adds the related files to the form as well as generate the initialization code in InitializeComponent() function of the form. We can enter the information for the language by editing the resource file.

Suppose if you want to show any message to the user,

DialogResult result = MessageBox.Show("Do you want to close?", MessageBoxButtons.YesNo);

Instead we can use,

System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
DialogResult result = MessageBox.Show(resources.GetString("quitapplication"), resources.GetString("quit"), essageBoxButtons.YesNo);

We can access the value from resource file (XML) by name as in the above code.


To work with the cultural information, we have below namespaces in .NET.

1. System.Globalization
2. System.Resources

As we need to set the culture at the thread level, we have to use System. Threading namespace.

For an ASP.NET application, suppose we need to set the language to Kannada,

1. Add below code in the page directive.

<%@ Page language="c#" Culture="kn-IN"%>

2. Add a calendar control to the page.
3. Run the application, you will find that the language is changed to Kannada (Fig.3)


If we need to set the culture at application level then we can add below code in web.config file.

<globalization culture="kn-IN" />