Chinaunix首页 | 论坛 | 博客
  • 博客访问: 686867
  • 博文数量: 771
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4910
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-18 11:35
文章分类

全部博文(771)

文章存档

2011年(1)

2008年(770)

我的朋友

分类:

2008-09-18 11:51:07

我希望借这个贴子将linux汉化问题系统的整理一下,便于大家更好的使用linux。欢迎大家将问题,或经验贴出来,大家一同分担,分享。初步设想将其分为3个部分―系统汉化、应用程序汉化和输入法。
这个贴子编辑的比较仓促,错误在所难免的,希望大家多指正。有的设置我并没有实验过,只是参考别人的经验。

注:#  后面的为要执行的命令
   !! 后面的为文件中的内容
    新修改的部分使用红色[/COLOR]

一、系统汉化

(1)Console汉化
大陆console中文平台用的比较多的是CCE、jmce、union、zhcon.其中jmce就是cce的一个版本,不过它支持ps/2的鼠标。这些中文平台适用于大部分的linux版本,但只能用于纯字符终端,不是Xwin的字符终端。找到相应的rpm包
# rpm -ivh XXX.rpm即可使用。编译比较麻烦这里就不介绍了。

(2)Xwin汉化
    汉化主要分为关闭xfs和不关闭xfs,两者的主要区别在于关闭xfs后,Xwin不能自动解析系统字体路径,系统路径设置在/etc/X11/fs/config中,可以将系统字体路径加到/etc/X11/XF86Config(对于XFree86 3.x.x)或者/etc/X11/XF86Config-4(对于XFree86 4.x.x)的Section "Files" 中,来解决Xwin不能解析系统字体的问题。xfs不能解析系统字体路径,自然不能自动更新fonts.dir和fonts.scale的设置了。这样就可以对字体进行更多的设置。当然也可以在不关闭xfs的情况下将/etc/X11/fs/config中的字体路径去掉后添加到/etc/X11/XF86Config或则XF86Config-4中,从而实现更多的字体配置。
1、检查软件安装   
    先要确定已经装了kde-i18n-ChineseXXXXXX.rpm中文包,不然语言那里就没有中文的选项。对于redhat7.2及mandrake8.0以后的版本,安装时提供了中文选项,只要你选择了,这个中文包就安装了。安装时一定要选择,包括台湾的繁体字库(除非你不想使用中文或想另行安装)。这主要是要保证chinput所用到的字库完整,如果你已经安装完成,但没有安装台湾的繁体中文,可以通过修改chinput的配置文件来解决,后面关于输入法的部分会提到。
2、复制字体
建立字体目录 mkdir /usr/share/fonts/default/myttf
复制字体到字体目录 cp /"your fonts path"/XXX.ttf /usr/share/fonts/default/myttf
如果使用simsun.ttc最好将其改名为simsun.ttf
如果你是windows和linux双系统,可以在linux起动时自动挂载windows的FAT16或则FAT32分区,NT、Win2000、WinXP的ntfs分区需要重新编译核心才能挂载。挂载方法如下
修改/etc/fstab加入(mandrake8.x已经自动加入了)
!! /dev/hda1 /mnt/c vfat iocharset=gb2312,umask=0,codepage=936 0 0
如果是FAT16将vfat改为msdos
这样就可以链接字体到字体目录
# ln -s /"your fonts path"/XXX.ttf /usr/share/fonts/default/myttf/XXX.ttf
这样只作一个链接,可以节省硬盘空间。
3、生成字体列表
在/usr/share/fonts/default/myttf/下执行
# ttmkfdir > fonts.dir
在执行ttmkfdir之前最好将/usr/X11R6/lib/X11/fonts/encondings/encondings.dir复制到该目录下,这样可以生成比较全的字体列表.就连gb18030都能认出来.[/COLOR]
这样就可以将ttf字体装上了。如果是simsun.ttc,则在 ttmkfdir > fonts.dir
前先改将它改名为simsun.ttf,否则有的发行版本的ttmkfdir不能认到它,不能在fonts.dir中生成simsun字体信息,记住一定要修改。
将simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15 去掉
添加
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-gbk-0
后面我提供了一个现成的fonts.dir(只包括simsun.ttf和tahoma.ttf).

生成fonts.scale
# cat fonts.dir >fonts.scale

若使用freetype字体解释器,需将 /usr/X11R6/lib/X11/fonts/encodings/encodings.dir
复制到 /usr/share/fonts/default/myttf。(好像mandrake8.X不需要)

