ASP.NET實(shí)現(xiàn)Web網(wǎng)站本地化
1、重寫InitializeCulture方法。
在Global.asax中的Application_BeginRequest獲取或設(shè)置語言,每次頁面的請求都首先運(yùn)行這個(gè)方法,然后再運(yùn)行具體頁面的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);//設(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); } } }
除了通過IE瀏覽器和線程獲取語言設(shè)置,其實(shí)我們可以自己設(shè)置使用哪種語言。
1)通過在每個(gè)頁面里的Page節(jié)指定
<%@ Page Culture="en-us" UICulture="en-us" %>
如上所設(shè),該頁將使用en-us的語言設(shè)置。
注意:這只是個(gè)概要式寫法,實(shí)際的頁面中的Page一般都包含更多的屬性。
2)通過在Web.Config里的globalization節(jié)指定
<system.web> <globalization Culture="en-us" UICulture="en-us" /> </system.web>
2、添加資源語言文件
在項(xiàng)目App_GlobalResource文件夾添加Demo.resx和Demo.en-us.rex兩個(gè)文件
在首頁中添加:
<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、資源表達(dá)式
<asp:Label Text="<%$ Resources: MyMessages, Hello %>" />
3、GetGlobalResourceObject方法
string message = GetGlobalResourceObject("MyMessages", "Hello");
4、本地資源的獲取方法:
你能從 ~\App_LocalResources\default.aspx.resx 得到的資源通過:
1、資源表達(dá)式:
<asp:Label Text="<%$ Resources: Hello %>" />
2、meta:resourceKey :
<asp:Label meta:resourceKey="labelResourceKey" />
3、GetLocalResourceObject方法:
string message = GetLocalResourceObject("Hello"); "
到此這篇關(guān)于ASP.NET實(shí)現(xiàn)Web網(wǎng)站本地化的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.net core部署到windows服務(wù)上的完整步驟
這篇文章主要給大家介紹了關(guān)于.net core部署到windows服務(wù)上的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用.net core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09ASP.NET Core MVC通過IViewLocationExpander擴(kuò)展視圖搜索路徑的實(shí)現(xiàn)
這篇文章主要介紹了ASP.NET Core MVC通過IViewLocationExpander擴(kuò)展視圖搜索路徑的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04VS2015自帶LocalDB數(shù)據(jù)庫用法詳解
這篇文章主要為大家詳細(xì)介紹了VS2015自帶LocalDB數(shù)據(jù)庫的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06ASP.NET實(shí)現(xiàn)用戶注冊和驗(yàn)證功能(第4節(jié))
這篇文章主要介紹了ASP.NET實(shí)現(xiàn)用戶注冊和驗(yàn)證功能,學(xué)習(xí)ASP.NET驗(yàn)證控件的作用和使用方法,在此基礎(chǔ)上了解常用第三方控件,需要的朋友可以參考一下2015-08-08SignalR Self Host+MVC等多端消息推送服務(wù)(一)
這篇文章主要為大家詳細(xì)介紹了SignalR Self Host+MVC等多端消息推送服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06ASP.NET?MVC實(shí)現(xiàn)登錄后跳轉(zhuǎn)到原界面
這篇文章介紹了ASP.NET?MVC實(shí)現(xiàn)登錄后跳轉(zhuǎn)到原界面的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09利用asp.net實(shí)現(xiàn)生成不重復(fù)訂單號(hào)
訂單號(hào)在購物過程中起到了很好的識(shí)別作用,更方便的有利于工作人員識(shí)別商品,本文介紹利用asp.net實(shí)現(xiàn)生成訂單號(hào)2012-12-12DataGrid中實(shí)現(xiàn)超鏈接的3種方法
這篇文章介紹了DataGrid中實(shí)現(xiàn)超鏈接的3種方法,有需要的朋友可以參考一下2013-09-09ASP.NET框架中的數(shù)據(jù)綁定概要與數(shù)據(jù)綁定表達(dá)式的使用
數(shù)據(jù)綁定是ASP.NET中操作數(shù)據(jù)的基礎(chǔ)方式,這里我們暫時(shí)拋開.NET提供的控件,來從基礎(chǔ)上講解ASP.NET框架中的數(shù)據(jù)綁定概要與數(shù)據(jù)綁定表達(dá)式的使用:2016-06-06詳解.NET Core 使用HttpClient SSL請求出錯(cuò)的解決辦法
這篇文章主要介紹了.NET Core 使用HttpClient SSL請求出錯(cuò)的解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03