Multi language supported web site in ASP.NET
It is easy to develop multi language supported web site using ASP.NET . Just follow that step by step.
- Take a new web site
- Add “App_GlobalResources” from ASP.NET folders
- Take a *.resx file (Strings.resx)
- Enter Name and values
- Make different *.resx file for different languages and name like that Strings.en-US.resx (for US english), Strings.fr-FR.resx (for French). Make as many language file you needed.
- Now time for calling and using language from web page.
You web site Solution Explorer will look like that
Default.aspx file will look like that
1: <asp:Label ID="lblName" runat="server" Text="Label"></asp:Label>
2: <asp:Label ID="lblDesc" runat="server" Text="Label"></asp:Label>
3: <asp:Label ID="lblComments" runat="server" Text="Label"></asp:Label>
4: <asp:LinkButton ID="lnkEnglish" runat="server" OnClick="lnkEnglish_Click">English</asp:LinkButton>
5: <asp:LinkButton ID="lnkFrench" runat="server" OnClick="lnkFrench_Click">French</asp:LinkButton>
Codes of Default.aspx.cs
1: private ResourceManager rm;
2: protected void Page_Load(object sender, EventArgs e)
3: {
4: CultureInfo ci;
5: if (!IsPostBack)
6: {
7: Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
8: rm = new ResourceManager("Resources.Strings", Assembly.Load("App_GlobalResources"));
9: ci = Thread.CurrentThread.CurrentCulture;LoadData(ci);
10: }
11: else
12: {
13: rm = new ResourceManager("Resources.Strings",Assembly.Load("App_GlobalResources"));
14: ci = Thread.CurrentThread.CurrentCulture;LoadData(ci);
15: }
16: }
17: protected void lnkEnglish_Click(object sender, EventArgs e)
18: {
19: Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
20: LoadData(Thread.CurrentThread.CurrentCulture);
21: }
22: protected void lnkFrench_Click(object sender, EventArgs e)
23: {
24: Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
25: LoadData(Thread.CurrentThread.CurrentCulture);
26: }
27: public void LoadData(CultureInfo ci)
28: {
29: lblName.Text = rm.GetString("EventName", ci);
30: lblDesc.Text = rm.GetString("EventDescription", ci);
31: lblComments.Text = rm.GetString("EventComments",ci);
32: }