您的位置:首页 > 其它

BT5R3 安装中文输入法安装及配置

2014-02-12 23:24 281 查看
目标:

BT5R3 安装中文输入法,同时保证:

1. 系统和应用程序全部为英文(系统菜单、应用程序工具栏、默认输入法等)

2.当需要阅读和撰写中文文档的时候,能正确的显示中文并调出中文输入法.

步骤及问题:

1. 放狗发现,通过下列方法可以安装中文包及输入法:

refer to: http://www.linuxidc.com/Linux/2012-07/65618.htm
安语言包装

apt-get install language-support-zh language-pack-zh

安装语言选择器

apt-get install language-selector-qt

apt-get install language-selector

设置

打开System-Administration-Language Support, Install/Remove Language中选择 Chinese(simplified),然后点ok.

安装完中文包后我们到Settings->System Settings->Locale->add languages

Ibus中文输入法

在终端输入:sudo apt-get install ibus-table-wubi ibus-pinyin

安装完成后在System->perferences下会出现Ibus perferences条目,在其中设置要使用的输入法。首次启动会出现:

IBus has been started! If you can not use IBus, please add below lines in $HOME/.bashrc, and relogin your desktop.

export GTK_IM_MODULE=ibus

export XMODIFIERS=@im=ibus

export QT_IM_MODULE=ibus

设置开机自动启动IBUS:

System >> Preferences >> Startup Applications

Click the button: Add

Name: ibus daemon

Command: /usr/bin/ibus-daemon –d

完成设置,logout 并重新启动 X window。发现可以中文输入法可以正常工作。但是,问题产生了。桌面及一些应用程序也变成了中文,如shell 环境:

root@bot:~# testcommand

testcommand: 没有找到命令

对于习惯于英文系统的本人来说,这种提示实在是碍眼,这也是本文开始目标一存在的原因。

2. 继续放狗,发现一篇文章讲到变量LANG的作用,并通过配置startx的参数在FC4 Linux上成功解决了这个问题。于是乎,仿照这个思路,开始观 察 BT3R5 的startx 命令。

先附上参考资料:http://blog.csdn.net/luyushuang/article/details/8996538



首先把语言跳回到 en_US(echo $LANG en_US.utf8)

打开 startx, 发现如下一行:

xinit "$client" $clientargs -- "$server" $display $serverargs

startx 实际上调用了 xinit 来初始化 X window (server and client), 为了省去读一大串的startx 的脚本,干脆 将上述命令中用到的几个参数一一 打印出来,发现不加参数(鄙人通常情况下,直接 startx 启动 xwindow)的情况下,几个参数的值依次为:

/etc/X11/xinit/xinitrc

# 此处空行,表示$clientargs 为空

/etc/X11/xinit/xserverrc

:0

-auth /tmp/serverauth.0D93ImveAw

可知,参数均来自/etc/X11/xint/xinitrc 和 /etc/X11/xinit/xserverrc, 不太清楚到时是 server 还是 client 负责语言支持,所以先从client开始,

于是开始追踪 /etc/X11/xint/xinitrc, 发现其内容为:

. /etc/X11/Xsession

file /etc/X11/Xsession 发现 Xsession 是一个shell 脚本文件,于是继续追踪进来,发现其中有如下几行:

# initialize variables for use by all session scripts

OPTIONFILE=/etc/X11/Xsession.options

SYSRESOURCES=/etc/X11/Xresources

USRRESOURCES=$HOME/.Xresources

SYSSESSIONDIR=/etc/X11/Xsession.d

USERXSESSION=$HOME/.xsession

USERXSESSIONRC=$HOME/.xsessionrc

ALTUSERXSESSION=$HOME/.Xsession

ERRFILE=$HOME/.xsession-errors

把几个文件或者位置都观察了一下,发现最关键的一个是:

SYSSESSIONDIR=/etc/X11/Xsession.d

进入这个folder 发现里面有许多看起来像是配置文件的东西:

root@bt:~# ll /etc/X11/Xsession.d/

total 64

drwxr-xr-x 2 root root 4096 2014-02-12 22:08 ./

drwxr-xr-x 10 root root 4096 2014-02-12 21:08 ../

-rw-r--r-- 1 root root 2030 2010-04-01 19:19 20x11-common_process-args

-rw-r--r-- 1 root root 878 2010-03-31 00:13 30x11-common_xresources

-rw-r--r-- 1 root root 187 2008-07-02 01:41 40x11-common_xsessionrc

-rw-r--r-- 1 root root 1535 2010-03-31 00:13 50x11-common_determine-startup

-rw-r--r-- 1 root root 197 2010-01-16 12:54 52libcanberra-gtk-module_add-to-gtk-modules

-rw-r--r-- 1 root root 670 2010-03-30 17:22 55gnome-session_gnomerc

-rw-r--r-- 1 root root 146 2010-04-01 19:07 60x11-common_localhost

-rw-r--r-- 1 root root 322 2010-03-30 20:43 70gconfd_path-on-session

-rw-r--r-- 1 root root 368 2011-01-05 06:23 75dbus_dbus-launch

-rwxr-xr-x 1 root root 2347 2014-02-12 22:08 80im-switch*

-rw-r--r-- 1 root root 1027 2010-11-12 23:23 90consolekit

-rw-r--r-- 1 root root 629 2010-03-31 00:13 90x11-common_ssh-agent

-rwxr-xr-x 1 root root 394 2013-08-22 22:37 99-vmware_vmware-user*

-rw-r--r-- 1 root root 166 2008-07-02 01:41 99x11-common_start

不太清楚这些文件用来干什么,但应该与启动 x window 的 配置项有关,于是,又傻逼的挨个浏览这些文件,(其实后来才知道,80im-switch*配置了关于输入法的内容, im means
input method),打开80im-switch*的时候发现了以下内容:

# $LNG is locale <language>_<region> without
.<encoding> and .<encoding>@EURO

LNG=${LC_ALL:-${LC_CTYPE:-${LANG}}}

LNG=${LNG%@*}

LNG=${LNG%.*}

LNG="zh_CN" # 这一行 为后来加上的,通过这一行,可以实现最终目标

[ -z "$LNG" ] && LNG="all_ALL" || true

echo "Setting IM through im-switch for locale=$LNG."

echo $LNG >> $HOME/record.log

# Source first found configuration under $LNG locale

for f in "$HOME/.xinput.d/${LNG}" \

"$HOME/.xinput.d/all_ALL" \

"/etc/X11/xinit/xinput.d/${LNG}" \

"/etc/X11/xinit/xinput.d/all_ALL" \

"/etc/X11/xinit/xinput.d/default" ; do

if [ -f "$f" -a -r "$f" ]; then

echo "Start IM through $f linked to $(readlink -f $f)."

. "$f"

break

fi

done



按照 上述 红色高亮部分修改80im-switch* 这个文件,保存,然后重新登录启动xwindow, 发现 要求的两个目标全部实现。

具体原理,请参照:http://blog.csdn.net/luyushuang/article/details/8996538

3. 综上,总结的达到本文开始的两个目标的方法是:

a. 按照第一步的方法,安装语言包,语言管理器(等),ibus 输入法 并配置等工作
b. 将系统调回至英文,并在/etc/X11/Xsession.d/80im-switch*
中添加LNG="zh_CN",添加位置可以是LNG=${LNG%.*}的后面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: