HOW TO: Set Current Culture Programmatically in an ASP.NET Application

Article translations Article translations
Article ID: 306162 - View products that this article applies to.
This article was previously published under Q306162
Expand all | Collapse all

On This Page

SUMMARY

This step-by-step article describes how to change the current culture and current UI culture in an ASP.NET application. In the .NET Framework, the CultureInfo class from the System.Globalization namespace provides culture-specific information such as the associated language, country/region, calendar, and cultural conventions. The CurrentCulture property represents the culture that the current thread uses. The CurrentUICulture property represents the current culture that Resource Manager uses to look up culture-specific resources at run time. There are three ways to set the Culture information in an ASP.NET application, Application Level, Page Level, and Thread Level.

Application Level

Specify Application Level Culture information in the Web.config file. To do this, follow these steps:
  1. Start Notepad (or any other text editor).
  2. Paste the following code in Notepad:
    <configuration>
      <system.web>
        <globalization
           culture="ja-JP"
           uiCulture="zh-HK"
        />
      </system.web>
    </configuration>
  3. Save the text file as Web.config in the root folder of your Web server. For example, C:\Inetpub\wwwroot\Web.config.
  4. Start another instance of Notepad. Paste the following code in Notepad:
    <%@Page Language="C#" %>
    <% @Import Namespace="System.Globalization" %>
    <html>
       <head>   </head>
       <script runat=server>
          public void Page_Load()
          {
             Response.Write ("Current Culture is " + CultureInfo.CurrentCulture.EnglishName);
          }
       </script>
    
       <body></body>
    </html>
    
  5. Save this text file as Application.aspx in the root folder of your Web server.
  6. Start Internet Explorer, and then open Application.aspx.

Page Level

The Page Level Culture-specific information settings override the Application Level Culture-specific information settings. Specify Page Level Culture information by using the @Page directive. To do this, follow these steps:
  1. Follow steps 1, 2, and 3 of the "Application Level" section to create the Web.config file.
  2. Start another instance of Notepad. Paste the following code in Notepad:
    <%@Page Culture="fr-FR" Language="C#" %>
    <% @Import Namespace="System.Globalization" %>
    <html>
       <head>
       </head>
          <script runat=server>
          public void Page_Load()
          {
             Response.Write ("Current Culture is " + CultureInfo.CurrentCulture.EnglishName);
          }
          </script>
    
       <body></body>
    </html>
  3. Save this text file as Page.aspx in the root folder of your Web server.
  4. Start Internet Explorer, and then open Page.aspx. Note that the Current Culture setting is French, although Japanese is specified as the current culture in the Web.config file.

Thread Level

The Thread Level Culture-specific information settings override the Page Level Culture-specific information settings. Specify the Thread Level Culture-specific information by setting the CurrentCulture property or the CurrentUICulture property of the current thread. To do this, follow these steps:
  1. Follow the steps 1, 2, and 3 of the "Application Level" section to create the Web.config file.
  2. Start another instance of Notepad. Paste the following code in Notepad:
    <% @Page Culture="fr-FR" Language="C#" %>
    <% @Import Namespace="System.Globalization" %>
    <% @Import Namespace="System.Threading" %>
    <html>
       <head>
       </head>
          <script runat=server>
          public void Page_Load()
          {		// Display the Current Culture
             Response.Write("Current Culture is " + Thread.CurrentThread.CurrentCulture.EnglishName + "<br>");
    	 
    	// Modify the Current Culture
    	Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
    	Response.Write("Changing Culture to " + Thread.CurrentThread.CurrentCulture.EnglishName + "<br>");
    
          }
          </script>
    
       <body>
       </body>
    </html>
  3. Save this text file as Thread.aspx in the root folder of your Web server.
  4. Start Internet Explorer, and then open Thread.aspx. Note that the Current Culture setting is German, although French is specified at the page level and Japanese is specified in the Web.config file.

REFERENCES

For more information, see the Microsoft .NET Framework SDK Documentation or visit the following Microsoft Web sites:
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspx

Properties

Article ID: 306162 - Last Review: June 15, 2012 - Revision: 4.0
APPLIES TO
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
Keywords: 
kbproductlink kblocalization kbconfig kbwebforms kbdynamic kbhowtomaster kbhowto KB306162

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com