最近,經常有朋友問ASP.NET如何?國際化(多語言)支援方面的問題。前段時間我正好做過這樣的一個組件,現本著“人人為我,我為人人”共用精神,發佈於此。
其實ASP.NET已經整合對國際化和本地化的支援,但前些日子我正好在研究CS。所以沒有採用微軟內建的多語言支援方案,而是採用CS2.1項目的多語言支援方案為藍本進行改寫的。
此方案主要由多語言支援組件和網站工程互動來實現多語言支援的.
一.組件工程:
由ResourceManager對象負責資源(文本)讀取的相關操作,由Ryu666Cache對象負責緩衝資源檔資料(添加了緩衝依賴).
二.網站工程:
主要有兩職責:其一,在網站目錄下的Languages目錄下提供所有語言版本的資源檔(XML).其二,在Web.Config檔案中appSettings節中提供網站的預設語言版本.
使用說明:
根據上述說明得知,其實運用此模組相當簡單,針對以下幾個方面說明:
1.資源讀取: 在需要讀取資源文本的地方調用ResourceManager.GetString("XXXX"),XXXX為資源檔中的resource元素的name屬性.特別提醒:不一定在網站工程中讀取資源,如果使用自訂控制項時,本組件功效會更顯著.
2.資源檔提供: 在網站工程中建立Languages目錄,然後在其中的languages.xml聲明所有支援的語言版本.然後建立以相應語言代碼為名字的子目錄,在其中再以自應的格式建立Resources.xml資源檔.
3.設定預設網站語言:在Web.config檔案的appSettings節中聲明.其值需要對應語言目錄下languages.xml所聲明的語言代碼.
4.使用者個人化語言選擇:在需要切換使用者語言的地方設定Session["userLanguage"]值便可.設定預設網站語言類似,所設的值需要在語言聲明檔案中被定義.
為示範方便現版本採用Session存放使用者定製的語言版本,若用於產品化時建議結合ASP.NET 2.0的Profile系統管理使用者的個人化語言版本.
因該組件不是產品,功能也不能算是完備,只作為共用用途.各位可以在此基礎上繼續進行開發,也歡迎大家留言交流(http://Ryu666.cnblogs.com).
下載連結:http://files.cnblogs.com/Ryu666/多語言支援.rar