国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于民族文字的在線虛擬鍵盤實(shí)現(xiàn)技術(shù)

2012-06-09 08:06:22孟祥和何向真
關(guān)鍵詞:輸入法藏文鍵盤

孟祥和,何向真,曹 暉

(西北民族大學(xué)中國民族語言文字信息技術(shù)國家民委—教育部重點(diǎn)實(shí)驗(yàn)室,蘭州730030)

0 引言

在線虛擬鍵盤是顯示在網(wǎng)頁上、用鼠標(biāo)點(diǎn)擊按鈕進(jìn)行文字輸入、功能上類似于物理鍵盤的一種鍵盤。它通過JavaScript的jQuery框架處理鼠標(biāo)單擊事件,使用CSS對鍵盤布局進(jìn)行設(shè)置。具體應(yīng)用方法是在需要輸入民族文字的文本框后面添加一個按鈕或者超鏈接,當(dāng)用戶單擊時,會在該按鈕或者超鏈接的下方呈現(xiàn)出一個虛擬鍵盤,用戶使用鼠標(biāo)單擊相應(yīng)按鈕對文本框進(jìn)行民族文字的輸入。在用戶打開網(wǎng)頁,需要在搜索輸入框輸入民文,檢索有關(guān)少數(shù)民族信息時以及打開在線民文詞典,需要在輸入框中輸入民文,進(jìn)行民族文字查詢時,往往由于所使用的計(jì)算機(jī)上沒有安裝民文輸入法;或者計(jì)算機(jī)安裝有民文輸入法,但沒有提供與之對應(yīng)的民族文字鍵盤(不同的民族文字輸入法對應(yīng)的鍵盤上字符的鍵位也不相同),這樣在輸入民族文字時有很大不便。在線民族文字虛擬鍵盤主要應(yīng)用于B/S模式下需要進(jìn)行民族文字輸入的文本框。

為促進(jìn)少數(shù)民族語言文字的規(guī)范化、標(biāo)準(zhǔn)化和信息處理工作,目前國家已制定了蒙古文、藏文、維吾爾文、朝鮮文、彝文和傣文的編碼字符集、鍵盤、字模等國家標(biāo)準(zhǔn);在國際標(biāo)準(zhǔn)的最新版本中,在基本多文種平面中正式收入了中國提交的蒙古文、藏文、維吾爾文、朝鮮文、彝文和傣文編碼字符集。一些少數(shù)民族文字的網(wǎng)站也已初步建成。

1 在線虛擬鍵盤關(guān)鍵技術(shù)實(shí)現(xiàn)

1.1 使用jQuery進(jìn)行事件響應(yīng)

虛擬鍵盤中按鈕單擊事件的響應(yīng)采用JavaS-cript的jQuery框架進(jìn)行處理,因?yàn)樗禽p量級的JavaScript庫,兼容CSS3和各種瀏覽器。使用戶能更方便地處理HTML文檔、事件、實(shí)現(xiàn)動畫效果。jQuery的文檔說明完善,且各種具體應(yīng)用敘述較詳細(xì),同時還有許多成熟的插件可供使用人員選擇。jQuery能夠使用戶所看到的網(wǎng)頁保持事件響應(yīng)處理代碼與網(wǎng)頁內(nèi)容相分離,即不需要在網(wǎng)頁內(nèi)容里直接插入JavaScript腳本來響應(yīng)事件。另外,jQuery還提供多種標(biāo)簽選擇器,使開發(fā)人員在開發(fā)時能夠方便地選擇到將要對其進(jìn)行操作的標(biāo)簽。

1.2 民族文字字符編碼

我國民族文字的字符編碼方式有多種,所采用的字符編碼方式主要有ASCII編碼、GB2312編碼、Unicode編碼等。在線民族文字虛擬鍵盤中的藏文、蒙古文、維吾爾文、彝文等是完全基于中國國家標(biāo)準(zhǔn)編碼字符集和與之相一致的Unicode標(biāo)準(zhǔn)而設(shè)計(jì)的,Unicode為每一個符號都提供一個獨(dú)一無二的編碼。隨著互聯(lián)網(wǎng)的普及,UTF-8成為了在互聯(lián)網(wǎng)上使用最廣的一種Unicode的實(shí)現(xiàn)方式。若一個網(wǎng)頁想要正常顯示在線虛擬鍵盤按鍵上的民族文字,需要在該網(wǎng)頁中添加<meta http-equiv="Content-Type"content="text/html;charset=utf-8">語句。

1.3 鍵盤布局實(shí)現(xiàn)

