【 tulaoshi.com - Linux 】
(migr@operamail.com) 2000/4
本文将介绍在 RedHat 6.2 中,设置中文显示和输入的方法。感谢网友 Rigel、于明俭老师等给予的帮助。特别感谢于
老师开发了 Chinput 中文输入服务器软件,使在 Linux 下可以方便的使用中文。
存在于 RedHat 6.2 中的 XFree86-3.3.6 视窗系统字体解释器freetype对中文TrueType字体的解释效果不太好,但在
XFree86-4.0 中新增的 xtt 组件会得到更好的视觉效果。
由于我对 Linux 了解尚浅,错误难免,请大家能及时指出。并希望大家能提供更多的中文化软件的方法与技巧。
升级到 RedHat 6.2
升级到新的版本一般是通过获得一张新版CD,重新安装时选择升级完成的。但我个人则是从网上下载到部分更新的软件包,
自行升级的。如果你也是使用这种方法,则有些事情需注意,否则,可以忽略本节。
升级可按照:系统核心、基本C函数库、库连接工具、X视窗系统、X高级控件库、桌面系统的顺序进行。当需要编译软件时,
升级相关编译程序和库开发包。
在 XFree86 的更新中,使用 xfs 的用户需要注意:当你升级 XFree86-xfs
后,它并不使用新的配置文件替换旧的,而是将其保存为 .rpmnew 形式。所以应将
/etc/X11/fs/config.rpmsnew
改成 config,并重新使用 chkfontpath
命令重新配置字体搜索路径,因为新的配置文件会有时会包含某此些重要的选项。若不使用 xfs 字体服务器,则直接修改
/etc/X11/XF86config 文件,加上你所使用的字体描叙即可。
Locale 的设置
由于在 RedHat 的 Glibc 2.1.3 中未包含 zh_CN.GB2312,需从台湾的Linux 中文扩展项目的
ftp 网站获取中文GB2312 场所的源码包。下载地址如下:
ftp://cle.linux.org.tw/pub/CLE/SRPMS/SRPMS/
locale-zh-0.9.src.rpm <== 目前的版本,包含 GB 和 BIG5
注:若无法连接台湾的站点,可到我的主页下载。我制作了一个locale数据包,包含CLE项目的gb2312,
big5和TLC的gbk编码。
下载后,以 root 身份,编译该源码包(请务必重新编译,旧的数据包将无法使用)。步聚如下:
rpm -ivh locale-zh-0.9.src.rpm
该命令将源码包安装在 /usr/src/redhat/ 目录下,进入 SPECS 子目录,输入
rpm -ba zh-localedata.spec
建立 RPM 包。如果无问题的话,生成的 RPM 包在 RPMS/i386 目录下,可以把它保存起来,可供以后使用。在SRPMS 下,
生成一个新的源码包,不需要可删除。安装 locale:
rpm -Uvh locale-zh-0.9.i386.rpm
安装完,设置使用该场所,以 bash 为例:
export LC_ALL=zh_CN.GB2312
使用 locale 命令可以看到所有的 LC_* 变量都换过来了,检查该 locale 是否有效。有两种方法,一是使用 glibc 的
setlocale(LC_ALL, "") 函数来检测,检测程序如下:
testlocale.c 清单
-----------------
#include
#include
int main(void)
{
char *current_locale;
current_locale=setlocale(LC_ALL, "");
if(current_locale)
printf("Current locale: %sn", current_locale);
else
printf("Doesn't support.n");
return 0;
}
编译:gcc testlocale.c -o testlocale
执行:若支持,则显示场所名
另一种更简单的方法是呼唤一个命令,看是否 locale 起作用了,如 rpm -qi kernel 如果你看到显示结果的时间变成????y??m??d,那么 locale 已经生效了。
通过了上面的任一种测试,可说明 glibc 已本地化了。
另外,可以在 /usr/share/locale/locale.alias 文件中定义 locale
的别名,该别名可以有助于记忆,如在该文件中加入一行为:
china zh_CN.GB2312
然后使用 export LC_ALL=china 则完成与上一种方法相同的功能,而且更直观。为了在以后登录后就使