Difference between revisions of "IBus (简体中文)"

From ArchWiki
Jump to: navigation, search
(中文输入)
(LibreOffice)
Line 178: Line 178:
  
 
===LibreOffice===
 
===LibreOffice===
LibreOffice (and OpenOffice) ship with an old libc version which causes ibus to fail to load. To fix this, remove the shipped libstdc++.so.6 at "/usr/lib/libreoffice/basis-link/ure-link/lib/libstdc++.so.6".
+
如果 IBus 确实已经启动,但是在 LibreOffice 里没有出现输入窗口,你需要在 ~/.bashrc 里加入这行:
 
+
If IBus does load but doesn't see LibreOffice as an input window, add this line to ~/.bashrc:
+
 
  export XMODIFIERS=@im=ibus
 
  export XMODIFIERS=@im=ibus
And then, you need to start ibus with "-xim -d", for example, add this line to ~/.xinitrc:
+
然后你需要用 "--xim -d" 参数来启动 ibus, 你可以在 ~/.xinitrc 中加入这行:
 
  ibus-daemon --xim -d
 
  ibus-daemon --xim -d
But the horrible thing is that you need to start libreoffice in terminal.
+
但是可怕的是你必须在终端中启动 LibreOffice。
 +
 
 +
如果你使用 KDE 而上面的方法没用,而你也不介意在 GTK2 模式下运行 LibreOffice,安装 "libreoffice-gnome" 然后在 ~/.xprofile 中添加此行:
 +
export OOO_FORCE_DESKTOP="gnome"
 +
 
 +
这会使 IBus 在 LibreOffice 正常使用,你也可以在任何地方启动 LibreOffice -- 而不只是在终端。

Revision as of 14:12, 23 April 2013

Tango-preferences-desktop-locale.png本页面需要更新翻译,内容可能已经与英文脱节。要贡献翻译,请访问简体中文翻译组Tango-preferences-desktop-locale.png

附注: please use the first argument of the template to provide more detailed indications.

IBus ("Intelligent Input Bus") 是一个 输入法框架,一个输入非英语字符的系统。IBus 的功能与 SCIMUIM 类似。

安装

从官方仓库安装ibus软件包:

# pacman -S ibus

此外,为了启动ibus的Qt应用程序支持, 安装ibus-qt软件库:

# pacman -S ibus-qt 

输入法引擎

你至少需要一个支持你所想用的语言的输入法。可用的输入法包括:

  • ibus-anthy: 一个日文输入法引擎,基于anthy
  • ibus-pinyin: 一个智能中文语音输入法引擎,支持汉语拼音与注音符号。设计者为Ibus的主要作者,而且有许多的高级功能(如英文拼错修改)。
  • ibus-rime:一个强大的智能中文输入法,支持拼音、注音或者没有音调的拼音、双拼、粤拼、中州韵、仓颉和五笔86。
  • ibus-chewing:一个智能中文语音输入法引擎,支持注音符号,基于libchewing
  • ibus-hangul: 一个韩文输入法,基于libhangul
  • ibus-unikey: 支持越南文字的输入法引擎。
  • ibus-table: 一个支持查表型输入法的输入法引擎。
  • ibus-m17n: 一个m17n输入法引擎,可以用m17n-db数据库中的输入法来输入许多语言。
  • ibus-keymagic:一个复合型智能输入法,它被设计成可以工作于所有语言,但需要和kms脚本生成的km2键盘布局共同使用。

见所有可用的输入法:

$ pacman -Ss ^ibus-*

其他软包也供给于AUR.

初始安装

现在运行ibus-setup的初始程序(当要用Ibus的用户):

$ ibus-setup

它会启动后台程序,并给你这条信息:

IBus has been started! If you cannot use IBus, please add below lines in $HOME/.bashrc, and relogin your desktop.
(译:IBus已启动!如果您还不能用Ibus,请您先将以下的三行代码加到$HOME/.bashrc,再重新登录。)
  export GTK_IM_MODULE=ibus
  export XMODIFIERS=@im=ibus
  export QT_IM_MODULE=ibus
注意: 虽然Ibus使用一个后台程序,但是它不是被/etc/rc.conf中的DAEMONS(后台程序)阵列管理的那种后台程序:它当普通用户运行,并你登录时,它会启动。
注意: 但是,如果ibus尚未启动,先将那些"export"的代码复制到$HOME/.xprofile,并将这行代码加到该文件:“ibus-daemon -x -d”,再重新登录。

之后,你会看到一张设置屏幕。Ibus运行时,可以随时访问该屏幕,在系统托盘中的Ibus图符点击右键,选择"Preferences"(选项)即可。详见Configuration.

如果Ibus在Qt、KDE应用程序中不工作,保证ibus-qt软件库已安装,并在Qt设置编辑器中将Ibus制定为默认输入法引擎:

$ qtconfig

在 "Interface" -> "Default Input Method" (译:“界面”->“默认输入法引擎”) 中,选择“ibus”,而不是"xim"。

配置

注意: 如果你想输入汉、日、韩、越南文字,需要安装东亚字体

默认的"General"(常规)设置应该可以用,但是点击“Input Methods"(输入法), 在键下拉式列表框中选择你的输入法之后,点击“Add"(添加)。 Ibus一配置好,就可以按Ctrl+Space使用(按多次为多语言转换)。在每个窗口当中,Ibus会记住你所用的输入法,所以每个窗口都需要重新启动。 你可以超驰这种行为。在系统托盘的图符上点击右键,选择“Preferences"(首选项),然后点击“Advanced"(高级)的标签即可。

小贴士及技巧

使用拼音

当使用 ibus-pinyin时,

  • 首先用拼音(无声调)打你想输入的字。
  • 反复地按上和下选择一个字(如果有必要,启程前往下一页)
  • 按Space使用一个字。
  • 你也可以用上页和下页,并使用1-5的数字键选择你需要的字。
  • 你可以一次输入组成一个词或一条短语的若干字(如"zhongwen"可以输入"中文"). ibus-pinyin会记住你最经常打的字,并渐渐做适合你的打字配置文件的建议。

疑难解答

Kimpanel

