程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Asp.Net Ajax 學習筆記20 ASP.NET AJAX的全球化與本地化功能

Asp.Net Ajax 學習筆記20 ASP.NET AJAX的全球化與本地化功能

編輯:.NET實例教程

本次課程講的是對ASP.Net AJax的全球化和本地化的開發。

首先說明了全球化和本地化的定義。

  • 全球化是一個面向多種文化開發和設計一個應用程序的過程。
  • 本地化是面向特定文化和地區定制應用程序的過程

全球化:面向多種文化,設計
本地化:面向特定文化,定制
結論:
- 全球化為應用程序提供多文化的支持
- 本地化"全球化"帶來的支持進行定制
- 兩者密不可分

在ASP.Net中使用全球化

  1. 首先在網站中創建App_GlobalResources文件夾,然後添加全球化資源文件GlobalResource.resx。在創建了基本的GlobalResource.resx文件之後,可以根據多語言創建對應的資源文件,如:要創建美國使用的資源可以創建GlobalResource.en-US.resx資源文件。注意en-US是標准的表示國家的編碼。
  2. 在兩個資源文件中創建相同名字的鍵,然後根據國家范圍,指定相同名字的鍵的鍵值。如添加TodayIs的鍵,在GlobalResource.resx的鍵值為"今天是",在GlobalResource.en-US.resx的鍵值是"Today is"。
  3. 現在可以在對一個控件的值根據資源文件來賦值了,如創建一個lable,那麼可以設置這個label的Text的值為Resources.GlobalResource.TodayIs。這樣Web應用程序會根據當前客戶發送過來的國家編碼自動加載TodayIs的值。
  4. 如果手動改變Culture。我們可以在頁面中重寫InitializeCulture方法。在重寫方法中我們可以通過以下代碼來改變當前請求的文化值。

    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" /> 節點。culture和uiCulture指定為auto表明根據客戶端發送過來的國家信息,來使用相應的資源文件和對應的格式。UICulture和Culture都有兩種設置方式,使用其中一種就可以了

    this.Page.UICulture
    Thread.CurrentThread.CurrentUICulture 
    this.Page.Culture 
    Thread.CurrentThread.CurrentCulture 
  5. 除了在頁面可以使用資源文件給控件賦值,還可以在頁面上賦值。

    <ASP:Label runat="server" Text="<%$ Resources:GlobalResource, TodayIs %>" /><%= DateTime.Now.ToString("D") %> 這是使用ASP.Net 表達式給lable的Text屬性賦值。

使用ASP.Net的本地化。

  1. 首先創建App_LocalResources文件夾,在文件夾下創建與頁面名相同的資源文件。假設頁面名為Default,那麼本地化資源名叫Default.aspx.resx和Default.ASPx.en-US.resx。並在資源文件中創建lblCurrentTime.Text鍵,並指定相應的值為"今天是"和"Today is "。
  2. 那麼我們可以直接在頁面上使用如下標記

    <ASP:Label runat="server" meta:resourcekey="lblCurrentTime" /><%= DateTime.Now.ToString("D") %> 使用了這種標記之後,頁面會根據當前的Culture知道對應的本地化資源文件名,然後根據指定的resoucekey和指定的lblCurrentTime的鍵,得到相應的值。

在ASP.Net AJax中使用全球化功能。

ASP.Net AJax的全球化功能僅涉及到對象字符串的轉換格式不涉及Global資源文件,僅取決於Culture,與UICulture無關

  1. 首先要把全球化功能打開

    <ASP:ScriptManager runat="server" ID="sm" EnableScriptGlobalization="true" /> 
  2. 那麼我們在使用相應的文本和對象的時候需要我們使用localeFormat進行轉換為相應的國家顯示的格式標准。

在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&quot;);

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>

這樣我們就可以根據客戶端發送過來的國家和地區自動對應相應的資源文件

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved