asp.net 本地化

因为最近项目中用到中英又语,就是所说的本地化,在此大概做一说明.

母版页

前台:

<asp:LinkButton ID="LinkButton1" runat="server" οnclick="LinkButton1_Click">English</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" οnclick="LinkButton1_Click">中文</asp:LinkButton>

后台:

protected void LinkButton1_Click(object sender, EventArgs e)
    {
        LinkButton lbtn = (LinkButton)sender;
        string s = lbtn.Text;
        if (s == "中文")
        {
            SetCookie("zh-cn");
        }
        else
        {
            SetCookie("en-us");
        }
    }
    protected void SetCookie(string value)
    {
        HttpCookie cookie = new HttpCookie("locationCulture");
        cookie.Value = value;
        cookie.Expires = DateTime.Now.AddYears(1);
        Response.Cookies.Add(cookie);
        string url = Request.Url.ToString();
        Response.Redirect(Request .Url.PathAndQuery);
    }

新建一个LocalizedPage.cs文件,代码如下:

using System.Threading;
using System.Globalization;

public class LocalizedPage:System .Web.UI.Page
{
    string s;
    protected override void InitializeCulture()
    {
        HttpCookie cookie = Request.Cookies["locationCulture"];
        if (cookie == null)
        {
            s = Request.UserLanguages[0];
            HttpCookie cookie1 = new HttpCookie("locationCulture", s);
            cookie1.Expires = DateTime.Now.AddYears(1);
            Response.Cookies.Add(cookie1);
        }
        else
        {
            s = cookie.Value;
        }
        if (!String.IsNullOrEmpty(s))
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(s);
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(s);
        }
    }
}

继承母版页的页面中,要继承该LocalizedPage.cs类

后台代码所示:

public partial class Web_SIS_DataList:LocalizedPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

}

前台代码:

<asp:Label ID="Label1" runat="server" Text="Label"
                            meta:resourcekey="Label1Resource1"></asp:Label>

当然还需要建立资源文件.当然也可以建立后一个页面后,在设计模式下点击 工具--生成本地资源

这样就可以生成一个本地资源. 复制一份该资源文件,更改名称,如我生成的资源文件名称:DataList.aspx.resx

复制一份,更改名称为:DataList.aspx.en-us.resx

这样就可以实现网站的本地化.

当然我用的是cookie保存网站的语言状态, 你可以用session,profile等来达到同等效果.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值