中文输入法新挑战_第1页
中文输入法新挑战_第2页
中文输入法新挑战_第3页
中文输入法新挑战_第4页
中文输入法新挑战_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux中文輸入法新挑戰JimHuang(黃敬群)

ProjectManager,W-ChannelInc.(宇動科技)<>KaffeDeveloper<>September16,2004題綱挑戰在哪?走出XIM下一代輸入法架構IIIMFSCIM當輸入法遇見ThinClient新興專案介紹XCING新酷音挑戰在哪?過去中文輸入法的問題架構上難以支援輸入法選擇少平台差異大當今的挑戰重複開發,無謂的資源浪費已有的輸入法模組或系統,難以與新系統銜接選擇性太多,缺乏統整開發的架構ThinClient模式的引入多國語文支援的需求為何採納GNU/Linux?100%198019902000202120212030204020502060我們在這MarketShareYear0%作業系統發展藍圖WindowsGNU/LinuxCyborgOSMatrixOSInternet興起改變什麼?寬頻軟體租賃成為可能分散式系統大行其道本钱效益比合久必分、分久必合分散式集中式典型網路服務架構輸入法為何不能當作服務?GNU/Linuxi18n/L10n架構XIM簡介XIM缺陷走出XIM名詞解釋i18n:InternationalizationL10n:Localizationm17n:MultilingualizationCJK(V):Chinese,Japanese,Korean,(Vietnamese)OpenI18N:OpenInternationalizationInitiative(舊稱:LI18NUX)把系統或應用程式轉變成相容特定語言的過程

例如將某個軟體中文化主要項目:訊息翻譯、使用介面,圖形顯示等在i18n的局部中只處理語言的局部稱為m17n比方,一個「多國語言化」的軟體可同時處理英文、法文、中日韓,甚至阿拉伯文等GNU/Linux的i18n/L10n架構把原來英文為主的系統或應用程式改寫為同時支援多種語文或特定文化慣例的過程一般的開發流程只使用英文,但是為了符合廣泛的語言文化慣例,軟體必須在設計架構與機制上針對多國語文作擴充I18n僅是在軟體設計上提供使用多國語文的可能性觀念釐清「中文化」是模糊的概念Linux上的「中文化」兼具i18n與L10n中文平台發展技術不需修改既有應用程式,便可顯示、印列輸入中文不侷限於特定環境Linuxtty(console)、XWindow、ApplicationResourceGNU/Linux的i18n/L10n架構(續)關連鍊(chain)LinuxkernelGNUCLibrary(glibc)XFree86(X11)Gtk/GNOMEQt/KDE其他函式庫或工具程式“chain〞的涵意GNU/Linux的i18n/L10n架構(續)國際化的四大等級語言可切換,在系統啟動時可指定某語言使用不同語言的軟體可同時使用,在應用軟體啟動時可指定某語言使用不同語言的軟體可同時使用,而且應用程式的語言可動態切換使用不同語言的軟體可同時使用,而且在應用程式中可同時使用不同語言語系(Locale)的概念XIM概況XIM特徵XIM歷史回顧XIM架構XIM簡介XIM(XInputMethod)架構在I18N

(InternationizatioN)與Locale

上的輸入法協定目的是不需要更改原始碼本身就能接受各語系輸入法用來處理非歐美語系的輸入法規範XIMClient:應用程式XIMServer:輸入法XIM特徵X11R4沒有統一的輸入法系統,由個別軟體自行處理輸入法需求由Fujitus與Omron提供XjpX11R51989年XI18n開始在X協會推動輸入法開始定義XIM/XFontSetAPIs分歧發展Omron/NTT實作XsiUnixInternational(UI)實作XimpUnixInternational將XIM定義為標準XIM發展歷史回顧X11R5輸入法系統的衝突Omron/NTTUI(Fijitsu、Sony、Xerox、ATT/USL、Hitachi、Sun、…)X11R6OSF(IBM、DEC、HP)加盟UIXIMProtocol定義但不與Xsi/Ximp相容強化XIM/XOM/XLCAPIsXlibXIM實作獨立為SIIMdKit(IMserverDeveloperKit)引入XIM發展歷史回顧(續)X11R6.5X協會重新啟動,X.org更新X標準與SISun移轉Solaris的XI18N貢獻到X.orgXFree86從XI18N相關改變帶回X.orgOpenI18N.org發佈xiiimp.soXIM相容IIIMF模組XIM發展歷史回顧(續)XIM架構XIM結構與XWindowSystem緊密相連,所以使用XIM之系統必須擁有X,對EmbededSystem而言限制很大不支援多種語言XIM輸入法Server無法告知Client端,用戶輸入何種語言或編碼案例:Mozilla

