Language Input
Design page for text entry for different languages. Other elements for this are covered by the region & language settings design page and the input language menu design page.
Notes
Existing methods to enter additional characters that aren't on your keyboard with GNOME:
- Compose key
- Third character modifier
- Characters app or similar
- Input methods
- On-screen keyboard
Other platforms have additional methods, like drawing characters on a touchpad or speech-to-text.
Input methods
Input methods are mostly relevant to CJK input. These work through substitution: the user types using a latin keyboard, and their input is converted into non-latin characters.
GNOME uses the IBUS input method framework. It allows different Input Method Engines (IMEs) to be used, each of which provides its own logic for how text input is interpreted. Each engine can support multiple languages.
There are often multiple different input methods for each language. The most popular input methods are well-established and are cross-platform, and might well be taught in schools and so on. Mathieu Bridon has written an excellent overview of Chinese input methods, and their presence in different areas. This is extremely useful for getting an idea of how input methods relate to locale.
Input methods generally co-exist with keyboard layouts - the same mechanism is used for switching between a keyboard layout and an input method. Collectively, the term for keyboard layouts and input methods is "input sources". In addition to allowing people to switch between input methods and keyboard layouts, this approach is also based on the idea that people go to the settings wanting to input a language.
The concept of "input sources" can break down, since:
- There is clearly a technical difference between using a keyboard layout and an input method
- There are multiple input methods and keyboard layouts for each language
- Your keyboard has a layout even when you're using an input method (TODO: how is this determined?)
Candidate windows
When inputting CJK languages, a "candidate window" shows characters that can be entered based on what has been inputted:
In some cases, the candidate window is shown as you type (Pinyin, for example). In others, it is necessary to press a key to see the list (such as down in Kana Kanji, or space in Cangjie).
Relevant Art
Windows 10
Windows has an "IME pad"; this allows drawing characters with the pointer, as well as browsing them based on different characteristics:
Mac
Candidate windows:
You can also draw characters with the touchpad:
GNOME 3.32
Candidate window for Pinyin:
Candidate window for Kana Kanji:
Discussion
Tentative Design
Relevant issue:
See Also