需求:我們的ASP.NET網站需要提供多語言支持,考慮到我們使用的是ASP.NET2.0,我們可以利用資源檔案來實現。
NOTE: 這裡我們使用程式設計的方法實現,使用其他方法,請參閱:http:
//msdn2.microsoft.com/en-us/library/c6zyy3s9.aspx
接下來我們來示範一個簡單的範例
Steps:
Step1:在Visual Studio2005中建立一個ASP.NET網站
Step2:在網站專案中新增App_GlobalResources
Note:這裡我們使用全域資源檔案作為演示,本機資源檔案操作步驟類似,關於全域資源檔案與本機資源檔案的異同,請參見
http://msdn2.microsoft.com/en-us/library/ms227427.aspx
中Choosing Between Global and Local Resource Files這段
Step3:在App_GlobalResources中新增項,選擇Resource File模板,取名為Site.resx
Note :這是我們的預設語言資源文件,必須要有
在這個資源文件的鍵/值配對中寫入:
Name : btnSubmitText
Value: Submit
Step4:增加我們需要的各種語言的資源檔案,這裡我們增加兩個檔案
Site.zh-CN.resx
在這個資源檔案的鍵/值配對中寫入:
Name : btnSubmitText
Value: 確定
Site.en-US .resx
在這個資源檔案的鍵/值配對中寫入:
Name : btnSubmitText
Value: Submit
Note:這裡為資源檔案取名的時候,需要依照以下格式:
[Class]. [Culture Name].resx
比如說Site.zh-CN.resx
關於Culture Name請參考MSDN中CultureInfo類別中的Remarks部分
Step5:在我們的Default頁面中添加一個Button控件,ID為btnSubmit
Step6:在我們的Default頁面中添加兩個Button控件,ID為btnChinese,btnEnglish,Text為中文,English
在btnChinese的Click事件方法中,添加代碼:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
btnSubmit.Text = Resources.Site.btnSubmitText;
在btnEnglish的Click事件方法中,加入程式碼:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
btnSubmit.Text = Resources.Site.btnSubmitText;
Note:如果我們不在程式碼裡指定目前執行緒的CurrentUICulture,那麼程式就會根據瀏覽器中的設定進行判斷,你可以在IE中的語言設定中進行預設設定。
OK, 我們可以運行了。
UAT就讓大家來做吧,呵呵。不出所料,一切都如我們所預料的運作。
By the way, 最近發的幾篇文章難度都不是很高,其實重要的是告訴大家一種可以選擇的方法,或是大家都不是很注意的一些知識點, 引導大家如果有需要繼續去發掘, MSDN裡有的內容,我就簡要介紹或直接給出鏈接,那樣就不會顯得文章龐大臃腫,讓大家集中註意力在某一些點上。 Enjoy it J
PS:歡迎大家加我的MSN或QQ討論.NET 2.0(主要是C#2.0跟ASP.NET2.0吧)跟.NET3.0,發現我加入的幾個QQ群都還挺少有人討論這兩個版本的內容的。還有一些朋友問我的很多問題,其實透過查找MSDN都可以找到答案跟範例,所以我的建議是,先透過自己找資料來尋找解決方案。還有一些朋友直接向我要源碼,或者說讓我做一個MSDN示例裡已經有代碼的演示Project,那我的建議是,你還是自己先去嘗試著做吧,我做好給你,你再看肯定沒有你自己做一邊效果的好。
http://www.cnblogs.com/wdxinren/archive/2006/09/07/497686.html