Hello kantikh
i have done the language translation between English and French. i have used local and global resources.
Master page:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="DentalMaster.master.cs"
Inherits="DentalMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<link rel="shortcut icon" type="image/x-icon" href="css/images/favicon.ico" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<link href='http://fonts.googleapis.com/css?family=Raleway:400,900,800,700,600,500,300,200,100'
rel='stylesheet' type='text/css'>
<script src="js/jquery-1.8.0.min.js" type="text/javascript"></script>
<!--[if lt IE 9]>
<script src="js/modernizr.custom.js"></script>
<![endif]-->
<script src="js/jquery.carouFredSel-5.5.0-packed.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<%-- reference site:http://oroacare.com--%>
<form id="form1" runat="server">
<asp:Label ID="lblHello" runat="server" Text="<%$Resources:Resource,Hello %>"></asp:Label>
<asp:LinkButton Text="<%$Resources:Resource,SelectedLanguage %>" ID="lnkLanguage"
OnClick="LanguageChanged" CausesValidation="false" runat="server"></asp:LinkButton>
<hr />
<div class="main">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
</form>
</body>
</html>
C# code of master Page:
#region Events
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateSelectedLanguage();
}
}
protected void LanguageChanged(object sender, EventArgs e)
{
BaseClass.SaveSelectedlanguage(Resources.Resource.LanguageCode);
this.Response.Redirect(Request.Url.AbsoluteUri);
}
#endregion
#region Methods
/// <summary>
/// Populates Selected Language
/// </summary>
private void PopulateSelectedLanguage()
{
if (!bool.Parse(ConfigurationManager.AppSettings["show_language"].ToLower()))
{
this.lnkLanguage.Visible = false;
}
string selectedLanguage = BaseClass.GetSelectedlanguage().ToLower();
if (selectedLanguage == "fr-ca")
{
this.lnkLanguage.Text = Resources.Resource.French;
}
else if (selectedLanguage == "en-ca")
{
this.lnkLanguage.Text = Resources.Resource.English;
}
}
#endregion
Default.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/DentalMaster.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" Culture="auto" meta:resourcekey="PageResource1"
UICulture="auto" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div style="width: 100%;">
<asp:Label ID="Label1" runat="server" meta:resourcekey="Label1Resource1"></asp:Label>
<asp:Label ID="Label2" runat="server" meta:resourcekey="Label1Resource2"></asp:Label>
</div>
</asp:Content>
Default.aspx.cs
public partial class _Default : BaseClass
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
add the app_code folder and add a class with BaseClass
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Configuration;
using System.Threading;
using System.Globalization;
/// <summary>
/// Summary description for BaseClass
/// </summary>
public class BaseClass : System.Web.UI.Page
{
#region Properties
/// <summary>
/// Gets or sets Language
/// </summary>
protected string Language { get; set; }
#endregion
#region Events
protected void Page_PreInit(object sender, EventArgs e)
{
this.Response.Cache.SetCacheability(HttpCacheability.NoCache);
this.InitializeCulture();
}
#endregion
#region Methods
/// <summary>
/// Initializes Culture
/// </summary>
protected override void InitializeCulture()
{
string language = GetSelectedlanguage();
if (bool.Parse(ConfigurationManager.AppSettings["show_language"].ToLower()))
{
language = GetSelectedlanguage();
switch (language.ToLower())
{
case "en-ca":
this.Language = "EN";
break;
case "fr-ca":
this.Language = "FR";
break;
}
}
else
{
this.Language = ConfigurationManager.AppSettings["default_language"].ToUpper();
switch (this.Language)
{
case "EN":
language = "en-ca";
break;
case "FR":
language = "fr-ca";
break;
}
}
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
}
/// <summary>
/// Gets Selected Language
/// </summary>
/// <returns></returns>
public static string GetSelectedlanguage()
{
string language = "en-CA";
if (HttpContext.Current.Request.Cookies != null)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["UserLanguage"];
if (cookie != null)
{
language = cookie.Value.Split('=')[1];
}
}
return language;
}
/// <summary>
/// Saves Selected Language
/// </summary>
/// <param name="language">language object</param>
public static void SaveSelectedlanguage(string language)
{
HttpCookie languageCookie = new HttpCookie("UserLanguage");
languageCookie.Values["UserLanguage"] = language;
languageCookie.Expires = DateTime.Now.AddDays(30);
HttpContext.Current.Response.Cookies.Add(languageCookie);
}
#endregion
}
You have to inherits the Base Class in the Default.aspx.cs
Local Resources
Default.aspx.resx:
Default.aspx.fr.resx
Global Resources:
Resource.resx
Resource.FR.resx
WebConfig:
<appSettings>
<add key="show_language" value="True"/>
<add key="default_language" value="FR"/>
</appSettings>