IBusChinese
Launchpad Entry: desktop-lucid-ibus-chinese
Created: 2009-11-30
Contributors:
Packages affected:
Summary
- Extract the currently concurrent word lists from the different input method modules and unify them into one.
- Develop a library to provide easy access to this unified word lists for any Chinese input method module.
Release Note
TBD
Rationale
Smart Chinese input methods contain word lists in order to predict what the user wants to type. Without those the user would need to select every single character out of multiple candidates, which slows down typing. Up to now, every smart Chinese input method contains and maintains it's own word list, thus re-inventing the wheel. Unfortunately these word lists differ in coverage and quality, some exist only for Simplified Chinese, others only for Traditional Chinese. Therefor it is currently not possible to convert typed strings from Simplified into Traditional Chinese and vice versa.
Design
- The idea is to unify and merge the different word lists available and develop a library to provide easy access to this unified word list to any Chinese input method module.
- Further more, it should include all available keystroke-to-character tables (.cin tables) for all Chinese languages.
- It would need to know which XKB layout the user is using at the time of typing and translate it into a usable format to match the character candidates from the .cin files.
Work flow
- The input method framework pipes the string of keystrokes together with some parameters to the library.
- The library determines (e.g. with libxklavier) which XKB layout the user is currently using.
- The library translates the string of keystrokes with the help of the XKB layout into either some transliteration system appropriate to the language the user is typing in, or a component based keyboard layout.
- Based on the transliterated string or the components, the library looks up potential characters in the .cin tables an places them into an array.
- Based on the list of candidate characters the library looks up the word list and returns a list of strings together with the array of candidate characters to the input method module.
Implementation
- written in C
- use glib for data hashes
- use libxklavier to determine the XKB layout
Test/Demo Plan
TBD
Unresolved issues
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.