網(wǎng)站首頁實(shí)現(xiàn)自動(dòng)選擇語言的方法分享
這篇文章提供給大家的是一個(gè)作者的小經(jīng)驗(yàn)分享,教你讓你的網(wǎng)站首頁實(shí)現(xiàn)自動(dòng)選擇語言的方法,希望對(duì)大家有所幫助。
過去在一家軟件外企工作時(shí)寫過一個(gè)小的web實(shí)驗(yàn)性項(xiàng)目,其中一部分需求是用戶界面的多種語言(簡(jiǎn)體中文、繁體中文、英語、朝鮮語、日語)支持,當(dāng)時(shí)使用了模板技術(shù)來實(shí)現(xiàn)了該需求,并用Cookies保存了用戶的設(shè)置,但是用戶第一次登陸時(shí)(或者是將Cookies刪除了以后)仍然需要選擇語言種類,那么能不能更方便用戶呢?能不能用程序來自動(dòng)幫助選擇呢?
答案是肯定的,大家都在用google,你用中文系統(tǒng)打開google的首頁,打開的自然是中文首頁,而不會(huì)是其他語言。因?yàn)間oogle會(huì)自動(dòng)判斷用戶系統(tǒng)使用的首選語言是什么。
怎樣才能做到像google那樣呢,其實(shí)很簡(jiǎn)單,
在瀏覽器發(fā)給web服務(wù)器的 HTTP Headers Information 中包含了這樣一個(gè)信息 Accept-Language,這個(gè)信息就是,瀏覽器中 工具->gt;Internet選項(xiàng)->gt;常規(guī) 下的 語言, 它就是用來設(shè)置瀏覽器可接受的語言首選項(xiàng)的, 它可以是多種可接受語言的優(yōu)先排序列。
下面我以asp為例簡(jiǎn)單介紹一下“如何來自動(dòng)判斷用戶語言”:
<%
Function RegExpTest(patrn, strng)
Dim regEx,Match,Matches'建立變量。
Set regEx = New RegExp'建立正則表達(dá)式。
regEx.Pattern = patrn'設(shè)置模式。
regEx.IgnoreCase = True'設(shè)置是否區(qū)分字符大小寫。
regEx.Global = True'設(shè)置全局可用性。
Set Matches = regEx.Execute(strng)'執(zhí)行搜索。
For Each Match in Matches'遍歷匹配集合。
RetStr = RetStr&Match.Value
Next
RegExpTest = RetStr
End Function
AL = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")'獲取用戶瀏覽器可接受語言參數(shù)
LG = RegExpTest("^[a-z\-]+",AL)'獲取用戶瀏覽器可接受語言的首選項(xiàng)
select case LG
case "zh-cn"
response.write "中文(中國(guó))"
case "zh-tw"
response.write "中文(臺(tái)灣)"
case "zh-mo"
response.write "中文(澳門特別行政區(qū))"
case "zh-hk"
response.write "中文(香港特別行政區(qū))"
case "zh-sg"
response.write "中文(新加坡)"
case "en-us"
response.write "英語(美國(guó))"
case "ja"
response.write "日語"
case "ko"
response.write "朝鮮語"
end select
%>