I18N/InputMethods

From FedoraProject

< I18N(Difference between revisions)
Jump to: navigation, search
(XIM: X locale compose)
m (输入法)
(44 intermediate revisions by 9 users not shown)
Line 1: Line 1:
== Input Method ==
+
{{autolang|base=yes}}
An Input Method (IM) is a way to input a certain set of characters and symbols, usually because a keyboard does not directly support them. Chinese, Indic, Japanese. and Korean (CIJK) characters for example, cannot be found in a normal en_US keyboard, thus input methods are required to input these languages.
+
== 输入法 ==
 +
输入法(IM)是输入一组特定的字符和符号的途径,通常是因为键盘没有直接支持这些字符和符号。例如中文、印度语、日语和韩语(CIJK)字符,在普通 en_US 键盘上是找不到的,因此,需要输入法来输入它们。
  
Note that input methods are not only required by Asian languages, but also useful for other languages such as French on an English keyboard, English on a mobile phone number pad, etc.
+
需要指出的是,输入法不仅仅是亚洲语言的需求,在其他语言中也很有用处,比如在英文键盘上输入法语、在数字键盘的移动电话上输入英文等。
  
 
== Terminology ==
 
== Terminology ==
Line 21: Line 22:
 
* nabi for Korean
 
* nabi for Korean
 
* imsettings and im-chooser provide a modern control mechanism for input methods on the desktop.
 
* imsettings and im-chooser provide a modern control mechanism for input methods on the desktop.
 +
 +
See [[I18N/Virtual_Keyboards|Virtual Keyboards]] for on-screen input tools.
  
 
== Keyboard layout ==
 
== Keyboard layout ==
European languages are mostly inputed with keyboard layouts, which may act the same way as input method.
+
European languages are generally input with keyboard layouts, which can be switched somewhat like input methods.
 
