示例:用戶(hù)動(dòng)態(tài)選擇一個(gè)區(qū)域設(shè)置
在前面的例子中,我們顯式指定使用德語(yǔ)文化習(xí)慣(通過(guò)引用jQuery.glob.de-DE.js文件)。我們現(xiàn)在來(lái)看看動(dòng)態(tài)設(shè)置文化習(xí)慣的幾個(gè)例子。
比如說(shuō)我們打算在頁(yè)面上加一個(gè)包含所有350種文化的下拉框,當(dāng)用戶(hù)在下拉框里選擇了一個(gè)文化,頁(yè)面上所有的日期都按照這個(gè)文化的習(xí)慣顯示。
這是網(wǎng)頁(yè)的HTML源代碼:
請(qǐng)留意所有包含了日期的<span>標(biāo)簽都有一個(gè)data-date屬性(data-*屬性是HTML 5里的新功能,同時(shí)在老的瀏覽器上也可以使用)。當(dāng)用戶(hù)在下拉框里選擇了一個(gè)文化信息后,我們的代碼將會(huì)格式化data-date屬性里保存的日期。
為了顯示所有可能的文化信息,我們要象下面這樣添加一個(gè)叫jQuery.glob.all.js 的文件。
jQuery國(guó)際化插件里有一個(gè)叫做jQuery.glob.all.js的文件,這個(gè)文件包含了所有插件支持的350多種文化的國(guó)際化信息。即使經(jīng)過(guò)最小化處理,還是有367k字節(jié)。由于文件很大,除非你的確需要一次性使用所有這些文化信息,我們建議你只添加所使用到的文化信息對(duì)應(yīng)的JavaScript文件。下一個(gè)例子中,我會(huì)演示如何在網(wǎng)頁(yè)中動(dòng)態(tài)地加載某個(gè)語(yǔ)言對(duì)應(yīng)的JavaScript文件。
下一步,把所有支持的文化名稱(chēng)添加到下拉框的列表里。可以用$.cultures這個(gè)屬性獲取它們:
最后,再寫(xiě)幾行代碼把每個(gè)span標(biāo)簽里的data-date屬性的日期都抓出來(lái)并編排格式:
jQuery國(guó)際化插件里面的parseDate()函數(shù)將一個(gè)字符串的日期轉(zhuǎn)換成JavaScript日期,而format()函數(shù)則用來(lái)編排這些日期的格式。“D”這個(gè)格式分類(lèi)符說(shuō)明使用長(zhǎng)日期格式編排日期。
現(xiàn)在,只要頁(yè)面瀏覽者選擇這350種語(yǔ)言其中之一,內(nèi)容都會(huì)被正確的國(guó)際化。你可以通過(guò)運(yùn)行示例下載中的4_SelectCulture.htm文件來(lái)了解上述方法。
示例:動(dòng)態(tài)加載國(guó)際化文件
在上一節(jié)說(shuō)過(guò),你應(yīng)該盡量避免在頁(yè)面中引用jQuery.glob.all.js文件, 因?yàn)樗鼘?shí)在是太大了。相反,你可以動(dòng)態(tài)地加載你所需要的國(guó)際化信息。
比如說(shuō),你要?jiǎng)?chuàng)建一個(gè)下拉列表顯示下面這些語(yǔ)言:
下面的代碼會(huì)在用戶(hù)從下拉框中選擇一個(gè)新的語(yǔ)言后執(zhí)行。這段代碼會(huì)先判斷選中的語(yǔ)言對(duì)應(yīng)的國(guó)際化腳本文件是否已經(jīng)加載了。如果還沒(méi)有加載,則使用jQuery的$.getScript()函數(shù)動(dòng)態(tài)加載國(guó)際化腳本文件。
當(dāng)國(guó)際化腳本文件被瀏覽器加載以后,就會(huì)調(diào)用globalizePage()函數(shù),繼而執(zhí)行客戶(hù)端的代碼完成國(guó)際化。
這個(gè)方法的優(yōu)點(diǎn)是可以讓你避免加載整個(gè)jQuery.glob.all.js文件—只要加載使用到的文件,而且只加載一次。
示例下載中的5_Dynamic.htm文件演示了這個(gè)方法。
出處:博客堂
責(zé)任編輯:bluehearts
上一頁(yè) 微軟的jQuery國(guó)際化插件 [2] 下一頁(yè) 微軟的jQuery國(guó)際化插件 [4]
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|