4、修改XF86Config-4(XF86Config)
确定XFree86的版本
# xdpyinfo |grep "XFree86 version"
修改/etc/X11/XF86Config(对于XFree86 3.x.x)或者/etc/X11/XF86Config-4(对于XFree86 4.x.x)

如果不关闭xfs在Section "Files"中加入
!! FontPath   "/usr/share/fonts/default/myttf"
最好加在 FontPath   "unix/:7100"前面。
如果关闭xfs则要将/etc/X11/fs/config中的字体路径都加到Section "Files"(其中有部分字体路径可以不用,最好都加上)

在Section "Module"的内容如下
!!        Load  "xtt"      // xtt最好加在第一行
!!        Load  "GLcore"
!!        Load  "dbe"
!!        Load  "extmod"
!!        Load "fbdevhw"
!!        Load "dri"
!!        Load  "glx"
!!        Load  "record"
!! #        Load  "freetype"  //freetype  和type1不能与xtt同时存在
!! #        Load  "type1"     


5、配置kde
在KDE的K菜单―选项―个人化―国家和语言选择中国、字库zh_CN.gb2312。在K菜单―选项―观感―字体项中选则你想要的字体就可以了。

6、配置gnome
编辑/etc/gtk/gtkrc.zh_CN文件,设置字体如下:
!! style "gtk-default-zh-cn" {
!!        fontset = "-microsoft-Tahoma-medium-r-normal--14-*-*-*-*-*-iso8859-1,\
                  -misc-simsun-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*"

!! }
!! class "GtkWidget" style "gtk-default-zh-cn"

再将/etc/gnome/gtkrc.zh_CN中所有的FontSet设置为:
!!  fontset = "-misc-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0"
重新启动GNOME就可以看到漂亮的TrueType中文字体啦!
选择 Allow documents to use other fonts

如何让cdrom、软盘、移动硬盘显示中文[/COLOR]
在/etc/fstab中实现
/dev/hda1 /mnt/c vfat iocharset=gb2312,umask=0,codepage=936 0 0
手工命令实现
光驱:mount -t iso9660 -o iocharset=gb2312,umask=0,codepage=936 /dev/hdd /mnt/cdrom      
--------------------next---------------------
mandrake7.x的中文输入法用的是xcin,是台湾人作的,不太合乎大陆人的习惯,换用Chinput。对于redhat6.2、slackware8以及suse7.3不提供中文输入法,这就需要安装中文输入法。

Chinput安装
rosebug                                             
本文是本人根据资料和使用经验整理而成.
1,安装中文字体
# cd /tmp
# tar zxvf zh-fonts.tar.gz (产生misc目录)
# cd misc    (到子目录下)
# cp *.Z /usr/X11R6/lib/X11/fonts/misc (拷贝字体)
# cat fonts.alias >> /usr/X11R6/lib/X11/fonts/misc/fonts.alias
     (在别名文件中附加Chinput所使用的别名)
# cd /usr/X11R6/lib/X11/fonts/misc(到字体目录)
# mkfontdir   (产生或更新fonts.dir)
# xset fp rehash   (更新X Server的字体, 现在就可以使用了)
# rm -fr /tmp/misc  (-

2,安装输入法字典
# cd /usr/lib    (至库文件目录)
# tar zxvf /path/of/unicon2-im.tar.gz (解压文件至该目录,
                                          其中path为tar文件所在目录)
3,安装GNU pth
# tar zxvf pth-1.3.7.tar.gz  (解压pth库)
# cd pth-1.3.7    (进行安装)
# ./configure
# make
# make install
4,安装Chinput3.01
安装前必须先安装输入法字典和GNU pth
# tar zxvf Chinput-3.0.1.tar.gz
# cd Chinput-3.0.1
# make
# make install

5,修改某些设置
(1)编译新 locale,以 root 身份执行:localedef -f GB2312 -i zh_CN zh_CN.gb2312
   若无错误提示,则编译成功,在 /usr/lib/locale 下会增加 zh_CN.gb2312 目录。
(2)确定在 /usr/lib/gconv/gconv-modules 文件中包含了 alias GB2312-1980// EUC-CN//
   一行,若没有,加入它。
(3)在cxterm下使用 export LC_ALL=zh_CN.gb2312 启用中文 locale 支持。执行命令
   date,看看有无变化?你可看到日期为中文显示.