According to [http://en.wikipedia.org/wiki/Keyboard_layout Keyboard layout from Wikipedia], keyboard layout means either:
 
According to [http://en.wikipedia.org/wiki/Keyboard_layout Keyboard layout from Wikipedia], keyboard layout means either:
 
* Mechanical: Whether it is a true QWERTY, AZERTY or DVORAK which work in GRUB and BIOS setting.
 
* Mechanical: Whether it is a true QWERTY, AZERTY or DVORAK which work in GRUB and BIOS setting.
Line 34: Line 37:
 
GTK and Qt load their input method modules dynamically at runtime.
 
GTK and Qt load their input method modules dynamically at runtime.
  
{{admon/warning|For advanced users only!|The information below is only intended for advanced users who are comfortable using environments to control their environment.  General users are strongly recommended to use imsettings through im-chooser to control their desktop input method usage.}}
+
{{admon/warning|For advanced users only!|The information below is only intended for advanced users who are comfortable using environment variables to control their environment.  General users are strongly recommended to use the region and the language settings in gnome-control-center for GNOME Desktop or imsettings through im-chooser to control their desktop input method usage.}}
  
 
=== GTK IM modules ===
 
=== GTK IM modules ===
Line 51: Line 54:
  
 
The XIM input code path also provides X locale compose, ie locale-specific compose sequences which is useful for various "Western" languages (eg ' (dead-acute) + c for pt_BR).  This can be used without an XIM server program, eg by setting <code>XMODIFIERS=@im=none</code>.
 
The XIM input code path also provides X locale compose, ie locale-specific compose sequences which is useful for various "Western" languages (eg ' (dead-acute) + c for pt_BR).  This can be used without an XIM server program, eg by setting <code>XMODIFIERS=@im=none</code>.
 +
 +
== How to use non-ibus input methods on GNOME ==
 +
Since the ibus has been integrated into GNOME and ''imsettings'' and ''im-chooser'' doesn't take care of the input method configuration on GNOME Desktop, extra steps is required to use non-ibus input methods on GNOME.
 +
 +
# remove the shortcut keys for '''Switch to next input source''' from '''Keyboard'''->'''Shortcuts''' tab->'''Typing''' on ''gnome-control-center'' if the toggle key for ''ibus'' is conflict with others.
 +
# remove all of the input source which is related to ''ibus''
 +
# set '''false''' to '''org.gnome.settings-daemon.plugins.plugins.keyboard.active''' gsettings key
 +
 +
After reboot, you can enable other input methods through ''im-chooser'' then.
  
 
== Development ==
 
== Development ==
Line 58: Line 70:
  
 
* [[I18N/InputMethods/Bugs|Bugs]]
 
* [[I18N/InputMethods/Bugs|Bugs]]
 +
 +
Test Cases:
 +
 +
* https://fedoraproject.org/wiki/QA:Testcase_i18n_ibus_input
 +
* https://fedoraproject.org/wiki/QA:Testcase_i18n_input_method
 +
* https://fedoraproject.org/wiki/QA:Testcase_i18n_input_application
 +
 +
 +
[[Category:Internationalization]]

Revision as of 11:52, 5 December 2013

Contents

输入法

输入法(IM)是输入一组特定的字符和符号的途径,通常是因为键盘没有直接支持这些字符和符号。例如中文、印度语、日语和韩语(CIJK)字符,在普通 en_US 键盘上是找不到的,因此,需要输入法来输入它们。

需要指出的是,输入法不仅仅是亚洲语言的需求,在其他语言中也很有用处,比如在英文键盘上输入法语、在数字键盘的移动电话上输入英文等。

Terminology

Input method (IM)
It means the way to input a certain set of characters and symbols. Anthy, Hangal, Cangjie, Shuang Pin, Quan Pin, Wubi, Zhuyin (BoPoMoFo), are input metods. However, input method can also mean Input method system or Input method engine.
Input method system
Also referred as Input method framework or Input method platform, it is a system that provides infrastructure for input methods. Such system itself does not necessary contain any input methods. e.g. iBus, Scim, OXIM. Gcin, IIIMF, uim.
Input method engine (IME)
Also referred as Input method editor, it is a program that actually implement an input method. ibus-chewing and scim-chewing implements the Chewing for IBus and SCIM.
Input method table
An input method in tabluar DB format. Some input methods requires database-lookup but no complex algorithms. ibus-table and scim-table handle this kind of input methods.
Input method map
An input method in m17n data format. Unlike a plain table-base input method, it allows further controlssuch as include, starter, map, variable and command. e.g. Inscript, iTrans, Phonetic input maps for Indic languages, and Thai input methods. This kind of input methods are supported in ibus-m17n and scim-m17n.
Input method framework chooser
A tool for choosing the input method framework, so user can easily switch among IBus, SCIM, UIM, Gcin, and so on. im-chooser and imsettings serves this propose.

Examples

  • iBus - intelligent input bus: next generation input method framework used in F11
  • SCIM is the default input method framework in Fedora 10
  • m17n maps for Indic and other languages
  • uim, a light multilingual input method framework
  • gcin for Traditional Chinese
  • kinput2 for Japanese
  • nabi for Korean
  • imsettings and im-chooser provide a modern control mechanism for input methods on the desktop.

See Virtual Keyboards for on-screen input tools.

Keyboard layout

European languages are generally input with keyboard layouts, which can be switched somewhat like input methods. According to Keyboard layout from Wikipedia, keyboard layout means either:

  • Mechanical: Whether it is a true QWERTY, AZERTY or DVORAK which work in GRUB and BIOS setting.
  • Visual: The arrangement of the legends (markings) that appear on the keys of a keyboard.
  • Functional: The arrangement of the key–meaning associations, determined in software, of all the keys of a keyboard.

Input method system and input method engine should be aware of the the keyboard layout.

Toolkits and Input Methods

GTK and Qt load their input method modules dynamically at runtime.

Warning (medium size).png
For advanced users only!
The information below is only intended for advanced users who are comfortable using environment variables to control their environment. General users are strongly recommended to use the region and the language settings in gnome-control-center for GNOME Desktop or imsettings through im-chooser to control their desktop input method usage.

GTK IM modules

The input method module (gtk immodule) used by an GTK application can be overridden on the commandline by setting the environment variable GTK_IM_MODULE.

If there is no gtk input method configuration in place then gtk will choose a default immodule based on /etc/gtk-2.0/*-redhat-linux-gnu/gtk.immodules. To disable input method usage in a GTK application entirely, set GTK_IM_MODULE=gtk-im-context-simple.

Qt IM modules

The input method module (qt immodule) used by an Qt application can be overridden on the commandline by setting the environment variable QT_IM_MODULE.

Qt defaults to using XIM by default. To disable input method usage in a Qt application entirely, set QT_IM_MODULE=simple.

XIM

An X Input Method server program needs to be running before it can be used in a legacy X application. The XMODIFIERS environment variable needs to be set in a special way to tell an X application which XIM server to connect to. E.g. XMODIFIERS=@im=SCIM would configure using the scim XIM server.

The XIM input code path also provides X locale compose, ie locale-specific compose sequences which is useful for various "Western" languages (eg ' (dead-acute) + c for pt_BR). This can be used without an XIM server program, eg by setting XMODIFIERS=@im=none.

How to use non-ibus input methods on GNOME

Since the ibus has been integrated into GNOME and imsettings and im-chooser doesn't take care of the input method configuration on GNOME Desktop, extra steps is required to use non-ibus input methods on GNOME.

  1. remove the shortcut keys for Switch to next input source from Keyboard->Shortcuts tab->Typing on gnome-control-center if the toggle key for ibus is conflict with others.
  2. remove all of the input source which is related to ibus
  3. set false to org.gnome.settings-daemon.plugins.plugins.keyboard.active gsettings key

After reboot, you can enable other input methods through im-chooser then.

Development

Members of the fedora-i18n team are working on development of ibus, imsettings and im-chooser.

Test Cases: