14.2. Providing Multiple Language Support

Problem

You want to support multiple languages in your application without developing multiple versions of each page.

Solution

Use resource files to provide the text for each user interface element in the languages you wish to support, and then set the text to use at runtime based on the language setting in the browser.

You don’t need to make any changes to the .aspx files of your application for them to output text in multiple languages.

In the code-behind class for each page that needs to support multiple languages, use the .NET language of your choice to:

  1. Determine the user’s preferred language from the collection of acceptable languages returned with the page request.

  2. Create a CultureInfo object from the user’s language.

  3. Set the CurrentCulture and the CurrentUICulture to the user’s culture object (for controlling the formatting of dates and numbers and locating the appropriate resource file for the selected culture, respectively).

  4. Create a ResourceManager object that will be used to obtain the strings to be displayed in the user’s language.

  5. Set the text for the individual controls using the GetString method of the ResourceManager.

  6. Set the values of the language, current date, and sample currency.

Example 14-1 through Example 14-3 show the .aspx file and VB and C# code-behind files for an application we’ve written to demonstrate this solution. The output is shown in Figure 14-1 (English) and Figure 14-2 (German).

Figure 14-1. Multiple language output—English ...

Get ASP.NET Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.