fbpx
维基百科

iBus

Intelligent Input Bus,簡稱IBus,是 Unix-like 作業系統下的多語輸入法平台。因為它採用了匯流排(Bus)式的架構,所以命名為Bus。

IBus
Intelligent Input Bus (IBus)
開發者黃鵬
首次发布2008年8月10日 (2008-08-10)
当前版本
  • 1.5.29 (2023年11月9日;穩定版本)[1]
源代码库
  • github.com/ibus/ibus
编程语言C, Python
操作系统Unix-like
语言多語
类型輸入法
许可协议GNU宽通用公共许可证 v2
网站IBus 專案頁面
IBus
中文輸入法
發明人黃鵬
發明年份2008年8月10日
類別拼音

目標 编辑

IBus 的主要目標如下:

  • 易用、直覺的全功能輸入法使用者介面
  • 使用驗證方法加強安全性
  • 為輸入法開發者提供一個統一的介面函式庫
  • 符合來自不同地域,文化的使用者需求

開發動機 编辑

在東北亞開源軟體(OSS)論壇第3工作小組[2]提出的「輸入法引擎服務提供者界面規格」(Specification of IM engine Service Provider Interface)草案裡[3],能實現以Bus為核心的架構被建議採用。SCIM-1.4 的架構並不被看好,因為它是用C++開發的,因此常常會有C++應用二進位介面不符合的情況發生[4]

從那時起,一些人開始著手開發下一代的輸入法平台,像是蘇哲領導的IM-Bus,以及胡正的SCIM-2,可惜的是它們的開發進度仍然停滯不前。因此,時任紅帽(現任谷歌)的黃鵬開始用Python開發IBus以實現 IM-Bus提出的構想。IBus 並不完全實現東北亞OSS論壇所建議的函式,而是採用D-BusGlib來實做。儘管如此,IBus已經開始被OSS社群所接受,FreeBSD以及各大Linux發行版FedoraUbuntu已經將 IBus 納入其套件庫裡。在 Fedora 11 裡,IBus已經成為預設的多語輸入平台[5]

系統架構 编辑

IBus 是用 C 及 Python 開發的,如此可以避免 C++ ABI transition 問題。IBus主要透過下列三種服務(Service)來提供功能:

  • 輸入法引擎服務:為輸入法本身。
  • 配置服務:管理IBus以及輸入法的設定選項。
  • 控制面板服務:提供諸如語言條,候選字選單等使用者介面。

IBus 使用D-Bus作 ibus-daemon服務,以及 IM客戶端(像是konsole, gedit, firefox)之間的溝通。 ibus-daemon 透過接受服務登錄,以及發送D-Bus訊息來管理服務及IM客戶端。

IBus支援 XIM 協議及 Gtk IM 模組以及 Qt IM 模組。

特點 编辑

  • 輸入法引擎可以隨時載入與卸載
  • Systray 支援
  • XKB英语X keyboard extension 支援
  • 配置選項更動可即時生效。
  • 提供 C 與 Python 的介面

現有輸入法引擎列表 编辑

  • ibus-anthy: 日文輸入法
  • ibus-array: 行列輸入法
  • ibus-bopomofo: 使用注音符號的拼音輸入法,基於ibus-pinyin引擎開發[6],但輸入方式與一般標準智慧形注音輸入法(如新酷音輸入法或微軟新注音)不同。
  • ibus-chewing: 新酷音輸入法,智慧形注音輸入法
  • ibus-hangul: 韓文輸入法。
  • ibus-kkc:日文假名漢字轉換輸入法。
  • ibus-m17n: 使用m17n-db的多語輸入法,細節請參閱 #ibus-m17n
  • ibus-pinyin: 拼音輸入法,為IBus主要開發者所開發。
  • ibus-libpinyin: 是 Red Hat 工程師主導、基於 n-gram 語言模型的整合性泛拼音輸入法引擎。
  • ibus-libzhuyin: 與 ibus-libpinyin 系出同源,支援注音符號輸入,名為「新注音」(New Zhuyin) 輸入法,是智慧形的注音輸入法
  • ibus-table: 碼表輸入引擎,細節請參閱 #ibus-table
  • ibus-googlepinyin: Google拼音输入法的ibus版本(这个并不是官方的Google输入法,而是由爱好者从Android项目上迁移过来)

