Asp.net多語言中的App_GlobalResources和LocalResourc

Asp.net多語言中的App_GlobalResources和LocalResourc

(2010-05-24 14:11:33)

App_GlobalResources的文件是全局文件資源,可以在任何頁面通過Resources直接使用這裏面的資源文件。示例如下:

1、在App_GlobalResources中增加一個文件叫做ResourceTest.resx

2、在ResourceTest.resx中增加兩個項 PageTitle 值爲“中國加油!” LabelText值爲“奧運順利!”

3、打開aspx頁面的,然後在Page_Load方法中可以直接這樣使用

protected void Page_Load(object sender, EventArgse)
      {
          this.Title = Resources.ResourceTest.PageTitle;
          Label1.Text = Resources.ResourceTest.LabelText;
      }

這裏的ResouceTest就是那個資源文件的文件名,在VS中,可以自動感知出ResourceTest。

直接在頁面的控件中的使用方法是:

<asp:Label ID="Label1" runat="server"Text="<%$Resources:ResourceTest,LabelText%>"></asp:Label>

如果使用這種方式綁定了App_GlobalResources,那麼就不能再綁定App_LocalResources中的資源文件了

如果要支持英文,就在App_GlobalResources中增加一個文件,文件命名格式是:ResourcesTest.en-us.resx,在頁面的使用方式不變。當你用瀏覽器訪問時,系統會自動偵測出你的瀏覽器設置的默認語言,然後自動調用不同的資源包來呈現出來。

除了上面所談到的方式可以直接使用資源包,還可以通過HttpContext.GetGlobalResourcesObject來獲取資源包的內容。

HttpContext.GetGlobalResourceObject(resxFile, MyResName)

HttpContext.GetGlobalResourceObject(resxFile, MyResName,CurrentCulture)

這個方法第一個參數是資源文件名,第二個參數是要檢索的鍵值。調用例子爲:

string GetGlobalResources(string resxFile,string resxKey)

{

stringresxValue=(string)HttpContext.GetGlobalResourceObject(resxFile, resxKey)

if(string.IsNullOrEmpty(resxValue)

{

return string.Empty;

}

return resxValue;

}

App_LocalResources文件夾,這個文件夾中放的是頁面的資源文件,這些資源文件和每個Aspx頁面對應。比如我在網站項目下添加了一個Default.aspx文件,在設計VS的模式下,選擇工具“生成本地資源”就會自動在App_LocalResources中生成一個名字爲Default.aspx.resx的資源文件。

編程訪問的方式是:

HttpContext.GetLocalResourceObject("resxFile","resxKey")

直接在控件中的訪問方式:

<asp:Label ID="Label1" runat="server"meta.:resourcekey="LabelText"></asp:Label>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章