使用CultureInfo实现多语言本地化理论课课件

上传人:我*** 文档编号:143689252 上传时间:2020-09-01 格式:PPT 页数:41 大小:1.84MB
返回 下载 相关 举报
使用CultureInfo实现多语言本地化理论课课件_第1页
第1页 / 共41页
使用CultureInfo实现多语言本地化理论课课件_第2页
第2页 / 共41页
使用CultureInfo实现多语言本地化理论课课件_第3页
第3页 / 共41页
使用CultureInfo实现多语言本地化理论课课件_第4页
第4页 / 共41页
使用CultureInfo实现多语言本地化理论课课件_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《使用CultureInfo实现多语言本地化理论课课件》由会员分享,可在线阅读,更多相关《使用CultureInfo实现多语言本地化理论课课件(41页珍藏版)》请在金锄头文库上搜索。

1、,使用CultureInfo实现多语言本地化,ASP.NET企业级应用编程第14章,北京奥运会官网-汉语,北京奥运会官网-英语,北京奥运会官网-法语,区域文化 在页面元素设置区域文化 在后台代码设置区域文化 资源文化 根据站点文化获取本地资源 根据站点文化获取全局资源,本章目标,(一)区域文化,设置当前文化,在Page指令中设置文化 以编程方式设置文化,在Page指令中设置Culture,Culture属性,常用的文化名称 zh-CN=Chinese(China)en-US=English(United States)en-GB=English(United Kingdom),protecte

2、d void Page_Load(object sender, EventArgs e) this.lblToday.Text = DateTime.Now.ToString(D); this.lblPrice.Text = (11.5).ToString(c); ,在Page指令中自动检测文化,如果需要使用检测到的浏览器首部自动设置Culture,就可以通过设置页面指令的Culture来实现。 下面将Culture设置为auto:zh-cn,表示若不能从浏览器检测到默认的语言参数设置时,冒号后面的文化名称用来指定默认文化。,文化影响ASP.NET控件,Page指令中Culture属性值会自动

3、影响Calendar控件的呈现行为。,在配置文件中设置文化,在web.config中添加如下配置,那么若不能从浏览器检测到默认的语言参数设置时,整个站点的文化就被设置称en-US,如果用户设置了语言,则采用用户选择的语言文化:, ,以编程方式设置文化,Page.Culture 通过该属性设置当前页面的文化 Request.UserLanguages 获取用户浏览器中设置的语言首选项集合 System.Globalization.CultureInfo.GetCultures 获取由指定CultureTypes参数筛选的区域列表,检测用户的习惯语言列表,Request.UserLanguages

4、可以获取请求的用户的习惯语言列表,protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) string list = Request.UserLanguages; foreach (string s in list) string name = s.Split(;)0; bltAuto.Items.Add(name); protected void bltAuto_Click(object sender, BulletedListEventArgs e) Page.Culture= bltAuto.Itemse

5、.Index.Value; this.lblToday.Text = DateTime.Now.ToString(D); this.lblPrice.Text = (11.5).ToString(c); ,获取特定文化的区域性列表,CultureInfo类的GetCultures方法获取由指定 CultureTypes 筛选的区域性列表。,protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) CultureInfo list=CultureInfo.GetCultures(CultureTypes.Speci

6、ficCultures); RadioButtonList1.DataSource = list; RadioButtonList1.DataTextField = DisplayName; RadioButtonList1.DataValueField = Name; RadioButtonList1.DataBind(); RadioButtonList1.AutoPostBack = true; RadioButtonList1.RepeatDirection = RepeatDirection.Horizontal; RadioButtonList1.RepeatColumns = 4

7、; protected void RBL_SelectedIndexChanged(object sender, EventArgs e) Page.Culture = RadioButtonList1.SelectedItem.Value; this.lblToday.Text = DateTime.Now.ToString(D); this.lblPrice.Text = (11.5).ToString(c); ,获取特定文化的区域性列表,不同的文化中的字符串排序,在不同的文化中,字符串的排序结果也会受到影响,string names = 苹果, 牛蛙, 牛肉 ;,上面的数组在中文文化和日

8、文文化的排序结果就不相同,protected void Button1_Click(object sender, EventArgs e) SortStringByCulture(zh-cn); protected void Button2_Click(object sender, EventArgs e) SortStringByCulture(ja-jp); void SortStringByCulture(string c) string names = 苹果, 牛蛙, 牛肉 ; CultureInfo ci = new CultureInfo(c); Page.Culture = ci

