All For Chinese中文輸出入平台提案

目前在Linux上所使用的幾個中文系統各有其輸入法程式, 也就是說當我們開發中文系統平台時, 輸入法都是要各別為這些系統 再開發一次. 這浪費我們目前非常有限的中文軟體開發人力以外, 也會造成使用者的混亂, 更嚴重的是開發中文軟體的人員會無所適從. (例如, 最明顯的是Netscape, 在開發Chinese Netscape for UNIX時, 根本就無法找到中文輸入的標準.)

為了解決這個問題, 我提出了All For Chinese IOME Proposal. (IOME stands for Input/Output MEthod.)

All For Chinese中文輸出入平台提案主要有三點:

  1. 平台無關性. 輸入法及輸入平台應當各別獨立出來, 也就是說輸入法是同一個, 但可在X及TTY下執行. 這裡所說的平台是X, TTY及X Terminal, Remote Terminal.
  2. 字集無關性. 一種輸入法應可輸出多種字集. 這就是說, 注音輸入法也應當可以輸出國標碼, 羅馬輸入法也應可輸出大五碼. 字集應與輸入法無關.
  3. 語文無關性. 輸入平台的獨立有很多好處, 我們不僅可以輸入中文, 也可以加入其它語言的輸入法, 例如日文,韓文,泰文甚至西班牙與或東歐語系. 如果我們加入適當的Filter, 甚至可用中文輸入日文或韓文. (如果有線上翻譯Filter Module的話).

輸入法及輸入平台

輸入法的輸入方式
目前輸入法的輸入方式主要依靠鍵盤輸入, 但事實上, 目前已經有許多手寫輸入的輸入法, 其次還有語音輸入的輸入法. 因此在輸入法的需求上, 它會有取得鍵盤碼的需求, 捕捉滑鼠訊息的需求, 及其它信號(語音,這方面應當不成問題, 輸入法自身需要 去取得其硬體的訊號).
因此, 輸入平台有需要取得鍵盤碼及轉移滑鼠訊號(FocusIn, FocusOut, MouseMove等等)的功能. 而輸入平台自身除了英數輸入法以外, 不應當有其它內建輸入法存在. 其次輸出的部份, 需要建立有Filter, 用以轉換字集或語言.

符合以上標準的輸入平台, 目前有a4c.ime及a4c.tty. 跟傳統輸入平台不同之處, a4c.ime加入一個輸出過濾模組來達成A4C IOME提案的目標.

整個設計大致如下:

IME Modules
+--------+
|手寫輸入+------------+
+--------+            |
+--------+            |
|語音辨識+------------+
+--------+            |
+--------+            |
|羅馬輸入+------------+
+--------+            |
+--------+            |
|注音輸入+------------+
+--------+            |
+--------+            |
|大易輸入+------------+                        +-----------+--------------+
+--------+            |                        |Mouse Event|Keyboard Event|
+--------+            |                        +------+----+--------------+
|倉頡輸入+------------+                               | 
+--------+            |                            +--+---------+
+--------+            |                      +-----+Get Focus In|
|其它輸入+------------+       +-----------+  |     +-------+----+
+--------+            |       |IME Modules|  |             |
+--------+            |       +-----+-----+  |       +-+---+---+
|其它語言+------------+             |        |       |X|TTY|...|
+--------+            |  +----+  +--+--------+--+    +-+---+---+
OME Filters           +--+ldso+--+IOME Platforms|          |
+--------------+      |  +----+  +--+--------+--+          |
|國標碼轉大五碼+------+             |        |             |
+--------------+      |    +--------+-----+  |             |
+--------------+      |    |  OME Modules |  |             |
|大五碼轉國標碼+------+    +--------+-----+  |      +------+-------+
+--------------+      |             |        +------+Send Focus Out|
+--------------+      |       +-----+--------+      +--------------+
|中文轉英文字庫+------+       |Mouse|Keyboard| 
+--------------+      |       +-----+--------+
+--------------+      |
|中文轉日文字庫+------+
+--------------+      |
+--------------+      |
| 其它種類轉換 +------+
+--------------+
IOME介面: 詳細的開發細部, 請見a4c.suite/README/IOME