1、新建網站(或者asp.net Web應用程序)
2、創建一個類。繼承System.Web.UI.Page,重寫InitializeCulture()方法 。類名:BasePage
3、InitializeCulture() 這樣實現:
String language = Session["language"] as String;
if (!String.IsNullOrEmpty(language) && (language != "Auto"))
{
//UICulture - 決定了採用哪一種本地化資源,也就是使用哪種語言
//Culture - 決定各種數據類型是如何組織,如數字與日期
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
}
4、添加 App_LocalResources文件夾 (用來保存資源文件)
4.1、創建資源文件。
注意:資源文件的命名有講究, 譬如 給index.aspx創建資源文件,命名必須這樣:index.aspx.en-us.resx。
這裏的en-us是對於的語言。 中文不需要加 zh-cn
4.2、編輯資源文件。
---------------------------------------------------------------
名稱 值 註釋
lblShow.Text asp.net國際化 (非必要)
---------------------------------------------------------------
這裏的lblShow.Text是具有意義的,lblShow是頁面上的一個Label控件。.Text表示這裏的值要顯示到lblShow.Text中去。
4.3、頁面上使用。
<asp:Label ID="lblShow" runat="server" Text="<%$ Resources:lblShow.Text%>"></asp:Label>
用<%$ %> 綁定資源文件。
5、創建網頁,使用資源文件。
5.1、 注意:創建網頁後務必將 .aspx.cs 這個類繼承BasePage。
爲什麼要繼承BasePage ? 因爲國際化需要在所有頁面上都實現,而一個一個頁面寫太麻煩,這裏就採取繼承的方式來實現。
這樣,繼承之後,每個頁面都會運行到BasePage中的InitializeCulture(),並在InitializeCulture()中確定當前的語言。
6、切換語言。
這裏的設計並非固定的,可以根據自己的需求來。
6.1、在母板頁中放一個DropDownList。在Change事件中改變Session["language"]的值。並Response.Redirect 到原頁面。
6.2、做成用戶控件。
6.3、做成button點擊方式亦可。