使用 uim 输入日语

出自 ArchWiki

此条目或章节可能需要与 uim 合并。

注意:将与语言无关的内容移动到 uim,将日语相关内容移动到 Localization/Japanese。(在 Talk:Input Japanese using uim 中讨论)

本页面介绍如何使用 uim 实现日语输入。

如果您使用 SCIM,请参阅 Smart Common Input Method platform

如果您使用 IBus,请参阅 IBus

安装

您需要以下软件包来输入日语。

  • 日文字体
  • 日语输入法(假名到汉字转换引擎)
  • 输入法框架:uim

日文字体

更多配置信息或详细信息,另请参阅 字体字体配置

推荐的日文字体如下。

无衬线字体

由 Adobe 开发的开源 OTF 字体。

衬线字体和无衬线字体

由日本信息技术振兴机构 (IPA) 提供的开源 OTF 字体集,包括无衬线字体(哥特体)和衬线字体(明朝体)字形。

如果您想正确显示 2channel Shift JIS 艺术字,请使用以下字体

uim

安装 uimAUR 软件包。

输入法

Anthy

Anthy 是开源世界中最流行的日语输入法之一。但是,它已经很久没有维护了。Debian 从 2010 年 5 月开始接手维护。 Debian succeeds it from May 2010.

从官方软件仓库安装 anthy

额外词典

Anthy 的默认词典不包含 EUC-JP (JIS X 0208) 中未指定的几个字符,例如 “①”、“♥” 等。 alt-cannadic 提供了包含这些字符的额外词典。

获取 alt-cannadic 词典 并将其放在您的 ~/.anthy/imported_words_default.d 下。

