Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")Thread.CurrentThread.CurrentUICulture =
New CultureInfo("fr-FR")
ASP.NET wont automatically translate the contents in one language to another language by using Culture. For this we need to put strings in resources file and have to load the strings based on the culture. Let us see how to create resources and use.
Resources.
Resources represents embedded data such as strings or images, which can be retrieved during runtime and displayed in the user interface. Resource Management is a feature of .NET framework which is used to extract localized element from source code and to store them with a string key as resources . At runtime, ResourceManager class instance is used to resolve key to the original resource or localized version. Resources can be stored as an independent file or part of an assembly.
ResourceWriter and resgen.exe can be used to create .resources file. To include .resources file inside an assembly use related compiler switch or Al.exe.
Create Resource Text Files:
In resource.en-US.txt
Test = Hello there, friend!
In resource.fr-FR.txt
Test = Bonjour la, ami!
Generate .resources file:
Goto VisualStudio.Net command prompt and use resgen command utility to generate .resources file.
resgen resource.en-US.txt
resgen resource.fr-FR.txt
This commands will create .resources file.
In TestGlobalization.aspx Page,
<
asp:RadioButtonList id="RadioButtonList1" style="Z-INDEX: 101; LEFT:144px; POSITION: absolute; TOP: 144px" runat="server"AutoPostBack="True">
<asp:ListItem Value="en-US" Selected="True">English</asp:ListItem>
<asp:ListItem Value="fr-FR">French</asp:ListItem>
</asp:RadioButtonList>
In TestGlobalization.aspx.cs Page,on Page_Load Event
Dim objCI As New CultureInfo(RadioButtonList1.SelectedValue.ToString())
Thread.CurrentThread.CurrentCulture = objCI
Thread.CurrentThread.CurrentUICulture = objCI
Dim rm As ResourceManager = ResourceManager.CreateFileBasedResourceManager("resource", Server.MapPath("resources") + Path.DirectorySeparatorChar, Nothing)Response.Write(rm.GetString("Test"))
This will output the content based on the option selected. Hope this article would have helped you all.
Good Day...
NOTE: THIS ARTICLE IS CONVERTED FROM C# TO VB.NET USING A CONVERSION TOOL. ORIGINAL ARTICLE CAN BE FOUND ON C# CORNER (WWW.C-SHARPCORNER.COM).