基于民族文字的在線虛擬鍵盤的布局,均采用與之對應(yīng)的中國國家標(biāo)準(zhǔn)鍵盤布局進(jìn)行設(shè)計(jì)。在鍵盤布局設(shè)計(jì)時,同時參考了微軟鍵盤布局思想,進(jìn)行必要的改進(jìn),使用戶能夠簡單、快捷地操作虛擬鍵盤。例如藏文虛擬鍵盤的設(shè)計(jì),按中國國家標(biāo)準(zhǔn)藏文鍵盤布局共需要5個鍵面,用于分配全部的193個Unicode藏文字符。所改進(jìn)部分是在5個鍵面切換時采用了單鍵切換,即只需用戶單擊一個按鈕,就可以實(shí)現(xiàn)鍵面切換。虛擬鍵盤首界面,簡稱首界面,是指當(dāng)用戶單擊按鈕或超鏈接后(該按鈕或超鏈接位于需要進(jìn)行民族文字輸入的文本框后面),所呈現(xiàn)的第一個鍵面,如圖1所示為在線藏文虛擬鍵盤首界面最終的效果圖,鍵盤布局具體的實(shí)現(xiàn)如圖2所示。

圖1 在線藏文虛擬鍵盤首界面

圖2 在線虛擬鍵盤布局的具體實(shí)現(xiàn)過程

圖2中標(biāo)號①所表示的是鍵面切換功能,它的實(shí)現(xiàn)是虛擬鍵盤開發(fā)過程中的難點(diǎn)之一。下面以藏文虛擬鍵盤為例具體描述標(biāo)號①實(shí)現(xiàn)步驟。

第一步,首先為每一個表示行的div標(biāo)簽標(biāo)注id屬性值。在標(biāo)注id屬性值時需要遵循一個規(guī)則,具體規(guī)則是:(1)id屬性值都要“row”開頭;(2)行標(biāo)從0開始,其行標(biāo)值緊跟在“row”之后;(3)id屬性值要以“切換鍵的value屬性值”結(jié)尾。如果某一行是在虛擬鍵盤首界面下顯示的,只需遵守前兩條規(guī)則。例如,虛擬鍵盤在shift切換鍵按下時顯示第一行內(nèi)容,該第一行對應(yīng)div標(biāo)簽的id屬性值為row0shift;虛擬鍵盤在m切換鍵按下時顯示第二行內(nèi)容,該第二行對應(yīng)div標(biāo)簽的id屬性值為row1m;虛擬鍵盤首界面下顯示第三行內(nèi)容,該第三行對應(yīng)div標(biāo)簽的id屬性值為row2。其次為所有表示行的div標(biāo)簽進(jìn)行CSS設(shè)置,在初始狀態(tài)下,所有表示行的div標(biāo)簽中,只有id為row0、row1、row2、row3、row4的display屬性值不設(shè)置為none,其他表示行的div標(biāo)簽的display屬性值均設(shè)置為none,即在初始狀態(tài)下顯示藏文虛擬鍵盤首界面的內(nèi)容。

第二步,對切換鍵的單擊事件進(jìn)行響應(yīng),鍵面切換思路是將其他4個鍵面分別與首界面進(jìn)行切換,鍵面切換的基本單位為行。首先,在初始狀態(tài)下定義如下幾條語句,var shiftdown=false;var altdown=false;var mdown=false;var Mdown=false;這4個變量表示4個切換鍵的當(dāng)前狀態(tài)。因虛擬鍵盤默認(rèn)的初始狀態(tài)為首界面,所以這4個切換鍵的當(dāng)前狀態(tài)值均為false,表示均為未被按下。其次,按鍵響應(yīng)的具體實(shí)現(xiàn)流程。這里以用戶按下shift切換鍵為例,參照下文代碼段來敘述實(shí)現(xiàn)過程。當(dāng)用戶單擊了shift鍵后,下文代碼段中標(biāo)號為②的if語句得到響應(yīng);接下來由下文代碼段中標(biāo)號為③的if語句進(jìn)行判斷,如果shift鍵未按下,則執(zhí)行downshift函數(shù),其參數(shù)為1,來完成首界面向按下shift切換鍵后的界面轉(zhuǎn)換,并將shift鍵的當(dāng)前狀態(tài)設(shè)置為true;如果shift鍵已按下,則同樣執(zhí)行downshift函數(shù),但其參數(shù)為0,來完成按下shift切換鍵后的鍵面向首界面轉(zhuǎn)換,并且將shift鍵的當(dāng)前狀態(tài)設(shè)置為false。

