页面语言本地化(国际化)

首先要在App_GlobalResources添加两个文件分别对应中文和英文,Site_Main

Site_Main.zh-CN

在Global.asax.cs

using System.Threading;  
protected void Application_AcquireRequestState(object sender, EventArgs e)
        {
            SetLanguage();
        }

        private void SetLanguage()
        {
            string lang = Request.Cookies["MyLanguage"] == null ? "en-US" : Request.Cookies["MyLanguage"]["Local"];
            if (Thread.CurrentThread.CurrentUICulture.Name != lang)//zh-CN
            {
                Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
            }
        }

 在Default页面,添加linkbutton,(页面实现国际化)

后台代码:(后台实现国际化)

 protected void Page_Load(object sender, EventArgs e)
        {
            //if (!IsPostBack)
            //{
                lblID.Text = Resources.Site_Main.userID.ToString();
                lblName.Text = Resources.Site_Main.userName.ToString();
            //}
        }

        protected void lbtnChange_Click(object sender, EventArgs e)
        {
            HttpCookie myLang = Request.Cookies["MyLanguage"];
            if (myLang == null)
            {
                myLang = new HttpCookie("MyLanguage");
            }
            myLang["Local"] = myLang["Local"] == "en-US" ? "zh-CN" : "en-US";
            myLang.Expires = DateTime.Now.AddYears(1);
            Response.Cookies.Add(myLang);
        }

<asp:LinkButton ID="lbtnChange" runat="server" OnClick="lbtnChange_Click">
<%=Resources.Site_Main.language %></asp:LinkButton>
posted @ 2011-05-13 11:47  eva.xiao  阅读(357)  评论(0)    收藏  举报