Introduction
Globalization is the process of designing and developing applications that
function for multiple cultures.
Localization is the process of customizing your application for a given culture
and locale.
Cultures and Locales
The language needs to be associated with the particular region where it is
spoken, and this is done by using locale (language + location). For example: fr
is the code for French language. fr-FR means French language in France. So, fr
specifies only the language whereas fr-FR is the locale. Similarly, fr-CA
defines another locale implying French language and culture in Canada. If we use
only fr, it implies a neutral culture (i.e., location neutral).
Set culture information
Application level -In web.config file
<configuration>
<system.web>
<globalization
culture="fr-FR"
uiCulture="fr-FR"/>
</system.web>
</configuration>
![web-config.gif]()
Resource Files
- A resource file is an XML file that contains the strings that you
want to translate into different languages or paths to images.
- The resource file contains key/value pairs. Each pair is an individual
resource. Key names are not case sensitive.
e.g. A resource file might contain a resource with the key Button1 and
the value Submit
Resource files in ASP. NET have an .resx extension. At run time, the .resx file
is compiled into an assembly.
Global Resource Files
- You create a global resource file by putting it in the reserved
folder App_GlobalResources at the root of the application.
- Any .resx file that is in the App_GlobalResources folder has global scope.
![app-global.gif]()
Local Resource Files
A local resources file is one that applies to only one ASP. NET page or user
control (an ASP. NET file that has a file-name extension of .aspx, .ascx, or
.master).
![applocal.gif]()
Implicit Localization with Local Resources
- If you have created local resource files for a specific page, you can use
implicit localization to fill the property values for a control from the
resource file. In implicit localization, ASP.NET reads a resource file and
matches resources to property values.
- To use implicit localization, you must use a naming convention for resources
in the local resource file that uses the pattern:
meta:resourcekey
Explicit Localization
- Alternatively, you can use explicit localization, where you use a
resource expression. Unlike implicit localization, you must use a
resource expression for each property that you want to set.
<asp:Button
ID="Button1" runat="server"
Text="Button"
Text="<%$
Resources:WebResources, Button1Caption %>"
/>
Localizing Static Text
- If a page includes static text, you can use ASP.NET localization
by including it in a Localize control, and then using explicit localization to
set the static text. The Localize control renders no markup; its only function
is to act as a placeholder for localized text.
- The Localize control can be edited in Design view, not only in the property
grid. At run time, ASP.NET treats the Localize controlas a Literal control.
<asp:Localize
ID="l1"
runat="server"
Text="Welcome!"
meta:resourcekey="button1"
/>
Get Resource value programmetically
Label3.Text =
Resources.Resource.b1;
Label3.Text = GetLocalResourceObject("Button1.Text").ToString();
Label3.Text = GetGlobalResourceObject("resource",
"color");
Example
Create a Multi-Lingual Site with
Localization
Web page
Step 1 Drag a button and Label
Step 2 Right click on web site- Add ASP.NET Folder - Add App_Local
Resource -Select -
Step 3 Right click on Add New item - Resource File - Name (Default.aspx.resx)-
Name (Button1.Text)- Ok / Label1.Text-English-Copy the RESX file and Paste it
Step 4 Rename it - (Deafult.aspx.fr.resx)- edit it..(Button1.Text)-
Namaste / Label1.Text- French.
.aspx page
<asp:Button
meta:resourcekey="button1"
/>
<asp:Label
meta:resourcekey="label1"
/>
Header
<%@
Page Language="C#"
CodeFile="Default.aspx.cs"
Inherits="_Default"
Culture="Auto:en-US"
UICulture="Auto"
%>
Next.. Right cilck on web site- Add
ASP.NET Folder - Add App_GlobalResources - Add Resource - Name and Value
copy and paste and rename (Resource.fr.resx)-
Now drag a new label :- label id(name)-renamecopypaste- expression - text -
expression type=resource- expression property=class key=resource
Resource key-welcome
FOR LANG TRANSLATION
http://code.google.com/intl/fr/apis/language/transliterate/v1/getting_started.html