1.實現方法cookie
VS中添加 App_GlobalResources目錄session
在該目錄中添加兩個資源文件 Resource.resx、Resource.en-us.resxasp.net
資源文件內容以下圖所示:ide
控件中綁定函數
<asp:Label runat="server" ID=」labLogin」 Text="<%$ Resources:Resource,LoginTitle %>" ></asp:Label>工具
其中Resources爲資源文件的文件名,LoginTitle爲資源文件中定義的文本項名稱測試
代碼中使用字體
this.labLogin.Text = Resources.Resource.LoginTitle;//後臺代碼中使用this
測試.net
可經過以下代碼強制頁面爲英文模式,進行測試(也能夠經過更改IE設置默認語言)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Case.Login" Culture="en-us" UICulture="en-us" %>
2.本地資源和全局資源前面介紹的全局資源文件的使用,實際項目中會有不少特定的資源(只在某個頁面或函數中使用),若是所有放在全局資源文件中,該資源文件內容將會不少,難以維護,取一個唯一的鍵值名稱都難,這種狀況asp.net有更好的解決方案,那就是本地資源文件「App_LocalResources」:
App_GlobalResources和App_LocalResources的區別:
前者主要放一些全局類的信息,如多個頁面或多個模塊中都會用到的字符串;
後者主要放置某一個頁面關聯的特定的資源信息,App_LocalResources使用方式以下:
在aspx所在的目錄中建立「App_LocalResources」文件夾,添加資源文件, 資源文件名稱格式:"頁面名稱加後綴.resx",如Login.aspx.resx Login.aspx.en-us.resx
文件中的資源對象命名約定resourcekey.
property。例如 btnLogin.Text,代碼結構以下圖,Index.aspx是在Case子目錄下面,故在Case目錄中建立App_LocalResources目錄
資源文件內容
界面中使用
注意紅色字體部分:
<form id="form1" runat="server">
<asp:Button ID="btnTest" meta:resourcekey="btnSubmit" runat="server" />
</form>
後臺代碼中使用
this.Title = GetLocalResourceObject("PageTitle").ToString();
3.實現多語言切換
前臺界面實現語言切換,切換後將選擇的語言 zh-cn 或en-us等字符串保存起來(Session、Cookie、或用戶數據表中),頁面瀏覽時先讀取到用戶的語言,頁面中重寫InitializeCulture 函數,綁定語言。
(建議將該函數寫在頁面基類中繼承自Page類,而後全部頁面手動更改繼承關係,繼承自這個基類)
protected override void InitializeCulture()
{
string cultureString = "en-us"; //能夠根據用戶選擇的語言,保存到session/cookie中 而後去取
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(cultureString);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cultureString);
}
protected void Page_Load(object sender, EventArgs e)
{
this.Page.Title = Resources.Resource.LoginTitle;//後臺代碼中使用
}
4.小技巧
添加資源文件一種是手工添加,另外一種快捷的辦法是讓VS自動建立,方法以下:
打開要建立多語言的aspx文件,選擇「工具」菜單下的「生成本地資源」,系統將會自動生成「App_LocalResources」目錄,生成對應頁面的資源文件,並對頁面中控件自動生成經常使用的屬性映射。
附:各國語言對應字符串清單
http://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo(v=vs.80).aspx