示例:自動(dòng)檢測(cè)用戶的常用語(yǔ)言設(shè)置
大多數(shù)網(wǎng)站通過(guò)檢測(cè)用戶的瀏覽器設(shè)置來(lái)得到其常用語(yǔ)言,然后根據(jù)這種語(yǔ)言文化習(xí)慣來(lái)國(guó)際化網(wǎng)站內(nèi)容。用戶可以在瀏覽器中設(shè)置一個(gè)常用語(yǔ)言。這樣,用戶在請(qǐng)求頁(yè)面時(shí),常用語(yǔ)言設(shè)置會(huì)包含在請(qǐng)求Http消息頭的Accept-Language字段中。
如果使用的是微軟的IE瀏覽器,可以通過(guò)以下步驟設(shè)置你常用的語(yǔ)言:
1. 在菜單欄里選擇工具,Internet 選項(xiàng)。
2. 選擇常規(guī)標(biāo)簽。
3. 在外觀里點(diǎn)擊語(yǔ)言按鈕。
4. 點(diǎn)擊添加在語(yǔ)言列表里增加新的語(yǔ)言。
5. 然后把你最常用的語(yǔ)言放在列表的最頂端。
你可以在這個(gè)對(duì)話框中設(shè)置多門(mén)常用語(yǔ)言。所設(shè)置語(yǔ)言的順序關(guān)系將會(huì)體現(xiàn)在HTTP請(qǐng)求的Accept-Language字段中,如:
Accept-Language:fr-FR,id-ID;q=0.7,en-US;q=0.3
比較奇怪的是,用戶不能夠通過(guò)客戶端的JavaScript腳本得到Accept-Language的內(nèi)容。微軟的IE和Firefox瀏覽器都支持一系列語(yǔ)言相關(guān)的屬性,這些屬性可以通過(guò)Window.navigator進(jìn)行訪問(wèn),例如windows.navigator.browserLanguage和window.navigator.language,不過(guò)這些屬性中的語(yǔ)言一般指的是操作系統(tǒng)中設(shè)置的語(yǔ)言或者是瀏覽器的語(yǔ)言版本。你不能通過(guò)這些屬性來(lái)得到用戶設(shè)置的常用語(yǔ)言。
得到用戶語(yǔ)言偏好(也就是Accept-Language字段中的內(nèi)容)的唯一可靠方法就是編寫(xiě)服務(wù)器代碼。例如,下面的ASP.NET頁(yè)面就利用了服務(wù)器的Request.UserLanguages屬性把用戶的語(yǔ)言偏好設(shè)置賦給了客戶端JavaScript的acceptLanguage變量(然后就可以通過(guò)客戶端JavaScipt訪問(wèn)這些值了):
為了使這段代碼能夠正常工作,頁(yè)面中必須包含與acceptLanguage對(duì)應(yīng)的文化信息。例如如果你的常用語(yǔ)言是fr-FR(法語(yǔ)-法國(guó)),那就必須在這個(gè)頁(yè)面中引用jQuery.glob.fr-FR.js或者jQuery.glob.all.js這兩個(gè)JavaScript腳本之一,否則沒(méi)辦法得到文化信息。關(guān)于這個(gè)方法的應(yīng)用可以示例下載中的”6_AcceptLanguages.aspx”。
如果對(duì)于頁(yè)面中用戶的常用語(yǔ)言沒(méi)有對(duì)應(yīng)的腳本包含其文化信息,那么$.preferCulture()方法就會(huì)引用中立(neutral)的文化信息(例如,使用jQuery.glob.fr.js,而不是jQuery.glob.fr-FR.js)。如果中立文化信息也不可用,那么$.preferCulture()方法就會(huì)回滾到使用默認(rèn)文化(英語(yǔ))。
示例:利用國(guó)際化插件使JQuery UI DatePicker實(shí)現(xiàn)國(guó)際化
國(guó)際化插件的目的之一就是使開(kāi)發(fā)能適應(yīng)各種不同文化的jQuery小工具的變得更為簡(jiǎn)單。
我們希望確保jQuery的國(guó)際化插件能夠與現(xiàn)有的jQuery的UI插件如DatePicker共存并正常工作。為了實(shí)現(xiàn)這個(gè)目標(biāo),我們創(chuàng)建了DatePicker插件的一個(gè)整合版本,使它可以在渲染日歷的時(shí)候利用我們的插件來(lái)提供國(guó)際化支持。下圖演示了把jQuery的國(guó)際化插件和整合后的DatePicker插件一起加入到頁(yè)面并選擇印度尼西亞語(yǔ)的效果。
注意:一周中每一天的名稱都以印度尼西亞語(yǔ)的縮寫(xiě)形式顯示。 此外,月份的名字也以印度尼西亞語(yǔ)顯示。
你可以從我們的github網(wǎng)站下載整合版的JQuery UI DatePicker。你也可以使用示例下載中文件7_DatePicker.htm所使用的版本。
總結(jié)
很高興我們能夠?yàn)閖Query社區(qū)提供持續(xù)的貢獻(xiàn)。這個(gè)國(guó)際化插件已經(jīng)是我們發(fā)布的第三個(gè)插件了。
感謝大家對(duì)我們年初發(fā)布jQuery模板(Templating)和數(shù)據(jù)鏈接(data-linking)的原型提供的很多非常有價(jià)值的反饋和設(shè)計(jì)方面的建議。最后我想趁這個(gè)機(jī)會(huì)感謝jQuery和jQuery UI團(tuán)隊(duì)在創(chuàng)建這些插件時(shí)所提供的幫助。
希望這能對(duì)您有所幫助。
原文:http://blog.joycode.com/scottgu/archive/2010/06/25/116006.joy
本文鏈接:http://www.95time.cn/tech/web/2010/7772.asp
出處:博客堂
責(zé)任編輯:bluehearts
上一頁(yè) 微軟的jQuery國(guó)際化插件 [3] 下一頁(yè)
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|