本次课程讲的是对Asp.Net Ajax的全球化和本地化的开发。
首先说明了全球化和本地化的定义。
- 全球化是一个面向多种文化开发和设计一个应用程序的过程。
- 本地化是面向特定文化和地区定制应用程序的过程
全球化:面向多种文化,设计
本地化:面向特定文化,定制
结论:
- 全球化为应用程序提供多文化的支持
- 本地化"全球化"带来的支持进行定制
- 两者密不可分
在Asp.Net中使用全球化
- 首先在网站中创建App_GlobalResources文件夹,然后添加全球化资源文件GlobalResource.resx。在创建了基本的GlobalResource.resx文件之后,可以根据多语言创建对应的资源文件,如:要创建美国使用的资源可以创建GlobalResource.en-US.resx资源文件。注意en-US是标准的表示国家的编码。
- 在两个资源文件中创建相同名字的键,然后根据国家范围,指定相同名字的键的键值。如添加TodayIs的键,在GlobalResource.resx的键值为"今天是",在GlobalResource.en-US.resx的键值是"Today is"。
- 现在可以在对一个控件的值根据资源文件来赋值了,如创建一个lable,那么可以设置这个label的Text的值为Resources.GlobalResource.TodayIs。这样Web应用程序会根据当前客户发送过来的国家编码自动加载TodayIs的值。
- 如果手动改变Culture。我们可以在页面中重写InitializeCulture方法。在重写方法中我们可以通过以下代码来改变当前请求的文化值。
this .Page.UICulture = " en-us " ;
this .Page.Culture = " en-us " ;
< globalization culture ="auto" uiCulture ="auto" />
this .Page.UICulture
Thread.CurrentThread.CurrentUICulture
this .Page.Culture
Thread.CurrentThread.CurrentCulture
- 除了在页面可以使用资源文件给控件赋值,还可以在页面上赋值。
< asp:Label runat ="server" Text ="<%$ Resources:GlobalResource, TodayIs %>" /> <% = DateTime.Now.ToString( " D " ) %>
使用Asp.Net的本地化。
- 首先创建App_LocalResources文件夹,在文件夹下创建与页面名相同的资源文件。假设页面名为Default,那么本地化资源名叫Default.aspx.resx和Default.aspx.en-US.resx。并在资源文件中创建lblCurrentTime.Text键,并指定相应的值为"今天是"和"Today is "。
- 那么我们可以直接在页面上使用如下标记
< asp:Label runat ="server" meta:resourcekey ="lblCurrentTime" /> <% = DateTime.Now.ToString( " D " ) %>
在Asp.Net Ajax中使用全球化功能。
ASP.NET AJAX的全球化功能仅涉及到对象字符串的转换格式不涉及Global资源文件,仅取决于Culture,与UICulture无关
- 首先要把全球化功能打开
< asp:ScriptManager runat ="server" ID ="sm" EnableScriptGlobalization ="true" />
- 那么我们在使用相应的文本和对象的时候需要我们使用localeFormat进行转换为相应的国家显示的格式标准。
在Asp.Net Ajax中使用本地化功能。
脚本名称加上Culture名即可,基于字符串拼接,仅由UICulture决定。意思就是说,Asp.Net Ajax的本地化功能是通过js脚本文件来实现的,基于另外一个国家或地区的脚本文件只需要讲脚本文件的后缀加上国家或地区的编码即可。如:DemoResource.js和DemoResource.en-US.js文件。在js脚本文件中是利用命名空间和类来实现资源文件的功能。









那么在DemoResource.en-US.js文件里相应的就是







1.首先在ScriptManager中打开本地化功能。并且指定资源文件的路径








2.然后我们可以之间使用资源文件中的类和常量



这样我们就可以根据客户端发送过来的国家和地区自动对应相应的资源文件