RedHat 7.1中语言汉化完全攻略
文/cLinuxer
对于国内很多想学、初学Linux的用户来说,丑陋的中文支持是阻碍他们持续使用下去的最主要原因。失望之余也许你会选择安装一个像BluePoint、红旗、TurboLinux等中文版本,不过在Linux阵营中,RedHat又是我们不得不涉及的,网上铺天盖地的资料、软件都是For RedHat的,其它的版本要不兼容性有问题,要不就根本找不到你需要的指令……此时才真的感觉到了“熊掌与鱼二者不可兼得”的含义!
不过随着RedHat 7.1的推出,这些问题终于有了解决的眉目,RedHat采用的内核是kernel 2.4.2,XFree86是4.03,KDE是2.1.1,glibc是2.2.2,操作系统底层对国际化已经支持得很好。如果你只要显示中文或者浏览中文网页,根本无须额外安装任何软件就可以实现。
Linux国际化和本地化
要让Linux支持多语种,涉及到两个方面的问题——国际化和本地化,也就是人们常说的i18n和l10n。
1.i18n
“国际化”,国际化的英文是Internati-onalization,这个英文单字的第一个字母i与最后一个字母n之间有18个字母,所以也常常被简称为i18n。 i18n是一种观念,用来提供一个架构,让同样的代码可以适用于各种语种习惯和编码系统,程序设计人员只要利用这个架构的机制、准则编写应用程序,就可以在不新编译代码的情况下,支持各式各样的语言(其中特别重要的就属C程序库以及X图形界面的国际化设计了)。
2.l10n
“本地化”,英文为Localization,因为l和n之间有10个字符,所以也常简称为l10n。l10n的主要作用是对软件进行加工,使之满足特定市场上的用户对语言和功能的特殊要求。涉及到文字的翻译、用户界面布局调整、本地化特性开发、联机文档和印刷手册的制作,以及保证本地化版本能正常工作的软件质量保证活动,其中当然还应该有输入法的支持。
也就是说,i18n提供操作系统底层的支持,l10n提供本地支持。像我们见过的Win2000就是以这种模式开发的,不同语种的Win2000的内核完全一样(i18n),只是操作界面和文档等不同(l10n)。
内置中文支持
RedHat采用Locale技术来提供多语种支持,我们只要设置好相应的Locale就可以了。
需要说明的是,“典型安装”的RedHat 7.1并没有简体中文支持,必须手工选择简体中文支持,如果你是新手不知道如何选择,那也很简单,安装的时候选择定制类型中的“Everything(完全安装)”就可以帮助你解决这个问题,不过你需要足够的磁盘空间(需要2.5GB)。
1、设置中文locale
RedHat的locale切换很简单:进入Linux窗口界面,执行locale_config会弹出一个选择本地语言窗口,选择“Chinese(CN.GB2312) zh_CN.GB2312”来设置locale为“简体中文”,如果你想试用一下“繁体中文”,也可以选择“Chinese(TW.Big5) zh_TW.Big5”。
2、中文locale应用
打开一个控制台,运行date命令。怎么看到的是一行乱码?没错,应该是乱码,不过这说明你已经正确地设置了中文locale。
(1)Gnome环境
运行startx进入默认的GNome桌面,你将看到任务栏上的时间已经变成中文显示了,而且在左下角的那个大脚板中的菜单也有中文了(注意:我这里说的是“也有”而不是“也是”,这是由于Gnome的“简体中文化”还没有完全完工,你看到的菜单实际上是中英文混杂)。
也许很多朋友更加习惯KDE环境,没关系,执行switchdesk可以通过图形界面选择你喜欢的操作环境(Gnome、KDE、FVWM等等)……
(2)KDE环境
相对于Gnome来说,KDE的本地化做得更好一些,至少菜单都是完全的中文显示。不过不知道什么原因,我完全安装的RedHat 7.1还是没有安装KDE的简体中文包,需要手工添加,将RedHat 7.1的第一张光盘放进光驱,然后执行以下命令:
mount /mnt/cdrom
cd /mnt/cdrom/RedHat/RPMS
rpm -ivh kde-i18n-Chinese-2.1.1-2.noarch.rpm
rpm -ivh kde-i18n-Chinese-Big5-2.1.1-2.noarch.rpm
这样,KDE的简/繁体中文显示支持已经装好,你需要做的就是设置一下显示的语言、字体。
打开KDE的控制中心(Control Center),选择“Personalization(个性化设置)”/“Country & Language(国家和语言设置)”,设置如下:
Country: Asia & Oceania/China
Language:Simplified Chinese(zh_CN.GB2312)
Chars: gb2312.1980-0
(3)显示中文目录/文件名
RedHat是可以显示中文的目录和文件名的,你只需要在mount后边添上一个-o codepage=936, iocharset=cp936参数就可以了,比如:
mount -t vfat /dev/hda1 /mnt/dosc -o codepage=936,iocharset=cp936
还有一个一劳永逸的方法,修改/etc/fstab,下边是我的fstab文件:
Linux下的中文输入法很多,可是并不是每一种输入法都可以在RedHat 7.1下使用,一般你都需要做些调整,而且这种调整对于初学者来说绝对是“难于上青天”的。
Linux下有两种通用的输入法软件chinput和xcin,安装起来都十分麻烦。为简单起见,我们采用拿来主义,借用RedFlag(红旗)Linux下的rfinput输入法来实现RedHat 7.1下的中文输入。
网友PopWander将RedFlag Linux下的输入法移植到了RedHat 7.1下,我们可以到http://go3.163.com/~popwander/software/rf-xim-input-2.1-2.i386.rpm下载,然后执行以下指令安装:
rpm -ivh --force rf-xim-input-2.1-2.i386.rpm
rfinput自带中文点阵字体,并自动设置环境变量,在RedHat 7.1下无需其它任何设置,它随KDE/Gnome的启动而启动,需要输入中文时你只需要按下Ctrl+Space就可以调出中文输入法,对于KDE用户而言,你也可以直接点击桌面右下角的图标选择输入法。
rfinput包括智能ABC、五笔等输入方法,可以直接输入词组,而且具有Windows下输入法的联想和记忆功能,使用起来十分方便。如果你是五笔用户,还可以编辑rfinput中的五笔输入法码表文件,这是一个文本文件,你可以任意添加自己的词组,每个词组占一行,格式请查看文件/usr/local/rfinput/lib/wbx.mb。
注意:在http://www.redflag-linux.com/business/downloadmain.po处下载RedFlag Linux输入法版本为2.0.1,而光盘版中的最新版本为2.2-2,二者都不能直接使用在RedHat 7.1之下,如果你想要自己编译,请下载源码文件。
Windows字体的移植
XFree86 4.0以后已经可以很好地支持TrueType字体。TrueType字体可以实现无级缩放,显示效果自然非点阵字体可比。如果你想要达到Windows下漂亮的字体效果,就必须安装中文TrueType字体。当然,最简单的还是借用Windows自带的中文TrueType字体。为方便起见,这里我们只以SimSun一种字体为例。
注:XFree86 3.x对TrueType支持有问题,所以在安装字体之前,你首先需要确认使用的是XFree86 4.03,用xdpyinfo查看XFree86的版本号:
xdpyinfo | grep release
请保证显示的数字为4003。
1、字体的安装
我将TrueType字体安装在了/usr/share/fonts/zhFonts目录中,你可以根据自己的喜好设置。需要注意的是,很多网站上介绍将TrueType字体安装在/usr/share/fonts/default/TrueType下,这个目录在RedHat 7.1下已经存在,并且安装有TrueType字体,所以请另选目录,操作步骤如下:
mkdir /usr/share/fonts/zhFonts
cp /mnt/dosc/Windows/simsun.ttf /usr/share/fonts/zhFonts
cd /usr/share/fonts/zhFonts
ttmkfdir >fonts.dir
ttmkfdir对Windows的TrueType字体的识别不是很好,我们须要编辑fonts.dir,将它修改为以下内容:
4
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
然后将fonts.dir另行拷贝为fonts.scale(设置可缩放字体):
cat fonts.dir >fonts.scale
2、设置TrueType字体支持
我们已经有了XFree86可以使用的TrueType字体,现在我们要编辑XFree86 4.03的配置文件XF86config-4,加入SimSun字体的路径(在Section "Files"段中),如下所示:
Section "Files"
FontPath "unix/:7100"
FontPath "/usr/share/fonts/zhFonts"
EndSection
还要在Modules段加入TrueType字体支持模块xtt(freetype模块也可支持TrueType字体,但是显示速度不如xtt,并且二者不可同时使用),如下所示:
Section "Module"
……
Load "xtt"
……
EndSection
3、使用TrueType字体
做过上述设置之后,TrueType字体的使用则是非常简单的一件事情了。
(1)KDE环境
“KDE Control Center(KDE控制中心)”→“观感”→“字体”,将所有的字体设置为SimSun,大小16,界面比较美观(每个人情况可能有所不同,请自行设置大小)。
(2)Gnome环境
Gnome中TrueType中文字体的使用要麻烦一些,我们必须手工修改Gnome的的资源配置文件。
编辑/etc/gtk/gtkrc.zh_CN文件,设置fontset如下:
fontset = " -misc-simsun-medium-r-normal--16-0-0-0-p-0-*-* "
同时编辑/etc/gnome/gtkrc.zh_CN文件,将所有的FontSet设置为:
fontset = "-misc-simsun-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0"
现在启动KDE/Gnome,肯定可以看到漂亮的TrueType字体了……
4、Konqueror中显示中文问题
Konqueror就是KDE下资源管理器和浏览器的二合一,不过很多朋友反映,在Konqueror下浏览中文网页不能正常显示,这是因为Konqueror使用gbk字库的原因,还记得我们上边在fonts.dir中有这么一行吗:
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
这就是用来提供gbk字库支持的,有了这一行,你的Konqueror应该可以正常显示中文网页了。
字符模式下的中语言环境
正像Windows 9x下我们还要有个pdos95来支持中文一样,在字符模式下我们也是需要一个中文环境的,相比于窗口模式下的内置的中文支持,字符模式下可能只有通过一些第三方软件来提供中文支持。
常见的中文控制台软件有cce、wzole和unicon。前两者是外挂式运行的中文平台,无需重新编译内核;unicon需要对内核打补丁,重新编译。建议使用wzole,虽然这是一个商业软件,不过对于我们个人用户来说是免费的。
到http://www.floppycenter.com/Guest.asp?shrid=280145322下载两个软件wzole-4[1].1n.linux.x86.tgz和wzole-4[1].1n.GB.tgz(上述文件前者是中文支持环境,后者是输入法),然后到http://wzis.xoasis.com/applic.html申请个人使用许可证(通过E-mail发到你的信箱中),执行以下步骤安装:
tar xzPf wzole-4[1].1n.linux.x86.tgz
tar xzPf wzole-4[1].1n.GB.tgz
./wzole_config
最后将发给你的E-mail中的许可证放在/usr/lib/wzole.lic文件中,执行gce就进入了字符模式下的中文环境。
至此,RedHat 7.1下的中文支持已经全部完成,希望本文能对你有所帮助……
祝各位好运:)