下面對downshift函數(shù)進(jìn)行詳細(xì)闡述,下文代碼段中④、⑤、⑥這3條if語句是上文所提及鍵面切換思路的實(shí)現(xiàn)前提,其功能是:判斷當(dāng)前的鍵面狀態(tài),如果當(dāng)前鍵面狀態(tài)不在首界面時,會將當(dāng)前鍵面轉(zhuǎn)換到首界面,從而為完成主界面向按下shift切換鍵后的鍵面進(jìn)行轉(zhuǎn)換做準(zhǔn)備,如④的作用是如果當(dāng)前界面是在按下alt切換鍵后的鍵面狀態(tài)時,將其轉(zhuǎn)換到首界面;下文代碼段中的⑦、⑧這兩條for循環(huán)語句是鍵面切換思路的具體實(shí)現(xiàn),同時也體現(xiàn)了鍵面切換的基本單位,在第一步中所提及表示行的div標(biāo)簽id屬性值的書寫規(guī)則,是為了⑦、⑧這兩條for循環(huán)語句中的第3條語句編寫方便而設(shè)計(jì)的,使其僅僅通過字符串連接,就可選擇到所要切換到的鍵面中表示行的div標(biāo)簽的id屬性值;下文代碼段中所使用到的hide()和show()這兩個方法是jQuery所提供的,主要針對所選擇元素的隱藏和顯示,如標(biāo)號為⑦的for循環(huán)語句功能是從第一行到第五行,依次使首界面下的行隱藏,使按下shift切換鍵后鍵面下的行顯示。如圖3所示為在線藏文虛擬鍵盤在按下shift切換鍵后所顯示的鍵面。

圖3 在線藏文虛擬鍵盤按下shift鍵時的鍵面

1.4 字體選擇與民族文字輸入

在虛擬鍵盤的設(shè)計(jì)時,字體的具體選擇是:藏文使用的是Microsoft Himalaya字體;蒙古文使用的是Mongolian Baiti字體;維吾爾文使用的是 Microsoft Uighur字體。以上字體在微軟的Windows Vista以上系統(tǒng)都有提供,這3種字體均采用Unicode編碼形式。具體應(yīng)用主要體現(xiàn)在CSS文件中,是對按鈕和文本框進(jìn)行字體顯示的控制,使其能夠正常地顯示民族文字,如藏文虛擬鍵盤中按鍵<button>的font-family屬性值為 Microsoft Himalaya,這樣可以保證藏文虛擬鍵盤按鍵上的藏文字符能夠正常顯示。

在線民族文字虛擬鍵盤的輸入功能使用的是fieldSelection的replaceSelection()方法,fieldSelection是jQuery的一個插件,該插件的主要功能是:檢索文本域和輸入框中光標(biāo)的位置、實(shí)際的選區(qū)以及邊界,可以替換選擇區(qū)域的內(nèi)容。具體使用的JavaScript語句是 $('#usertxt').replaceSelection($(this).val(),true),所實(shí)現(xiàn)功能有:(1)實(shí)現(xiàn)直接輸入,首先檢索到光標(biāo)位置,從光標(biāo)的位置向后進(jìn)行輸入;(2)選區(qū)覆蓋輸入,確定選區(qū)位置,在用戶進(jìn)行民族文字輸入時,用戶所輸入內(nèi)容將會覆蓋選區(qū)內(nèi)容,進(jìn)而實(shí)現(xiàn)輸入。

1.5 CSS的瀏覽器兼容問題

由于目前普遍使用的瀏覽器的核心架構(gòu)不同,將會導(dǎo)致CSS語言在這兩類瀏覽器上的解析不同,需要開發(fā)人員所編寫的CSS程序必須能夠同時兼容這兩類瀏覽器。在該虛擬鍵盤設(shè)計(jì)時,采用CSS HACK方法來解決瀏覽器兼容問題,該方法是一種改善CSS在不同瀏覽器下表現(xiàn)形式的技巧與方法,處理思路是讓不同的瀏覽器去執(zhí)行各自的CSS語句。如*號hack適用于IE7和IE6;下劃線hack適用于IE6;*+號hack適用于IE7。下面是在線虛擬鍵盤中部分CSS代碼,用于闡述HACK方法的具體使用。

虛擬鍵盤要在IE8中也能夠正常顯示,需要在網(wǎng)頁的<head></head>內(nèi)部添加<meta httpequiv="x-ua-compatible"content="ie=7"/>,此段代碼由微軟提供,功能是使所有能在IE7中正常顯示的網(wǎng)頁,在IE8中同樣能夠正常顯示。

2 技術(shù)擴(kuò)展

2.1 運(yùn)用到其他語言文字和特殊符號輸入

目前已實(shí)現(xiàn)在線藏文虛擬鍵盤、在線蒙文虛擬鍵盤、在線維文虛擬鍵盤等少數(shù)民族文字的虛擬鍵盤,同時該項(xiàng)技術(shù)可以運(yùn)用到解決其他地區(qū)或國家文字輸入的問題。

特殊符號在進(jìn)行輸入時,十分不便,需要提供一種快捷的方式進(jìn)行輸入。在線虛擬鍵盤在特殊符號輸入方面可以得到很好利用。主要涉及到的特殊符號有以下4類:(1)單位符號,如‰、㎡、℉等;(2)拉丁字母,如α、β、γ、δ、ε等;(3)數(shù)學(xué)序號,如Ⅰ、Ⅱ、Ⅲ等;(4)中文字符,如零、壹、貳、叁等。

2.2 運(yùn)用于密碼輸入框

在B/S模式下使用物理鍵盤進(jìn)行密碼輸入是不安全的,因?yàn)橛泻芏嗄抉R程序能夠相當(dāng)容易地竊取到用戶所輸入的密碼。按鍵記錄和屏幕快照這兩種類型木馬程序是目前竊取用戶密碼者所使用的主要手段。

在線虛擬鍵盤提供兩種解決方案:方案一,以少數(shù)民族文字的形式來儲存密碼(主要應(yīng)用于少數(shù)民族地區(qū));方案二,對鍵盤上鍵位布局進(jìn)行改進(jìn),當(dāng)用戶用鼠標(biāo)單擊某一按鍵完成輸入后,鍵盤上的鍵位將會重新布局。

3 結(jié)語

伴隨著網(wǎng)絡(luò)的發(fā)展,云計(jì)算時代的到來,同時B/S架構(gòu)下的應(yīng)用程序具有簡化客戶端計(jì)算機(jī)負(fù)載,減輕系統(tǒng)維護(hù)與升級的成本和工作量,降低用戶的總體成本,廣受用戶青睞的特點(diǎn),因此較多信息都會以網(wǎng)頁形式來呈現(xiàn),為在線虛擬鍵盤提供了堅(jiān)實(shí)的使用平臺。對于使用民族文字的用戶,在瀏覽網(wǎng)頁時,自己的計(jì)算機(jī)上都有民文輸入法,可以方便地使用已安裝的民文輸入法對網(wǎng)頁中的文本框進(jìn)行民族文字的輸入,但他們可能會遇到以下幾種情況:(1)在公共環(huán)境(如網(wǎng)吧,學(xué)校)以及其他工作環(huán)境,沒有安裝民文輸入法;(2)在Linux和Unix系統(tǒng)下,民文輸入法支持不完善;(3)暫時使用別人的計(jì)算機(jī),可能沒有安裝民族文字輸入法;(4)計(jì)算機(jī)的某些軟件發(fā)生故障,導(dǎo)致該計(jì)算機(jī)的民文輸入法軟件不能正常使用;(5)智能手機(jī)使用者,其手機(jī)上可能沒安裝民文的手機(jī)輸入法。在以上所述的情況下,他們想要對網(wǎng)頁中的一個文本框進(jìn)行民族文字的輸入時,將會面臨無法進(jìn)行民族文字輸入的困難,此時在線民族文字虛擬鍵盤將會給用戶提供極大的方便。

[1]張斌,羅桂娥.MiniGUI的軟鍵盤快速設(shè)計(jì)方法[J].計(jì)算機(jī)工程,2008(24):274-275.

[2]The Unicode Consortium.The Unicode Standard 4.0[S].

[3]曾順.精通CSS+DIV網(wǎng)頁樣式與布局[M].北京:人民郵電出版社,2007:10-15.

[4]劉功申.計(jì)算機(jī)病毒及其防范技術(shù)[M].北京:清華大學(xué)出版社,2008:153.

[5]GB/T17543-1998,藏文編碼字符集(基本集)鍵盤字母數(shù)字區(qū)的布局[S].

猜你喜歡
輸入法藏文鍵盤
你知道手機(jī)撥號鍵盤上為什么要有*和#嗎?
要命的輸入法
鍵盤貓
西藏大批珍貴藏文古籍實(shí)現(xiàn)“云閱讀”
布達(dá)拉(2020年3期)2020-04-13 10:00:07
Cлово месяца
中國(俄文)(2019年6期)2019-11-22 14:41:58
ikbc R300機(jī)械鍵盤
黑水城和額濟(jì)納出土藏文文獻(xiàn)簡介
西夏學(xué)(2019年1期)2019-02-10 06:22:34
藏文音節(jié)字的頻次統(tǒng)計(jì)
百度被訴侵犯商標(biāo)權(quán)和不正當(dāng)競爭
現(xiàn)代語境下的藏文報(bào)刊
新聞傳播(2016年17期)2016-07-19 10:12:05
望江县| 新津县| 鄂伦春自治旗| 同仁县| 澄迈县| 外汇| 江西省| 八宿县| 渭南市| 岚皋县| 清徐县| 洪洞县| 鄱阳县| 安徽省| 定兴县| 南宫市| 新营市| 江达县| 东安县| 凌海市| 北京市| 红原县| 桐庐县| 元江| 十堰市| 北宁市| 和田县| 攀枝花市| 沅江市| 华池县| 鹰潭市| 宾阳县| 乌鲁木齐县| 安化县| 宜良县| 石河子市| 五莲县| 凤阳县| 龙海市| 河曲县| 噶尔县|