Click here to Skip to main content
15,868,141 members
Articles / Web Development / ASP.NET

Localizing ASP.NET MVC

Rate me:
Please Sign up or sign in to vote.
3.88/5 (16 votes)
7 Sep 2009CPOL2 min read 67.3K   939   34   5
I will examine how to localize ASP.NET MVC application using existing .NET Framework

Introduction

Localization is the process of customizing your application for a given culture and locale. The .NET framework offers the following namespaces and classes to facilitate the localization.

  1. System.Globalization (The System.Globalization namespace contains classes that define culture-related information, including the language, the country/region, the calendars in use, the format patterns for dates, currency, and numbers, and the sort order for strings)
  2. CutureInfo provides information about a specific culture.
  3. The System.Resources namespace provides classes and interfaces that allow developers to create, store, and manage various culture-specific resources used in an application.

In this article, I will examine how to localize ASP.NET MVC application using existing .NET Framework. To create a new MVC project, see ASP.NET MVC application structure. Now, I will create a App_GlobalResources folder that will have the application resource files. To create a resource file in App_GlobalResources folder, follow these steps:

  1. Right-click your project –> Add –> Add ASP.NET Folder –> App_GlobalResources
  2. Right-click App_GlobalResources –> Add –> New Item –> Resources file

I will create two resource files English and French respectively. Now, I will change the "Access Modifier" settings to "Public" as shown below:

localize1.jpg - Click to enlarge image

Using the Code

Now I can access the resource setting in a strongly typed way as shown below in my view:

Image 2

The easiest way to determine the visitor's preferred culture is to add culture="auto" and uiCulture="auto" in web.config as shown below:

XML
<system.web>
<globalization culture="auto" uiCulture="auto"/>

However, this approach will not work when rendering a view using a different view engine or if the client setting is invalid. So I will assign the given culture in a global.asax as shown below:

C#
protected void Application_BeginRequest(object sender, EventArgs e)
{
    CultureInfo culture = new CultureInfo("fr-CA");
    Thread.CurrentThread.CurrentCulture = culture;
    Thread.CurrentThread.CurrentUICulture = culture;
}

This will make sure that the current thread will apply the given culture. Now I will run the project and it will render a view as shown below:

local3.jpg

Summary

In this article, we examined how to localize ASP.NET MVC applications using existing .NET Framework.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) http://www.Fairnet.com
Canada Canada
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
Generalengrossing Pin
Nuri YILMAZ22-Dec-10 1:55
Nuri YILMAZ22-Dec-10 1:55 
GeneralMy vote of 1 Pin
Andrei Ion Rînea14-Sep-09 22:24
Andrei Ion Rînea14-Sep-09 22:24 
GeneralMy vote of 2 Pin
tec-goblin14-Sep-09 22:21
tec-goblin14-Sep-09 22:21 
GeneralMy vote of 1 Pin
Makassi14-Sep-09 10:49
Makassi14-Sep-09 10:49 
GeneralMy vote of 2 Pin
tretyak8-Sep-09 11:09
tretyak8-Sep-09 11:09 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.