需求:我們的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