Перейти до вмісту

IBus

Матеріал з Вікіпедії — вільної енциклопедії.
IBus
Типметод уведенняd Редагувати інформацію у Вікіданих
РозробникPeng Huangd Редагувати інформацію у Вікіданих
Операційна системаUNIX-подібні операційні системи Редагувати інформацію у Вікіданих
Мова програмуванняC[1] і Python[1] Редагувати інформацію у Вікіданих
ЛіцензіяGNU Lesser General Public License, version 2.1d[2] Редагувати інформацію у Вікіданих
Репозиторійgithub.com/ibus/ibus
Вебсайтgithub.com/ibus/ibus Редагувати інформацію у Вікіданих

IBus (англ. Intelligent Input Bus — інтелектуальна шина введення) — фреймворк методу введення[en] (МВ) для багатомовного введення в Unix-подібних операційних системах. Назва «Bus» (шина) походить від його шиноподібної архітектури.

Основні цілі проєкту IBus:

  • Надання повнофункціональних та зручних інтерфейсів уведення даних
  • Використання заходів автентифікації для підвищення безпеки
  • Надання універсального інтерфейсу та бібліотеки для розробників методів введення
  • Відповідність потребам користувачів з різних регіонів та звичаїв

Мотивація

[ред. | ред. код]

Проєкт документа Специфікація інтерфейсу постачальника послуг механізму МВ (англ. Specification of IM engine Service Provider Interface)[3] від Робочої групи 3 Форуму OSS Північно-Східної Азії[4] рекомендує шиноподібні архітектури фреймворку методів уведення (подібно до D-Bus). Згідно зі специфікацією, SCIM-1.4[en] не вважається придатним для подальшої розробки, оскільки він розроблений на C++, що зазвичай спричиняє проблеми переходу на рівні двійкового інтерфейсу.[5]

Відтоді розпочато такі проєкти, як IM-BUS (під керівництвом Джеймса Су) та SCIM-2 (під керівництвом Чжена Ху). Однак обидва проєкти призупинено. Тому Хуан Пен з Red Hat створив проєкт IBus, щоб довести ідею IM-BUS, використовуючи Python, D-Bus та GLib, замість реалізації функцій, рекомендованих форумом CJK OSS. Попри це, IBus здобув визнання спільноти, і FreeBSD та багато дистрибутивів Linux, як от Fedora та Ubuntu, мають IBus у своїх репозиторіях пакунктів. 2009 року IBus став типовим фреймворком методу введення у Fedora 11,[6] та замінив SCIM в Ubuntu 9.10.[7]

Архітектура

[ред. | ред. код]

IBus розроблено на C та Python, що дає змогу уникнути проблеми переходу C++ ABI, характерну SCIM[en] <1.4.14.

IBus забезпечує більшість своєї функціональності через служби. Є три види служб:

  • Рушій методу введення (РМВ) — фактичний метод введення
  • Конфігурація — обробляє конфігурацію для IBus та інших служб, таких як РМВ
  • Панель — інтерфейс користувача, як от мовна панель та таблиця пропозицій

IBus для зв'язку між ibus-daemon, службами та клієнтами МВ, як от емулятори терміналів, редактори та веббраузери, використовує D-Bus. Всіма клієнтами та службами керує ibus-daemon, отримуючи реєстрації від служб та надсилаючи повідомлення D-Bus відповідним службам та клієнтам МВ.

Він реалізує протокол XIM[en] та має модулі методів введення GTK та Qt.

Функції

[ред. | ред. код]
  • Завантаження та вивантаження рушія на вимогу
  • Підтримка області сповіщень на панелі завдань
  • Сумісність з XKB[en]
  • Негайне застосування змін конфігурації[8]
  • Надає зв'язки із C та Python

Доступні плагіни та рушії методів введення

[ред. | ред. код]
  • ibus-anthy — плагін для Anthy[en], японського РМВ
  • ibus-avro — фонетична розкладка клавіатури для введення бенгальською мовою на основі Avro Keyboard[en].[9][10][11]
  • ibus-cangjie[12] — рушій для методу введення Цанцзє
  • ibus-chewing — інтелектуальний китайський фонетичний редактор РМВ для користувачів чжуїнь. Ґрунтується на Chewing[en].
  • ibus-hangul — корейський РМВ
  • ibus-libpinyin — новіший китайський редактор РМВ для користувачів піньїнь. Розробили Хуан Пенг та Пенг Ву.
  • ibus-libthai — тайський РМВ на основі libthai
  • ibus-libzhuyin[13] — рушій для методу введення чжуїнь («bopomofo») (альтернатива ibus-chewing)
  • ibus-m17n — багатомовний РМВ для введення тексту багатьма мовами за допомогою методів уведення з m17n-db. Докладніше див. #ibus-m17n.
  • ibus-mozc — плагін для японського редактора РМВ "mozc"[en], розроблений Google[14]
  • ibus-pinyin — інтелектуальний китайський фонетичний редактор РМВ для користувачів ханьюй піньїнь. Розробив Хуан Пен (головний автор IBus). Має багато додаткових функцій, як от перевірка правопису англійською мовою. Застарів та замінений на ibus-libpinyin (див. вище)
  • ibus-table — РМВ, що підтримує методи введення на основі таблиць. Докладніше див. у #ibus-table.
  • ibus-unikey — РМВ для введення в'єтнамських символів

ibus-m17n

[ред. | ред. код]

ibus-m17n — це РМВ, який використовує методи введення та відповідні значки з бази даних багатонаціоналізації (в англійській скорочують нумеронімом «m17n»). На відміну від ibus-table, який підтримує прості таблиці, методи введення m17n підтримують також стани, позначки яких відображаються на панелі IBus (мовній панелі). Методи введення m17n також підтримують навколишній текст, отже,, через ibus-m17n підтримуються такі мови, як тайська та методи введення, як-от звичайна чжуїнь, які потребують цієї функції, а також піньїнь із діакритичними знаками для чотирьох тонів.

ibus-table

[ред. | ред. код]

ibus-table, який розробив Юй Вей Юй, — це РМВ, який завантажує таблиці методів введення, що не потребують складної логіки для вибору слів.[15] В такий спосіб підтримуються багато структурних методів уведення китайської мови, як от Цанцзє та Вубі[en].

Офіційно опубліковані таблиці МВ:[16]

  • latex — введення спеціальних символів за допомогою синтаксису LaTeX. Включено до пакунка ibus-table.
  • compose — введення спеціальної літери поєднанням літери та діакритичного знака. Включено до пакунка ibus-table.
  • Array30 — китайські таблиці МВ
  • Cangjie — таблиці МВ Cangjie 3 і 5
  • Erbi — китайська таблиця МВ Er-bi
  • Wubi — китайська таблиця МВ Wubi
  • Yong — китайська таблиця МВ YongMa
  • ZhengMa — китайська таблиця МВ ZhengMa[en]

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. а б https://www.openhub.net/p/ibus
  2. https://github.com/ibus/ibus/blob/master/COPYING
  3. Goto, Shizuo; Miura, Hiroshi (12 вересня 2007). Draft recommendation of Information Technology - the Specification of IM engine Service Provider Interface (PDF). NEA OSS PF Org. Архів оригіналу (PDF) за 9 серпня 2018. Процитовано 26 жовтня 2019.
  4. WG3 (Activities and Result). NEA OSS Forum. Архів оригіналу за 8 березня 2012. Процитовано 26 жовтня 2019.
  5. PHua, Ming (13 серпня 2004). [Pkg-ime-devel] SCIM ABI transition in sid. Pkg-ime-devel (Список розсилки).
  6. Releases/11/FeatureList. The Fedora Project. 8 квітня 2009. Архів оригіналу за 8 квітня 2009. Процитовано 26 жовтня 2019. A new default input method framework under active development which is designed to overcome the limitations of SCIM.
  7. KarmicKoala/TechnicalOverview - Ubuntu Wiki. Ubuntu. 28 жовтня 2009. Архів оригіналу за 21 листопада 2011. Процитовано 26 жовтня 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.
  8. About IBus - International Language Environments Guide for Oracle Solaris 11.2. Oracle Corporation. Архів оригіналу за 17 травня 2017. Процитовано 26 жовтня 2019.
  9. Khan, Sarim (6 січня 2021), ibus-avro, процитовано 12 січня 2021
  10. Details of Package ibus-avro in Sid. packages.debian.org. Процитовано 9 листопада 2020.
  11. Avro Keyboard - Unicode and ANSI compliant Free Bangla Typing Software and Bangla Spell Checker. www.omicronlab.com (амер.). Процитовано 9 листопада 2020.
  12. Debian -- Details of package ibus-cangjie in sid. Debian. Архів оригіналу за 26 жовтня 2019. Процитовано 26 жовтня 2019.
  13. libzhuyin/ibus-libzhuyin: New Zhuyin engine based on libzhuyin for IBus. GitHub. 7 травня 2019. Архів оригіналу за 26 жовтня 2019. Процитовано 26 жовтня 2019.
  14. Mozc - a Japanese Input Method Editor designed for multi-platform. GitHub. 25 лютого 2018. Архів оригіналу за 26 вересня 2019. Процитовано 26 жовтня 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.
  15. ibus - TableReadme.wiki (in Chinese and English). Google Code. Архів оригіналу за 6 вересня 2017. Процитовано 26 жовтня 2019. IBus-Table is the IM Engine framework for table-based input methods, such as ZhengMa, WuBi, ErBi, CangJie and so on.
  16. ibus Google Code Archive - Long-term storage for Google Code Project Hosting. Google Code. 16 січня 2014. Архів оригіналу за 5 січня 2017. Процитовано 26 жовтня 2019.

Посилання

[ред. | ред. код]