RedHat 6.2 中文显示与输入的设置
发布时间:2006-10-14 8:55:15   收集提供:gaoqian
(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: %s\n", 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 则完成与上一种方法相同的功能,而且更直观。为了在以后登录后就使用中文的locale,
可以将此命令加入到你的 HOME 目录的 .bashrc 文件中。 

接下是就是有关 XLC_LOCALE 的设置了。在 /usr/lib/X11/locale/locale.alias 文件加入一行: 

zh_CN.GB2312 zh_CN.eucCN 

到此,glibc 和 Xlib 的 locale 就配置完成了。 

Chinput 的安装 

自从于明俭老师在他的 Chinput 中文输入服务器软件中加入了 XIM 支持,遵从 Linux 国际化标准,使得我们可以在任何
遵守国际化标准的 Linux 产品中输入中文了。该软件可以从他的主页下载。 

http://www.turbolinux.com.cn/~justiny/download/chinput-2.1.tar.gz 

下载后,解开该文件:tar -xvzf chinput-2.1.tar.gz 

解开后,再对源码作一点点改动。进入 Chinput-2.1/src 里,使用你喜欢的编辑器,打开 chinput.c 
文件,查找 GBK字样,将其改为 GB2312。再查找 

system("/usr/bin/zwincontrol &"); 

语句,将其取消(在前面加上 // ),该语句是启动 ZWinPro 汉化平台的工具条的,chinput 的包里没有。 

修改完后,回到 Chinput-2.1 目录下,执行 make 建立该软件。软件的安装请参阅其自带的文档。 

安装完成后,可以尝试中文输入了。进入 X Windows 环境。选择 Run,输入 
chinput,中文输入服务器就加载了。调用一个支持 XIM 输入的程序,如 gedit,输入几个汉字试试,很好用。 

为了能在下次进入 GNOME 时自动启动输入服务器,可在 GNOME Control Center 的 Startup Programs 项目中加入chinput。 

注:chinput 输入服务器,仅对支持 XIM 的软件有效,如果该软件支持这种输入方式,敲入 ctrl-space 就会出现输入条,
否则无任何显示。 

应用软件的中文支持设置 

GTK 1.2 

修改 GTK 工具集的资源文件。在 /etc/gtk/gtkrc.zh_CN 文件中将所有的字体定义改为: 

fontset = "-*-*-medium-r-normal--16-*-*-*-*-*-iso8859-1,\ 
-*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0" 


由于 GTK 自定义使用14点阵象素的字体,而 Xfree86 仅带中文16点阵字体,所以需要将所有的字体尺寸描途改为16。
另外在 TurboLinux 中带有一个中文字体包 hz-pcfs,其中包含14,16,24点阵的中文字体,可取过来使用。 

修改完之后,可以试一试效果了。我使用的是 GNOME 桌面,启动 X 后,选择工具菜单中的 Text File Viewer程序,
打开一个中文文件,无问题的话,就可以看到熟悉的中文了。另外,目前最出的 GNOME 1.2 
的桌面系统,升级了 GTK,增加了更多的中文提示信息,很好用,值得一试。下载网址: 
http://www.helixcode.com。 

假若你看到的中文是乱码的话,可尝试做以下的修改。确定你所使用的桌面主题,不同的桌面主题采用了自制了gtkrc 文件,
当使用这些主题的时候,GTK 并没有从 /etc/gtk 中读取 gtkrc 文件,所以需要对相应主题的 gtkrc资源配置文件增加中文
字体描叙,使其可以正确的找到相应的中文字体。以 Default 为例,在 /usr/share/themes/Default/gtk 中会有一个 gtkrc 
的文件,查看其内容,将其所有的字体描述改为像 /etc/gtk/gtkrc.zh_CN 那个样子就行了。 

Qt 1.44 

关于 qt 1.44 高级控件集的中文设置问题,我还不清楚 :( 

GNOME 

对于 GNOME,有些提示项可以直接修改,而有些固化词条(stock item)则需要 GNOME libs 本身对中文信息支持,
所以修改 .desktop 文件是一件最简单的方法。(若对 GNOME 信息中文化有兴趣,可联系gnome 开发组,帮助完成中
文翻译工作。) 

汉化 GNOME 的菜单项: 

在 /usr/share/gnome/apps/ 下,有一些以 .desktop 为后缀的文件,打开该文件,加入一行 

Name[zh]=你想要的中文名 

则可对相应的菜单项增加中文名,很容易,一看就会。GNOME 的个人菜单项存放在 HOME 目录下的 .gnome/apps目录里,
形式相同。 

Netscape 

FIXME: Netscape 
的中文设置还没完成,暂时只给出一些简单的配置供参考。效果:只能在netscape的控件中输入和显示中文,在页面显
示区的form控件中只能输入,不能显示:( 

将以下几行加入到 home 的 .Xdefaults 文件中 

!!!!!!!!!!!!!!!!!!!!!! 
!!!! For Netscape !!!! 

Netscape*versionLocale: zh_CN 
Netscape*defaultCharset:gb2312 

Netscape*fontList:\ 
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;\ 
-isas-*-*-*-*--14-*-*-*-*-*-*-*: 

Netscape*XmTextField.fontList:\ 
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;\ 
-isas-*-*-*-*--14-*-*-*-*-*-*-*: 

Netscape*XmText.fontList:\ 
-adobe-helvetica-medium-r-*--14-*-*-*-*-*-*-*;\ 
-isas-*-*-*-*--14-*-*-*-*-*-*-*: 

Netscape*inputMethod: Chinput 
Netscape*preeditType: root 

网络资源 

www.linuxforum.net 中国Linux论坛 
www.turbolinux.com.cn/~justiny/ 于明俭的主页,关于 Chinput 的资料。 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50