|
本文是對MVC2.0本地化(另類解決方案)上這篇文章內(nèi)介紹的MVC2.0本地化功能進(jìn)行加強(qiáng)、細(xì)化的結(jié)尾篇。如果存在不足的地方,希望您指出。
如何對上篇文章進(jìn)行加強(qiáng)以及細(xì)化呢?主要從以下三點(diǎn)開始。
1、根據(jù)用戶瀏覽器自動語言判斷,同時(shí)也可由用戶自定義站點(diǎn)語言。
2、多語言加入,類似resource文件,可以有多個(gè)語言資源庫。
3、全局本地化,可以本地化非頁面內(nèi)容,比如為臺異步到前臺的json數(shù)據(jù)本地化等。
主要步驟如下:
一、根據(jù)用戶瀏覽器自動語言判斷,同時(shí)也可由用戶自定義站點(diǎn)語言
這個(gè)實(shí)現(xiàn)思路為:首選判斷存儲在客戶端的用戶“主動”設(shè)定的cookie。如果該值為空,則根據(jù)用戶瀏覽器自動識別語言。如果不為空則根據(jù)用戶設(shè)定好的cookie值獲取站點(diǎn)語言。那如何根據(jù)客戶瀏覽器識別語言,我們要在web.config的system.web節(jié)點(diǎn)添加globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/設(shè)置。
根據(jù)此設(shè)置服務(wù)器端就就可以使用System.Threading.Thread.CurrentThread.CurrentCulture識別用戶瀏覽器的語言。貼出global中部分代碼以供參考:
protected void Application_BeginRequest(Object sender, EventArgs e) { HttpCookie lang = Request.Cookies["Lang"]; if (lang != null) { if (Response.ContentType == "text/html" || Response.ContentType == "application/json") Response.Filter = new LocalizationHandler(Response.Filter, lang.Value); return; } string langFromBrowser = System.Threading.Thread.CurrentThread.CurrentCulture.ToString(); string strLang = string.Empty; if (string.Compare("zh-CN", langFromBrowser, true) == 0) { strLang = "SimplifiedChinese"; } else if (string.Compare("zh-Hant", langFromBrowser, true) == 0) { strLang = "TraditionalChinese"; } else if (langFromBrowser.Contains("en")) { strLang = "English"; } else { strLang = "English"; } if (Response.ContentType == "text/html" || Response.ContentType == "application/json") Response.Filter = new LocalizationHandler(Response.Filter, strLang); }
NET技術(shù):MVC2.0本地化(另類解決方案)<下>,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。