9、.Name; lbCultrue.Text = ci.Name; Array.Sort(names); BulletedList1.DataSource = names; BulletedList1.DataBind(); ,(二)资源文化,创建本地资源,显式本地化表达式 隐式本地化表达式 将本地资源应用于页面属性 以编程方式获取本地资源 简化大块文本的本地化,创建本地资源,显式本地化表达式 资源文件必须保存在App_LocalResources文件夹中。 资源文件的添加 资源文件的命名规则:pageName.cultureName.resx test.aspx.resx 默认的Test.as

10、px资源文件,若没有其他资源文件符合用户的语言设置,则用此资源文件来应用 test.aspx.zh-CN.resx 特定文化,若符合用户特定文化语言设置,就应用此资源文件,显式本地化表达式,在页面中使用本地资源 1、指令中添加UICulture属性并设其值为auto 2、本地化资源表达式 ,隐式本地化表达式,隐式本地化表达式 显式资源表达式必须对控件的每一个属性在页面进行设置,隐式本地化表达式只需简单地添加一个meta:resourceKey属性到任意需要本地化的控件中,从而可以更简单地本地化一个已存在的网站。 配置控件属性, ,隐式本地化表达式,设置本地资源文件 模式:Key.Propert

11、y Key:可以任意命名,一般采用控件名称 Property:必须与要本地化的控件的属性相匹配,Demo.aspx.resx,Demo.aspx.en-us.resx,将本地资源应用于页面属性,显式资源文件PageTitleExplicit.aspx.resx, runat=server / ,使用资源表达式设置诸如页面标题这样的的页面属性,将本地资源应用于页面属性,隐式资源文件PageTitleImplicit.aspx.resx,以编程方式获取本地资源,调用Page对象的GetLocalResourceObject()方法可以获取本地资源文件的内容,protected void btLog

12、in_Click(object sender, EventArgs e) string rs = this.GetLocalResourceObject(welcome).ToString(); lbMsg.Text = string.Format(rs, tbName.Text); ,简化大块文本的本地化,当您想在网页上的特定区域显示本地化文本时,可以使用 Localize 控件在网页上保留显示本地化文本的位置。 Localize 控件从 Literal 控件继承,与该控件完全相同。设计时使用 Localize 控件将可以将本地化的静态文本与其它静态文本区分开来。,简化大块文本的本地化,Lo

13、calize 控件的 Mode 属性 Transform:添加到控件中的任何标记都将进行转换,以适合发出请求的浏览器的协议。如果向使用 HTML 以外的其他协议的移动设备呈现内容,此设置非常有用。 PassThrough:添加到控件中的任何标记都将按原样呈现在浏览器中 Encode:添加到控件中的任何标记都将使用 HtmlEncode 方法进行编码,该方法将把 HTML 编码转换为其文本表示形式。, ,简化大块文本的本地化,默认资源 LocalizeResource.aspx.resx:,英文资源LocalizeResource.aspx.en-us.resx,创建全局资源,以属性方式获取全局

14、资源 以编程方式获取全局资源 使用强类型获取全局资源,以属性方式获取全局资源,获取表达式:,中文资源文件Site.resx:,英文资源文件Site.en-us.resx:, % /,以属性方式获取全局资源,以编程方式获取全局资源,指令:自动获得语言 CultureInfo.CurrentCulture.Name属性:获得IE语言 GetGlobalResourceObject()方法 :获得全局资源,以编程方式获取全局资源,string key=CultureInfo.CurrentCulture.Name.ToLower().Replace(-, _); imgCountry.ImageUr

15、l = CodeFileGlobalResource.ashx?key= + key;,string className = Country ; string key = context.Request.QueryString“key.ToString(); Bitmap bmp = (Bitmap) HttpContext.GetGlobalResourceObject(className, key); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Re

16、sponse.BinaryWrite(ms.ToArray();,CodeFileGlobalResource.aspx,CreateImageByGlobalResource.ashx,创建全局资源,使用强类型获取全局资源 ASP.NET Framewormk自动把本地资源编译成程序集,而全局资源就编译成一个类,这样全局资源就可以用强类型表达式在代码中处理全局资源,当创建一个资源时,一个新类会自动添加到Resources命名空间。该类以属性的形式暴露了所有资源文件中的项目,使用强类型获取全局资源,全局资源文件App_GlobalResourcesCountry.resx:,string resources=Resources.Country.ImagePath; string culture=CultureInfo.CurrentCulture.Name.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号