本次課程講的是對ASP.Net AJax的全球化和本地化的開發。
首先說明了全球化和本地化的定義。
全球化:面向多種文化,設計
本地化:面向特定文化,定制
結論:
- 全球化為應用程序提供多文化的支持
- 本地化"全球化"帶來的支持進行定制
- 兩者密不可分
在ASP.Net中使用全球化
this.Page.UICulture = "en-us";
this.Page.Culture = "en-us";
注意根據Culture得到相對應的資源文件是由UICulture影響的,Culture只是影響文本顯示的格式。在指定完Culture以後,一定要調用基類的InitializeCulture方法。除了通過手工代碼指定外,還可以在頁面上指定UICulture和Culture的值,並且也可以在web.Config文件裡System.Web節點下添加
<globalization culture="auto" uiCulture="auto" />
this.Page.UICulture
Thread.CurrentThread.CurrentUICulture
this.Page.Culture
Thread.CurrentThread.CurrentCulture
使用ASP.Net的本地化。
<ASP:Label runat="server" meta:resourcekey="lblCurrentTime" /><%= DateTime.Now.ToString("D") %> 使用了這種標記之後,頁面會根據當前的Culture知道對應的本地化資源文件名,然後根據指定的resoucekey和指定的lblCurrentTime的鍵,得到相應的值。 在ASP.Net AJax中使用全球化功能。
ASP.Net AJax的全球化功能僅涉及到對象字符串的轉換格式不涉及Global資源文件,僅取決於Culture,與UICulture無關
<ASP:ScriptManager runat="server" ID="sm" EnableScriptGlobalization="true" />
在ASP.Net AJax中使用本地化功能。
腳本名稱加上Culture名即可,基於字符串拼接,僅由UICulture決定。意思就是說,ASP.Net AJax的本地化功能是通過js腳本文件來實現的,基於另外一個國家或地區的腳本文件只需要講腳本文件的後綴加上國家或地區的編碼即可。如:DemoResource.js和DemoResource.en-US.js文件。在JS腳本文件中是利用命名空間和類來實現資源文件的功能。
Type.registerNamespace("Demo");
Demo.Resx =
...{
"TodayIs" : "今天是"
}
那麼在DemoResource.en-US.JS文件裡相應的就是
Type.registerNamespace("Demo");
Demo.Resx =
...{
"TodayIs" : "Today is "
}
1.首先在ScriptManager中打開本地化功能。並且指定資源文件的路徑
<ASP:ScriptManager runat="server" ID="sm" EnableScriptLocalization="true">
<Scripts>...
<ASP:ScriptReference Path="~/Scripts/DemoResource.JS"
ResourceUICultures="en-US" />
</Scripts>
</ASP:ScriptManager>
2.然後我們可以之間使用資源文件中的類和常量
<script language="Javascript" type="text/Javascript">
document.write(Demo.Resx.TodayIs + new Date().localeFormat("yyyy/MM/dd"));
</script>
這樣我們就可以根據客戶端發送過來的國家和地區自動對應相應的資源文件