TOP

[ASP.NET] 多國語系 GlobalResources vs LocalResources

目前的專案都已開發為全球化網頁,目前網頁內容最常需要顯示幾個語系為繁體、簡體、日文、英文
全球化網頁顯示又可以分成兩種方式
1.App_GlobalResources
2.App_LocalResources


範例1:使用App_GlobalResources 利用下拉式選單改變語系
1.建立Language.aspx
2.在Language.aspx內建立兩個Label及一個DropDownlist
3.建立App_GlobalResources資料夾
4.在App_GlobalResources資料夾建立語系檔
     (1)預設:Language.resx
     (2)英文:Language.en.resx
     (3)繁體中文:Language.zh-TW.resx
     ex: Language.resx輸入NAME及VALUE


5.設定Label要戴入的值
   (1)選擇Expressions
   (2)選擇Resources
   (3)輸入Classkey及ResourceKey



















6.設計ASPX:
   <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Language, Baseball %>"></asp:Label>      
        <br />
        <asp:Label ID="Label3" runat="server" Text="<%$ Resources:Language, Basketball %>"></asp:Label>      
        <br />
        <br />    
        <asp:DropDownList ID="ddlLanguage" runat="server"  AutoPostBack="True"  ClientIDMode="Static">
            <asp:ListItem Value="zh-TW">中文</asp:ListItem>
            <asp:ListItem Value="en-US">英文</asp:ListItem>
            <asp:ListItem Value="ja-JP">日文</asp:ListItem>
        </asp:DropDownList>
    </div>
    </form>

7.程式碼ASPX.VB:

    Protected Overrides Sub InitializeCulture()
        If Request.Form("ddlLanguage") IsNot Nothing Then
            Page.UICulture = Request.Form("ddlLanguage")
        End If
    End Sub
8.完成,可以測試下拉式選單的多國語系。
9.如果在程式碼ASPX.VB內未增加下拉式選單,及 InitializeCulture()的條件,程式就會依當前視窗的語系做判斷,且刪除 第7項程式碼ASPX.VB內的程式判斷

可利用語言喜好設定做測試。



範例2:使用App_LocalResources 利用下拉式選單改變語系


1.建立Language-4.aspx
2.在Language-.aspx內建立兩個Label及一個DropDownlist
3.選擇Generate Local Resource

4.系統自動會在App_LocalResources 新增一個Language-4.resx
   建立語系檔:
     (1)預設:Language-4.resx
     (2)英文:Language-4.en.resx
     (3)繁體中文:Language-4.zh-TW.resx
     ex: Language-4.resx輸入NAME及VALUE

5.程式碼ASPX.VB:

    Protected Overrides Sub InitializeCulture()
        If Request.Form("ddlLanguage") IsNot Nothing Then
            Page.UICulture = Request.Form("ddlLanguage")
        End If
    End Sub
6.完成且可以測試下拉式選單的多國語系。
7.如果在程式碼ASPX.VB內未增加下拉式選單,及 InitializeCulture()的條件,程式就會依當前視窗的語系做判斷,且刪除 第5項程式碼ASPX.VB內的程式判斷

可利用語言喜好設定做測試。






ASP.NET 2.0多國語系參考資料:
http://www.dotblogs.com.tw/dotjum/archive/2008/06/04/4232.aspx

ASP.NET 4.0多國語系參考資料:
http://ms-net.blogspot.tw/2010/11/aspnet-40-multi-language-design-1.html
http://msdn.microsoft.com/zh-tw/library/fw69ke6f(v=vs.100).aspx
http://www.dotblogs.com.tw/ian/archive/2010/11/27/19758.aspx

Page.InitializeCulture方法參考資料:
http://msdn.microsoft.com/zh-tw/library/system.web.ui.page.initializeculture(v=vs.80).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

Culture及UICulture屬性參考資料:
http://msdn.microsoft.com/zh-tw/library/bz9tc508(v=vs.80).aspx

CultureInfo類別的參考資料(含各語系的文化特性名稱):
http://msdn.microsoft.com/zh-tw/library/system.globalization.cultureinfo(v=vs.80).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-4

0 意見:

張貼留言