Input method (简体中文)

From ArchWiki
翻译状态:本文是 Input method翻译。上次翻译日期:2022-07-18。如果英文版本有所更改,则您可以帮助同步翻译。

输入法

提示: 如果以下文本在屏幕上显示为乱码,请确保系统中安装了中文或日文字体。有关可用字体的非详尽列表,请参阅字体#中日韩越文字
注意: 为简单起见,在以下示例中仅提到了键盘,但 IME 实际上可以使用多种输入源,例如使用鼠标或 Wacom tablet 绘制字符。

引自 Wikipedia:Input method

输入法(或输入法编辑器,常缩写为 IME)是一种操作系统组件或程序,它使用户能够通过使用输入设备上原生的字符序列(或鼠标操作)来生成其输入设备上没有的文字。对于拥有比键盘上的按键更多的字位的语言来说,使用一种输入法通常是必要的。

简单来说,IME 是一个允许我们使用拉丁字符输入非拉丁字符的应用程序。

一些 IME 通过一种叫做罗马化的过程来实现这一点,即把非拉丁语的声音音译成与之最相近的拉丁语对应物。例如,日语中“清酒”或“米酒”的写作,也写成さけ,并被罗马化为“sake”。IME 的作用是充当键盘和输入字段之间的中间人,因此,当我们输入“sake”时,它将拦截键盘的输入,用 さけ(由用户选择)替换 “sake”,并为我们输入本地字符而不是我们按下的键。

也有一些 IME 不使用罗马化。其中最突出的是仓颉,它通过将汉字分解为部首,将这些部首与第二套自己的内部部首相匹配,最后再将这些内部部首与拉丁文字相匹配。举例来说,中文的部首 组成。仓颉将这些部首与内部部首匹配,然后将这些部首与拉丁字符 emcw 匹配。这意味着,当我们输入“emcw”时,仓颉会拦截键盘的输入,用 替换 "emcw",并在屏幕上输入该字符。

输入法框架

大多数 IME 是作为输入法框架(常缩写为 IMF)的一部分工作的,它是一个允许用户在不同的 IME 之间轻松切换的应用程序。事实上,这正是我们许多人每天在不同的拉丁语键盘布局(如英语、西班牙语、德语等)之间切换时不知不觉地使用的应用程序。

最常见的 IMF 是 IBus(通常用于基于 GTK 的环境,如 GNOME),其次是Scim、然后是 Fcitx5Fcitx(大多用于基于 Qt 的环境,如 KDE),最后是 uim。非常不常见的包括 gcinNimf 和 Hime。[1]此外,Emacs是一个非常流行的文本编辑器,它有自己的内部 IMF。

参见 Wikipedia:List of input methods for Unix platforms

注意: SCIM 目前缺乏维护,因此不推荐使用。

输入法列表

下表显示了 Arch 存储库和 AUR 中当前可用的各种语言的 IME。

注意: 在某些情况下,同一个 IME 存在多个软件包。这方面的一个很好的例子是Mozc:作为目前最流行的日语 IME,多年来有多个打包者试图创建一个“完美的”Mozc 包。在下面的表格中,每个 IMF 都包括一个 Mozc 软件包;但这并不意味着这些是用户应该考虑安装的唯一 Mozc 软件包。
警告: 并非所有 IME/IMF 都是最新的;例如,Anthy 不再维护,通常首选 mozc。一些 IME 也相当不受欢迎,并且不提供太多支持。查看相应的 Localization 页面了解更多信息。
Fcitx5 Fcitx IBus uim Emacs Scim Hime gcin Nimf
中文
Rime fcitx5-rime fcitx-rime ibus-rime 内置
拼音 fcitx5-chinese-addons 内置 ibus-pinyin scim-pinyinAUR 内置
注音 fcitx5-chewing fcitx-chewing ibus-chewing scim-chewing 内置
仓颉
簡易
快速
fcitx5-table-extra fcitx-table-extra ibus-table-chinese scim-tablesAUR
五笔 内置 内置 ibus-table 内置 scim-tablesAUR
Libpinyin fcitx-libpinyin ibus-libpinyin
SunPinyin fcitx-sunpinyin ibus-sunpinyin
日文
Mozc fcitx5-mozc-utAUR fcitx-mozc-utAUR ibus-mozcAUR emacs-mozcAUR
Anthy fcitx5-anthy fcitx-anthy ibus-anthy 内置 scim-anthyAUR 内置 内置 内置
SKK fcitx5-skk fcitx-skk ibus-skk 内置
KKC fcitx5-kkc fcitx-kkc ibus-kkc
韩文
Libhangul fcitx5-hangul fcitx-hangul ibus-hangul 内置 scim-hangulAUR 内置
越南语
UniKey fcitx5-unikey fcitx-unikey ibus-unikey
Bamboo fcitx5-bamboo-gitAUR ibus-bambooAUR
Indic
Avro ibus-avro-gitAUR
Helakuru ibus-helakuruAUR
m17n fcitx5-m17n fcitx-m17n ibus-m17n scim-m17nAUR
OpenBangla Keyboard fcitx5-openbangla-gitAUR openbangla-keyboardAUR
Varnam libvarnam-ibus-gitAUR

配置

为了让桌面环境正确地将已安装的输入法框架注册为可用并将其用于处理用户输入,必须相应地配置一组环境变量

注意: 如果没有设置这些变量,GTKQt 都会尝试读取系统的区域设置来决定它们应该使用哪种 IMF,但这个过程依赖于猜测,可能非常容易出错。对于一个正常工作的系统,应该明确地设置这些变量。
提示: 如果希望完全禁止桌面环境通过 IMF 处理输入(在 GNOME推荐,因为其与 IBus 紧密集成),那么可以不设置这些变量,或者,对于 GTKQt,可以替换它们的值:GTK_IM_MODULE=gtk-im-context-simpleQT_IM_MODULE=simple

Fcitx 和 Fcitx5

有关详细信息,请参阅 Fcitx5 (简体中文)Fcitx (简体中文)

即使使用 Fcitx5,也不要将 fcitx 更改为 fcitx5[2]

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

IBus

IBus以获得更多讯息。

GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

Uim

Uim以获得更多讯息。

GTK_IM_MODULE=uim
QT_IM_MODULE=uim
XMODIFIERS=@im=uim

Emacs

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: 这需要确认 (Discuss in Talk:Input method (简体中文))

通过 这个Fcitx wiki, "在一些案例,包含emacs和java。Emacs有一个积年的Bug,在en_US.UTF8或类似的区域设置,它将永不使用XIM(虽然emacs是一个gtk程式,它使用XIM)。唯一的方式去避开这个是使用LC_CTYPE去修复它。

Scim

Scim获得更多讯息。

GTK_IM_MODULE=scim
QT_IM_MODULE=scim
XMODIFIERS=@im=scim

参见