Proporcionar una interfaz y una biblioteca universales para los desarrolladores de métodos de entrada.
Adaptarse a las necesidades de los usuarios de las diferentes regiones y costumbres.
Motivaciones
El borrador "Specification of IM engine Service Provider Interface",[1] documento del Northeast Asia OSS Forum (Grupo de Trabajo 3),[2] recomienda arquitecturas de estructura de métodos de entrada centradas en bus con una implementación de bus (similar a dbus). De acuerdo con la especificación, SCIM-1.4 no se considera adecuado para un desarrollo posterior, ya que se desarrolla en C++, que normalmente causa problemas de transición de en la interfaz binaria de aplicaciones (ABI).[3]
Desde entonces, se iniciaron proyectos exitosos como IM-BUS (dirigido por James Su) y SCIM-2 (liderado por Zheng Hu). Sin embargo, ambos proyectos están suspendidos. Por lo tanto, Huang Peng de Red Hat estableció el proyecto IBus para probar la idea de IM-BUS utilizando Python, D-Bus y GLib en lugar de implementar las funciones recomendadas por el foro CJK OSS. A pesar de ello, IBus ya ha ganado la aceptación de la comunidad, y FreeBSD y muchas distribuciones de GNU/Linux como Fedora y Ubuntu ya tienen IBus en sus repositorios de paquetes. IBus se convirtió en el nuevo marco de métodos de entrada por defecto en Fedora 11,[4] y reemplazó a SCIM en Ubuntu 9.10.[5]
Arquitectura
IBus está desarrollado en C y Python, evitando así el problema de transición de la ABIC++ de SCIM (en versiones anteriores a 1.4.14 de SCIM).
IBus proporciona la mayor parte de su funcionalidad a través de servicios. Hay tres tipos de servicios:
Motor del método de entrada (IME): el método actual.
Configuración: maneja la configuración para IBus y otros servicios como IME.
Panel: interfaz de usuario como la barra de idiomas y la tabla de selección de candidatos.
ibus-libpinyin: un nuevo IME para el idioma chino para personas que utilizan el Pinyin, fue diseñado por Huang Peng and Peng Wu.
ibus-ibus-libzhuyin:[8] un motor para el método de entrada Zhuyin ("bopomofo") (una alternativa al ibus-chewing).
ibus-m17n: un IME para m17n el cual permite la introducción de muchos lenguajes utilizando los métodos de entrada desde mn-17-db. Vea detalles en la sección #ibus-m17n.
ibus-mozc: un complemento para IME japonés llamado "mozc" y desarrollado por Google.[9]
ibus-pinyin: un IME fonético chino avanzado para usuarios de Pinyin. Desarrollado por Huang Peng (autor principal de Ibus) y también con muchas características avanzadas tales como corrector ortográfico para el idioma inglés
ibus-table: un IME que aloja o acoge métodos de entrada basados en tablas. Vea detalles en #ibus-table.
ibus-unikey: un IME para introducción de caracteres en idioma vietnamita.
ibus-m17n
El ibus-m17n es un IME que utiliza métodos de entrada e iconos correspondientes en la base de datos m17n. A diferencia de la ibus-table, que admite tablas planas, los métodos de entrada m17n también admiten estados, cuyas etiquetas se muestran en el panel IBus (barra de idiomas). Los métodos de entrada M17n también soportan el texto circundante, por lo tanto, lenguajes como el idioma tailandés y varios IM como el Zuyin plano que requieren esta característica son soportados a través de ibus-m17n.
ibus-table
El ibus-table, desarrollado por Yu Wei Yu, es un IME que carga tablas de métodos de entrada que no necesitan una lógica complicada para seleccionar palabras.[10] Muchos métodos de entrada chinos basados en estructuras como Cangjie y Wubi son soportados de esta manera.
↑«Releases/11/FeatureList»(html). Fedora(en inglés). 8 de abril de 2009. Archivado desde el original el 8 de abril de 2009. Consultado el 26 de octubre de 2019. «A new default input method framework under active development which is designed to overcome the limitations of SCIM.»
↑«KarmicKoala/TechnicalOverview - Ubuntu Wiki»(html). Ubuntu(en inglés). 28 de octubre de 2009. Archivado desde el original el 21 de noviembre de 2011. Consultado el 26 de octubre de 2019. «Ubuntu has switched to IBus as preferred input method framework. Unlike the previously used SCIM, IBus is under active development and fixes a number of SCIM's design limitations.»
↑«Mozc - a Japanese Input Method Editor designed for multi-platform»(html). GitHub(en inglés). 25 de febrero de 2018. Archivado desde el original el 26 de septiembre de 2019. Consultado el 26 de octubre de 2019. «Mozc is a Japanese Input Method Editor (IME) designed for multi-platform such as Android OS, Apple OS X, Chromium OS, GNU/Linux and Microsoft Windows. This OpenSource project originates from Google Japanese Input.»
↑«ibus - TableReadme.wiki»(html). Google Code(en inglés). Archivado desde el original el 6 de septiembre de 2017. Consultado el 26 de octubre de 2019. «IBus-Table is the IM Engine framework for table-based input methods, such as ZhengMa, WuBi, ErBi, CangJie and so on.»