(4)为在下一次自动进入中文支持状态,在 HOME 目录下的 .bashrc 中加入:
!! export LANG=zh_CN.gb2312
!! export LC_ALL=zh_CN.gb2312
(5)由于 Chinput 需要 libstdc++-libc6.1-2.so.3,而 RedHat 的 compat-libstdc++
   兼容库中只包含 libstdc++-3-libc6.2-2-2.10.0.so,则需手动建立一个库链接:
# ln -s libstdc++-3-libc6.2-2-2.10.so libstdc++-libc6.1-2.so.3
(6)其他用户如要用上TrueType和Chiput,也必须改其主目录下看.bash_profile文件
!! export LANG=zh_CN.gb2312
!! export LC_ALL=zh_CN.gb2312
!! export XMODIFIERS=@im=Chinput

最好使用rpm包安装,简单易行,不易出错。

chinput的一些常见问题
1、字体错误
造成字体错误的原因主要有:安装时没有选择big字库,修改字体时将系统默认的字体改丢了。表现是
按ctrl+空格没反应,在命令行下键入chinput提示字体错误
Basic: Cannot open font -misc-simsun-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0(我使用的是系统默认的字体)

可以修改/usr/lib/Chinpt(有的是Zwinpro)\Chinput.ad中的来解决字体错误问题

!! chinput.gbfont  =     -misc-fzsongyi_z13-medium-r-normal--*-*-*-*-*-*-gb2312.1980-0
!! chinput.gbkfont =     -misc-fzsongyi_z13-medium-r-normal--*-*-*-*-*-*-gbk-0
!! chinput.gb18030font = -misc-fzsongyi_z13-medium-r-normal--*-*-*-*-*-*-iso10646-1
!! chinput.big5font    = -*-*-*-*-*--*-*-*-*-*-*-*-0
注意:在 Chinput.ad 的字体定义中,不能出现空格,这是由于 Chinput 的限制
如果是没有安装big5字体可以安装kde-i18n-Chinese-Big5-2.2-8.noarch.rpm
#  rpm -ivh kde-i18n-Chinese-Big5-2.2-8.noarch.rpm 即可。或则将big5font一行改成和gbfont一行的字体一样。
2、参数设置问题
1、检查环境变量设置
# set | grep LANG
# set | grep LC
# set | grep Chinput
查看环境变量有无
LANGUAGE=zh_CN.GB2312(redhat7.2.93为LANGUAGE=zh_CN.GB2312:zh_CN.GB18030:zh_CN)
LC_ALL=zh_CN.GB2312
LANG=zh_CN.GB2312
XMODIFIERS=@im=Chinput
无上述内容在~/.bash_profile中添加(缺哪个添哪个)
!! export LC_ALL=zh_CN.GB2312
!! export LANG=zh_CN.GB2312
!! export LANGUAGE=zh_CN.GB2312
!! export XMODIFIERS=@im=Chinput
ctrl+period(句号)切换全角即可输入 “、”“。“等符号

3、/root/.pyinput/usrphrase.tab is not valid pinyin phrase file.
找到一个好的usrphrase.tab文件替换原usrphrase.tab
4、
选项―观感―字体中字符集选择的类型与chinput设置的不同。导致输入的汉字无法显示,比如,字符集都选择gbk,输入汉字就出现上述问题,chinput,默认是gb2312。

XSIM安装[/COLOR]
      
--------------------next---------------------
1、mozilla的设置
Edit―Prefrences―Appearance―fonts选择你想使用的字体


如果你嫌字体太小可以修改/usr/lib/mozilla/defaults/pref/unix.js中
所有有font.min-size行的字号改为14或16

2、Openoffice641界面汉字方块问题
如果你的linux汉化没问题(在其他程序中汉字显示正常),
可以通过字体替换的方法解决:
工具(Alt+) --- 选项(O) ---- openoffice.org ---- 字体替换
将tahoma(也可能是interface user)替换为simsun
界面就可以显示漂亮的汉字了.


