Mandrake7.2已经发布了, 虽说支持中文,但是并不是很完整. 所以许多朋友就在Mandrake7.2的基础上自己进行中文化工作. 我就是看了网上许多朋友发表的文章后, 自己动手进行的.(当然首先要 感谢那些在网上发表自己心得体会以及回答别人问题的朋友,,当然更要感谢那些对Linux中文化做出贡献的朋友 没有他们的帮助是不会有下面这段文字)
1.安装
首先将第一张光盘放进光驱, 从光盘起动, Linux安装过程开始起动, 如果在起动过程中能够识别出你的显卡, 安装程序会自动将屏幕的分辨率调整为800x600, 然后出现的图形界面将让用户选择所要使用的安装语言, 选择GB2312,如果这时你选择英文的话,那么你就应该在选择软件包或者在安装完成后安装这些相关的软件包.继续后会出现乱码,单击左边的按钮,熟悉的中文界面就会出现了.如果你选择专家模式安装的话,最好将pth和pth的开发包装上,因为在安装chinput的时候,会用到它们. 如果你不习惯使用xcin的话,就不要安装和xcin有关的包,另外如果你不使用繁体字的话,就不需要安装Mandrake7.2 提供的相应字体. 接下来按照你的需要完成剩余的安装过程.
2.控制台的中文化.
安装过程一路顺利的进行完了, 重新起动后, 你可能在登陆后马上使用startx命令进入xwindow, 但并不需要着急, 先让我们完成将控制台进行相应的汉化的工作.如果你打算使用Mandrake7.2所使用的内核, 你应该参考其它人的文章. 我使用的方法是2.4-test10的内核+Unicon3.0, 因为Unicon3.0中虽然有对2.2.17内核版本的patch, 但是Mandrake7.2的内核是经过修改的. 下面讲述我所使用的方法(具体使用的软件包的下载地址是:Unicon http://www.linuxforum.net, Kernel-2.4-test10 http://www.kernel.org)
1). 将2.4-test10的内核解压缩到/usr/src/下, 再这之前先删除/usr/linux的符号连接, 然后将linux目录改名为linux-2.4-test10, 然后执行ln -sf linux-2.4-test10 linux建立联接.
2). 解压缩unicon3.0到相应的目录, 然后执行下面的指令:
cd unicon-3.0/kernel-patches
gzip -d unicon-kernel-2.4-test10.patch.gz
cp unicon-kernel-2.4-test10.patch /usr/src/
patch -p0 < unicon-kernel-2.4-test10.patch
make mrproper
make menuconfig或者make xconfig
下面的几句是从unicon的INSTALL文件中copy来的
select "Code maturity level options"
select "Prompt for development and/or incomplete code/drivers"
press "Exit"
select "Console Driver"
select "Support Frame Buffer Devices"
select "Unicon Support"
select "VESA VGA Graphics Console"
press "Exit"
select other options that you want.
save configuration and exit.
新内核编译成功后, 执行安装过程, 编写/etc/lilo.conf文件将新内核的入口添加到引导记录里, 如果你使用grub引导, 请参考相应的文件.(后面我会列出我的lilo.conf), 使用新内核起动系统.
3). 编译Unicon3.0, 如果你成功的完成了上面的操作, 这一步应该是很容易的(很浪费时间)如果前面你没有安装pth和它的开发包, 用光盘安装上.
cd unicon-3.0
./configure --prefix=/usr
cd tools
vi Makefile
我们可以看到这个Makefile中定义的CFLAGS中有-V2.7.2.3的字样, 去掉-V2.7.2.3, 将
CFLAGS设成CFLAGS = -O2 -Wall -I.
cd ..
make
make install
make data (很是浪费时间)
make data-install
现在unicon3.0已经编译并安装完成, 为了在控制台下得到更好的显示效果, 我们再次修改lilo.conf文件, 下面结合我的lilo.conf文件解释.
image=/boot/bzImage-2.4 //我将2.4的内核文件改名成bzImage-2.4
label=linux2.4
root=/dev/hda7
read-only
vga=791 //设置控制台的分辨率为1024*768*16bit,设置为771是800*600*16bit
append="mem=127M"
image=/boot/bzImage
label=linuxnew
root=/dev/hda7
read-only
append="mem=127M"
执行lilo -v 确认修改成功, 但不要马上重新起动.
4).编写一个脚本文件用来在每次系统起动的时候自动执行unicon, 下面是我的操作步骤.
vi /etc/rc.d/inin.d/unicon
文件内容如下:
# Add the chinese support
#判断当前内核是否是2.4-test10
kernelname=`uname -a|awk '{print $3}'`
if [ $kernelname == '2.4.0-test10' ]; then
#如果当前是2.4.0-test10则装载unicon的模块
insmod unikey >/dev/null 2>&1
insmod encode-gb >/dev/null 2>&1
loadunimap /usr/lib/unicon/direct.uni >/dev/null 2>&1
if [ -x /usr/bin/unicon ]; then
echo "Starting Unicon3..."
/usr/bin/unicon --gb >/dev/null 2>&1
fi
fi
#end chinse support
chmod 700 unicon
cd ../rc3.d
ln -sf ../init.d/unicon S99unicon
下面试验一下新的脚本文件是否可以正常执行./etc/rc.d/init.d/unicon如果出现了蓝色的输入条,试试ctrl+space是否可以隐藏输入条, 如果可以在试试右面的shift键,如果可以出现只能拼音的输入法提示, 恭喜你了, 你已经完成了控制台的中文化,重新起动选择2.4-test10内核,你看到了什么? 如果没有看到
你想要的东西, 将上面的步骤在作一遍, 我就是这样完成的.
3.kde 的中文化
1). 先修改一些配置文件.如果在安装过程中你没有配置起动时应起动的服务, 现在你就可以先将一些你不需要的服务删除, 方法是进入下面的目录/etc/rc.d/init.d/rc3.d(因为在通常情况下我们是运行在运行级别3上, 如
果你是用运行级别5起动进入到rc5.d中), 这里的文件不是以S打头的就是K打头的,其中S打头的表示在起动时运行,把你不想用的服务删除, 同时删除xfs服务(因为xfs服务对中文字体的处理不是很好). 由于删除xfs服务要起动XWindow所需要的字体就得不到了, 所以修改/etc/X11/XF86Config-4文件, 找到下面这句话
FontPath "unix/:-1"
把这句话注释掉,然后把你的/etc/X11/fs/config文件中的FontPath拷贝到上面这句话下面,我的配置文件是这样的
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/Type1"
# FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/mdk"
FontPath "/usr/X11R6/lib/X11/fonts/drakfont"
FontPath "/usr/share/fonts/default/Type1"
FontPath "/usr/share/fonts/ISO8859-2/75dpi:unscaled"
FontPath "/usr/share/fonts/ISO8859-2/75dpi:unscaled"
找到下面这句话Load "freetype", 由于freetype对中文支持不好, 所以把这句话注释掉, 换上Load "xtt",存盘退出.
2). 安装中文字体.highsun网友说可以用蓝点Linux中的中文字体, 我当初也用了一下,可能当时没有为qt打补丁,所以显示效果不是很好,我用的是英文IE5.5中的mssong.ttf, 下面的步骤也是我的操作过程, 如果你需要作什么改动, 可以自己进行修改.
拷贝mssong.ttf到/usr/X11R6/lib/X11/fonts/drakfont, 执行下面的命令
cd /usr/X11R6/lib/X11/fonts/drakfont
ttmkfdir>fonts.dir
vi fonts.dir
将其中出现的Ms Song全部改成Song, 因为chinput的配置文件中不能出现空格, 根据我上面XF86Config文件的配置
里面是没有宋体字的.
2).安装chinput, 如果你没有安装pth和它的开发包, 装上吧.先将chinput使用的输入法字典解压缩到/usr/lib下面,tar zxvf unicon2.tar.gz -C /usr/lib
然后解压缩chinput-3.0.1,
cd chinput-3.0.1
make;make install
安装完成后,编辑/usr/lib/ZWinpro/Chinput.ad文件,将下面这句话
chinput.big5locale = zh_CN.BIG5改成 chinput.big5locale = zh_CN.GBK
将chinput.big5font的值改成与chinput.gbfong一样, 据说chinput3.0.1改正上面的这些问题,即不用修改, 但我
还没有试过, 每次安装我都是这么做的.
3).给qt和kde2打补丁. 到kde的日本站点去下载相应的补丁, 我用的是qt-2.2.2, 所以使用的是qt-2.2.2的补丁, 有的网友说只要给koffice打补丁就可以了, 但是kdebase包的补丁也是需要的因为我就遇到了kwin freeze的问题,(注意, 如果qt库不经过Patch在Mandrake的kde2中是没有办法激活输入法的).
先给qt修补, 按照qt的安装说明就可以了, 随便指定个目录, 然后export QTDIR=$PWD
然后进行配置, 编译,编译成功后,将lib先的libqt.so.2.2.2和libqutil.1.0.0拷贝到/usr/lib/qt2/lib下, 转到/usr/lib/qt2/lib目录下, 删除原来的libqt.so.2.2.1和libqutil.1.0.0.如果你用的是qt2.2.2,建立一个连接. ln -sf libqt.so.2.2.2 libqt.so.2.2.1在qt安装完成后, Mandrake7.2 的kde2就可以显示和输入中文了.
4).让kde2能显示和输入中文. 在上面的步骤完成后, 我们还需要进行一些修改就可以在kde2中显示和输入中文了.首先编辑~/.bashrc文件,添加下面这句话export LC_ALL=zh_CN, 然后编辑~/.i18n, 添加下面这句LANG=zh_CN.GBK,其它的就不需要了.最后修改/etc/X11/xinit/XIM文件, 将其中除了IM_PROGRAM=xcin中的所有xcin都改成Chinput,而将XIM_PROGRAM=xcin中的xcin改成chinput(小写). 好了, 最基本的工作的都做完了. 重新登录, startx, 如果你的屏幕长时间没有反应, 你可能就遇到了kwin freeze 问题, 到第五步. 试试起动kedit, ctrl+space, chinput的输入条是不是出现了, 你可能觉得字体比较难看,用kcontrol在LookNFeel的fonts选项中改变你需要的字体.不需要在Personalization的Country&Language中更改就可以正常的显示和输入中文了, 我就是这么用的.
5).给kde2的相应包打补丁,在编译的时候要使用i586编译, 这是highsun网友在他的文章中提到的, 这段时间十分的漫长,要有耐心.在给koffice打完补丁后, 起动kde2, 运行kword, 你就可以使用KOffice了.
5. GNOME的中文化.
对GNOME的中文化是不需要特殊处理的, 当然我并没有作全面的测试. 先面简单的说一下. 先编辑~/.xinitrc文件, 内容只有一句话.
gnome-session
但是下面及格环境变量的值与kde2中的值是不一样的. LCALL=zh_CN.GB2312,LANG=zh_CN.GB2312 而不是GBK字符集. 重新登录后, startx, GNOME桌面环境起动了, 桌面上的图标已经显示了中文, 运行gedit,ctrl+space,试试输入中文,光标位置定位不太准确, 但不影响大局, 注意如果你设置的LANG=zh_CN.GBK时, 你也可以在gedit中输入中文, 但是当你输入英文的时候就会出现乱码了.
6. 一点遗憾.
经过上面的步骤我们就可以在Mandrake7.2 的控制台中显示和输入中文了, 但是未免有少许遗憾, 1).在控制台下处理汉字还是以半个汉字为单位处理, 而且有时也会先是乱码. 2).输入法的问题, 在XWindow下没有以整句为单位的输入法, 而且不知是chinput还是qt+kde的问题,当我写这篇文章的时候, 我用ALT+F2调出运行对话框, 运行一个程序, 当焦点再次回到kwrite时,chinput居然不好用了.用kill命令kill 掉chinput, 重新运行chinput时, 还是不好用,后来发现只要在把运行对话框调出来, 当时不关闭它, chinput就可以使用了, 这篇文章就是在这种状态下完成的.
7. 未来展望
现在glibc2.2已经正式发布, 它的locale支持也更成熟了, 而且对中文的支持更好了, 支持gbk, gb2312,gb18030,big5等中文编码,qt2.2.1不支持中文字体的显示和输入, qt2.2.2就支持中文的显示了, 虽然还不支持中文输入(需要补丁程序),而即将在12月份发布的kde2.0.1和明年发布的kde2.1对中文的支持相信一定会更好, GNOME当然也会更好的支持中文. Linux的明天会更好.