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:
https://mdn.mozillademos.org/files/8709/candidatewindow.png
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:
https://files.tofugu.com/articles/japanese/2016-04-18-how-to-install-japanese-keyboard/windows10-ime-pad-handwriting.jpg
https://files.tofugu.com/articles/japanese/2016-04-18-how-to-install-japanese-keyboard/windows10-bad-character-ime-pad.jpg
https://files.tofugu.com/articles/japanese/2016-04-18-how-to-install-japanese-keyboard/windows10-ime-pad-strokes.jpg
Mac
Candidate windows:
Candidate window
Candidate window - Japanese
You can also draw characters with the touchpad:
Draw characters
GNOME 3.32
Candidate window for Pinyin:
GNOME Pinyin
Candidate window for Kana Kanji:
GNOME Kana Kanji
Discussion
Tentative Design
https://gitlab.gnome.org/Teams/Design/os-mockups/raw/master/text-entry/candidate-windows.png
Relevant issue:
See Also