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

上传人:s9****2 文档编号:568249050 上传时间:2024-07-23 格式:PPT 页数:41 大小:2.28MB
返回 下载 相关 举报
使用CultureInfo实现多语言本地化理论课.ppt_第1页
第1页 / 共41页
使用CultureInfo实现多语言本地化理论课.ppt_第2页
第2页 / 共41页
使用CultureInfo实现多语言本地化理论课.ppt_第3页
第3页 / 共41页
使用CultureInfo实现多语言本地化理论课.ppt_第4页
第4页 / 共41页
使用CultureInfo实现多语言本地化理论课.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

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

1、http:/使用使用CultureInfo实现多语言本地化实现多语言本地化ASP.NET企业级应用编程企业级应用编程第第14章章http:/中国十大品牌IT教育机构北京奥运会官网北京奥运会官网-汉语汉语http:/中国十大品牌IT教育机构北京奥运会官网北京奥运会官网-英语英语http:/中国十大品牌IT教育机构北京奥运会官网北京奥运会官网-法语法语http:/中国十大品牌IT教育机构区域文化1.在页面元素设置区域文化2.在后台代码设置区域文化资源文化1.根据站点文化获取本地资源2.根据站点文化获取全局资源本章目标本章目标http:/中国十大品牌IT教育机构(一)区域文化(一)区域文化http:

2、/中国十大品牌IT教育机构设置当前文化设置当前文化在Page指令中设置文化以编程方式设置文化 http:/中国十大品牌IT教育机构在在Page指令中设置指令中设置CultureCulture属性常用的文化名称zh-CN=Chinese(China)en-US=English(United States)en-GB=English(United Kingdom) protected void Page_Load(object sender, EventArgs e) this.lblToday.Text = DateTime.Now.ToString(D); this.lblPrice.Text

3、 = (11.5).ToString(c); http:/中国十大品牌IT教育机构在在Page指令中自动检测文化指令中自动检测文化如果需要使用检测到的浏览器首部自动设置Culture,就可以通过设置页面指令的Culture来实现。下面将Culture设置为auto:zh-cn,表示若不能从浏览器检测到默认的语言参数设置时,冒号后面的文化名称用来指定默认文化。 http:/中国十大品牌IT教育机构文化影响文化影响ASP.NET控件控件Page指令中Culture属性值会自动影响Calendar控件的呈现行为。 http:/中国十大品牌IT教育机构在配置文件中设置文化在配置文件中设置文化在在web

4、.configweb.config中添加如下配置,那么若不能从中添加如下配置,那么若不能从浏览器器检测到默到默认的的语言参数言参数设置置时,整个站点的文化就被,整个站点的文化就被设置称置称en-USen-US,如,如果用果用户设置了置了语言,言,则采用用采用用户选择的的语言文化:言文化: http:/中国十大品牌IT教育机构以编程方式设置文化以编程方式设置文化Page.Culture通过该属性设置当前页面的文化Request.UserLanguages获取用户浏览器中设置的语言首选项集合System.Globalization.CultureInfo.GetCultures获取由指定Cultu

5、reTypes参数筛选的区域列表 http:/中国十大品牌IT教育机构检测用户的习惯语言列表检测用户的习惯语言列表 Request.UserLanguages可以获取请求的用户的习惯语言列表 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 blt

6、Auto_Click(object sender, BulletedListEventArgs e) Page.Culture= bltAuto.Itemse.Index.Value; this.lblToday.Text = DateTime.Now.ToString(D); this.lblPrice.Text = (11.5).ToString(c); http:/中国十大品牌IT教育机构获取特定文化的区域性列表获取特定文化的区域性列表CultureInfo类的GetCultures方法获取由指定 CultureTypes 筛选的区域性列表。 protected void Page_Lo

7、ad(object sender, EventArgs e) if (!IsPostBack) CultureInfo list=CultureInfo.GetCultures(CultureTypes.SpecificCultures); RadioButtonList1.DataSource = list; RadioButtonList1.DataTextField = DisplayName; RadioButtonList1.DataValueField = Name; RadioButtonList1.DataBind(); RadioButtonList1.AutoPostBac

8、k = true; RadioButtonList1.RepeatDirection = RepeatDirection.Horizontal; RadioButtonList1.RepeatColumns = 4; protected void RBL_SelectedIndexChanged(object sender, EventArgs e) Page.Culture = RadioButtonList1.SelectedItem.Value; this.lblToday.Text = DateTime.Now.ToString(D); this.lblPrice.Text = (11

9、.5).ToString(c);http:/中国十大品牌IT教育机构获取特定文化的区域性列表获取特定文化的区域性列表http:/中国十大品牌IT教育机构不同的文化中的字符串排序不同的文化中的字符串排序在不同的文化中,字符串的排序结果也会受到影响string names = 苹果苹果, 牛蛙牛蛙, 牛肉牛肉 ;上面的数组在中文文化和日文文化的排序结果就不相同 protected void Button1_Click(object sender, EventArgs e) SortStringByCulture(zh-cn); protected void Button2_Click(object

10、 sender, EventArgs e) SortStringByCulture(ja-jp); void SortStringByCulture(string c) string names = 苹果苹果, 牛蛙牛蛙, 牛肉牛肉 ; CultureInfo ci = new CultureInfo(c); Page.Culture = ci.Name; lbCultrue.Text = ci.Name; Array.Sort(names); BulletedList1.DataSource = names; BulletedList1.DataBind(); http:/中国十大品牌IT教

11、育机构(二)资源文化(二)资源文化http:/中国十大品牌IT教育机构创建本地资源创建本地资源显式本地化表达式 隐式本地化表达式 将本地资源应用于页面属性 以编程方式获取本地资源 简化大块文本的本地化 http:/中国十大品牌IT教育机构创建本地资源创建本地资源显式本地化表达式 资源文件必须保存在App_LocalResources文件夹中。资源文件的添加资源文件的命名规则:pageName.cultureName.resx test.aspx.resx默认的Test.aspx资源文件,若没有其他资源文件符合用户的语言设置,则用此资源文件来应用test.aspx.zh-CN.resx特定文化,

12、若符合用户特定文化语言设置,就应用此资源文件http:/中国十大品牌IT教育机构显式本地化表达式显式本地化表达式 在页面中使用本地资源1、指令中添加UICulture属性并设其值为auto 2、本地化资源表达式 http:/中国十大品牌IT教育机构隐式本地化表达式隐式本地化表达式隐式本地化表达式显式资源表达式必须对控件的每一个属性在页面进行设置,隐式本地化表达式只需简单地添加一个meta:resourceKey属性到任意需要本地化的控件中,从而可以更简单地本地化一个已存在的网站。 配置控件属性 http:/中国十大品牌IT教育机构隐式本地化表达式隐式本地化表达式设置本地资源文件模式:Key.P

13、roperty Key:可以任意命名,一般采用控件名称Property:必须与要本地化的控件的属性相匹配 Demo.aspx.resxDemo.aspx.en-us.resxhttp:/中国十大品牌IT教育机构将本地资源应用于页面属性将本地资源应用于页面属性 显式资源文件PageTitleExplicit.aspx.resx asp:literal id=ltTitle text= runat=server /使用资源表达式设置诸如页面标题这样的的页面属性 http:/中国十大品牌IT教育机构将本地资源应用于页面属性将本地资源应用于页面属性隐式资源文件PageTitleImplicit.asp

14、x.resxhttp:/中国十大品牌IT教育机构以编程方式获取本地资源以编程方式获取本地资源调用Page对象的GetLocalResourceObject()方法可以获取本地资源文件的内容 protected void btLogin_Click(object sender, EventArgs e) string rs = this.GetLocalResourceObject(welcome).ToString(); lbMsg.Text = string.Format(rs, tbName.Text); http:/中国十大品牌IT教育机构简化大块文本的本地化简化大块文本的本地化当您想在

15、网页上的特定区域显示本地化文本时,可以使用 Localize 控件在网页上保留显示本地化文本的位置。Localize 控件从 Literal 控件继承,与该控件完全相同。设计时使用 Localize 控件将可以将本地化的静态文本与其它静态文本区分开来。 http:/中国十大品牌IT教育机构简化大块文本的本地化简化大块文本的本地化Localize 控件的 Mode 属性Transform:添加到控件中的任何标记都将进行转换,以适合发出请求的浏览器的协议。如果向使用 HTML 以外的其他协议的移动设备呈现内容,此设置非常有用。PassThrough:添加到控件中的任何标记都将按原样呈现在浏览器中E

16、ncode:添加到控件中的任何标记都将使用 HtmlEncode 方法进行编码,该方法将把 HTML 编码转换为其文本表示形式。 http:/中国十大品牌IT教育机构简化大块文本的本地化简化大块文本的本地化默认资源 LocalizeResource.aspx.resx: 英文资源LocalizeResource.aspx.en-us.resx http:/中国十大品牌IT教育机构创建全局资源创建全局资源 以属性方式获取全局资源以编程方式获取全局资源 使用强类型获取全局资源 http:/中国十大品牌IT教育机构以属性方式获取全局资源以属性方式获取全局资源获取表达式: 中文资源文件Site.res

17、x: 英文资源文件Site.en-us.resx: % Page UICulture=auto Title= %asp:Label ID =Label1 text= /http:/中国十大品牌IT教育机构以属性方式获取全局资源以属性方式获取全局资源http:/中国十大品牌IT教育机构以编程方式获取全局资源以编程方式获取全局资源指令:自动获得语言CultureInfo.CurrentCulture.Name属性:获得IE语言GetGlobalResourceObject()方法 :获得全局资源http:/中国十大品牌IT教育机构以编程方式获取全局资源以编程方式获取全局资源string key=C

18、ultureInfo.CurrentCulture.Name.ToLower().Replace(-, _);imgCountry.ImageUrl = CodeFileGlobalResource.ashx?key= + key; string className = Country ; string key = context.Request.QueryString“key.ToString(); Bitmap bmp = (Bitmap) HttpContext.GetGlobalResourceObject(className, key); MemoryStream ms = new

19、MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Response.BinaryWrite(ms.ToArray();CodeFileGlobalResource.aspxCreateImageByGlobalResource.ashxhttp:/中国十大品牌IT教育机构创建全局资源创建全局资源使用强类型获取全局资源 ASP.NET Framewormk自动把本地资源编译成程序集,而全局资源就编译成一个类,这样全局资源就可以用强类型表达式在代码中处理全局资源,当创建一个资源时,一个新类会自动添加到Res

20、ources命名空间。该类以属性的形式暴露了所有资源文件中的项目 http:/中国十大品牌IT教育机构使用强类型获取全局资源使用强类型获取全局资源 全局资源文件App_GlobalResourcesCountry.resx: string resources=Resources.Country.ImagePath; string culture=CultureInfo.CurrentCulture.Name.ToLower(); imgCountry.ImageUrl =string.Format(resources,culture);http:/中国十大品牌IT教育机构总结总结如何为页面设置

21、文化?如何改变客户端的文化?如何为站点创建多个文化资源?如何实现大块文本的本地化?如何以编程方式访问本地资源?http:/中国十大品牌IT教育机构练习练习1.在指令中设置哪个属性可以影响本地化 ()A.UICulture B.Culture C.Inherits D.AutoEventWireup http:/中国十大品牌IT教育机构练习练习2.要要自动检测文化自动检测文化可用可用Request. 属性返回属性返回Accept-Language首部的值首部的值()A.UserInfoB. LanguagesC. AcceptLanguage D. UserLanguageshttp:/中国十大

22、品牌IT教育机构练习练习3在配置文件中也可以通过设置在配置文件中也可以通过设置()属性来设置属性来设置文化文化A.GlobalCultureB.ConfigSourceC.UICultureD.Culturehttp:/中国十大品牌IT教育机构练习练习4. 对于对于CultureInfo类中的方法类中的方法GetCultureInfo描描述正确的是述正确的是()A.创建表示与指定名称关联的特定区域性的 CultureInfo B.检索某个区域性的缓存的只读实例 C.检索高效只读的 CultureInfo 对象 D.获取由指定CultureTypes参数筛选的支持的区域性列表 http:/中国十大品牌IT教育机构练习练习5.在在 ASP.NET 页中,可以使用下列哪些方法页中,可以使用下列哪些方法检索检索由由 ASP.NET 编译并由编译并由 .NET Framework 资资源管理源管理器管理的资源文件中的值器管理的资源文件中的值()A.隐式本地化B.显式本地化C.以编程方式D. 以上都是

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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