Asp.net - 多國語系-使用Resource (一)

Resource
多國語系
Asp.net

我將操作方式記錄一下,以開啟全新網站(非專案)為例,使用的語言是VB。

1.在組態檔案內的<system.web>下加入。


<system.web>

        <!--多國語系自動判斷-->
        <globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>

</system.web>

2.在網站內加入App_GlobalResources資料夾,並且在該資料夾內加入資源檔

3.建立了英語系、當地語系的兩個資源檔。

內容如下

 

在後端讀取這些資源檔的方式如下


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

  '使用弱型別取值
  Response.Write("弱型別:" + CType(GetGlobalResourceObject("Resource", "Love"), String) + "<br>")
  '使用強型別取值
  Response.Write("強型別:" + Resources.Resource.Love + "<br>")

End Sub

 

接下來我們模擬一下不同語系顯示出的結果(使用IE瀏覽器),Chrome測試也是可用的

中文語系

英文語系

 

有趣的是,我在MSDN挖到,可以以這樣的方式讀取,丟到server control上


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Button ID="Button1" runat="server" Text="<%$ Resources:Resource,Love%>" />
    </div>
    </form>
</body>
</html>

 

 

以上是根據瀏覽器的設定而語系同步變更的方式,如果使用者想要選擇

自己的語系的話呢 ?  在下篇文章內會有說明。

 

後續(20160413)

或許有人跟我有一樣的問題等著一起解答,為何系統能夠自行判定要抓那個resouse而顯示在網頁上

MSDN上只查到這樣教,卻沒有說明為什麼,或許程式是以ResouseName + 語系 + resx的方式去抓,

有人如果看到此篇,知道為什麼的話,是否能順便解答一下 ? 圖二為找到的一些蛛絲馬跡,看起來

會自動抓到CultureInfo的資訊。

 

參考MSDN文件:

逐步解說:使用資源進行 ASP.NET 的當地語系化

HOW TO:以程式設計方式擷取資源值

HOW TO:建立 ASP.NET Web 網頁的資源檔 (Visual Studio)