為了解決這個問題, 我提出了All For Chinese IOME Proposal. (IOME stands for Input/Output MEthod.)
All For Chinese中文輸出入平台提案主要有三點:
輸入法的輸入方式
目前輸入法的輸入方式主要依靠鍵盤輸入, 但事實上,
目前已經有許多手寫輸入的輸入法, 其次還有語音輸入的輸入法.
因此在輸入法的需求上, 它會有取得鍵盤碼的需求,
捕捉滑鼠訊息的需求, 及其它信號(語音,這方面應當不成問題, 輸入法自身需要
去取得其硬體的訊號).
因此, 輸入平台有需要取得鍵盤碼及轉移滑鼠訊號(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