摘要:ASP.NET MVC - 使用 MVC 實作多國語系(一)
接觸 dot NET 已經有一段滿常的時間,都沒實作過 多國語言 的功能,這陣子終於有機會用到了,讓小弟發覺確實是一個好東西。此時想到以前公司要作多國語言網站,那時懵懂的我確實不知道該如何下手,最後還是外包給廠 商來做,現在想想那時有能力的話,頂多再加上一位美工配合,就不用花冤妄錢了。廢話就不多說,以下就來實作唄...
步驟一:在 Web.config 中加入 globalization
Code:
<system.web>
<!-- 設定整個網站進行自動語系判斷 -->
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>
步驟二:在 專案 中加入 App_GlobalResources
畫面:
步驟三:在 App_GlobalResources 中,新增 Resource.resx 與 Resource.en-US.resx 兩個檔案
畫面:
呆言呆語:我們建立了 Resource.resx 與 Resource.en-US.resx 兩個檔案,Resource.resx 是預設的語系(預設為 繁體中文 ),而 Resource.en-US.resx 就是所 英文 語系;所以要再加上第三個語系就可以這樣命名 Resource.zh-CN.resx,這樣就有 簡體中文 的定義檔案嚕
步驟四:在 Resource.resx 與 Resource.en-US.resx 中填入值
畫面:
Resource.resx
Resource.en-US.resx
步驟五:在 Global.asax 中的 Application_BeginRequest 事件中設定指定 UICulture 的程式碼,才可以讓 ASP.NET 依據使用者瀏覽器中的 Cookie 進行判斷
Code:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpCookie MyLang = Request.Cookies["MyLang"];
if (MyLang != null)
{
System.Threading.Thread.CurrentThread.CurrentCulture =
new System.Globalization.CultureInfo(MyLang.Value);
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo(MyLang.Value);
}
}
步驟六:在頁面上加入 Resource 資料
Code:
<p><%=Resources.Resource.l星期一l%></p>
<p><%=Resources.Resource.l星期二l%></p>
<p><%=Resources.Resource.l星期三l%></p>
<p><%=Resources.Resource.l星期四l%></p>
<p><%=Resources.Resource.l星期五l%></p>
<p><%=Resources.Resource.l星期六l%></p>
<p><%=Resources.Resource.l星期日l%></p>
步驟七:使用 IE 瀏覽器 的 語言來測試
畫面:
畫面:
切換 中文 (繁體,台灣) [zh-TW]
切換 英文 (美國) [en-US]
參考:
如何讓 ASP.NET 依據瀏覽器指定的語系自動選用資源檔