zoukankan      html  css  js  c++  java
  • .Net国际化

    .Net下国际化很好做但是这种方式却不便于维护咯,有空研究下怎么能提高国际化的效率咯,先写下简单实现的思路

    新建global.en-us.resx 和 global.resx 两个资源文件

    创建一个继承于PAGE类的基类

    public class BaePage : Page
    {


            
    public BaePage()
            
    {
                
    //TODO:页面基类
            }


            
    //国际化
            protected override void InitializeCulture()
            
    {
                
    string UserCulture = string.Empty;

                
    //判断当前语言
                if (Request.Cookies["global"] == null)
                
    {
                    UserCulture
    = Request.UserLanguages[0].ToString().Trim();
                    CreateCookies(UserCulture);
                }

                
    else
                
    {
                    UserCulture
    = Request.Cookies["global"].Value.ToString().Trim();
                }


                
    //设置显示语言
                if (UserCulture != string.Empty)
                
    {
                    Thread.CurrentThread.CurrentUICulture
    = new CultureInfo(UserCulture);
                    Thread.CurrentThread.CurrentCulture
    = CultureInfo.CreateSpecificCulture(UserCulture);
                }

                
    else
                
    {
                    Thread.CurrentThread.CurrentUICulture
    = new CultureInfo("en-US");
                    Thread.CurrentThread.CurrentCulture
    = CultureInfo.CreateSpecificCulture("en-US");
                }


                
    base.InitializeCulture();
            }


            
    //创建存储语言的cookies
            public void CreateCookies(string language)
            
    {
                HttpCookie cook
    = new HttpCookie("global");
                cook.Value
    = language;
                cook.Expires
    = DateTime.MaxValue;
                Response.Cookies.Add(cook);
            }


            
    ///
            
    /// 判断当前的语言
            
    ///
            
    ///

            public string GetLanguage()
            
    {
                
    string UserCulture = string.Empty;
                
    if (Request.Cookies["global"] == null)
                
    {
                    UserCulture
    = Request.UserLanguages[0].ToString().Trim();
                    CreateCookies(UserCulture);
                }

                
    else
                
    {
                    UserCulture
    = Request.Cookies["global"].Value.ToString().Trim();
                }

                
    return UserCulture;
            }


    }

    然后创建网页 Default.aspx 如下:

        <form id="form1" runat="server">
        
    <div>
                        
    <asp:Button ID="btnChinese" runat="server" CommandArgument="zh-CN" Text="中文" OnClick="Language_Click" />
                    
    <asp:Button ID="btnEngLish" runat="server" CommandArgument="en-US" Text="English" OnClick="Language_Click" />
                    
    <hr />
            
    <asp:Label ID="lblShow" runat="server" Text="">asp:Label>
        
    div>
        
    form>

    在Default.aspx.cs里写事件:

    protected void Language_Click(object sender, EventArgs e)
            
    {
                Button objButton
    = sender as Button;
                
    string language = objButton.CommandArgument;
                CreateCookies(language);
                Response.Redirect(Request.RawUrl);
            }

    就搞定了咯,不过要记着要Default要继承BasePage类

  • 相关阅读:
    html5 鼠标跟随运动
    2018新年计划
    background-attachment:fixed不兼容性
    Javascript中常用方法简介
    FQ教程真实好用
    解决IE6 IE7绝对定位弹层被后面的元素遮住
    页面出现滚动条时,body里面的内容不能自动居中?
    怎么查看手机源码
    ES6入门教程---数值扩展和数组扩展
    ES6入门教程---解构赋值和字符串扩展
  • 原文地址:https://www.cnblogs.com/javabin/p/1583014.html
Copyright © 2011-2022 走看看