在
ASP.Net 2.0 本地化技術之研究的回復中提到了以下兩點:
1.這只是單個頁面的切換,如何做整個站點的切換呢?( hjh )
2.關於如何將資源直接顯示……既然控件能夠將嵌入dll的資源直接顯示,不知道網站能否也將嵌入資源直接調用WebResource顯示呢?(
Cat Chen )
由於不是一兩句可以說清,所以再開一篇仔細講一下。
內容列表:
1.整站本地化資源的切換
2.使用ProFile保存用戶選擇的語言
3.關於WebResource的使用
4.代碼下載
1.整站本地化資源的切換
在上一篇裡我們講到,可以通過重載頁面的InitializeCulture函數,在其中切換當前線程的CurrentUICulture和CurrentCulture來實現本頁的資源切換。那麼整站呢?總不能在每個頁面裡都寫上這幾句吧。。。
首先,我想到的是使用MasterPage,如果在MasterPage裡加上資源切換的代碼,那麼所有使用該母板的頁面都具備這種能力了吧,呵呵(想得不錯)。但如意算盤打破了,MasterPage是使用@Master來聲明的,根本和Page是兩個繼承路線,所以MasterPage裡沒有InitializeCulture這個虛函數!
沒辦法,想到了另一個解決方案,創建一個從System.Web.UI.Page繼承下來的基類,在其中實現資源切換,而站內所有頁面的實現類都從該類繼承。OK,就這麼辦!
打開上一篇完成的網站,選中網站,右鍵在彈出菜單中點擊[添加ASP.Net文件夾]-[App_Code]。
選中該文件夾,右鍵點擊[添加新項],在彈出式窗口中選擇“類”,命名為LocalizedPage.cs,點擊[添加]完成,如圖所示:
編輯LocalizedPage.cs,代碼如下:
using System;