我們先在\App_GlobalResources中新增一個資源檔
Resource.resx
名稱:PageTitle
值:English Sample Page
再新增一個繁體中文資源檔
Resource.zh-TW.resx
名稱:PageTitle
值:繁體中文抬頭網頁
新增Default.aspx網頁,在@Page指示詞最後加上「Culture="Auto" UICulture="Auto"」兩屬性,跟ASP.NET說,此網頁請自動幫忙選擇文化屬性。
最後我們在Page_Load新增以下程式碼:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load '由資源檔Resource讀取PageTitle的值 Page.Title = Resources.Resource.PageTitle End Sub
要取得資源檔裡名稱與值很簡單,使用「Resources.資源檔.名稱」就可以取得名稱的值。這樣我們馬上就完成一個自動判定語系的網頁,而且會自動抓取抬頭設定值,如果你是使用繁體中文的瀏覽器,那網頁的抬頭應該是「繁體中文抬頭網頁」,其他語系瀏覽器應該都是「English Sample Page」。ASP.NET會自動判定你的語系,抓取對應的資源檔,如果沒有對應的資源檔,會使用預設資源檔的值(Resource.resx)
在設計上,我們會先計設一個預設語言的資源檔,再依序新增其他語言的資源檔,例如:
WebResource.resx (預設)
WebResource.zh-TW.resx
WebResource.zh-CN.resx
這裡有一點要注意,就是後面新增資源檔的「語系」命名不能隨便亂設,例如你把繁體中文的資源檔命名為WebSource.Big5.resx、WebSource.GB2312.resx,而是要依照.NET Framework中CultureInfo類別的規定來命名。
另外,如果你只想讓某一個.aspx網頁使用資源檔,則需要將資源檔新增至「\App_LocalResources」資料夾之下,然後依網頁名稱來命名資源檔名稱及相關資源檔。
例如,我有一個讓User下載資料的網頁Download.aspx,所以我們在\App_LocalResources新增以下資源檔:
Download.aspx.resx
Download.aspx.zh-TW.resx
Download.aspx.zh-CN.resx
這樣明白了吧,就把是直接用網頁名稱來命名資料檔,然後再依照預設資源檔來新增相關語系(zh-TW、zh-CN…)的資源檔,當ASP.NET執行到Downloads.aspx時,會自動去判斷瀏覽器的語系,再去找相對應的資源檔,再顯示出相關語言的頁面。
記得,語系(zh-TW…)的命名一樣是要照規定。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。