可進行多國語文網頁瀏覽,可是卻缺乏對應的XIMclient/server互動XIM的缺陷XIM的缺陷(續)XIM的缺陷(續)HidekiHiura指出:「根本上XIM太多問題…根本無法透過patch改正」1995年重新設計輸入法,提出IIIMF架構XIM的缺陷(續)許多輸入法系統相繼提出但唯有兼具質(彈性、擴充性)與量(支援多語文、多輸入法需求)者將勝出首選IIIMFSun主導,為OpenI18N正式計畫SCIM/UIM/m17n由SCIM與UIM作者共同推動,為FreeD

子計畫下一代輸入法架構推動IIIMF的理由IIIMFvs.XIMIIIMF發展目標IIIMFramework特性IIIMF(Internet/IntranetInputMethodFramework)1.解決跨平台問題(將輸入法模組與GUI分離),更完善的Server-Client架構2.XIM受限於Locale,不同語系輸入困難(IIIMF與Locale無關)3.較容易發展新的LanguageEngine4.適用於嵌入式系統5.適用於在Internet環境,Client端對Server端要求輸入法服務推動IIIMF的理由不同平台局部由IIIMClient端處理,解決跨平台問題IIIMP用Utf-16傳送,可支援多語系與編碼輸入LEvendor不需要再去著重於一些“non-languagespecific〞的基礎建設,而可專注於輸入法本體的呈現contextmanagementsInputMethodProtocolplatformsecificinputmethodinterfacerenderingIIIMFvs.XIMXIMIIIMF應Client端需求,可能產生多個ServerDaemon存在,只需啟動一次應用程式受Locale限制轉換狀態需更換Locale變數與Locale無關直接切換Locale切換較麻煩不需切換Locale輸入法engine等同於XIMServer輸入法engine以動態模組掛入IIIMServer必須有XWindowsystemplatformindependent可相容於支援XIM之應用程式IIIMFvs.XIM(續)徹底解決XIM弊端去除對WindowSystem的相依性完全Unicode支援、實現真正多語文支援在Unix運作的server可讓Windows或其他環境的client使用完整的IM架構無所不在,可透過網路動態提供輸入法可攜性與擴展能力提供現有XIM、GTK+immodule、JavaInputFramework等架構的溝通介面擴展性強的client-sideAPIIIIMF發展目標多平台、跨平台支援不依賴與底層視窗系統

同時運行多個LE(LanguageEngine)多使用者支援輸入法Protocol可再低頻寬的系統,如Modem連線,上運作讓LE開發者專注開發輸入法本身元件ServerFrameworkClientFrameworkLanguageEngineIIIMFramework特性

Internet/IntranetIIIMProtocol

IIIMClient1IIIMClient2IIIMClient3

IIIMServerMicrosoftWindowsIME

XWindowSystem

QTimmoduleIIIMFrameworkAppXlib

xiiimp.soxcin-guiIIIMServer(httserver)

Xcin-IMmoduleOtherIMIIIMServerFramework

IIIMClientFrameworkIIIMServer(HttServer)1.作為UNIXDaemon2.只需要運作一個IIIMserver3.提供標準輸入法系統API(LEIF)-/usr/lib/im/leif4.所有的LE都是動態載入的so(sharedobject)或dll精髓:提供一個LE的plugin介面與Client端以IIIMProtocol來溝通,用以處理Client的要求(InputEvent)IIIMServerFrameworkPCE/EMILLE與IIIMSF聯繫的XML-basedIDLEMIL可用以設計輸入法新的輸入法應該是一個genericEMILprocessor,把使用者指定的輸入法行為翻譯出來,而不是針對各別輸入法做specificcaseXAuxiliaryLibraryXAuxiliaryObject共通性Client-sideconfigurationlibraryIIIMF的擴充設計SCIM背景SCIM/UIM/m17nSCIM支援度快照(ToSeeIsToBelieve.)SCIM特點SCIM(SmartCommonInputMethodplatform)SCIM、UIM與m17nlibrary原本是三路人馬SCIM(SmartCommonInputMethodplatform)為蘇哲發展完整的簡體中文與優秀的架構UIM(UniversalInputMethod)為TOKUNAGAHiroyuki、MasahitoOmote、Yamaken等人發展眾多CJK輸入法支援2004-06-12SCIM/UIM整合2004-06-14SCIM/m17n整合SCIM/UIM成為多國語文輸入法解決方案SCIM/UIM/m17nSCIM/UIM快照SCIM/UIM快照(續)與現有架構良好的整合能力scim-uim(使用UIM作為backend)scim-m17n(使用m17nlibrary作為backend)完善的使用者介面與設定工具scim-panel-gtk:GTK+2.x打造的設定介面(預設)skim:KDE環境下的SCIM設定介面設計哲學兼具簡易與彈性的API高度延展與動態性徹底分離IMEngine、FrontEnd,與GUIPanel各元件間維持低耦合度(loosebinding)選擇性的socketcommunication(IIIMF是強制使用)SCIM特點重要特徵以C++/STL實作,提供有效與簡易清楚的API(也提供CAPIbinding)提供眾多函示簡化IMEngine開發的困難度兼具dynamicloading的InputMethodbackend特徵(類似UIM)與採用Client-Server架構(類似IIIMF)SCIM特點(續)SCIM運作模式SCIM運作模式:動態載入IMEngineSCIM運作模式:Client-Server架構七月份SCIMmailing-list上,SCIM/UIM開發者與IIIMF設計人Hideki大興筆戰SCIM將與IIIMF分道揚鑣?SCIM主要開發者蘇哲成為IIIMFcvscommitter,致力輸入法平台的整合SunJDS(JavaDesktopSystem)全面支援Unicode只保存UTF-8,其餘localecodec一律捨棄內建強化的IIIMFSCIM與IIIMF的八卦當輸入法遇見ThinClient原則輸入法是一種服務ThinClient與輸入法系統的整合ThinClient在多國語文環境遇到的問題W-Channel的Peach(發展代號)ThinClient與輸入法系統的整合實際上的問題對中文、日文,以及韓文使用者來說,永遠無法一套輸入法方式滿足所有使用者需求ThinClient內建多種輸入法不經濟某些輸入法,如日文手寫辨識,容量很大解決方案將輸入法視作服務!貫徹Client-Server架構,發揮ThinClient優勢InputMethod-on-DemandThinClient在多國語文環境遇到的問題案例分析Kiosk的應用可能放置於機場提供服務,必須對不同國籍使用者作最快速的線上更換語言,並且提供所需輸入法服務過去X-basedThinClient難以動態更換XIMserver,也無法動態切換不同語系的輸入法解決方案徹底採用Unicode引入IIIMF或SCIM等新一代的輸入法架構W-Channel的PeachPeach(發展代號)ThinClient關鍵特性:Smart-Install/Update(以Zero-Install為基礎)TinyX/GTK+2.2提供高效能與良好的多國語文支援CoreWM/DesktopEnvironment支援FreeD最新規格全新打造,精簡又具彈性InternationalEdition內建

