在开发的过程很多项目需要实现多语言,特别是外企中开发的系统一般都是好几个语言的版本,我们以前开发项目时也需要实现多语言的功能

因此我们写了个Page类的扩展类,让每一个要实现多语言的页面都继承它。该类的实现如下:

 /// <summary>
/// Summary description for WebPageBase
/// </summary>
public class WebPageBase : System.Web.UI.Page
{
    public WebPageBase()
    {
        
    }

    protected override void InitializeCulture()
    {

        //设置初始的语言为日文
        string lang="ja-JP";
        if (!string.IsNullOrEmpty(Convert.ToString(Request["Lang"])))
        {
            lang = Convert.ToString(Context.Session["lang"]);
            Lang = lang;
        }
        else
        {
            lang = Convert.ToString(Context.Session["lang"]);
            Lang = lang;
        }

        // Culture 属性用于帮助本地化页内容。可以将其设置为任何有效的区域性 ID。

        //例如,en-us 区域性 ID 将页设置为美国英语,而 fr 区域性 ID 将页设置为法语。

        //还可以将该值 设置为 auto,从而自动检测浏览器的首选语言并设置该语言。可

        //以用默认值(如 auto:en-us)限定自动语言检测。        

        UICulture = lang;
        Culture = "";       

        base.InitializeCulture();
    }

    protected string Lang
    {
        get { return Convert.ToString(Context.Session["lang"]); }
        set { Context.Session["lang"] = value; }
    }
}

这个类的代码就这么简单,想要实现多语言的页面继承它即可。