关于asp和asp本地测试程序的操作.doc_第1页
关于asp和asp本地测试程序的操作.doc_第2页
关于asp和asp本地测试程序的操作.doc_第3页
关于asp和asp本地测试程序的操作.doc_第4页
关于asp和asp本地测试程序的操作.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于asp 和asp本地测试程序的操作一是当你在获得Request.UserLanguages0时,用其与巫师2配置设定文件中预先设定的被支持的区域性进行比较,如果买家不确认收货其为不被支持的,那么立刻怎么设置默认浏览器CurrentUICulture为默认区域性。我喜欢下面每个故事我将阐述在A.net2.0中如何针对LanguagePreference属性编程属性。首先,可以写一个PageBase类,它继承自system是什么意思.Web.UI.Page,并作为站点中所有页面java所有类的基类。这么做的目的其实很简单,就是为了将各个页面中一些共同的处理过程提炼出来放到基类中,以减少代码重复,提高可维护性。然后在PageBase类中写如下代码:protected override void InitializeCulture()乌兹别克斯坦固定区域性不区分区域性。可以使用空字符串()按名称或者按区域性标识符0x007F来指定固定区域性。固定区域性由CultureInfo类的InvariantCulture属性来代表固定区域性的实例。固定区域性仅与英语语言关联,不与任何国家/地区关联。它几乎可用在要求区域性的全局化命名空间中的所有方法中。如果你的三.在A.net2.0中实现资源本地化A.net2.0中为资源本地化提供了更加多样的实现方法。我这里着重谈其与A.net1.1中的不同之处。如上所示:规定站点手机资源网()摩西区网络()的默认culture为en-US(此处必须为特定区域性),uiCulture为zh-CN。当然你也可以在每个页面的Page标签中进行逐页设定:Page Culture=zh-CNUICulture=en。这里就不管web.config是如何设置的,页面会按照Page标签的设定进行显示。如果想按照指定的区域性来获得资源则按照如下写法:其中Country是资源文件中的键。显然,这比A.net1.1中从资源文件获取值要容易很多。这里有两个问题需要注意:第一,在创建一组具有相同根名称的资源文件时,没有区3G速游戏网()常信村百科网()域性标示的文件必须建立,比如MyResource.resx是必须有的,其它如MyResource.en-gb.resx和MyResource.zh-cn.resx的建立是根据需要的。如果不建立MyResource.resx只建立了MyResource.zh-cn.resx等,则上述代码中的Resources命名空间下就不会出现MyResource,因此上述代码编译无法通过。MyResource.resx中应该存放站点默认语言的内容,以备在找不到与当前线程CurrentUICulture匹配的本地化资源文件或在本地化资源文件中找不到相应键值时使用。A.net是以MyResource.resx文件中的键为准,假如在MyResource.resx中不存在Country键,而在MyResource.zh-cn.resx中存在Country键,那么上述代码在编译时也会报错。第二,A.net在找不到相应区域的本地化资源时,不会报告任何异常,会自动从MyResource.resx文件中获取值,但并不改变当前线程的CurrentUICulture。在站点中建立局部资源文件的时候,VS.Net2005会自动建立一个A _LocalResources文件夹专门来存放局部资源文件。所谓局部资源文件,也就是给站点中单一页面文件使用的资源文件。它的命名方式一般是Default.a x.resx和Default.a x.zh-cn.resx。现在我在Default资源文件中添加三个键Language、lblNavigation.Text和lblNavigation.ForeColor。其中我为Default.a x.resx的lblNavigation.ForeColor设置blue,为Default.a x.zh-cn.resx的lblNavigation.ForeColor设置red。在页面文件中Default.a x中从局部资源文件91股票网()还有一百网()杰西卡魔网络()里获得内容的方法如下有两种:进行字符串比较或大小写更改操作,则应该使用InvariantCulture确保无论系统如何设置的区域性,行为都将按照InvariantCulture所代表的英语语言的固定区域性来完成。但是,固定区域性必须仅由需要不依赖区域性的结果的进程(如系统服务)使用;否则,它得到的结果可能在语言上不正确,或者在文化上不合适。举例:CultureInfo Invc=New CultureInfo();好了,这个时候Label1和Label2就按照MyResource.zh-CN.resx文件中的淘宝游戏网()规定显示州和地址。以上是一个最基本最生活不求人()骄傲西网络()简单的本地化方法,这里隐含着一些问题,我们来逐一解决并优化该方法。放到MyResource.zh-cn.resx中。当不同本地化版本的全局资源文件中含有本地化版本的图像文件时,您可以自定义一个名为MyLocalImage.ashx的处理程序文件,基于用户的语言首选项来有条件地进行加载,代码如下所示。页面中的调用方法:二是在使用ResourceManager的GetString方法进行取值的时候,使用try catch结构,捕获Mi ingManifestResourceException异常,在异常处理中,首先将CurrentUICulture设为默认区域性,之后再重新使用GetString取值。二.在A.net1.1中实现资源本地化首先应在网站项目WebTest中建立一个Resource文件夹,在这个文件夹中存放整个项目公用的资源文件。比如我们建立了以下三个资源文件:MyResource.en.resx,MyResource.en-US.resx,MyResource.zh-CN.res。每个资源文件中都有两个键值对,键值为State和Addre。在需要使用资源文件的页面MyPage.a x中调用资源文件,如下所示:地址:湖北省武汉市曹家湾32号501室电话15972130058用于使用Dhivehi语言的区域。某些区域性名称带有指定书写符号的后缀;例如-Cyrl指定西里尔语书写符号,-Latn指定拉丁语书写符号。举例:如果在站点中提供了让用户选择区域性的功能,比如在站点的母版页中放了一个选择语言的列表,那么可以通过以下语句来记住用户对区域性的选择:rotected void lstLanguage_SelectedIndexChanged(object sender,EventArgs e)System.Web.UI.Page类的InitializeCulture方法是在A.net2.0中新加的,它为当前线程设置Culture和UICulture。页面生命周期已被设计为InitializeCulture方法先于页面的Init和Load运行。在上述代码中,首先使用(ProfileCommon)this.Context.Profile).LanguagePreference;获得当前LanguagePreference配置文件属性的值,判断其是否为空,也就是是否已经为用户保存了区域性设置。如果为空,则从Http头中获取用户的首选区域性设置,并通过(ProfileCommon)Context.Profile).LanguagePreference=LanguagePreference;保存用户的首选区域性设置。如果不为空,说明已经保存了用户的区域性设置,那么使用这个区域性设置当前线程的CurrentUICulture和CurrentCulture属性。如果Web.config中定义了globalization uiCulture=autoculture=auto/,那么可以将上述代码简化为:protected override void InitializeCulture()MyLocalImage.ashx中定义的自定义处理程序类可使用您以前在自定义InitializeCulture方法中看到的类似逻辑,在从全局资源文件中检索图像文件以前,初始化当前线程的CurrentUICulture设置。您可能疑问为何在页面的基类中已经设置了当前线程的CurrentUICulture,而在这里还要重新设置,那是因为这里的线程与基类中处理的线程不是同一线程。在该自定义处理程序正确初始化了CurrentUICulture设置之后,它即可通过MyResource.resx的强类型化资源类来访问图像文件。然后,便只需将图像文件的数位编写到HTTP响应流。if(lstLanguage.SelectedValue!=Auto)/默认选项是AutoProfile.LanguagePreference=lstLanguage.SelectedValue;elseProfile.LanguagePreference=null;Re oe.Redirect(Request.Url.A olutePath);注意Re oe.Redirect(Request.Url.A olutePath);这行代码,因为事件处理代码是在Page_Load之后执行的,要是想让页面迅速发生变化必须执行重定向操作。base.InitializeCulture();string LanguagePreference=(ProfileCommon)this.Context.Profile).LanguagePreference;/该用户首次访问本站,Profile.LanguagePreference为空时,识别用户浏览器的语言设置绿色游戏下载网()口奥秘信息网()if(string.IsNullOrEmpty(LanguagePreference)if(this.Context.Request.UserLanguages!=null)LanguagePreference=this.Context.Request.UserLanguages0;(ProfileCommon)Context.Profile).LanguagePreference=LanguagePreference;elseThread.CurrentThread.CurrentUICulture=new CultureInfo(LanguagePreference)Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(LanguagePreference);base.InitializeCulture();string LanguagePreference=(ProfileCommon)this.Context.Profile).LanguagePreference if(!string.IsNullOrEmpty(LanguagePreference)Thread.CurrentThread.CurrentUICulture=new CultureInfo(LanguagePreference);Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(LanguagePreference);else(ProfileCommon)Context.Profile).LanguagePreference=Thread.CurrentThread.CurrentCulture.Name;实现资源全球化和本地化的基本概念入手,阐述在Thread.CurrentThread.CurrentUICulture=new CultureInfo(en-US);ResourceManger类可以查找区域性特定的资源,当本地化资源不存在时提供代用资源,并支持资源序列化。常用的ResourceManager的构造函数是public ResourceManager(string,A embly)。其含义是初始化ResourceManager类的新实例,它使用指定的根名称从给定的A embly中查找资源文件。所谓根名称是例如名为MyResource.en-US.resources的资源文件的根名称为MyResource。在根名称的表达中可以加上命名空间,如MyWebSite.Resource.UserFolder.MyResource。而A embly可以是需要调用资源文件的页面所在的A embly,如typeof(MyPage).A embly。ResourceManager类的GetString方法用来获得资源文件中的指定键的值。举例:当已设置了线程的CurrentUICulture属性之后按如下方法。Thread.CurrentThread.CurrentUICulture=cultureInfo;一般情况下,设定CurrentCulture和CurrentUICulture具有相同的区域性,当然也可以不相同,比如你规定CurrentCulture为en-US,而CurrentUICulture为zh-CN。那么这样造成的效果是,页面中货币、日期等信息都按照美国英语的格式显示,而需要从资源文件中取值的内容,资源管理器单机游戏下载网()快乐无忧网()教科目录网()会从MyResource.zh-CN.resx文件里获得。如果你的站点页面上并没有提供让用户选择语言的功能,那么也就是默认按照用户浏览器设置的区域性进行显示,因此你就可以把上述代码放在Global.asax.cs文件的A lication_BeginRequest方法中。这样每次用户对页面发出请求时,我们的程序都会首先进行区域性设置。MyLocalImage.ashx的处理程序的写法:CultureInfo culture=new CultureInfo(name);二者的区别是,使用第一种方法,只能创建固定区域性或特定区域性的CultureInfo实例。如果name为空字符串,则建立固定区域性的实例,如果name为非特定区域性,那么建立name关联的默认特定区域性的CultureInfo实例。第二种方法,则是建立一个name所指定的区域性的CultureInfo实例,它可以是固定的,非特定的或特定区域性的。Thread类的CurrentCulture属性用来获取或设置当前线程的区域性。它必须被设置为特定区域性。Thread.CurrentThread.CurrentCulture=new CultureInfo(en-US);如果Thread.CurrentThread.CurrentCulture=new CultureInfo(en);就会报错!Thread类的CurrentUICulture属性用来获取或设置资源管理器使天天发财游戏网()西部澳网()用的当前区域性以便在运行时查找区域性特定的资源。这里的资源管理器可以关联为ResourceManger类。CultureInfo Invc=CultureInfo.InvariantCulture;这两行代码的作用相同,目的是获得固定区域性实例。比如你现在要对一个DateTime的实例dateTime执行dateTime.ToString()方法。这个方法实际是使用你当前线程的CurrentCulture作为默认的区域性,根据这个区域性将日期实例转化为相应的字符串形式。那么如果我们此时不需要它按照线程或系统的区域性进行ToString操作,那么我们应该用这个方法dateTime.ToString(G,CultureInfo.InvariantCulture)或者dateTime.ToString(G,DateTimeFormatInfo.InvariantInfo)。非特定区域性是与某种语言关联但不与国家/地区关联的区域性。特定区域性是与某种语言和某个国家/地区关联的区域性。例如,en是非特定区域性,而en-US是特定区域性。注意,zh-CHS(简体中文)和zh-CHT(繁体中文)均为非特定区域性。区域性有层次结构,即特定区域性的父级是非特定区域性,而非特定区域性的父级是InvariantCulture。CultureInfo类的Parent属性将返回与特定区域性关联的非特定区域性。如果特定区域性的资源在系统中不存在,或因其它原因不可用,则使用非特定区域性的资源;如果非特定区域性的资源也不可用,那么使用主程序集中嵌入的资源。|发表日期:2008-10-5 22:07:35本文将从5.通过Web.config设定站点默认的culture和uiCulture globalization requestEncoding=utf-8re oeEncoding=utf-8uiCulture=zh-CNculture=en-US/4.显示本地化图像显示本地化图像也是A.net2.0的新功能。在A.net2.0中资源文件已经不仅限于string类型的键值对组合,它可以保存多种类型的文件。利用这一功能可以实现图像的本地化。其实所谓本地化图像,无非就是将给不同区域性准备的图像放到不同的本地化资源文件中去。比如将LitwareSlogan.jpg放到MyResource.resx中,把4.如何处理未提供本地化支持的区域性?如果站点没有提供相应的资源文件支持用户默认的区域性,那么必须将其当前线程的CurrentUICulture转化为你站点默认的区域性,比如en-US或zh-CN。转化的时机有两个:3.实现本地化常用的类型、属性和方法CultureInfo类表示有关特定区域性的信息,包括区域性的名称、书写体系和使用的日历,以及有关对常用操作(如格式化日期和排序字符串)提供信息的区域性特定对象的访问。CultureInfo类的实例化一般有两个途径,如下所示:3.资源管理器如何查找指定区域性的相应资源文件?在执行取值操作时,也就是执行ResourceManager类的GetString方法时,资源管理器会按照当前线程的CurrentUICulture属性去寻找相对应的资源文件。有如下几种情况:3.在A.net2.0中使用资源文件在站点中建立全局资源文件的时候,VS.Net2005会自动建立一个A _GlobalResources文件夹专门来存放全局资源文件。所谓全局资源文件,也就是给站点中多个页面文件或母版页使用的资源文件。假设我们创建名为MyResource.resx和MyResource.zh-cn.resx的文件。在程序中我们可以使用以下代码来获得资源文件中的值:this.lblCountry.Text=Resources.MyResource.Country;2.区域性、固定区域性、非特定区域性、特定区域性区域性名称遵循RFC 1766标准,格式为languagecode2-country/regioncode2,其中languagecode2是从ISO 639-1派生的由两个小写字母构成的代码,country/regioncode2是从ISO 3166派生的由两个大写字母构成的代码。例精品游戏网()魔爱嘘网络()如,美国英语为en-US。在双字母语言代码不可用的情况中,将使用从ISO 639-2派生的三字母代码;例如,三字母代码2.使用Web.config文件跟踪用户的区域性选择在A.net1.1中,那些提供了区域性选择的站点,一般使用会话来记录用户的选择,以便在用户每次对站点发出请求时,都按照用户选择的区域性对显示内容进行本地化。在A.net2.0中提供了另一个方法,那就是使用web.config文件来跟踪用户的区域性选择。您可以在web.config文件中添加一个名为LanguagePreference的基于字符串的配置文件属性来支持匿名识别用户区域性的功能。请注意anonymousIdentification元素的enabled属性必须为true,否则匿名识别功能就不可用。2.记住用户的区域性设置通过会话可以记住浏览者的区域性设置或选择。但是这个操作不能在Global.asax.cs文件中A lication_BeginRequest方法中进行,因为那时会话还处于不可用状态。如果你的站点并没有提供让用户选择语言的功能,那么你也没什么必要记住用户的区域性设置,只要按照上面介绍的在Global.asax.cs文件中A lication_BeginRequest方法里设置一下就可以了,不影响性能。这主要可以避免用户在中途突然改变了浏览器中语言的设置,而网站仍按照会话中存储的区域性为用户显示页面内容的冲突。如果你提过了让用户选择语言的功能,那显然要在页面程序中使用会话来记录用户的区域性选择。因为从客户端到服务器段的每次请求,服务器段都会开启一个新的线程进行处我就爱健康网()叫阿莫西中心()理和响应。如果你的程序没有记住客户的选择,那么只能按照默认的区域性进行响应。1.为什么要实现资源的本地化?我们的站点可能为全球各个国家和地区的人所浏览,每个国家和地区的人都有自身的语言文化特点。就拿咱们伟大的祖国为例,中国大陆用简体中文,港澳台则使用繁体中文。另外各个国家对于货币、数字、日历等信息的表达格式各有狗途游戏网()奇偶密码网()不同,我们国家多使用年月日的格式,而美国51无线网()米需爱网()则是月日年。诸如此类的区别林林总总,我也就不多举例了。为了给我们的网站浏览者更好的用户体验,我们应该提供一个全球化的解决方案,只要用户选择了他的语言和区域,站点就按照他的语言文化习惯来展现页面信息,这个过程可以叫做本地化。1.通过Web.config设定站点默认的culture和uiCulture在A.net1.1中使用web.config文件进行站点区域性设定的方法已经讲过了,而在A.net2.0中其更加灵活。通常,您会想要站点中的所有页面都符合相同的区域性设置。只需按如下所示在web.config中,为globalization元素的UICulture和Culture(区域性)属性分配一个站点范围的auto值,注意这个auto值在A.net1.1中是不被接受的。globalization uiCulture=autoculture=auto/auto的意义在于ASP.NET通过检查浏览器发送的HTTP标题获取到的用户首选区域性设置,并使用这个区域性设置站点的默认区域性,即当前线程的CurrentUICulture和CurrentCulture属性。除了自动设置以外,您还可以为A.net指定一个站点的默认区域性:globalization uiCulture=auto:zh-CNculture=auto:zh-CN/注意:只有当ASP.NET无法找到HTTP标题来确定用户的首选区域性,比如浏览器的属性-语言中没有任何区域性设置完全是空的时候,auto后面设定的默认区域性才会生效。在web.config中进行了globalization配置之后,你的应用程序不需要写任何代码,线程的CurrentUICulture和CurrentCulture就会按照在globalization元素中设置的uiCulture和culture属性值获得区域性设置。如果没有进行globalization配置,则线程的CurrentUICulture和CurrentCulture就会默认为en-US。1.如何获得用户的默认区域性通过用户浏览器属性-语言选项里的设置,取最上面那条作为用户的默认语言。1.1和A.net2.0中实现全球化和本地化的步骤、方法。.shtmltarget=_blanktitle=div视频教程(3).比如当前CurrentUICulture查股票网()易思源网()杰西卡呢吗信息网()对应的区域性是en-GB,那么首先找资源文件MyResource.en-GB.resx,如不存在,则看MyResource.en.resx是否存在,如存在则从中取值;如也不存在,则看en关联的默认特定区域性en-US的资源文件MyReso

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论