对于国内很多想学、初学
Linux的
用户来说,丑陋的中文支持是阻碍他们持续使用下去的最主要原因。失望之余也许你会选择安装一个像BluePoint、红旗、Turbo
Linux等中文版本,不过在
Linux阵营中,RedHat又是我们不得不涉及的,网上铺天盖地的资料、
软件都是ForRedHat的,其它的版本要不兼容性有问题,要不就根本找不到你需要的指令……此时才真的感觉到了“熊掌与鱼二者不可兼得”的含义!
) h2 S+ v9 K- f3 u Z" t7 p9 R 不过随着RedHat7.1的推出,这些问题终于有了解决的眉目,RedHat采用的内核是kernel2.4.2,XFree86是4.03,KDE是2.1.1,glibc是2.2.2,操作
系统底层对国际化已经支持得很好。如果你只要显示中文或者浏览中文网页,根本无须额外安装任何软件就可以实现。
7 g" z1 r7 A* H4 b' g
Linux国际化和本地化
/ h5 f B1 K5 U# l& B) A$ C 要让Linux支持多语种,涉及到两个方面的问题——国际化和本地化,也就是人们常说的i18n和l10n。
) M! [) D+ ~2 }. {9 j/ |" y/ m
1.i18n
3 |2 S" @/ V% ~6 k7 q
“国际化”,国际化的英文是Internati-onalization,这个英文单字的第一个字母i与最后一个字母n之间有18个字母,所以也常常被简称为i18n。i18n是一种观念,用来提供一个架构,让同样的代码可以适用于各种语种
习惯和编码系统,
程序设计人员只要利用这个架构的机制、准则编写应用程序,就可以在不新编译代码的情况下,支持各式各样的语言(其中特别重要的就属C程序库以及X图形界面的国际化设计了)。
) |3 `5 v& V& f( c 2.l10n
& m. d8 H+ F6 @* S, g" Y# {
“本地化”,英文为Localization,因为l和n之间有10个字符,所以也常简称为l10n。l10n的主要作用是对软件进行加工,使之满足特定市场上的用户对语言和
功能的特殊要求。涉及到文字的翻译、用户界面布局调整、本地化特性开发、联机文档和
印刷手册的制作,以及保证本地化版本能正常工作的软件质量保证活动,其中当然还应该有输入法的支持。
$ e+ {( P4 }, A/ \4 E. o. s* {
也就是说,i18n提供
操作系统底层的支持,l10n提供本地支持。像我们见过的Win2000就是以这种模式开发的,不同语种的Win2000的内核完全一样(i18n),只是操作界面和文档等不同(l10n)。
l$ b- F- u: u4 y H 内置中文支持
( a+ V9 }/ s# m0 ?& w [
RedHat采用Locale
技术来提供多语种支持,我们只要设置好相应的Locale就可以了。
& N- M3 p* X. g4 L! Q
需要说明的是,“典型安装”的RedHat7.1并没有简体中文支持,必须手工选择简体中文支持,如果你是新手不知道如何选择,那也很简单,安装的时候选择定制
类型中的“Everything(完全安装)”就可以帮助你解决这个问题,不过你需要足够的
磁盘空间(需要2.5GB)。
2 D5 j/ L; ~& W
! }! U2 a! W5 _: u# k + s" o4 W+ t. q4 F E0 X x, W' ~
, D5 F, e9 N! @- a/ U" T5 @2 s
0 T3 X" \ p6 ]9 j9 c1 d 0 Z4 ` p1 k) D$ ~; o9 f
#1 bmbx 发表评论于:2005-11-20 20:231、设置中文locale
, z f! n! h R& E* e
RedHat的locale切换很简单:进入Linux窗口界面,执行locale_config会弹出一个选择本地语言窗口,选择“Chinese(CN.GB2312)zh_CN.GB2312”来设置locale为“简体中文”,如果你想试用一下“繁体中文”,也可以选择“Chinese(TW.Big5)zh_TW.Big5”。
7 `2 Q1 J4 @9 Q5 C/ f
2、中文locale应用
; K4 k# i) A2 ~/ Q* I% _ 打开一个控制台,运行date命令。怎么看到的是一行乱码?没错,应该是乱码,不过这说明你已经正确地设置了中文locale。
: ]9 _6 l* e! ~3 O. [: d8 M$ k
(1)Gnome
环境
6 T* w1 M2 U, H6 D" L 运行startx进入默认的GNome桌面,你将看到
任务栏上的
时间已经变成中文显示了,而且在左下角的那个大脚板中的菜单也有中文了(注意:我这里说的是“也有”而不是“也是”,这是由于Gnome的“简体中文化”还没有完全完工,你看到的菜单实际上是中英文混杂)。
8 _" T" {9 ^; f: [1 k0 V0 q
也许很多朋友更加习惯KDE环境,没关系,执行switchdesk可以通过图形界面选择你喜欢的操作环境(Gnome、KDE、FVWM等等)……
! f0 }4 w0 i6 ?; l8 k4 p' v3 G (2)KDE环境
+ p% `1 l+ o8 _2 b- o
相对于Gnome来说,KDE的本地化做得更好一些,至少菜单都是完全的中文显示。不过不知道什么原因,我完全安装的RedHat7.1还是没有安装KDE的简体中文包,需要手工添加,将RedHat7.1的第一张光盘放进
光驱,然后执行以下命令:
& [) y d% [# _$ t- ^' U mount/mnt/cdrom
1 z3 r- @8 y/ T# S5 l cd/mnt/cdrom/RedHat/R
PMS" R9 a7 ]% X% @
rpm-ivhkde-i18n-Chinese-2.1.1-2.noarch.rpm
! M6 x% c- m. B3 r& \ rpm-ivhkde-i18n-Chinese-Big5-2.1.1-2.noarch.rpm
9 |) l1 R; a2 b+ ~ 这样,KDE的简/繁体中文显示支持已经装好,你需要做的就是设置一下显示的语言、字体。
# H# p- q' ?) L0 ` 打开KDE的控制中心(ControlCenter),选择“Personalization(个性化设置)”/“Country%26Language(国家和语言设置)”,设置如下:
. ^9 |9 k2 Z4 _ ~4 i Country:Asia%26Oceania/China
3 n* ]8 `) c8 I8 S E$ M* W Language:SimplifiedChinese(zh_CN.GB2312)
2 K8 o2 k1 [1 M+ n+ |
Chars:gb2312.1980-0
5 A7 ~6 x" \9 b( w
(3)显示中文目录/文件名
6 z) R; S. U" z% L
RedHat是可以显示中文的目录和文件名的,你只需要在mount后边添上一个-ocodepage=936,iocharset=cp936参数就可以了,比如:
" B ^, a! x, k/ ]7 U8 m
mount-tvfat/dev/hda1/mnt/dosc-ocodepage=936,iocharset=cp936
2 o7 p8 J, p, a0 w/ m" T& h
还有一个一劳永逸的方法,修改/etc/fstab,下边是我的fstab文件:
9 ]8 U! J% A5 s" Z
Linux下的中文输入法很多,可是并不是每一种输入法都可以在RedHat7.1下使用,一般你都需要做些调整,而且这种调整对于初学者来说绝对是“难于上青天”的。
; {7 }7 K2 q3 L* H1 M3 T1 tLinux下有两种通用的输入法软件chinput和xcin,安装起来都十分麻烦。为简单起见,我们采用拿来主义,借用RedFlag(红旗)Linux下的rfinput输入法来实现RedHat7.1下的中文输入。
3 U" d" y O" J 网友PopWander将RedFlagLinux下的输入法移植到了RedHat7.1下,我们可以到http://go3.163.com/"popwander/so ... nput-2.1-2.i386.rpm
下载,然后执行以下指令安装:
3 I6 _* c; T2 H# i1 {$ J rpm-ivh--forcerf-xim-input-2.1-2.i386.rpm
$ v L* D1 x8 ] j& o
rfinput自带中文点阵字体,并自动设置环境变量,在RedHat7.1下无需其它任何设置,它随KDE/Gnome的启动而启动,需要输入中文时你只需要按下Ctrl+Space就可以调出中文输入法,对于KDE用户而言,你也可以直接点击桌面右下角的图标选择输入法。
/ B2 I8 l5 I- r8 P' Q; V rfinput包括智能ABC、五笔等输入方法,可以直接输入词组,而且具有
Windows下输入法的
联想和记忆功能,使用起来十分方便。如果你是五笔用户,还可以
编辑rfinput中的五笔输入法码表文件,这是一个文本文件,你可以任意添加自己的词组,每个词组占一行,格式请查看文件/usr/local/rfinput/lib/wbx.mb。
- _9 }/ u. Q( ~" ` 注意:在http://www.redflag-linux.com/business/downloadmain.po处下载RedFlagLinux输入法版本为2.0.1,而光盘版中的最新版本为2.2-2,二者都不能直接使用在RedHat7.1之下,如果你想要自己编译,请下载源码文件。
# ]- u2 @: N! S9 R: ?/ T Windows字体的移植
9 d1 p- ~5 y) N, m0 I5 O2 P, V
XFree864.0以后已经可以很好地支持TrueType字体。TrueType字体可以实现无级缩放,显示效果自然非点阵字体可比。如果你想要达到Windows下漂亮的字体效果,就必须安装中文TrueType字体。当然,最简单的还是借用Windows自带的中文TrueType字体。为方便起见,这里我们只以SimSun一种字体为例。
9 p7 o. {0 P4 t- y
注:XFree863.x对TrueType支持有问题,所以在安装字体之前,你首先需要确认使用的是XFree864.03,用xdpyinfo查看XFree86的版本号:
9 M C+ t. N- _' o7 r2 Y9 n6 U4 i1 N
xdpyinfo│greprelease
0 A5 d/ N6 m: K- } 请保证显示的数字为4003。
% T# U/ X* ^6 ?' y% R. r9 w
1、字体的安装
8 w4 D; R0 r% ?/ n# K, a$ K7 M) p; W 我将TrueType字体安装在了/usr/share/fonts/zhFonts目录中,你可以根据自己的喜好设置。需要注意的是,很多
网站上介绍将TrueType字体安装在/usr/share/fonts/default/TrueType下,这个目录在RedHat7.1下已经存在,并且安装有TrueType字体,所以请另选目录,操作步骤如下:
6 U6 X+ t+ X' ~/ ?# k+ V! D
mkdir/usr/share/fonts/zhFonts
' {$ |- G% K; x' W7 N cp/mnt/dosc/Windows/simsun.ttf/usr/share/fonts/zhFonts
: F$ R. Y5 { z* g( Q! |cd/usr/share/fonts/zhFonts
0 _8 y$ Z9 H" l8 T* q( c0 T' T/ w/ k4 \ ttmkfdir%26gt;fonts.dir
; ^- r8 X5 ]; b/ {/ z' J$ S
ttmkfdir对Windows的TrueType字体的识别不是很好,我们须要编辑fonts.dir,将它修改为以下内容:
7 U a0 \4 H1 Y; X7 Z
4
5 |4 s, |' x8 L: z8 i7 `5 o
simsun.ttf-misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0
6 A6 g* u) B: O
simsun.ttf-misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
' V! N$ ~4 v% \0 E" T simsun.ttf-misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
' \$ m2 C; z" l! P simsun.ttf-misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
* ~% w% a/ _3 i) R 然后将fonts.dir另行拷贝为fonts.scale(设置可缩放字体):
. O4 T z* y* s" ~5 [+ m. f catfonts.dir%26gt;fonts.scale
5 ~+ Q9 d; z: m, Y1 L8 _) E
2、设置TrueType字体支持
, P" A1 M2 N. u, u* F
我们已经有了XFree86可以使用的TrueType字体,现在我们要编辑XFree864.03的配置文件XF86config-4,加入SimSun字体的路径(在Section"Files"段中),如下所示:
/ O( C( H+ u4 W9 N
Section"Files"
! J. o0 |# b( J# C2 @* e FontPath"unix/:7100"
) m0 k: W2 W+ T0 S7 h0 m ~# n) q FontPath"/usr/share/fonts/zhFonts"
( `* b2 w* ?% O3 C+ O( M0 Q EndSection
( }: u4 B1 R0 t8 r: |) j' e
还要在Modules段加入TrueType字体支持模块xtt(free
type模块也可支持TrueType字体,但是显示
速度不如xtt,并且二者不可同时使用),如下所示:
" j0 x \' ?# \. Z ^) N Section"Module"
2 _% i% h1 n- @% r4 d- f9 d3 ^
……
! f o2 W% K$ T+ ~6 G0 t' y Load"xtt"
) p! Q( v- p& S
……
7 X$ r, r [ G: ] u% V EndSection
* v' _5 f$ ^ G5 }: F 3、使用TrueType字体
0 `. M E' c y4 m! k: Z. l
做过上述设置之后,TrueType字体的使用则是非常简单的一件事情了。
- r) S/ z7 |9 N5 h: g% r5 [ (1)KDE环境
6 E# V5 `" b6 E( T8 A
“KDEControlCenter(KDE控制中心)”→“观感”→“字体”,将所有的字体设置为SimSun,大小16,界面比较美观(每个人情况可能有所不同,请自行设置大小)。
# T/ \0 X+ C0 r$ O( U
(2)Gnome环境
' X% e" g0 g7 P6 ~2 O Gnome中TrueType中文字体的使用要麻烦一些,我们必须手工修改Gnome的的资源配置文件。
# N' i8 \ r. `$ D+ G! N5 B4 W 编辑/etc/gtk/gtkrc.zh_CN文件,设置fontset如下:
% u, a: R9 Z c* Z$ W+ c' a( l
fontset="-misc-simsun-medium-r-normal--16-0-0-0-p-0-*-*"
/ y2 v( _# f; V( A
同时编辑/etc/gnome/gtkrc.zh_CN文件,将所有的FontSet设置为:
! [" {6 R. L; _- A9 k1 T0 A# k3 O
fontset="-misc-simsun-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0"
- H% @ I, W" H3 F [
现在启动KDE/Gnome,肯定可以看到漂亮的TrueType字体了……
* K2 L5 Q/ ?4 `8 T 4、Konqueror中显示中文问题
2 `- H; a$ T* N& E* N
Konqueror就是KDE下资源
管理器和
浏览器的二合一,不过很多朋友反映,在Konqueror下浏览中文网页不能正常显示,这是因为Konqueror使用gbk字库的原因,还记得我们上边在fonts.dir中有这么一行吗:
; E/ [' r2 N% m- F# N$ j! y9 e; B) p1 B! @" h; N
simsun.ttf-misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
, m" u$ A8 O* r9 z
这就是用来提供gbk字库支持的,有了这一行,你的Konqueror应该可以正常显示中文网页了。
3 @1 V' _) C* W. L 字符模式下的中语言环境
1 E- k" ?2 a* z7 @- e1 d 正像Windows9x下我们还要有个pdos95来支持中文一样,在字符模式下我们也是需要一个中文环境的,相比于窗口模式下的内置的中文支持,字符模式下可能只有通过一些第三方软件来提供中文支持。
# Z* D P# u5 O4 E
常见的中文控制台软件有cce、wzole和unicon。前两者是外挂式运行的中文平台,无需重新编译内核;unicon需要对内核打补丁,重新编译。建议使用wzole,虽然这是一个商业软件,不过对于我们个人用户来说是免费的。
( P0 V$ \' J8 q/ K1 p 到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发到你的信箱中),执行以下步骤安装:
/ A/ G# V# J! Q% l3 a, M. ~ S9 v
tarxzPfwzole-4[1].1n.linux.x86.tgz
+ Y4 G. F7 H& j" ? tarxzPfwzole-4[1].1n.GB.tgz
1 ?/ C' |$ E* ^/ P ./wzole_config
3 O* L' _" r/ R$ T2 A
最后将发给你的E-mail中的许可证放在/usr/lib/wzole.lic文件中,执行gce就进入了字符模式下的中文环境。
8 P$ O7 w8 b' ?8 A
至此,RedHat7.1下的中文支持已经全部完成,希望本文能对你有所帮助……
/ y7 j/ U& ~4 @( R, V
祝各位好运:)