asp.net国际化详解-阿里云开发者社区

开发者社区> 开发与运维> 正文

asp.net国际化详解

简介: 1、新建网站(或者asp.net Web应用程序)2、创建一个类。继承System.Web.UI.Page,重写InitializeCulture()方法 。类名:BasePage3、InitializeCulture() 这样实现:        String language = Session["language"] as String;        if (!String.

1、新建网站(或者asp.net Web应用程序)
2、创建一个类。继承System.Web.UI.Page,重写InitializeCulture()方法 。类名:BasePage
3、InitializeCulture() 这样实现:
        String language = Session["language"] as String;
        if (!String.IsNullOrEmpty(language) && (language != "Auto"))
        {
            //UICulture - 决定了采用哪一种本地化资源,也就是使用哪种语言
            //Culture - 决定各种数据类型是如何组织,如数字与日期
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
        }

4、添加 App_LocalResources文件夹 (用来保存资源文件)
   4.1、创建资源文件。
        注意:资源文件的命名有讲究, 譬如 给index.aspx创建资源文件,命名必须这样:index.aspx.en-us.resx。
              这里的en-us是对于的语言。 中文不需要加 zh-cn

   4.2、编辑资源文件。
        ---------------------------------------------------------------
            名称                     值                  注释
          lblShow.Text         asp.net国际化            (非必要)
        ---------------------------------------------------------------

        这里的lblShow.Text是具有意义的,lblShow是页面上的一个Label控件。.Text表示这里的值要显示到lblShow.Text中去。

   4.3、页面上使用。
 <asp:Label ID="lblShow" runat="server" Text="<%$ Resources:lblShow.Text%>"></asp:Label>
        用<%$ %>  绑定资源文件。

5、创建网页,使用资源文件。
   5.1、 注意:创建网页后务必将 .aspx.cs 这个类继承BasePage。
        为什么要继承BasePage ? 因为国际化需要在所有页面上都实现,而一个一个页面写太麻烦,这里就采取继承的方式来实现。
        这样,继承之后,每个页面都会运行到BasePage中的InitializeCulture(),并在InitializeCulture()中确定当前的语言。

6、切换语言。

   这里的设计并非固定的,可以根据自己的需求来。
   6.1、在母板页中放一个DropDownList。在Change事件中改变Session["language"]的值。并Response.Redirect 到原页面。
   6.2、做成用户控件。
   6.3、做成button点击方式亦可。
  
      

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章