感谢为中文locale做出贡献的人
愤恨及鄙视那些将linux的汉化技术作为赚钱秘密而秘而不宣的公司.
本文提到的软件包大家可以通过http://bigluo.cn.hongnet.com下载,他们分别是:
locale-zh-0.97.src.rpm - Linux中文环境文件.packaged by Wu yulun
Chinput-3.0 - 中文输入法. developed bu Yu Mingjian
pth-1.3.7 - 可移植线程库
unicon2 - Chinput需要的表码软件包
一.安装中文环境
1-1 确定glibc的版本
这份locale-zh是for glib 2.1.3 (RH 6.2)的,因此如果你的glibc < 2.1.3,请升级他.如果你的glibc > 2.1.3,你可以到我的主页下载相应的locale环境定义文件zh_CN,然后用lcoaledef来产生相应的中文环境.我的RH 是6.1版本的,于是我找到了一张RH6.2的CD,升级了下面几个包:
* egcs
* egcs-c++
* libstdc++
* glibc
* gtk*
* XFree86
make
autoconf
automake
kernel
( 注:打*的,你必须更新 )
1-2 安装中文locale环境
如果你使用的是RH 7,请到我的网页下载zh_CN for glibc 2.2,然后用lcoaledef来产生相应的中文环境,(关于具体问题请参看Wu yulun的 如何在RedHat7.0中安装Chinput3.0中文输入法一文).
安装locale很简单,
rpm -ivh locale-zh-0.97.src.rpm
- 会在/usr/src/redhat/SPECS 下产生一个locale-zh-0.97.spec,
rpm -ba locale-zh-0.97.spec
- 重建这个包.会在/usr/src/RPMS/i386 下产生一个相应的binary包,安装它吧!
他会生成3个环境定义
zh_CN.GB2312 我们需要的就是这个
zh_CN.BIG5 繁体中文环境
zh_CN.GBK 作者说这个是他从TLC借过来,除了测试没有什么太大用处
1-3 测试中文locale
不必要写个程序来测试了.很简单的,首先
export LC_ALL=zh_CN.GB2312 -设定中文环境
输入命令rpm -qi kernel,看看时间部分是不是由 *d-*m-*y => *y-*m-*d,如果没有问题,说明locale-zh安装成功.
1-4 让gnome支持中文
修改 /usr/lib/X11/locale/locale.alias,加入一行:
zh_CN.GB2312 zh_CN.eucCN
该命令指定当终端locale为 zh_CN.GB2312 时,X Windows 使用 zh_CN/XLC_LOCATE 为场所定义。
/usr/lib/X11/locale/目录下没有zh_CN/XLC_LOCALE,所以我们做一个连接就可以了:
ln -s /usr/lib/X11/locale/zh/XLC_LOCALE /usr/lib/X11/locale/zh_CN/XLC_LOCALE
修改 /etc/gtk/gtkrc.zh_CN 将所有的字体定义改为:
fontset = "-*-*-medium-r-normal--16-*-*-*-*-*-iso8859-1,\
-*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0"
采用16点的汉字,这样会看起来舒服一点.
二.安装中文输入法Chinput
2-1 安装pth
tar -zxvf pth-1.3.7.tar.gz
./configure --prefix=/usr #以便pth lib被安装在/usr/lib/
make
make install
2-2 安装unicon
将 unicon2-im 解到 /usr/lib 目录下即可.
2-3 安装Chinput 3.01
tar -zxvf Chinput-3.0.tar.gz
拷贝Chinput-3.0-1.patch到Chinput 3.0目录下patch -p1 < Chinput-3.0-1.patch #打3.0.1的补丁
make
make install
修改 /usr/lib/ZWinPro/Chinput.ad 文件:
由于 XFree86 没有自带的 BIG5 码字体,若你不需要输入 BIG5 码字符,则对 Chinput.ad 做以下调整:
...
chinput.gblocale = zh_CN.GB2312
chinput.big5locale = zh_CN.GB2312
...
chinput.gbfont = -*-*-medium-r-normal--16-*-*-*-c-*-gb2312.1980-0
chinput.big5font = -*-*-medium-r-normal--16-*-*-*-c-*-gb2312.1980-0
注意:在 Chinput.ad 的字体定义中,不能出现空格,这是由于 Chinput 的限制。(应该使用Tab)
由于 Chinput 需要 libstdc++-lib6.1-2.so.3,而 RedHat 的 compat-libstdc++ 兼容库中只包含 libstdc++-2-libc6.1-1-2.9.0.so,则需手动建立一个库链接:
ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-2.so.3
2-4 启动Chinput
让你每次启动xwindows的时候都有中文支持,修改你的.bashrc ,加入:
export LC_ALL=zh_CN.GB2312
export LC_LANG=zh_CN.GB2312
export XMODIFIERS=@im=Chinput
到此,linux的汉化基本完成,进入 X Windows 环境。选择Run,输入 chinput,中文输入服务器就加载了。你可以打开一个支持vim的软件(gedit),敲入 ctrl-space 就会出现输入条.
注:chinput 输入服务器,仅对支持 XIM 的软件有效,如果该软件支持这种输入 方式,敲入 ctrl-space 就会出现输入条,否则无任何显示。
she 于 2005-09-12 21:12:26发表:
现在的red hat基本上能安装时就支持中文了
yo 于 2005-09-12 00:37:04发表:
支持
reing 于 2005-09-02 11:38:15发表:
今天搞到一张RedHat 7.0(北京LINUX俱乐部版本,中关村刚刚上市),感觉真是太棒了。别的都不说了,由于它采用了XFree86 4.0和glibc 2.2,使得它对东方语系和TrueType的支持性能非常完好,整个中文化工作我只用了十分钟不到就完成了。准备好了吗? Let's go FREE
一 所需要的软件包
zh_CN for glibc 2.2 -- glibc 2.2的中文定义文件
Chinput 3.0 + Chinput 3.0-patch -- 中文输入法及补丁
unicon 2 -- Chinput的表码库
pth -- 可移植线程库
以上软件包你可以到我的主页上下载( http://www.linuxorb.net )
二 简体中文环境的安装
2-1 生成简体中文locale
把下载的zh_CN.gz解包: gunzip zh_CN
执行命令:localedef -f GB2312 -i zh_CN zh_CN.gb2312
如果没有意外的话,在 /usr/lib/locale 下会增加 zh_CN.gb2312目录。
2-2 测试简体中文locale
由于这个zh_CN定义包含了较多的中文信息,和前两篇文章当中介绍的那个取自于台湾CLE的locale相比,中文信息多多了。
使用中文locale:export LC_ALL=zh_CN.gb2312
测试中文locale:执行命令date,看看有没有变化。
注:在我使用的RedHat 7.0上,我只做了上述的工作,startx就可以看到中文了,最明显的是Gnome的那个桌面时钟变成中文的了。如果在你的RedHat 7.0
上有什么问题的话,希望能够告诉我。
三 TrueType字体的使用
由于RedHat 7.0使用了XFree86 4.0,所以它对TrueType字体有着良好的支持。
2-1 xfs字体服务
默认情况下,RH 7采用了xfs,请关闭它:setup->system service->去掉xfs前面的*。同时请更改/etc/X11/XF86Config.4,把 FontPath "unix/:7100" 这一行注释掉。
2-2 获得TrueType字体
mkdir /usr/X11R6/lib/X11/fonts/trueType
cp /windows/fonts/simsun.ttf /usr/X11R6/lib/X11/fonts/TrueType
cd /usr/X11R6/lib/X11/fonts/TrueType
ttmkfdir>fonts.dir -- 生成fonts.dir
我使用的Windows 98是SE版本,将生成的fonts.dir改成了下面的样子.
3
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-gb2312.1980-0 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
生成fonts.scale:cat fonts.dir>fonts.scale
2-3 让XFree86能够解析TrueType
进入 /etc/X11 目录,打开 XF86Config-4 文件,将 FontPath 改为你所需要的字体路径。
Section "Files"
# FontPath "unix/:7100"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
FontPath "/usr/share/fonts/default/Type1"
EndSection
加载 X-TrueType 字体解释器。
Section "Module"
...
Load "xtt"
EndSection
2-4 让gnome使用TrueType
修改/etc/gtk/gtkrc.zh_CN,让gtk使用TrueType字体。
style "gtk-default-zh-cn" {
"-misc-SimSun-medium-r-normal--12-0-0-0-p-0-*-*"
}
四 Chinput的安装
请参考 汉化你的RedHat全功略( 1 ) - 中文环境和中文输入法的安装
五 Gnome桌面的中文显示
RH 7.0的/usr/share/locale目录下有一个zh_CN.GB2312,包含很多中文mo,由于我们的中文locale是zh_CN.GB2312,所以做一个连接就可以了。
ln -s /usr/share/locale/zh_CN.GB2312 /usr/share/locale/zh_CN.gb2312
在进入到X,是不是有些菜单是中文的了!由于Gnome的中文翻译小组到现在还只翻译了一部分的po,所以我们只能看到一部分的中文。
当然,你还可以通过修改/usr/share/gnome下有关gnome配置文件来显示中文,前面的文章已经介绍过了,不再重复。
六 Gedit和NetScape
这两个软件是我在RH上使用最为频繁的两个软件,他们都可以很好支持i18n协议,在菜单edit->preferance下把相关的编码和字体改为chinese就可以了。
reing 于 2005-09-02 11:37:20发表:
在上一篇文章当中,我向大家介绍了如何安装中文环境和输入法,不知道大家留意到没有,Gnome的桌面字体是非常难看的。想个办法让他好看一点吧。最好的办法当然是让Redhat接受TrueType字体。
如果你使用的不是Redhat 7.0的话,很不幸,他们所附带的Xf86对TrueType字体的支持并不是很好,甚至可以用非常的差来形容。所以,确定你的Xfree86版本是4.0以上版本是非常必要的。(RH 6.2的Xfree86是3.3.6版本)
注:网上有文章介绍如何让Xfree 3.3.6支持TrueType,我测试过了,好像并不怎么行,小弟不才,请高手指点!!
一.XFree86
1-1 确定Xfree86的版本
如果你使用的是Redhat 7.0以下的版本,你需要升级你的Xfree86.
1-2 获得Xfee86 4.01
下载下面这些软件包(from xree86.org)
Xlib.tgz
Xetc.tgz
Xdoc.tgz
Xf100.tgz
Xfcyr.tgz
Xfenc.tgz
Xflat2.tgz
Xfnon.tgz
Xfnts.tgz
Xfscl.tgz
Xfsrv.tgz
extract
Xinstall.sh
Xinstall.bin
Xjdoc.tgz
Xhtml.tgz
Xman.tgz
Xnest.tgz
Xprog.tgz
Xmod.tgz
Xprt.tgz
Xps.tgz
Xvar.tgz
Xvfb.tgz
Xxserv.tgz
总共大概是20M,一个多小时可以下载完毕!
1-3 升级Xfree86
其实Xfree86的升级是超级简单,但是在升级以前请备份下面的两个文件:
/etc/X11/xinitrc/Xclients -- 将来可以用他成为启动X的预读文件
/usr/X11R6/bin/startx -- 新的startx好像不会读取gnome的gtk资源文件.
到新的Xree86目录下面
./Xinstall.sh -- 安装XFree86
然后一路 [y] 下去就可以了.
然后,你就得用xf86config之类的命令来配置XF86Config文件.详细的方法不说了,请参考其他文章.
然后:
cp startx /usr/X11R6/bin/startx -- 用旧的startx覆盖新的.
cp Xclients /etc/X11/xinitrc/xinitrc -- startx会读取这个文件,选用给定的桌面.(一般是gnome)
修改/etc/xinitrc,注释掉文件最后这些
xclock -geometry 100x100-5+5 &
xterm -geometry 80x50-50+150 &
if [ -f /usr/bin/netscape -a -f /usr/doc/HTML/index.html ];
then netscape /usr/doc/HTML/index.html &
fi
if [ -f /usr/X11R6/bin/fvwm ]; then
exec fvwm
else exec twm
fi
(不同版本的RH可能会用一些不一样)
如果一切顺利,startx后会进入gnome环境!
二 字体
2-1 xfs
新的xfree86默认是不使用xfs,如果是想使用TrueType,我也不推荐使用xfs.所以 setup->system service->关闭xfs
2-2 得到TrueType字体
mkdir /usr/X11R6/lib/X11/fonts/trueType -- 建立TrueType的存放目录
cp /windows/fonts/simsun.ttf /usr/X11R6/lib/X11/fonts/TrueType
-- 将你win98下的simsun字体复制到linux下.
cd /usr/X11R6/lib/X11/fonts/TrueType
ttmkfdir>fonts.dir -- 生成fonts.dir
我使用的Windows 98是SE版本,将生成的fonts.dir改成了下面的样子.
3
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-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
生成fonts.scale:cat fonts.dir>fonts.scale
2-3 让XFree86能够解析TrueType
修改/etc/X11/XF86Config,找到解析Fonts的地方,由于FreeType和xtt解析不能够共存,所以我们关闭FreeType解析,打开xtt解析。
# This loads the Type1 and FreeType font modules
Load "type1"
# Load "freetype"
Load "xtt"
然后,还是修改/etc/X11/XF86Config,加入字体搜索路径:
FontPath "/usr/X11R6/lib/X11/fonts/local/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType/" <-加入这一行
(注:默认条件,新的XFree86不使用xfs)
2-4 让gnome使用TrueType
修改/etc/gtk/gtkrc.zh_CN,让gtk使用TrueType字体。
style "gtk-default-zh-cn" {
"-misc-SimSun-medium-r-normal--12-0-0-0-p-0-*-*"
}
三 享受TrueType
到这里,你可以享受TrueType的乐趣了!
把LC_ALL环境变量设定为zh_CN.GB2312(关于中文环境及中文输入法的安装请参考上一章),startx看一下吧!!
让netscape使用TrueType
Edit->Preferance->Fonts 将相应的字体项目改为chinese的就够了。
汉化 GNOME 的菜单项:
在 /usr/share/gnome/apps/ 下,有一些以 .desktop 为后缀的文件,打开该文件,加入一行
Name[zh]=你想要的中文名
则可对相应的菜单项增加中文名,很容易,一看就会。
GNOME 的个人菜单项存放在 HOME 目录下的 .gnome/apps目录里,形式相同。
后记:
以上是本人安装TrueType字体支持的全过程,如果各位还有什么问题,请发信到bigluo@china.com.
事情到这里看起来好像是非常完美了,X-Windows有了中文支持,有了中文输入法,可以使用TrueType字体。但是事实并不是这样的,BUGS很多,中文的支持也是非常的不完整:
Gnome所附带的程序当中,好像就有一个gedit是支持vim协议的。
在qt 1.42的时候,有一个zh_qt-1.4.2.patch可以让kde支持中文,1.44的qt加入更好的东方语系的支持但是好像还需要一个补丁,所以当你在gnome环境下看kde菜单的内容是中文的,但是一旦你使用kde桌面,就变成乱码了。
gedit对TrueType的支持也不是太好,一旦把它的字体设置成为TrueType,他就会当掉。
等等。。。。太多了
我们选择Linux的原因是它的自由性,台湾人很无私的做到了这一点,我们目前所能够看到的合用到的中文支持,好多来自于台湾。我们又做了些什么?看看那些这个版本那个版本的中文Linux,充其量不过是把RedHat拿回来汉化了一遍而已,是如何汉化的呢?-不告诉你,因为这是他们赚钱的法宝!
Linux到如今,还并不是一个稳定成熟的系统,在中国流行起来也不过是一两年而已,现在就靠他想赚钱,总有一天会走上。。