SCIM動態載入IMEngine(localhost)Client-Server架構(accessremoteIMservices)Smart-Install/Update以Zero-Install為基礎將JavaWebStart的理念與實作方式引入ThinClient軟體租賃、維護,以及授權方式的新選擇與DesktopEnvironment的整合不需要系統管理者權限,使用者可以透明的取用任何有效的軟體無論是否存在於localhost上所有軟體只會被cache,並不會真正安裝Smart-Install/Update(續)Download-on-Demand降低過度集中的運算資源消耗搭配版本控管允許ThinClient有更加的自訂能力Smart-Install/Update(續)InputMethodonDemandDemoXCIN的反思XCIN的新發展–XCINGeXtensiveChineseInputNextGeneration酷音輸入法的新發展--Qooing(新酷音)新興專案介紹中文輸入概況XCIN(XIM版本)中文輸入的重複開發XCIN的啟示XCIN的反思以「字型」為主Cangjie(Changjei)(倉頡)Wubizixing(五笔字型)Array30(行列)以「字音」為主Pinyin(拼音)Zhuyin(Phonetic)(注音)CantonesePinyin(廣東話拼音、粵拼)以「字義」為主辭典輸入法(英漢、漢英)混合「形、音、義」中文輸入法概況支援BIG5、BIG5HKSCS、GB2312,以及UTF-8只要在不同Locale下啟動,自動採用該語系的編碼

目標輸入法模組功能改進處理多區域化資料庫的XIMclient請求更多Unix平台支援XCIN(XIMversion)著名中文輸入應用JMCCE/zhcon/yact/chdrv/cce2kIIIMF-xcinIIIMF-chewingCKeyboard個人經驗JMCCE1.5的遺憾接手iiimf-chewing開發scim-chewing中文輸入法資源重複開發XCIN程式碼品質優良,在許多Unix平台均有不錯的表現XCIN有最正确的繁體中文輸入環境XCIN太依賴X許多需要中文輸入的專案仍自行作重複的工作,成果無法累積XCIN的啟示XCING=eXtensiveChineseInputNextGeneration目標:延續XCIN功能整合現有中文輸入成果精簡XCIN,移除所有X相依性更容易與其他專案合作協同開發XCIN的新發展--XCINGXCING=eXtensiveChineseInputNextGeneration目標:延續XCIN功能精簡XCIN,移除所有X相依性更容易與其他專案合作協同開發XCIN的新發展–XCING(續)SCIM/IIIMF-libxcinlibxcinlibxcin-corelibxcin-gen_inplibxcin-bimsphoneXCING子計畫libxcin架構ConfigurationModulesLoaderModuleRoutinesInputMehodLogicFeedback讀取xcinrc設定檔,初始化各項參數接受libxcin-core送來的事件(鍵盤輸入或滑鼠點選)依據設定,動態載入libxcin的各

modulelibxcin-gen_inp(通用表格輸入)libxcin-bimsphone(詞音輸入模組)libxcin-chewing(酷音輸入模組)輸入法模組會針對不同事件,作preedit區編輯或commit動作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论