建立一個測試網站添加 一個頁面 test.aspx 在頁面上拉出一個label控制項命名為了 labTest
添加兩個特殊的檔案夾App_GlobalResources App_LocalResources
按右鍵App_LocalResources 添加一個新的檔案 命名為 test.aspx.resx 開啟test.aspx.resx
添加一條新的記錄 名稱:labTest 值:測試
複製test.aspx.resx 檔案。並命名成 test.aspx.en.resx (英文 en) 修改 labelTest的值為:test
接下來在 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Culture="auto:zh-cn" UICulture="auto:zh-cn" Inherits="test" %>
加上 Culture 和 UICulture (測試發現 Culture沒有起作用可以刪除)
開啟labTest屬性框。 找到 dataExpression Expression type 選擇 resource ,resourceKey選擇 labTest
查看這個頁面。我們可以看到 測試 兩個字
接下來。internet選項 語言 添加一個新的語言 en 並把它放在第一位。。重新重新整理頁面你可以看到 test
注意: app_localresources 檔案夾裡的資源檔的命名 檔案名稱."語言代號".resx 並且需要一個預設的沒有語言代號的
我們繼續試一下 App_GlobalResources(全域資源) 建立一個 Resource.ascx 添加 labTest2 值:測試2
複製出一個 Resource.en.ascx 值為 Test2
在test.aspx裡再拉出一個 label 選取 data expression 繼續選擇 resource 把Resource(剛才取的名稱)放入 classkey 接下來就可以選擇
resourceKey 為 labTest2
測試。你就可以看到你想要的了.
如何自己去控制 語言呢。我們只要重寫 InitializeCulture() 並在裡面設定 System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("name");
protected override void InitializeCulture()
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("name");
//base.InitializeCulture();
}
就可以了
這個時候也許會你問哪一些我們需要動態提示綁定的應該什麼處理呢。
我們發現也很簡單。
原來可以直接通過
this.Title = Resources.Resource.labTest2; 這樣的方式來獲得 Resource(同樣為你資源的名字)
this.Title =HttpContext.GetLocalResourceObject("~/ActivityList.aspx", "Title").ToString(); 這樣也可以擷取