在Ubuntu Linux系统英文界面下处理中文
在中文 Linux 社区中,除了讨论有关中文字体美化的问题之外,就属在 Linux 英文界面下进行中文处理的话题最热门了。得益于 Linux 良好的 i18n 特性,几乎所有的 Linux 发行版在安装之后,都可以自由地切换到任意语言的界面下进行工作。(而不似 Windows 那般,一个操作系统,居然还分成 N 种语言版本来销售。)
以前在 Redhat/Fedora Core 中弄过一样的事情,不过内中流程甚为繁琐。还好在 Ubuntu 中,这件事情变得简单易行。在 Linux 英文界面下处理中文,主要需要解决两件事情。首先是中文输入法的问题,其次是中文显示(美观)的问题。
在切换到英文界面之后,编辑配置文件 /etc/environment,增加或者修改相应的 locale 设置:
LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= LANGUAGE="en_US:en" GST_ID3_TAG_ENCODING=GBK LANG=en_US.UTF-8
这样使得在需要使用中文的地方能够良好的表现中文,而其他地方能够展现英文。
然后编辑 X 的输入法配置文件 /etc/X11/Xsession.d/95input(如果没有这个文件,就创建一个):
export XIM=SCIM
export XMODIFIERS=@im=SCIM
scim -d
(这一步在安装 SCIM 就应该做好了的。)
最后编辑字体配置文件 /etc/fonts/fonts.conf。我使用的中文字体是 Apple OS X 下的华文黑体,因而需要在此文件中定义一段:
<!-- OS X Heiti --> <match target="font"> <test name="family"> <string>STHeiti</string> </test> <edit name="hinting"> <bool>false</bool> </edit> </match>
然后在此配置文件中找到
<!-- Mark common families with their generics so we'll get something reasonable -->
这么一段,在日文字体前加上你所要使用的中文字体(因为很多日文汉字也可以用来表示汉文汉字,所以如果不做这一步的话,在浏览网页的时候就会容易出现两种语言的汉字混合在一起显示的情况)。
比如说 <family>Kochi Mincho</family> 明显的是日文字体的配置,那我们就可以在此之前加上 <family>STHeiti</family>的配置。之后还需要修改 <!-- Provide required aliases for standard names -->
下面的相应配置。
修改完毕之后,重启 X Server,重新登录就 OK 了。