ASP.NET實現(xiàn)Web網(wǎng)站本地化
1、重寫InitializeCulture方法。
在Global.asax中的Application_BeginRequest獲取或設置語言,每次頁面的請求都首先運行這個方法,然后再運行具體頁面的InitializeCulture重載方法。
附上一張圖,看看頁面方法和事件的執(zhí)行順序

protected override void InitializeCulture()
{
String curCulture = Request.QueryString["currentculture"];
if (!String.IsNullOrEmpty(curCulture))
{
HttpCookie cookie = new HttpCookie("preferCulture", curCulture);
cookie.Expires = DateTime.Today.AddDays(7);
Response.SetCookie(cookie);//設置Cookie
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(s);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(s);
}
else
{
HttpCookie cookie = new Request.Cookies["preferCulture"];//取得Cookie
if (cookie != null)
{
curCulture = cookie.Value.ToString();
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(curCulture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(curCulture);
}
}
}除了通過IE瀏覽器和線程獲取語言設置,其實我們可以自己設置使用哪種語言。
1)通過在每個頁面里的Page節(jié)指定
<%@ Page Culture="en-us" UICulture="en-us" %>
如上所設,該頁將使用en-us的語言設置。
注意:這只是個概要式寫法,實際的頁面中的Page一般都包含更多的屬性。
2)通過在Web.Config里的globalization節(jié)指定
<system.web> <globalization Culture="en-us" UICulture="en-us" /> </system.web>
2、添加資源語言文件
在項目App_GlobalResource文件夾添加Demo.resx和Demo.en-us.rex兩個文件
在首頁中添加:
<a href="?currentculture=zh-cn" rel="external nofollow" >中文(中國)</a> ? <a href="?currentculture=en-us" rel="external nofollow" >English(USA)</a>
3、獲取全局資源(GlobalResources)的方式:
你能從 ~\App_GlobalResources\MyMessages.resx 得到的資源通過:
1、產(chǎn)生的封裝代碼 :
string message = Resources.MyMessages.Hello;
2、資源表達式
<asp:Label Text="<%$ Resources: MyMessages, Hello %>" />
3、GetGlobalResourceObject方法
string message = GetGlobalResourceObject("MyMessages", "Hello");4、本地資源的獲取方法:
你能從 ~\App_LocalResources\default.aspx.resx 得到的資源通過:
1、資源表達式:
<asp:Label Text="<%$ Resources: Hello %>" />
2、meta:resourceKey :
<asp:Label meta:resourceKey="labelResourceKey" />
3、GetLocalResourceObject方法:
string message = GetLocalResourceObject("Hello"); "到此這篇關(guān)于ASP.NET實現(xiàn)Web網(wǎng)站本地化的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net代碼中修改web.config節(jié)點的具體方法
在有些情況下,要在代碼中讀取一種全局變量,把這種全局變量放在web.config是一種常見的手段。2013-06-06
Chrome內(nèi)核下由ashx輸出的js代碼不起作用的解決方法
Chrome內(nèi)核下由ashx輸出的js代碼不起作用的解決方法,需要的朋友可以參考一下2013-03-03
.Net微信網(wǎng)頁開發(fā)解決用戶在不同公眾號或在公眾號、移動應用之間帳號統(tǒng)一問題
這篇文章主要介紹了.Net微信網(wǎng)頁開發(fā)解決用戶在不同公眾號或在公眾號、移動應用之間帳號統(tǒng)一問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
.NET Core 中實現(xiàn)異步編程并提升性能的操作方法
在.net core中異步編程主要通過async和await關(guān)鍵字來實現(xiàn),結(jié)合Task類進行異步操作的管理,這篇文章主要介紹了.NET Core 中實現(xiàn)異步編程并提升性能的操作方法,需要的朋友可以參考下2024-12-12
asp.net 動態(tài)創(chuàng)建TextBox控件及狀態(tài)數(shù)據(jù)如何加載
接著上文Asp.net TextBox的TextChanged事件你真的清楚嗎?這里我們來說說狀態(tài)數(shù)據(jù)時如何加載的,需要的朋友可以參考下2012-12-12
.NET實現(xiàn)可交互的WINDOWS服務的實例代碼
那么來看一下如何才能實現(xiàn)一個可交互的服務呢。步驟與實現(xiàn)基本的服務一樣2013-03-03

