asp.net 國際化 資源

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點擊方式亦可。
  
 

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