ibus-m17n 编辑

ibus-m17n 利用m17n 架構下的輸入法及相對應的圖示來達成多語輸入。由於m17n架構支援上下文(surrounding text)以及輸入狀態(state)。像是泰文輸入法或是其他需要狀態的輸入法就由ibus-m17n來支援。輸入法狀態會顯示在 IBus panel (語言條)上。

ibus-table 编辑

ibus-table 為余鈺煒所開發,針對查表型輸入法所設計的碼表輸入引擎。許多輸入法,不需要像是 ibus-chewing 或是 ibus-pinyin 之類的複雜選字演算法,只需要一個對照表即可運作[7]。許多字形輸入法像是倉頡輸入法及五筆輸入法都由 ibus-table 所支援。

 
在Ubuntu 12.04.1 LTS使用IBus 1.4.1(倉頡第五代)及其偏好設定

官方釋出的碼表[8]:

  • latex: 使用 latex 語法來輸入特殊符號,ibus-table 自帶
  • compose: 使用 compose letter 及 diacritical mark 來輸入特殊字元,ibus-table 自帶。
  • Array30: 行列30輸入法
  • Cangjie: 倉頡及速成、三代及五代。
  • Erbi: 二筆輸入法
  • Wubi: 五筆輸入法
  • Yong: 永碼輸入法。
  • ZhengMa: 鄭碼輸入法

缺陷 编辑

  • 由於讀取SQLite詞庫時有大量的IO操作,ibus-pinyin在系統高負載時輸入時有卡住的現象。
  • 当用户在火狐浏览器文本框输入文字并希望选中文字时,文字将会自动删除[9]

參閱 编辑

