ASP.NET网站实现多语言版本 【转】
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET网站实现多语言版本 【转】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、項目概述
??????1、目的
????????????利用資源文件解決網站多語言版本的問題,在制作網站的時候,經常會遇到多種語言的版本,早期在asp的系統當中,很多網站開發師都會用傳統的方法來開發,就是將同一套程序復制兩份,功能是實現了,但往往后期的維護帶來很大的麻煩,而在asp.net的時代,做這樣的事情,原來是那么的簡單.
??????2、概念
?????????? 資源文件是 XML 文件,其中包含要轉換為不同語言或圖像路徑的字符串。資源文件包含鍵/值對,每一對都是一個單獨的資源。鍵名不區分大小寫。例如,資源文件可能包含帶有 Button1 鍵和 Submit 值的資源。
???????? 多語言是每種語言(如英語和法語)或每種語言和區域性(如英語 [英國]、英語 [美國])分別創建一個資源文件。每個本地化資源文件都有相同的鍵/值對;本地化資源文件與默認資源文件的唯一區別就是前者所包含的資源可能少于后者。然后,語言回退處理非特定資源或默認資源的加載。
???????? ASP.NET 中的資源文件具有 .resx 擴展名。在運行時,.resx 文件將編譯進一個程序集內,該程序集有時稱為附屬程序集。由于 .resx 文件是用與 ASP.NET 網頁相同的方式動態編譯的,因此不必創建資源程序集。編譯過程將多個語言類似的資源文件壓縮在同一程序集內。
???????? 在創建資源文件時,首先開始創建基文件 .resx。對于要支持的每種語言,分別創建一個新文件,該文件具有同一基本文件名但包含語言或語言及區域性(區域性名稱)。有關區域性名稱的列表,請參見 CultureInfo。例如,您可以創建下列文件:
WebResources.resx
基資源文件。該文件是默認或后備資源文件。
WebResources.es.resx
西班牙語的資源文件。
WebResources.es-mx.resx
專用于西班牙語(墨西哥)的資源文件。
WebResources.de.resx
德語的資源文件。
在運行時,ASP.NET 使用與 CurrentUICulture 屬性的設置最為匹配的資源文件。線程的 UI 區域性根據頁的 UI 區域性進行設置。例如,如果當前的 UI 區域性是西班牙語,則 ASP.NET 使用 WebResources.es.resx 文件的已編譯版本。如果當前的 UI 區域性沒有匹配項,則 ASP.NET 會使用資源后備;首先用特定區域性的資源,接著用非特定區域性,最后用默認資源文件。在本例中,默認資源文件是 WebResource.resx。
二、解決方案
?????? 1、全局資源文件(App_GlobalResources)
????????將資源文件放入應用程序根目錄的保留文件夾 App_GlobalResources 中,即可創建全局資源文件。App_GlobalResources 文件夾中的任何 .resx 文件都具有全局范圍。此外,ASP.NET 還生成了一個強類型對象,這為開發人員提供了一種以編程方式訪問全局資源的簡單方法。
????????2、本地資源文件(App_LocalResources)
???????? 本地資源文件是只應用于一個 ASP.NET 頁的文件(帶有 .aspx、.ascx、.master 等擴展名的 ASP.NET 頁)。本地資源文件所放入的文件夾具有 App_LocalResources 保留名稱。App_LocalResources 文件夾可以存在于應用程序的任何文件夾中,這與 App_GlobalResources 根文件夾不同。通過資源文件名將一組資源文件與特定的網頁相關聯。
????????例如,如果在 App_LocalResources 文件夾中有一個名為 Default.aspx 的頁,則可以創建下列文件:
Default.aspx.resx
默認的本地資源文件,如果找不到語言匹配項,則該文件為后備資源文件。
Default.aspx.es.resx
西班牙語的資源文件,不包含區域性信息。
Default.aspx.es-mx.resx
專用于西班牙語(墨西哥)的資源文件。
Default.aspx.fr.resx
法語的資源文件,不包含區域性信息。
?????? 3、使用本地資源的隱式本地化
??????????????在服務器控件引用如:????meta:resourcekey="Button1" />
???????????? 在相應的資源文件定義:Button1.Text
???????? 4、顯式本地化
??????????頁面引用如????Text="" />
???????? 資源文件定義:Button1Caption
當正在運行某頁并且 ASP.NET 正在從資源管理器中檢索值時,ASP.NET 為該頁選擇與當前 UICulture 設置匹配程度最高的資源文件版本,或者使用資源后備獲取資源。例如,如果正在運行 Default.aspx 頁并且當前的 UICulture 屬性設置為 es(西班牙語),則 ASP.NET 使用本地資源文件 Default.aspx.es.resx 的已編譯版本。
ASP.NET 可以將該頁的 UICulture 和 Culture 屬性設置為瀏覽器所傳遞的語言和區域性值?;蛘?#xff0c;可以以聲明方式或通過使用代碼顯式設置 UICulture 和 Culture 屬性。還可以在 Web.config 文件中以聲明方式設置這些值。有關詳細信息,請參見如何:為 ASP.NET 網頁全球化設置區域性和 UI 區域性。
以是網頁內容來自微軟官方網站,本人做了整理,地址(http://msdn2.microsoft.com/zh-cn/library/ms227427(VS.80).aspx)
本人上傳一個實例,希望能幫到大家.link
??????1、目的
????????????利用資源文件解決網站多語言版本的問題,在制作網站的時候,經常會遇到多種語言的版本,早期在asp的系統當中,很多網站開發師都會用傳統的方法來開發,就是將同一套程序復制兩份,功能是實現了,但往往后期的維護帶來很大的麻煩,而在asp.net的時代,做這樣的事情,原來是那么的簡單.
??????2、概念
?????????? 資源文件是 XML 文件,其中包含要轉換為不同語言或圖像路徑的字符串。資源文件包含鍵/值對,每一對都是一個單獨的資源。鍵名不區分大小寫。例如,資源文件可能包含帶有 Button1 鍵和 Submit 值的資源。
???????? 多語言是每種語言(如英語和法語)或每種語言和區域性(如英語 [英國]、英語 [美國])分別創建一個資源文件。每個本地化資源文件都有相同的鍵/值對;本地化資源文件與默認資源文件的唯一區別就是前者所包含的資源可能少于后者。然后,語言回退處理非特定資源或默認資源的加載。
???????? ASP.NET 中的資源文件具有 .resx 擴展名。在運行時,.resx 文件將編譯進一個程序集內,該程序集有時稱為附屬程序集。由于 .resx 文件是用與 ASP.NET 網頁相同的方式動態編譯的,因此不必創建資源程序集。編譯過程將多個語言類似的資源文件壓縮在同一程序集內。
???????? 在創建資源文件時,首先開始創建基文件 .resx。對于要支持的每種語言,分別創建一個新文件,該文件具有同一基本文件名但包含語言或語言及區域性(區域性名稱)。有關區域性名稱的列表,請參見 CultureInfo。例如,您可以創建下列文件:
WebResources.resx
基資源文件。該文件是默認或后備資源文件。
WebResources.es.resx
西班牙語的資源文件。
WebResources.es-mx.resx
專用于西班牙語(墨西哥)的資源文件。
WebResources.de.resx
德語的資源文件。
在運行時,ASP.NET 使用與 CurrentUICulture 屬性的設置最為匹配的資源文件。線程的 UI 區域性根據頁的 UI 區域性進行設置。例如,如果當前的 UI 區域性是西班牙語,則 ASP.NET 使用 WebResources.es.resx 文件的已編譯版本。如果當前的 UI 區域性沒有匹配項,則 ASP.NET 會使用資源后備;首先用特定區域性的資源,接著用非特定區域性,最后用默認資源文件。在本例中,默認資源文件是 WebResource.resx。
二、解決方案
?????? 1、全局資源文件(App_GlobalResources)
????????將資源文件放入應用程序根目錄的保留文件夾 App_GlobalResources 中,即可創建全局資源文件。App_GlobalResources 文件夾中的任何 .resx 文件都具有全局范圍。此外,ASP.NET 還生成了一個強類型對象,這為開發人員提供了一種以編程方式訪問全局資源的簡單方法。
????????2、本地資源文件(App_LocalResources)
???????? 本地資源文件是只應用于一個 ASP.NET 頁的文件(帶有 .aspx、.ascx、.master 等擴展名的 ASP.NET 頁)。本地資源文件所放入的文件夾具有 App_LocalResources 保留名稱。App_LocalResources 文件夾可以存在于應用程序的任何文件夾中,這與 App_GlobalResources 根文件夾不同。通過資源文件名將一組資源文件與特定的網頁相關聯。
????????例如,如果在 App_LocalResources 文件夾中有一個名為 Default.aspx 的頁,則可以創建下列文件:
Default.aspx.resx
默認的本地資源文件,如果找不到語言匹配項,則該文件為后備資源文件。
Default.aspx.es.resx
西班牙語的資源文件,不包含區域性信息。
Default.aspx.es-mx.resx
專用于西班牙語(墨西哥)的資源文件。
Default.aspx.fr.resx
法語的資源文件,不包含區域性信息。
?????? 3、使用本地資源的隱式本地化
??????????????在服務器控件引用如:????meta:resourcekey="Button1" />
???????????? 在相應的資源文件定義:Button1.Text
???????? 4、顯式本地化
??????????頁面引用如????Text="" />
???????? 資源文件定義:Button1Caption
當正在運行某頁并且 ASP.NET 正在從資源管理器中檢索值時,ASP.NET 為該頁選擇與當前 UICulture 設置匹配程度最高的資源文件版本,或者使用資源后備獲取資源。例如,如果正在運行 Default.aspx 頁并且當前的 UICulture 屬性設置為 es(西班牙語),則 ASP.NET 使用本地資源文件 Default.aspx.es.resx 的已編譯版本。
ASP.NET 可以將該頁的 UICulture 和 Culture 屬性設置為瀏覽器所傳遞的語言和區域性值?;蛘?#xff0c;可以以聲明方式或通過使用代碼顯式設置 UICulture 和 Culture 屬性。還可以在 Web.config 文件中以聲明方式設置這些值。有關詳細信息,請參見如何:為 ASP.NET 網頁全球化設置區域性和 UI 區域性。
以是網頁內容來自微軟官方網站,本人做了整理,地址(http://msdn2.microsoft.com/zh-cn/library/ms227427(VS.80).aspx)
本人上傳一個實例,希望能幫到大家.link
轉載于:https://www.cnblogs.com/myssh/archive/2009/05/31/1493185.html
總結
以上是生活随笔為你收集整理的ASP.NET网站实现多语言版本 【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IT人士群聚喝酒
- 下一篇: 对Coverage进行编辑