$ tar jxvf alt-cannadic-091230.tar.bz2
$ mkdir ~/.anthy/imported_words_default.d (if not exist)
$ cp alt-cannadic-091230/extra/*.t ~/.anthy/imported_words_default.d/

更多详情请参阅 官方 Wiki(日语)。

警告: 如果您将使用此额外词典,请在 uim 上选择 Anthy (UTF-8) 作为默认输入法。

修改版 Anthy (anthy-ut)

修改版 Anthy 是一组补丁和庞大的扩展词典,旨在提高原始 Anthy 的假名到汉字转换质量。

Modified Anthy 由两个不同的上游组成

  • G-HAL 提供的 Anthy 补丁源代码
  • UTSUMI 提供的庞大扩展词典
警告
  • Modified Anthy 仅适用于 Anthy (UTF-8)。因此,您必须在 uim 上选择 Anthy (UTF-8) 作为默认输入法。
  • Modified Anthy 与原始 Anthy 的词典和学习数据不兼容。

Mozc

Mozc 是一款日语输入法编辑器 (IME),专为 Chromium OS、Windows、Mac 和 Linux 等多平台设计,起源于 Google 日语输入法

虽然 MozcAUR 仅适用于 ibus 输入法框架,但 macuim 提供了 uim-mozc 插件。

Mozc (原生版)

uim-mozcAUR 在 AUR 上可用。

注意: 这不支持 uim-mozc 的 kill_line 功能。

您可以从非官方的 pnsft-pur 用户仓库安装它。

您可以通过指定组名来选择安装 mozc-im 组中的所有软件包。

或者,直接指定单个软件包名称。例如,安装 uim-mozcAUR

mozc-ut

此条目或章节已过时。

原因:软件包已删除,ut2 已被弃用,转而使用 ut。[1](在 Talk:Input Japanese using uim 中讨论)

mozc-ut2AUR[链接失效:未找到软件包] 可以构建 uim-mozc。

注意: mozc-ut 可以与 uim-mozcAUR 一起工作。

要构建 uim-mozc,请编辑 PKGBUILD 文件,例如,取消注释 _uim_mozc=

## If you will not be using ibus, comment out below.
_ibus_mozc="yes"
## If you will be using uim, uncomment below.
_uim_mozc="yes"
## If applying patch for uim-mozc fails, try to uncomment below.
#_kill_kill_line="yes"
## This will disable the 'kill-line' function of uim-mozc.
提示: 如果您永远不会使用 ibus-mozc,请注释掉 _ibus_mozc= 行。
注册 Mozc
警告: 每次升级或(重新)安装 uim 时,您都必须运行以下命令。
# uim-module-manager --register mozc

Google 日语输入 CGI API

Google 日语输入 CGI API (Google-CGIAPI-Jp) 是 Google 提供的在互联网上进行日语转换的 CGI 服务。它可以在 网页浏览器 上使用。其转换引擎似乎与 Google 日语输入法相当,因此转换质量可能比 Mozc 更好。

注意: 此服务以纯文本形式发送/接收预编辑和候选词(截至 2012-09)。

您可以通过 uim 使用它。在 uim-im-switcher-gtk/gtk3/qt4 或 uim-pref-gtk/gtk3/qt4 上选择 “Google-CGIAPI-Jp”。

设置

环境变量

自动启动 以下内容于 Xorg 启动时

export GTK_IM_MODULE='uim'
export QT_IM_MODULE='uim'
uim-xim &
export XMODIFIERS='@im=uim'
注意: 变量应在启动桌面环境之前导出,即在 “exec startxfce4” 或类似命令之前。 请参阅下文 如果您使用 systemd 管理 X 会话。

工具栏实用程序

如果您想使用 UimToolbar 实用程序来显示和控制 uim 模式,也请添加以下内容之一

uim-toolbar-gtk/qt

使用工具栏以窗口形式显示。

对于 GTK 2

uim-toolbar-gtk &

对于 GTK 3

uim-toolbar-gtk3 &

对于 Qt4

uim-toolbar-qt4 &

uim-toolbar-gtk-systray

使用工具栏用于系统托盘。

对于 GTK 2

uim-toolbar-gtk-systray &

对于 GTK 3

uim-toolbar-gtk3-systray &

使用 systemd

如果您 使用 systemd 管理 X 会话,您需要在 systemd 会话中设置环境变量,而不是在 init 脚本中。

~/.config/systemd/user/uim-env.service
[Unit]
Description=uim environment initialization
Before=xorg.target

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl --user set-environment XMODIFIERS=@im=uim
ExecStart=/usr/bin/systemctl --user set-environment GTK_IM_MODULE=uim
ExecStart=/usr/bin/systemctl --user set-environment QT_IM_MODULE=uim
~/.config/systemd/user/uim.service
[Unit]
Description=uim daemon
Wants=uim-env.service
After=xorg.target

[Service]
ExecStart=/usr/bin/uim-xim
Restart=on-abort

[Install]
WantedBy=xorg.target
~/.config/systemd/user/uim-toolbar.service
[Unit]
Description=uim toolbar
PartOf=uim.service

[Service]
ExecStart=/usr/bin/uim-toolbar-of-your-choice
Restart=on-abort

[Install]
WantedBy=uim.service

最后,您需要 启用 uim.serviceuim-toolbar.service 用户单元

uim 偏好设置

运行  来配置 uim 偏好设置,这将弹出一个 GUI。

$ uim-pref-gtk (Or, uim-pref-gtk3/uim-pref-qt4)

which brings forth a GUI.

选择您偏好的输入法作为 “默认输入法”。

注意: Mozc 首次不会在 “默认输入法” 中列出,因此您需要将其添加到 “已启用的输入法” 中才能使用。

您可以运行 uim-xim 或重启 X 来测试您的设置。

如果一切顺利,您应该能够在 X 中输入日语了。

在 Emacs 中输入日语

uim 提供了 uim.el,这是 Emacs 和 uim 之间的桥梁软件。这是一个在 Emacs 上使用 uim 和 utf-8 编码的示例。

更多详情请参阅 官方 Wiki

LEIM 或 minor-mode

您可以从 Emacs 中以两种方式调用 uim.el:直接调用或使用 LEIM(Emacs 输入法库)框架。虽然它们的设置不同,但基本功能是相同的。如果您想在 uim.el 和其他 Emacs IM 之间频繁切换,则应使用 LEIM 框架。

minor-mode 的设置

如果您将要在次要模式下使用,请将以下设置写入您的 .emacs.d/init.el 或其他用于 Emacs 自定义的文件中。

;; read uim.el
(require 'uim)
;; uncomment next and comment out previous to load uim.el on-demand
;; (autoload 'uim-mode "uim" nil t)

;; key-binding for activate uim (ex. C-\)
(global-set-key "\C-\\" 'uim-mode)
LEIM 的设置

如果您将要通过 LEIM 使用,请将以下设置写入您的 .emacs.d/init.el 或其他用于 Emacs 自定义的文件中,并选择默认输入法。

;; read uim.el with LEIM initializing
(require 'uim-leim)

;; set default IM. Uncomment the one of the followings.
;(setq default-input-method "japanese-anthy-utf8-uim")        ; Anthy (UTF-8)
;(setq default-input-method "japanese-google-cgiapi-jp-uim")  ; Google-CGIAPI-Jp
;(setq default-input-method "japanese-mozc-uim")              ; Mozc

首选字符编码

uim.el 默认使用 euc-jp 字符编码。要将 UTF-8 设置为首选编码,请将以下内容添加到您的 .emacs.d/init.el 或其他用于 Emacs 自定义的文件中。

;; Set UTF-8 as preferred character encoding (default is euc-jp).
(setq uim-lang-code-alist
      (cons '("Japanese" "Japanese" utf-8 "UTF-8")
           (delete (assoc "Japanese" uim-lang-code-alist) 
                   uim-lang-code-alist)))

默认启用内联候选项显示模式

内联候选项显示模式在预编辑文本下方(或上方)垂直显示转换候选项,而不是在回显区域中显示。如果您想默认启用内联候选项显示模式,请按如下方式写入。

;; set inline candidates displaying mode as default
(setq uim-candidate-display-inline t)

默认设置平假名输入模式

要在激活 uim 时设置平假名输入模式,请添加如下所示的设置

;; Set Hiragana input mode at activating uim.
(setq uim-default-im-prop '("action_anthy_utf8_hiragana"
                            "action_google-cgiapi-jp_hiragana"
                            "action_mozc_hiragana"))

忽略 uim.el 上的 C-SPC

当您将输入法的激活/停用分配给 C-SPC 时,C-SPC 会在 uim.el 激活时被占用以切换输入模式。为了防止被占用并将其用于 set-mark-command,请将以下内容添加到您的 .emacs.d/init.el 或其他用于 Emacs 自定义的文件中。

(add-hook 'uim-load-hook
          '(lambda ()
             (define-key uim-mode-map [67108896] nil)
             (define-key uim-mode-map [0] nil)))

在 Emacs 上禁用 XIM

当您在桌面上使用输入法并将输入法的激活/停用分配给 C-SPC 时,您将无法在 Emacs 上使用 C-SPC/C-@ 作为 set-mark-command。为了避免这个问题,请将以下内容添加到您的 ~/.Xresources~/.Xdefaults 中。xim 将在 Emacs 上被禁用。

Emacs*UseXIM: false

故障排除

设置 GTK_IM_MODULE 变量,但 uim 仍然无法在 GTK 2 应用程序中工作

如果您已经设置了 GTK_IM_MODULE 环境变量,但 uim 仍然无法在 GTK 2 应用程序中工作,则需要指定 gtk.immodules 的位置,它是由 gtk-query-immodules-2.0 创建并可以使用其生成的。

对于 GTK 2,默认位置是 /etc/gtk-2.0/gtk.immodules

您可以使用 GTK_IM_MODULE_FILE 变量(不推荐,它会导致 GTK 3 应用程序看到不兼容的模块)或 im_module_file 设置(推荐)来完成此操作。

将以下内容添加到 /etc/gtk-2.0/gtkrc~/.gtkrc-2.0

 im_module_file "/etc/gtk-2.0/gtk.immodules"

无法在 Opera 上输入日语

如果您使用 Opera 并且无法使用 uim 输入日语,请尝试按如下方式编辑环境变量:确保将以下内容添加到 /usr/bin/opera 的开头。

export XMODIFIERS='@im=uim'
export QT_IM_MODULE='xim'

无法在全角模式下输入辅音

如果您无法在全角模式下输入辅音,请将以下内容添加到您的配置文件中。

   e.g.  vi ~/.uim.d/customs/custom-google-cgiapi-jp.scm
    
   (define ja-rk-rule-hoge
   (map
   (lambda (c)
   (list (cons (list c) ()) (list c c c)))
   '("b" "c" "d" "f" "g" "h" "j" "k" "l" "m"
   "p" "q" "r" "s" "t" "v" "w" "x" "y" "z"
   "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
   "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z")))
   (if (symbol-bound? 'ja-rk-rule-hoge)
   (set! ja-rk-rule (append ja-rk-rule-hoge ja-rk-rule)))

uim-toolbar-gtk-systray:托盘图标被挤压/显示不正常

尽管某些 DE、WM 或面板应用程序可能在系统托盘/通知区域上仅为每个应用程序提供一个图标空间,但 uim-toolbar-gtk-systray 默认情况下会在其上显示一些图标,因此这些图标被挤压/显示不正常。选择其中一个即可解决问题。例如,仅显示“输入模式”图标的步骤如下

  1. 运行 uim-pref-gtk
  2. 在“Group”列表上点击“Toolbar”。
  3. 取消选中所有复选标记。
  4. 在“Group”列表上点击您正在使用的“Anthy”、“Anthy (UTF-8)”或“Mozc”。
  5. 点击“Toolbar”框中的“Edit”按钮 > “Enable toolbar buttons”行。
  6. 仅启用“Input mode”,然后点击“Close”按钮。
  7. 点击“OK”按钮以关闭 uim-pref-gtk。

托盘图标将显示 “あ”(平假名模式)或 “ー”(直接模式)。

我使用较暗的主题,我无法看清 uim 模式图标

您可以选择用于较暗背景的图标(uim 1.6.0 或更高版本)。

  1. 运行 uim-pref-gtk
  2. 在“Group”列表上点击“Toolbar”。
  3. 选中“Use icon for dark background”。

另请参阅

uim
uim 官方文档
Wikibooks:uim
字体
日文字体展示[死链 2024-10-12 ⓘ]
修改过的日文字体