国际化

来源:互联网 发布:ubuntu文件夹权限设置 编辑:程序博客网 时间:2024/04/30 09:44

--国际化
  ASP.NET中国际化步骤(以中英文为例):
  1.Default.aspx页面中有如下控件:
      <asp:Label ID="lbluser" runat="server" Text="用户名" meta:resourcekey="ResoUser" />
     
      <asp:LinkButton ID="btnZhLink" runat="server"  Text="中文版" Font-Bold="True"                                         meta:resourcekey="btnZhLinkResource2"  OnClick="btnZh_Click" />
      <asp:LinkButton ID="btnEnLink" runat="server"  Text="English" Font-Bold="True"
               meta:resourcekey="btnEnLinkResource2" OnClick="btnEn_Click" />

  2.多语言文件处理。
    切换到Design页面,选择VS菜单中Tools下Generate Local Resource进行占击。会在项目中生成App_LocalResouces文件夹,
    以及Default.aspx.resx文件,将Default.aspx.resx复制两份,分别命名为Default.aspx.en-us.resx,Default.aspx.zh-cn.resx,
    将Default.aspx.en-us.resx中的中文改成相应的英文。

  3.事件处理。
    // 中文
    protected void btnZh_Click(object sender, EventArgs e)
    {
            Session["UserLanguage"] = "zh-CN";
            Server.Transfer(Request.Path);
    }

    // 英文
    protected void btnEn_Click(object sender, EventArgs e)
    {
            Session["UserLanguage"] = "en-US";
            Server.Transfer(Request.Path);
    }
   
   
    // 重写初始化方法
    protected override void InitializeCulture()
    {
            base.InitializeCulture();

            //多语言设置
            if (Session["UserLanguage"] == null || Session["UserLanguage"].ToString().Length == 0)
            {
                Session["UserLanguage"] = "en-US";
            }

            CultureInfo ci = new CultureInfo(Session["UserLanguage"].ToString());
            Thread.CurrentThread.CurrentCulture = ci;
            Thread.CurrentThread.CurrentUICulture = ci;
   }

原创粉丝点击