目前IBus的主界面只支持GTK,Kimpanel 提供了原生的 Qt/KDE 输入界面。 但是,目前kimpanel在Arch Linux环境下因并不能很好的工作(部分原因是FS#19580),因此需要额外地配置一下。

安装Kimpanel:

# pacman -S kdeplasma-addons-applets-kimpanel

下载和你的KDE版本对应的 kdeplasma-addons 的源文件,并解压缩。

$ wget -c http://download.kde.org/stable/4.x.x/src/kdeplasma-addons-4.x.x.tar.bz2
$ tar -xvf kdeplasma-addons-4.x.x.tar.bz2

拷贝系统里没有的文件:

# mkdir /usr/share/ibus/ui/qt
# cp kdeplasma-addons-4.x.x/applets/kimpanel/backend/ibus/panel.py /usr/share/ibus/ui/qt/panel.py
# cp kdeplasma-addons-4.x.x/applets/kimpanel/backend/ibus/qtpanel.xml /usr/share/ibus/component/qtpanel.xml

编辑 /usr/share/ibus/ui/qt/panel.py:

#!/usr/bin/env python2
# vim:set et sts=4 sw=4:
...

编辑 /usr/share/ibus/component/qtpanel.xml:

<?xml version=1.0 encoding=utf-8?>
<!-- filename: qtpanel.xml -->
<component>
    <name>org.freedesktop.IBus.Panel</name>
    <description>Qt Panel Component</description>
    <exec>/usr/lib/ibus/ibus-ui-qt</exec>
    <version>0.0.1</version>
    <author>Wang Hoi <zealot.hoi@gmail.com></author>
    <license>LGPL</license>
    <homepage></homepage>
    <textdomain>ibus</textdomain>
</component>

拷贝 /usr/lib/ibus/ibus-ui-gtk 文件到 /usr/lib/ibus/ibus-ui-qt 并编辑:

# cp /usr/lib/ibus/ibus-ui-gtk /usr/lib/ibus/ibus-ui-qt
#!/bin/sh
#
# ibus - The Input Bus
#
# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
# Copyright (c) 2007-2010 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,                                                                              
# but WITHOUT ANY WARRANTY; without even the implied warranty of                                                                               
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                                                
# GNU Lesser General Public License for more details.                                                                                          
#                                                                                                                                              
# You should have received a copy of the GNU Lesser General Public                                                                             
# License along with this program; if not, write to the                                                                                        
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,                                                                                  
# Boston, MA  02111-1307  USA                                                                                                                  
                                                                                                                                              
prefix=/usr                                                                                                                                    
exec_prefix=${prefix}                                                                                                                          
datarootdir=${prefix}/share                                                                                                                    
export IBUS_PREFIX=/usr
export IBUS_DATAROOTDIR=${prefix}/share
export IBUS_LOCALEDIR=${datarootdir}/locale

exec python2 /usr/share/ibus/ui/qt/panel.py $@

最后,在你的任务栏上添加小工具 Input Methode Panel 并运行 ibus-setup:

$ ibus-setup

rxvt-unicode

如果有ibus与rxvt-unicode包的问题,以下的步骤应该将它解决好。

将以下的两行代码添加到你的.Xdefaults文件(可能不需要,先尝试,如果问题出现,再添加代码):

  URxvt.inputMethod: ibus
  URxvt.preeditType: OnTheSpot,None

然后用以下的命令启动Ibus:

  ibus-daemon --xim

如果你自动地开始ibus-daemon(如在~/.xinitrc或~/.xsession中),但是以前用过没有'--xim'选项的'ibus-daemon &' 命令,先保证已经将已存在的流程杀掉,再尝试新命令。

GTK 应用程序

有些用户在GTK应用程序下使用输入法时会因为无法找到gtk.immodules文件而出现问题。在$HOME/.bashrc中加入

 (gtk2) export GTK_IM_MODULE_FILE=/etc/gtk-2.0/gtk.immodules
 (gtk3) export GTK_IM_MODULE_FILE=/usr/lib/gtk-3.0/3.0.0/immodules.cache

应该会解决问题。

注意: 如果你设置为gtk2,那么你无法使用gtk3的应用程序比如gedit, 如果你设置为gtk3,那么你无法使用gtk2的应用程序比如xfce

中文输入

如果你在输入中文时遇到问题,检查你的 locale 设置。比如在香港,export LANG=zh_HK.utf8。

注意: ibus 在 1.4 版本后有些大的修正,你可能无法使用 ibus-pinyin 或 ibus-sunpinyin 输入中文。解决方法有:
  • 安装 ibus-libpinyin。

你可以安装 ibus-libpinyin

如需 ibus 随 gnome 启动,把这些加入 ~/.profile 后重启 gnome。

   export GTK_IM_MODULE=ibus
   export XMODIFIERS=@im=ibus
   export QT_IM_MODULE=ibus
   ibus-daemon -d -x

更详细的解决方案可以查看 这里

LibreOffice

如果 IBus 确实已经启动,但是在 LibreOffice 里没有出现输入窗口,你需要在 ~/.bashrc 里加入这行:

export XMODIFIERS=@im=ibus

然后你需要用 "--xim -d" 参数来启动 ibus, 你可以在 ~/.xinitrc 中加入这行:

ibus-daemon --xim -d

但是可怕的是你必须在终端中启动 LibreOffice。

如果你使用 KDE 而上面的方法没用,而你也不介意在 GTK2 模式下运行 LibreOffice,安装 "libreoffice-gnome" 然后在 ~/.xprofile 中添加此行:

export OOO_FORCE_DESKTOP="gnome"

这会使 IBus 在 LibreOffice 正常使用,你也可以在任何地方启动 LibreOffice -- 而不只是在终端。