摘 要:Web頁面的維文在線輸入技術,能夠在瀏覽器中脫離本機輸入法而進行維文輸入,實現維文網絡在線文字交互,為網絡系統提供跨平臺的維文輸入解決方案。闡述了Web 頁面維文在線輸入技術的工作原理及基本設計思想,介紹了維文在線輸入法的設計原則和輸入法流程,對維文輸入法進行了系統分析,給出實現模型,論述瀏覽器內嵌維文字體信息技術,實現在線、即時的維文輸入。
關鍵詞:Web頁; Unicode; 在線輸入; 字體嵌入
中圖分類號:TP311 文獻標識碼:A
文章編號:1004-373X(2010)12-0132-02
Uyghur Online Input Technology and Its Implementation Based on Web Page
CHEN Yan, WOXUR Silamu
(School of Information Science Engineering, Xinjiang University, Urumqi 830046, China)
Abstract:By Uyghur online input technology in the Web page, Uyghur characters can be input to a Web browser directly without using local input methods, the online character interaction of Uyghur language is accomplished, and a cross-platform solution of Uyghur input is provided for a network system. The basic design philosophies and the principles of online input technologies of Uyghur language based on the Web pages are elaborated. The design philosophy and technological process of online input method of Uyghurare introduced. A systematic analysis of Uyghur input method and a real model are presented. The information technology of Uyghur typeface which are embedded inside browsers is described.
Keywords:Web page; Unicode; online input; font embedding
0 引 言
Web頁面的維文在線輸入技術是基于網頁瀏覽器的維文輸入平臺。在該平臺下,普通維文用戶在全球聯網計算機上,不安裝任何維文輸入系統,就能即時在線輸入維文。該輸入技術解決了未安裝維文輸入系統的計算機輸入維文的問題,實現維文網絡的在線文字交互。
1 關于Web 頁面維文在線輸入法實現原理
Web 頁面維文在線輸入設計利用 Web 頁面編程技術,維文的輸入/輸出都是在Web 瀏覽器上[1] 實現的,它不屬于Windows輸入法管理器的管理。
Web頁面維文在線輸入技術與Windows 本機維文[2]輸入法原理的相同之處在于:都具有鍵盤事件、編碼字典[3]等。
差別在于:系統的鍵盤事件不通過輸入法管理器,而直接對應用戶編碼字典,輸入法再翻譯鍵盤事件為對應維文,然后將鍵盤事件傳給 Web 瀏覽器的文字編輯框中,這樣就實現了 Web 頁面的維文輸入。
2 維文輸入法的系統分析
在設計 Web 維文輸入法時采用鍵盤映射方式,即將每個按鍵按下后傳送給瀏覽器的輸入控件,程序掃描碼映射為需要輸出維文字符的Unicode編碼。這主要是針對世界上基于字母的語言使用的。在鍵盤抽象中,需要給出一個轉換表(符號表),并有狀態相關的轉換規則,而且系統需要確定狀態的表示方法。此外,還需要定義特殊按鍵的控制作用。輸入法中將英文與維文分別設計成一組鍵,用一個修飾鍵在組之間切換,同時其他如漢字輸入法仍然使用 Windows 本機輸入法的方式。從而使 Web 編輯器可以同時輸入維文、漢字與英文。設定切換維文、漢文、英文輸入的快捷方式,可以達到順利輸入所需文字的目的。當系統輸入法默認是漢字輸入法時,Web編輯器中則為漢字輸入;當系統輸入法默認為英文輸入狀態時,就可以在 Web 編輯器中輸入維文。英文、漢字的輸入和維文的輸入可以隨時切換。
3 維文字符與Unicode
Unicode[4]是一種字符編碼方法,可以容納全世界所有語言文字。國際Unicode協會2003年8月27日發布的Unicode 4.0版本為所有維吾爾文字符都分配相應的Unicode碼,彌補了維吾爾文字信息處理上的一個空白,在Unicode平面上每個維吾爾文字符都有一個獨一無二的編碼,不與其他文種字符沖突。支持該方案的維吾爾文信息處理平臺可以實現維吾爾文與其他文種的混合處理.也可以適應Internet高級應用的要求。該輸入法采用基于Unicode標準的維吾爾文字庫編碼方案[5],對系統默認的輸入字符的編碼轉換成Unicode的維文字符碼。
4 維文輸入法的實現過程
維文在線輸入法由3大模塊組成:
(1) TIBETINPUT。運行在用戶的第一視線,主要表現為輸入法切換窗口模塊[6]。
(2) TIBET_CODING。維文用戶編碼字典。
(3) TIBET_ LAYOUT。用于提供用戶幫助,是一個維文鍵盤布局表。
4.1 Web 頁面維文輸入法鍵盤布局
Web頁面下維文輸入法鍵盤布局,以維文書寫規則為主,考慮鍵盤的常用習慣,在維文鍵盤字母布局表中,合理設計了常用字符的位置,每個按鍵的右下角顯示對應的維文字符如圖1所示。
圖1 Web頁面維文在線輸入法鍵盤布局
4.2 維文用戶編碼字典
對系統默認的輸入字符轉化為Unicode的維文字符,考慮到程序的執行速度、后續維護、重碼率等方面,程序采用獨立的用戶編碼字典文件,并以 JS 文件存放。為程序的維護帶來方便,并且可以自由擴充。
4.3 瀏覽器內嵌維文字體信息
為了使用戶能很好地享受在線維文輸入法帶來的便利,必須包含字體信息,只有將維文字體信息嵌入到瀏覽器[6]中,才能真正實現在線、即時的輸入。 本輸入法設計支持多平臺,即支持多種瀏覽器。在Internet Explorer 中,脫字體顯示及維文字體嵌入的方法利用了微軟提供的 WEFT 工具,生成包含字體信息的 EOT 文件[7],把相應的 EOT 文件也拷貝到指定的 Web 服務器目錄下,這樣在瀏覽器中就可以顯示出維文字體信息。但在Linux等非Windows系統中,網頁是在Mozilla或者Netscaped中瀏覽的,上述的方法只能針對IE瀏覽器,如果要實現類似IE中脫字體的效果,必須采用Bitstream WebFont Wizard工具來實現。
4.4 相關javascript技術及部分代碼
創建維吾爾文Unicode索引表Keymap,屏蔽系統默認的輸入字符,利用JavScript的window.onload = document.onkeydown函數在客戶端上掛一個“瀏覽器級”鉤子函數來處理鍵盤和鼠標輸入消息[8]。每當按下和釋放鍵時都使用鉤子函數,一旦讀入虛擬鍵碼,它立即調用Window.Event函數。Window.Event函數通過調用window.event.keyCode函數將虛擬鍵碼映射到維文Unicode索引表,得到對應的維文Unicode編碼后,再將它放入到自動選型模塊進行自動選型,最后輸出模塊里的CharAt(),addchar()等函數,將字符串發送到網頁中等待輸入的文本框[9]。具體實現代碼如下:
var imu=1; //切換維文輸入法標志
Kc=event.keyCode;
window.onload = document.onkeydown;
function document.onkeydown()
{
if(event.ctrlKey event.keyCode==78) //Ctrl+N切換成維文輸入
{
if(imu==1){
imu=0;}
else{
imu=1;
}
}
}
function document.onkeypress()
{
if(event.ctrlKey event.keyCode==78)
window.event.keyCode=32;
if(imu==0)
{
switch(event.keyCode)
{
case 110:
window.event.keyCode=1726; //Unicode編碼轉換
break;
…
default:
window.event.keyCode=event.keyCode;
}
}
evt.preventDefault();
}
具體顯示如圖2所示。
圖2 維、漢、英在同一文本輸入框顯示
5 結 語
本文對基于Web的維文在線處理技術給出了通用的設計方案和實施步驟,實現了基于Web下維文Unicode在線處理技術,解決了只能在指定文本輸入框進行維文輸入的問題。該方法也可直接應用于哈薩克、克爾克孜等其他少數民族文字在線處理的實現。
參考文獻
[1]顧寧,劉家茂,紫曉路,等.Web Services原配與研發實踐[ M] .北京:機械工業出版社,2006.
[2]阿布里米提#8226;阿.維吾爾文Windows XP的研究與開發[J].計算機工程與應用,2005,41(11):158-159.
[3]朱巧明,李培蜂,楊季文,等.基于Windows 9X/2000/NT平臺漢字輸入法的設計[J].小型微型計算機系統,2000,11(3):1217-1220.
[4]艾爾肯.國際化編碼Unicode與民文編碼初談[C].烏魯木齊:2000多語種處理技術國際會議,2000.
[5]買爾丹#8226;祖農.關于維吾爾文字在瀏覽器上顯示方法的探討[J].福建電腦,2008,24(7):178.
[6]ERIC VAN DER Vlist,Danny Ayers,Eric Bruchez.Web 2.0高級編程[M].北京:人民郵電出版社,2008.
[7]朱巧明,李培峰,吳嫻,等.中文信息處理技術教程[M].北京:清華大學出版社,2005.
[8]FLANAGAN David.Javascript權威指南[M].北京:機械工業出版社,2003.
[9]董治江,吳健,鐘義信.在ICU中實現少數民族文字處理[J].中文信息學報,2004,18(2):66-72.