參考資料 编辑

  1. ^ Release 1.5.29. 2023年11月9日 [2023年11月17日] (英語). 
  2. ^ Northeast Asia Open Source Software Forum (页面存档备份,存于互联网档案馆).
  3. ^ Specification of IM engine Service Provider Interface (页面存档备份,存于互联网档案馆).
  4. ^ SCIM ABI transition in sid (页面存档备份,存于互联网档案馆).
  5. ^ Fedora 11 Feature List (页面存档备份,存于互联网档案馆).
  6. ^ 存档副本. [2010-11-06]. (原始内容于2010-12-24). 
  7. ^ ibus-table README (in Chinese and English). [2009-05-12]. (原始内容于2009-03-18). 
  8. ^ IBus Google Downloads. [2009-05-12]. (原始内容于2009-03-01). 
  9. ^ When Chinese ibus input is on, selecting text on Firefox textareas makes the text disappear. [2015-05-13]. (原始内容于2015-09-06). 
  • Linux進化特區:Ubuntu 12.04 從入門到精通(页面存档备份,存于互联网档案馆

外部链接 编辑

ibus, 本條目有隱藏内容, 或許有礙讀者閱覽, 請協助改善條目, 以符合维基百科标准, 2015年9月12日, 一般應該僅由特定標準化模板提供摺疊資料表格, 勿因故事劇情或項目混雜而隱藏, 內容應該考慮其他方式呈現, 重複記載, 過度細節與無助了解主題的堆砌內容等需要考慮除去, 此條目需要精通或熟悉相关主题的编者参与及协助编辑, 2014年9月30日, 請邀請適合的人士改善本条目, 更多的細節與詳情請參见討論頁, intelligent, input, 簡稱ibus, unix, like, 作業系統下的多語輸. 本條目有隱藏内容 或許有礙讀者閱覽 請協助改善條目 以符合维基百科标准 2015年9月12日 一般應該僅由特定標準化模板提供摺疊資料表格 勿因故事劇情或項目混雜而隱藏 內容應該考慮其他方式呈現 重複記載 過度細節與無助了解主題的堆砌內容等需要考慮除去 此條目需要精通或熟悉相关主题的编者参与及协助编辑 2014年9月30日 請邀請適合的人士改善本条目 更多的細節與詳情請參见討論頁 Intelligent Input Bus 簡稱IBus 是 Unix like 作業系統下的多語輸入法平台 因為它採用了匯流排 Bus 式的架構 所以命名為Bus IBusIntelligent Input Bus IBus 開發者黃鵬首次发布2008年8月10日 2008 08 10 当前版本1 5 29 2023年11月9日 穩定版本 1 源代码库github wbr com wbr ibus wbr ibus编程语言C Python操作系统Unix like语言多語类型輸入法许可协议GNU宽通用公共许可证 v2网站IBus 專案頁面IBus中文輸入法發明人黃鵬發明年份2008年8月10日類別拼音查论编 目录 1 目標 2 開發動機 3 系統架構 4 特點 5 現有輸入法引擎列表 5 1 ibus m17n 5 2 ibus table 6 缺陷 7 參閱 8 參考資料 9 外部链接目標 编辑IBus 的主要目標如下 易用 直覺的全功能輸入法使用者介面 使用驗證方法加強安全性 為輸入法開發者提供一個統一的介面及函式庫 符合來自不同地域 文化的使用者需求開發動機 编辑在東北亞開源軟體 OSS 論壇第3工作小組 2 提出的 輸入法引擎服務提供者界面規格 Specification of IM engine Service Provider Interface 草案裡 3 能實現以Bus為核心的架構被建議採用 SCIM 1 4 的架構並不被看好 因為它是用C 開發的 因此常常會有C 應用二進位介面不符合的情況發生 4 從那時起 一些人開始著手開發下一代的輸入法平台 像是蘇哲領導的IM Bus 以及胡正的SCIM 2 可惜的是它們的開發進度仍然停滯不前 因此 時任紅帽 現任谷歌 的黃鵬開始用Python開發IBus以實現 IM Bus提出的構想 IBus 並不完全實現東北亞OSS論壇所建議的函式 而是採用D Bus及Glib來實做 儘管如此 IBus已經開始被OSS社群所接受 FreeBSD以及各大Linux發行版 如Fedora Ubuntu已經將 IBus 納入其套件庫裡 在 Fedora 11 裡 IBus已經成為預設的多語輸入平台 5 系統架構 编辑IBus 是用 C 及 Python 開發的 如此可以避免 C ABI transition 問題 IBus主要透過下列三種服務 Service 來提供功能 輸入法引擎服務 為輸入法本身 配置服務 管理IBus以及輸入法的設定選項 控制面板服務 提供諸如語言條 候選字選單等使用者介面 IBus 使用D Bus作 ibus daemon服務 以及 IM客戶端 像是konsole gedit firefox 之間的溝通 ibus daemon 透過接受服務登錄 以及發送D Bus訊息來管理服務及IM客戶端 IBus支援 XIM 協議及 Gtk IM 模組以及 Qt IM 模組 特點 编辑輸入法引擎可以隨時載入與卸載 Systray 支援 XKB 英语 X keyboard extension 支援 配置選項更動可即時生效 提供 C 與 Python 的介面現有輸入法引擎列表 编辑ibus anthy 日文輸入法 ibus array 行列輸入法 ibus bopomofo 使用注音符號的拼音輸入法 基於ibus pinyin引擎開發 6 但輸入方式與一般標準智慧形注音輸入法 如新酷音輸入法或微軟新注音 不同 ibus chewing 新酷音輸入法 智慧形注音輸入法 ibus hangul 韓文輸入法 ibus kkc 日文假名漢字轉換輸入法 ibus m17n 使用m17n db的多語輸入法 細節請參閱 ibus m17n ibus pinyin 拼音輸入法 為IBus主要開發者所開發 ibus libpinyin 是 Red Hat 工程師主導 基於 n gram 語言模型的整合性泛拼音輸入法引擎 ibus libzhuyin 與 ibus libpinyin 系出同源 支援注音符號輸入 名為 新注音 New Zhuyin 輸入法 是智慧形的注音輸入法 ibus table 碼表輸入引擎 細節請參閱 ibus table ibus googlepinyin Google拼音输入法的ibus版本 这个并不是官方的Google输入法 而是由爱好者从Android项目上迁移过来 ibus m17n 编辑 ibus m17n 利用m17n 架構下的輸入法及相對應的圖示來達成多語輸入 由於m17n架構支援上下文 surrounding text 以及輸入狀態 state 像是泰文輸入法或是其他需要狀態的輸入法就由ibus m17n來支援 輸入法狀態會顯示在 IBus panel 語言條 上 ibus table 编辑 ibus table 為余鈺煒所開發 針對查表型輸入法所設計的碼表輸入引擎 許多輸入法 不需要像是 ibus chewing 或是 ibus pinyin 之類的複雜選字演算法 只需要一個對照表即可運作 7 許多字形輸入法像是倉頡輸入法及五筆輸入法都由 ibus table 所支援 nbsp 在Ubuntu 12 04 1 LTS使用IBus 1 4 1 倉頡第五代 及其偏好設定官方釋出的碼表 8 latex 使用 latex 語法來輸入特殊符號 ibus table 自帶 compose 使用 compose letter 及 diacritical mark 來輸入特殊字元 ibus table 自帶 Array30 行列30輸入法 Cangjie 倉頡及速成 三代及五代 Erbi 二筆輸入法 Wubi 五筆輸入法 Yong 永碼輸入法 ZhengMa 鄭碼輸入法 一些table py手動修改1 可選字由預設的1頁6個換成主流的1頁9個 尋找 page size 6 修改為 page size 9 2 空白鍵跳下一頁選字 尋找 elif key code keysyms space 將下面的 o py self editor py mode sp res self editor space return KeyProcessResult whethercommit commitstring if sp res 0 self commit string sp res 1 self add string len sp res 1 self db check phrase sp res 1 sp res 2 else if sp res 1 u self commit string cond letter translate u if o py self editor py mode self refresh properties self update ui return True 換成 res self editor page down self update lookup table return res 3 backspace鍵 跳上一頁選字 尋找elif key code keysyms BackSpace 將下面的 res self editor backspace self update ui 取代為 res self editor page up self update lookup table 4 單一個碼空白鍵自動選字 數字鍵區選字 尋找 if key mask amp modifier RELEASE MASK return True if self editor is empty 於return True與 if self editor is empty 之間 新增 if key code gt 65457 and key code lt 65465 key code 65408 elif key code keysyms space and len self editor chars 0 1 key code keysyms 1缺陷 编辑由於讀取SQLite詞庫時有大量的IO操作 ibus pinyin在系統高負載時輸入時有卡住的現象 当用户在火狐浏览器文本框输入文字并希望选中文字时 文字将会自动删除 9 參閱 编辑输入法 Unix輸入法列表 SCIM uim 英语 uim Fcitx參考資料 编辑 Release 1 5 29 2023年11月9日 2023年11月17日 英語 引文格式1维护 未识别语文类型 link Northeast Asia Open Source Software Forum 页面存档备份 存于互联网档案馆 Specification of IM engine Service Provider Interface 页面存档备份 存于互联网档案馆 SCIM ABI transition in sid 页面存档备份 存于互联网档案馆 Fedora 11 Feature List 页面存档备份 存于互联网档案馆 存档副本 2010 11 06 原始内容存档于2010 12 24 ibus table README in Chinese and English 2009 05 12 原始内容存档于2009 03 18 IBus Google Downloads 2009 05 12 原始内容存档于2009 03 01 When Chinese ibus input is on selecting text on Firefox textareas makes the text disappear 2015 05 13 原始内容存档于2015 09 06 Linux進化特區 Ubuntu 12 04 從入門到精通 页面存档备份 存于互联网档案馆 外部链接 编辑IBus 首頁 页面存档备份 存于互联网档案馆 IBus Git 源碼 页面存档备份 存于互联网档案馆 Comparison of Chinese Input Method Servers for Unix like Operating Systems 取自 https zh wikipedia org w index php title IBus amp oldid 80653146, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。