3、java程序的中文显示
whyyy
我的linux已经可以显示中文了,但是win2k下的java程序移植到linux下中文字体显示成||了。
在win2k下用jb6写的java应用程序,有frame、jframe之类的,运行成功后,移植到redhatlinux7.2下,中文字体就显示成?或者||之类的了。提示的信息是:
Font specified in font.properties not found[-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0
解决方法
修改JAVA_HOME/jre/lib/font.properties.zh文件,将其中所有的
-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0
替换为与系统字体设置相同的font.dir文件中simsun.ttc的设置,如
-misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0

4、让Xpdf支持中文字体

有个xpdfrc文件,里面有一个非常小的bug,少了一个字母B
修改过程
第一步:
cat /usr/share/xpdf/chinese-simplified/add-to-xpdfrc >> /etc/xpdfrc
第二步:vi /etc/xpdfrc
其中有一行:
cidToUnicode Adobe-GB1 /usr/share/xpdf/chinese-simplified/Adobe-G1.cidToUnicode
在最后一个大写G后加一个B,如下:
cidToUnicode Adobe-GB1 /usr/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode

5、永中office界面乱码的解决方法
修改/usr/java/jdk1.3.1_02/jre/lib/font.properties.zh. 中文字体设置为当前使用的字体      
--------------------next---------------------
这些汉化方法适用于Xfree4.1,我补充一下Xfree3.3.6下面的汉化,参考了俩个别的兄弟得经验.

我的tnt2m64显卡在Xfree4.1下面总出现道道,非常难过,重新安装选择了带有3d加速的Xfree3.3.6,显卡正常了,之后如此汉化即可.

3.3.6用的是/etc/X11/XF86Config文件配置,按照使用4.1时的XF86Config-4配置做了如下改动。
........
FontPath "unix/:-1"
FontPath "/usr/X11R6/lib/X11/fonts/TureType"
.......
.......
Section "Module" //这部份可能在你的文件中找不到,找个地方加上
Load "xtt"
EndSection
........

这样改的前提是你的simsun字体已装在了/usr/X11R6/lib/X11/fonts/TureType目录

最后还要对/etc/X11/fs下的config文件做下面的改动
.....
/usr/X11R6/lib/X11/fonts/mdk:unscaled,
#/usr/X11R6/lib/X11/fonts/TureType, //注释掉
/usr/share/fonts/default/Type1,
.....
不让xfs字体服务刷新该目录下的fonts.dir,如果你安装simsun字体已经改了就OK了!

重起X服务后,改变字体设置,选择simsun,便可看到漂亮的字体啦!

我在mandrake8.2上面通过.font.dir参考mandrake急速汉化一文,只有5行就可以了.      
--------------------next---------------------
redhat7.2安装时选择中文简体,使用时没碰到什么问题,有些软件无法正常显示中文,比如,xmms,gedit等,我的解决方法是装上simsun字体,然后改变一下软件的字体,用得还可以

还有就是光驱显示不出中文来,在/etc/fstab里找到光驱那一行,加上"iocharset=gb2312,",记得要跟后面的参数用逗号隔开啊,这样问题就解决了

再来就是加载windows分区时中文也无法显示
我用的是手工加载:
mount -t vfat -o iocharset=gb2312,umask=0,codepage=936  /dev/hda1 /mnt/winc

呵呵,命令好长喔,这里可以写一个shell(mountwin):

#/bin/bash

#注意$1和$2这是用来输入命参数的,$1是你所要加的分区,$2是你用来放分区的目录

mount -t vfat -o iocharset=gb2312,umask=0,codepage=936 /dev/$1 /mnt/$2

#end of mountwin

现在我要是想加载分区时,我运行命令./mountwin hda1 winc

我的信箱是sounet@163.com 有空一起讨论啊      
--------------------next---------------------
楼上仁兄说的不够详细,通过他的启发,试了几次,终于成功了。
编辑/etc/fstab(随便一个文本编辑器):
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda10 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 iocharset=gb2312,noauto,owner,kudzu,ro 0 0
/dev/hda1 /mnt/c vfat iocharset=gb2312,auto,rw 0 0
/dev/hda5 /mnt/d vfat iocharset=gb2312,auto,rw 0 0
/dev/hda6 /mnt/e vfat iocharset=gb2312,auto,rw 0 0
/dev/hda7 /mnt/f vfat iocharset=gb2312,auto,rw 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

我的硬盘分区是FAT为C、D、E、F。LINUX装在F盘后。改完以后重起,就可以自动加载C、D、E、F和光驱了,而且能够自动识别FAT分区下的汉字      
--------------------next---------------------

阅读(212) | 评论(0) | 转发(0) |
0

上一篇:只看该作者

下一篇:只看该作者

给主人留下些什么吧!~~