ASP.NET實(shí)現(xiàn)Web網(wǎng)站本地化
1、重寫(xiě)InitializeCulture方法。
在Global.asax中的Application_BeginRequest獲取或設(shè)置語(yǔ)言,每次頁(yè)面的請(qǐng)求都首先運(yùn)行這個(gè)方法,然后再運(yùn)行具體頁(yè)面的InitializeCulture重載方法。
附上一張圖,看看頁(yè)面方法和事件的執(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);//設(shè)置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);
}
}
}除了通過(guò)IE瀏覽器和線(xiàn)程獲取語(yǔ)言設(shè)置,其實(shí)我們可以自己設(shè)置使用哪種語(yǔ)言。
1)通過(guò)在每個(gè)頁(yè)面里的Page節(jié)指定
<%@ Page Culture="en-us" UICulture="en-us" %>
如上所設(shè),該頁(yè)將使用en-us的語(yǔ)言設(shè)置。
注意:這只是個(gè)概要式寫(xiě)法,實(shí)際的頁(yè)面中的Page一般都包含更多的屬性。
2)通過(guò)在Web.Config里的globalization節(jié)指定
<system.web> <globalization Culture="en-us" UICulture="en-us" /> </system.web>
2、添加資源語(yǔ)言文件
在項(xiàng)目App_GlobalResource文件夾添加Demo.resx和Demo.en-us.rex兩個(gè)文件
在首頁(yè)中添加:
<a href="?currentculture=zh-cn" rel="external nofollow" >中文(中國(guó))</a> ? <a href="?currentculture=en-us" rel="external nofollow" >English(USA)</a>
3、獲取全局資源(GlobalResources)的方式:
你能從 ~\App_GlobalResources\MyMessages.resx 得到的資源通過(guò):
1、產(chǎn)生的封裝代碼 :
string message = Resources.MyMessages.Hello;
2、資源表達(dá)式
<asp:Label Text="<%$ Resources: MyMessages, Hello %>" />
3、GetGlobalResourceObject方法
string message = GetGlobalResourceObject("MyMessages", "Hello");4、本地資源的獲取方法:
你能從 ~\App_LocalResources\default.aspx.resx 得到的資源通過(guò):
1、資源表達(dá)式:
<asp:Label Text="<%$ Resources: Hello %>" />
2、meta:resourceKey :
<asp:Label meta:resourceKey="labelResourceKey" />
3、GetLocalResourceObject方法:
string message = GetLocalResourceObject("Hello"); "到此這篇關(guān)于A(yíng)SP.NET實(shí)現(xiàn)Web網(wǎng)站本地化的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net代碼中修改web.config節(jié)點(diǎn)的具體方法
在有些情況下,要在代碼中讀取一種全局變量,把這種全局變量放在web.config是一種常見(jiàn)的手段。2013-06-06
asp.net mvc實(shí)現(xiàn)簡(jiǎn)單的實(shí)時(shí)消息推送
這篇文章主要介紹了asp.net mvc實(shí)現(xiàn)簡(jiǎn)單的實(shí)時(shí)消息推送的相關(guān)資料,需要的朋友可以參考下2016-07-07
Chrome內(nèi)核下由ashx輸出的js代碼不起作用的解決方法
Chrome內(nèi)核下由ashx輸出的js代碼不起作用的解決方法,需要的朋友可以參考一下2013-03-03
.Net微信網(wǎng)頁(yè)開(kāi)發(fā)解決用戶(hù)在不同公眾號(hào)或在公眾號(hào)、移動(dòng)應(yīng)用之間帳號(hào)統(tǒng)一問(wèn)題
這篇文章主要介紹了.Net微信網(wǎng)頁(yè)開(kāi)發(fā)解決用戶(hù)在不同公眾號(hào)或在公眾號(hào)、移動(dòng)應(yīng)用之間帳號(hào)統(tǒng)一問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
.NET Core 中實(shí)現(xiàn)異步編程并提升性能的操作方法
在.net core中異步編程主要通過(guò)async和await關(guān)鍵字來(lái)實(shí)現(xiàn),結(jié)合Task類(lèi)進(jìn)行異步操作的管理,這篇文章主要介紹了.NET Core 中實(shí)現(xiàn)異步編程并提升性能的操作方法,需要的朋友可以參考下2024-12-12
asp.net 動(dòng)態(tài)創(chuàng)建TextBox控件及狀態(tài)數(shù)據(jù)如何加載
接著上文Asp.net TextBox的TextChanged事件你真的清楚嗎?這里我們來(lái)說(shuō)說(shuō)狀態(tài)數(shù)據(jù)時(shí)如何加載的,需要的朋友可以參考下2012-12-12
.NET實(shí)現(xiàn)可交互的WINDOWS服務(wù)的實(shí)例代碼
那么來(lái)看一下如何才能實(shí)現(xiàn)一個(gè)可交互的服務(wù)呢。步驟與實(shí)現(xiàn)基本的服務(wù)一樣2013-03-03
asp.net中一個(gè)linq分頁(yè)實(shí)現(xiàn)代碼
asp.net中一個(gè)linq分頁(yè)實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-12-12

