#osxchat blog

2004/12/20

自訂、新增與設計屬於自己的輸入法

作者: zonble

如果要比較OpenVanilla輸入法架構,與MacOS X內建的繁體中文輸入法TCIM(Tradition Chinese Input Methods)比較,OpenVanilla對於一般使用者來說,最大的特色就是能夠更方便的修改安裝包當中內建的輸入法表格,符合自己的特殊需要,比方說就原本的注音或倉頡輸入法,新增幾個自己所習慣的按鍵;也可以使用比TCIM所提供的輸入法編輯工具更具有彈性的方式,設計自己的輸入法,我的漁村符號輸入法,就是在OpenVanilla的框架下輕鬆完成。

或這麼說,許多朋友都有在MacOS X上找不到無蝦米輸入法可用的問題,OpenVanilla目前也無法直接提供無蝦米輸入法,原因是在無蝦米輸入法的所有者行易公司,對產品的政策問題。而如果您可以找到無蝦米輸入法的表格,並且轉換成OpenVanilla所使用的格式,然後放到OpenVanilla的輸入法檔案目錄中,單純就技術上來說,要實現在OpenVanilla架構下使用無蝦米,是可行的;但是這樣未經行易公司授權,便逕行使用無蝦米輸入法,請三思您所必須負擔的責任。

OpenVanilla 0.6.1 版所使用的輸入法檔案,都位在系統硬碟中的「資源庫」→
「OpenVanilla」→「0.6.1」目錄下。在這個目錄中,您可以看到許多副檔名是.dylib的檔案,這些是各個輸入法所使用的動態執行檔案,如果您覺得有些輸入法實在用不著,您可以刪除這些檔案(在您刪除檔案之前,建議您先在系統偏好設定中的「國際設定」,將OpenVanilla暫時關閉)。

其中,OVIMArray是行列輸入法、OVIMCanjei是倉頡、OVIMChewing是酷音、OVIMPhonetic是注音、OVIMPOJ是台語白話字輸入法、OCIMXcin則是可以載入各種Xcin輸入法表格的通用輸入法模組。每個輸入法需要的檔案,都位在同名的目錄下。比方說,選單上的「OpenVanilla 行列輸入法」的表格,就是在OVIMArray下的array30.cin,POJ的表格是OVIMPOJ下的poj.cin,而您會修改、新增的檔案,通常便位在OVIMXcin下。

您可以使用任何可以一套編輯純文字檔案的編輯軟體,修改輸入法表格,輸入法表格的副檔名必須是「.cin」,在存檔的時候,也必須使用UTF-8編碼存檔,MacOS X 內建的「文字編輯」(TextEdit)就是一套可以編輯純文字檔案,以及轉換編碼的編輯軟體。在一個.cin檔案中,應該要包含以下資訊。

以漁村輸入法為例,在檔案的開頭需要有:

%gen_inp
%ename EHQ-Symbols
%cname 漁村符號
%encoding UTF-8
%selkey 1234567890


%gen_inp:所有的.cin檔案,都必須以此開頭。
%ename:輸入法的英文名稱。
%cname:輸入法的中文名稱。
%encoding:輸入法檔案的編碼方式,請不要修改這一行的內容。
%selkey:選字按鍵的設定,也就是當您輸入的按鍵可以產生多種結果的時候,您想要使用怎樣的按鍵選擇在選字視窗中出現的選項。上面的範例是使用1到0的數字鍵當成選字按鍵,您也可以改成用qwer...選字。

接下來必須要有%keyname begin與%keyname end。在這兩個標籤的內容中定義的是輸入時所使用的按鍵,還有按下的時候應該先產生怎樣的結果,按鍵名稱與顯示名稱中間隔一個空白,每個按鍵的設定寫成一行。比方說,在倉頡輸入法的設定中,就是「q 手」、「a 日」,標準鍵盤配置的注音輸入法就是「1 ㄅ」、「q ㄆ」等。

在設定完按鍵之後,就是設定每一個按鍵組合所應該產生的結果了,這些設定放在%chardef begin與%chardef end之間,前面設定的是您在前面%keyname所設定的按鍵定義的組合,空一個空格後,是產生的結果。比方說,您可以在注音輸入法當中加入自己創建的新字,想要用「ㄅㄧㄤ\」打出「棒」這個字,就是多加一行「1u;4 棒」。此外,在%keyname與%chardef所定義的英文按鍵,是沒有區分大小寫的。

以上就是關於.cin檔案的介紹,按照這樣的原則,應該就可以滿足許多特別的需要。例如昨天一位在OIKOS社群上的資深朋友老刀,就修改了行列輸入法的表格,納入了新的行列表格,可以使用行列輸入法輸入原本在Big5中所沒有包含的Unicode中文(如簡體字),如果您使用行列輸入法,不妨可以嚐試看看這個新版的行列輸入法。

標籤: , ,

2 篇留言:

  • 小弟剛剛測試過你的方法去轉換輸入法的時候
    OpenVanilla的格式還需要如下的設定
    在遇到%selkey 1234567890時候下面還要加一行%endkey如下
    %endkey <>?:"{}|~!@#$%^&*()_+
    之後再接續%keyname begin %keyname end和之後的設定就可以了

    小弟剛剛是使用某L系列輸入法按照文章的方式和使用轉換成utf-8格式後成功了,感謝OpenVanilla輸入法的團隊

    作者: Anonymous 匿名 發表時間: 12/29/2004 09:06:00 下午  

  • 在vanilla里面添加一个输入法模块只是添加一个.cin档案如此简单?不用作其他的调整?

    作者: Anonymous 匿名 發表時間: 3/06/2007 11:15:00 下午  

張貼留言

? 回前頁