| 在Win2003 R2上安装SQL Server 2005(一) |
| 作者:佚名 来源:不详 发布时间:2008-6-10 15:55:30 |
减小字体
增大字体
|
| 在ASP.NET 2.0 中提供多语言转换和多样式主题转换功能,两种实现形式比较类似,所以放在一起说明一下。 1. Language switcher 多语言转换 在Quick Start Tutorial 中,介绍了如何存储和应用用户选择的语言。一般是用一个DropDownList展示支持的语言,供用户选择,通常是放在masterpage 里面,将用户选择的语言存储起来 这里用了ASP.NET 2.0的Profile,当然也可以存在cookie session 或者querystring里。在页面里重写InitializeCulture 方法,使用用户之前选择的语言。因为设置语言的操作 (这里是SelectedIndexChanged事件)发生在InitializeCulture 时间后面,所以在设置操作完成后为了使的当前页面也马上生效,需要做个重转向,以从新加载本页面,触发InitializeCulture 事件。下面使quickstart中的部分代码,注意红色部分。因为有的页面地址后面可能还存在queystring,所以个人觉得红色代码部分最好用Response.Redirect(Request.Url.PathAndQuery);代替。 protected void DropDownLanguage_SelectedIndexChanged(object sender, EventArgs e) { string SelectedLanguage = DropDownLanguage.SelectedValue.ToString(); //Save selected user language in profile Profile.SetPropertyValue("PreferredCulture", SelectedLanguage); //Force re-initialization of the page to fire InitializeCulture() Response.Redirect(Request.Url.LocalPath); } protected override void InitializeCulture() { // override virtual method InitializeCulture() to check if profile contains a user language setting string UserCulture = Profile.GetPropertyValue("PreferredCulture").ToString(); if ( UserCulture != "") { // there is a user language setting in the profile: switch to it Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture); } }
[1] [2] 下一页 |