
























页面类有两个影响本地化的重要属性均在< % Page % >指令设置:
此属性用于指定载入到页面的资源文件,资源文件可以包含页面文本内容的特定语言的翻译版本.其属性值可为中立文化也可为特定文化(下面有介绍)
此属性决定了诸如日期、数值、货币单位等的格式与排序。此属性值只能为特定文化.
以上UICulture和Culture属性都接受标准的文化名称作为它们的值。(可在http://www.IETF.org查看标准文化名称)
注:UICulture属性决定了为页面载入哪个资源文件,而Culture是决定了日期,数字,货币数量如何格式化
常用的文化名称如下:
zh-CN=Chinese(China)
en-US=English(United States)
en-GB=English(United Kingdom)
注:每个文化名称有两个部分组成。第一部分代表语言代码,第二部分代表国家/区域代码
即文化名称=语言代码-代表国家/区域代码
若只有语言代码,而无国家/区域代码的文化名称则为中立文化(neutral culture)
若即有语言代码,又有国家/区域代码的文化名称则为特定文化(specific culture)
实例手动在Page指令中设置:
Code
实例以编程方式设置这些属性:
SelectCulture.aspx
实例用Profile记录用户的文化以便用户以后访问网站时自动进入记录的文化不必再设置(注意:有重写了InitializeCulture()此方法是为页的当前线程设置 Culture 和 UICulture):
SelectCultureProfile.aspx
即利用浏览器请求一个页面时,它会发送一个Accept-Language首部,其包含了用户习惯的语言列表. 可用Request.UserLanguages属性返回Accept-Language首部的值.
实例显示Accept-Language:
ShowAcceptLanguage.aspx
< system.web > < globalization culture="en-US" uiCulture="en-US" / > < / system.web >
Culture属性的值会自动地影响诸如Calendar这样的ASP.NET控件的呈现行为。
实例:
ShowCalendar.aspx
CultureInfo类包含了大约超过150个不同的文化的信息。可以在我们的代码中使用该类的方法返回特定的 区域。使用这些信息来格式化诸如日期、数字和货币数量的值。
即在ToString()方法中使用第二个参数。
实例:
使用资源文件可根据用户的语言修改页面的文本或其他内容。每一个资源文件可以包含页面文本的特定语言的翻译版本.
ASP.NET Framework支持两种类型的资源文件:本地资源和全局资源.
ASP.NET Framewormk自动把本地资源编译成程序集,而全局资源就编译成一个类,这样全局资源就可以用强类型表达式在代码中处理全局资源!
当创建一个资源时,一个新类会自动添加到Resource命名空间.该类以属性的形式暴露了所有资源文件中的项目.
在开始本地化一个页面之前,一定要创建一个默认本地化文件.即如test.aspx.resx
MSDN版资源表达式说明:
该资源表达式采用以下形式,其中 Class 是可选的(除非资源是全局资源),而 ResourceID 是必需的:
< %$ Resources: Class , ResourceID % >
Class 值标识要在使用全局资源时使用的资源文件。在编译 .resx 文件时,将不带扩展名的基文件名显式用作所得程序集的类名。若要使用本地资源文件(与当前页名匹配的文件)中的资源,则不必提供类名,因为 ASP.NET 将该页类与资源类相匹配。
ResourceID 值是要读取的资源的标识符。在前面的示例中,从全局资源文件 WebResources.resx(或相应的本地化版本)读取按钮的 Text 属性。在该文件中,ASP.NET 将该值用于带有标识符 Button1Caption 的资源及页本身。若要设置页属性,可以在 @ Page 指令中使用资源表达式。
实例之正常无本地资源版(即页面内容不会随着用户的语言文化而改变):
SimplePage.aspx
实例之显式本地资源版(即页面内容会随着用户的语言文化而改变)
(相应的资源文件在此略了,也就先建立App_LocalResources文件夹,再在其中添加相应的资源文件及资源键/值等):
LocalizablePage.aspx
使用本地资源的隐式本地化
如果您已为特定页创建了本地资源文件,则可以使用隐式本地化从该资源文件中为控件填充属性值。使用隐式本地化时,ASP.NET 读取资源文件并将资源与属性值相匹配。
若要使用隐式本地化,必须对本地资源文件中的资源使用命名约定,命名约定采用以下模式:
Key . Property
例如,若要为名为 Button1 的 Button 控件创建资源,可以在本地资源文件中创建以下键/值对:
Button1.Text
Button1.BackColor
Label1.Text
可以对 Key 使用任意名称,但 Property 必须与要本地化的控件的属性相匹配。
在页上,对该控件的标记使用特殊的 meta 属性可指定隐式本地化。不必显式指定要本地化的属性。配置为使用隐式本地化的 Button 控件看起来可能类似于下面的形式:
resourcekey 值与相应资源文件中的键相匹配。在运行时,ASP.NET 通过将控件标签用作 resourcekey 将资源与控件属性相匹配。如果在资源文件中定义了某个属性值,则 ASP.NET 会用资源值替换该属性。
实例:
LocalizablePageImplicit.aspx
可以使用资源表达设置诸如页面标题这样的的页面属性。
实例(显式本地化页面方式):
PageExplicit.aspx
实例(隐式本地化页面方式):
PageImplicit.aspx
在代码中访问本地资源,可以使用GetLocalResourceObject()由方法得到其值.
实例:
ProgramLocalResource.aspx
实例:
ShowGlobalPage.aspx
实例:
ProgramGlobalResource.aspx
实例:
ProgramGlobalTyped.aspx
实例:
ShowLocalizeControl.aspx
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。