当前位置:Linux教程 - Linux - linux汉化大全(二)

linux汉化大全(二)



        
    [email protected]

    六,REDHAT 7.0中GNOME的汉化

    GNOME的中文显示
    RedHat 7.0采用glibc2.2和XFree86 4.0.1,对国际化的支持有了很大的进步。GNOME是优秀的桌面平台,也
    是目前Linux使用的对国际化支持最好的桌面平台之一。这里我主要讲如何实现在RedHat 7.0下面显示和输入简体中文。

    为了简单起见,仅仅讲述GB2312编码的字符集。

    因为XFree86 4.0.1对显卡的支持不如XFree86 3.3.6广泛,所以RedHat 7.0里面同时保留了XFree86 3.3.6
    可以用xdpyinfo查看XFree86的版本号.方法
    xdpyinfo | grep release | sed s/^.*[^[:digit:]]//

    看看结果是不是4001或者4002,如果不是,表明版本不是4.0.x

    1:升级glibc

    RedHat 7.0自带的glibc版本为2.1.92,是2.2的测试版,bug比较多。后来RedHat公司提供了glibc的升级文件。
    为了系统的稳定和更好的支持中文,应该将glibc升级到2.2-9版本或更高。下载地址:

    ftp://ftp.gnuchina.org/pub/ISO/RedHat/updates/7.0/i386

    最好将glibc,glibc-devel,glibc-profile都升级到2.2.9

    升级方法:
    rpm -Uvh glibc-2.2-9.i386.rpm

    2:设置中文locale
    Linux采用locale技术以实现对多语言的支持。因此首先要设置中文locale。

    如果你使用的是bash,那么请编辑~/.bash_profile文件,加上
    export LC_ALL=zh_CN
    export LANG=zh_CN
    然后运行. .bash_profile或者重新登录账号以使设置生效。
    编辑~/.i18n文件,内容为:
    LANG="zh_CN"

    3:测试中文locale
    在控制台上运行date命令,如果你能看到乱码证明中文locale已经生效。
    此时运行startx进入GNOME桌面,你将看到任务栏上的时间已经变成中文显示了。如果你默认的不是
    GNOME桌面则可以
    运行switchdesk gnome切换到GNOME桌面。

    4:显示Windows下的中文文件名
    如果你还装了中文Windows 95/98/Me,那么现在就可以显示中文文件名了。RedHat 7.0采用2.2.16的内核,可以
    支持
    简体中文代码页。使用方法:在mount后加选项-o codepage=936,iocharset=cp936。为了永久生效,可以修改
    /etc/fstab
    文件。例如我的/etc/fstab文件内容为:
    LABEL=/ / ext2 defaults 1 1
    /dev/hda1 /mnt/c vfat defaults,codepage=936,iocharset=cp936 0 0
    /dev/hda7 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0
    /dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
    /dev/fd0 /mnt/floppy auto noauto,owner 0 0
    none /proc proc defaults 0 0
    none /dev/pts devpts gid=5,mode=620 0 0
    /dev/hda10 swap swap defaults 0 0

    5:安装中文TrueType字体(参看前文)

    6:设置GNOME的TrueType中文字体
    为了使我们设置的TrueType字体能够在GNOME下面使用,必须修改GNOME的资源配置文件。
    编辑/etc/gtk/gtkrc.zh_CN文件,设置字体如下:
    style "gtk-default-zh-cn" {
    fontset = " -misc-simsun-medium-r-normal--14-0-0-0-p-0-*-* "
    }
    class "GtkWidget" style "gtk-default-zh-cn"

    再编辑/etc/gnome/gtkrc.zh_CN文件,将所有的FontSet设置为:
    fontset = "-misc-simsun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0"
    此时运行startx进入GNOME桌面,就可以看到漂亮的TrueType中文字体啦!


    七,kde2.1.1的汉化

    KDE 2.1.1 于今年3月26日发行的最新版本. 该版本包括了linuxforum成员Rigel为 KDE 2.1 写的中文补丁. 同时 KDE 中文翻
    译队伍的负责人Wan Jian 修正了有问题的 po 文件, 这样 KDE 2.1.1 就成了第一个无需补丁支持简体中文的 KDE 版本.

    我得到消息后,第一时间下载到kde2.1.1的软件包,我用的是redhat 7.1B2版本,在网站上没有提供redhat 7的rpm包,我只有
    用bz2软件包了。

    我已经安装了qt-2.2.4的rpm包,所以就可以直接开始安装,其他同志最好用qt-2.3

    注意:我用的是qt-2.2.4的rpm包,如果用qt-2.3的tgz版本,请注意修改相应部份.(PATH,QTDIR)

    首先,安装kde2.1.1

    首先把下载的bz2包拷贝到/usr/local/kde下,用bunzip2和tar解包
    如:bunzip2 kdelibs-2.1.1.tar.bz2
    tar xvf kdelibs-2.1.1.tar

    注意:安装kde必须安装kdelibs和kdebase,强烈要求安装kdesupport,其它都为选装,我当然
    全装了,我的机器为celeron 600,128M,足足用了两个晚上才编译完,怕麻烦的人还是等rpm包吧!!

    修改~/.bash_profile

    PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH:$HOME/bin:/usr/local/bin:/usr/lib/qt-2.2.4/bin:/usr/local/kde/bin
    BASH_ENV=$HOME/.bashrc
    USERNAME="root"
    QTDIR="/usr/lib/qt-2.2.4"
    KDEDIR="/usr/local/kde/"

    export USERNAME BASH_ENV PATH QTDIR KDEDIR
    export LANG=zh_CN.GB2312
    export LC_ALL=zh_CN.GB2312
    export XMODIFIERS=@im=Chinput

    进入/usr/local/kde/kdelibs目录
    ./configure
    make
    make install

    编译极耗时间,去喝喝茶吧!

    接着编译其它软件包,完成后修改~/.xinitrc
    rm ~/.xinitrc
    cat >.xinitrc
    startkde
    Ctrl-D

    接着,参照前文,安装中文字库和chinput

    最后,调整kde

    重启动后,用startx进入kde.修改字符集,改选字符,退出再进入kde

    一切正常,所有的菜单都显现汉字,不过小问题总是有的, 都算不错了。用gedit编辑中文,用mozilla上网,一切
    都棒极了,mozilla的书签中文显示也很正常。

    八,中文打印

    在 linux 下打印是件麻烦事, 中文打印由甚. 为什么哪? 将屏幕上看到的文字印到纸上, 要经过两步:

    1. 应用程序生成postscript 文件;
    2. 将该文件送到打印机 (直接或通过 ghostscript). 让我们先从第二步看起.


    一. 如何打印中文 postscript 文件?

    最大的问题是一般打印机不支持或不带中文字体. 一般我们使用 ghostscript, 但ghostscript 对中文字体的支持也不是很完美. 大多数情况下需要打补丁. 目前有以下几种解决方案:

    1. 直接 patch ghostscript 使其支持 truetype 字体. 可参看该网站. 这是目前最为简单的方法. 缺点是需要 > 6.0 版的 ghostscript, 该版目前还没有以GPL施放, 任何 linux 都不会预装, 需要自己下载安装.

    2. 使用 CID 字体. CID 是 adobe 为亚洲文字设计的字体, 打破了 type1 字体只能容纳 256 个字符的限制. ghostscript (> V5.5?) 直接支持 CID 字体, 无需补丁. 可参看同一网站如何设置. 本来这应该是最好的方案, 因为不要打补丁.可惜 CID 字体太少了.

    3. Patch ghostscript 使其支持 VFlib, 通过 VFlib 支持 truetype 字体. 优点是支持老的 ghostscript 版本 (中文有 for 5.5 的 patch, 日文甚至有 for 4.x的), 支持字体变形等. 缺点是需要额外安装 VFlib. Turbolinux 6.0 以上及CLE v0.9p1以上均使用了该方法. 可以到它们相应的软件包中找补丁.

    4. 陈向阳的 gbpfb 包, 将中文 truetype 字体转换成 type1 pfb 字体, 由于type1字体只能容纳 256 个字符的限制, 一个 truetype 字体将会生成 30-40个 pfb 字体, 再由一个前端文件控制. 当年这是我们中国人唯一知到的打印中文 postscript文件的方法. 我还记得用此法第一次从 netscape 打印出中文的惊喜. Turbolinux4.x 以下及蓝点等中文发布均使用了该方法. 但现在与前述的 1-3 法相比, 显得有些简陋, 存在一些难以克服的毛病, 已经越来越少的被使用了. 如果您想要可以在上面提到的几个中文 linux 中找到.

    5. 在 postscript 文件中内嵌中文点阵字体. 优点是连 ghostscript 都不需要了,直接送到任何支持 postscript 的打印机上就可打印. 缺点是生成的文件庞大,打印出的质量欠佳.



    最后, 使用 1-4 法都需要通过 ghostscript 将文件发往打印机. 有两种用法:

    直接使用, 如: gs -q -dBATCH -sDEVICE=printer-type -sOutputFile=lpr -
    或设置 filter 使 lpr 自动调用 ghostscript.


    二. 我能打印中文 postscript 文件, 可是还是不能从 xxx 程序中打印中文!?

    这就需要我们看看打印过程的第一步, 即应用程序生成postscript 文件. 目前有多少 linux 下的程序能生成支持中文的 postscript 文件? 少只又少, 真正不需要任何补丁就能 work 的我知道的有三个: netscape/mozilla/abiword(>=0.12).

    主要问题是很少有程序能正确处理中文 font. 在 UNIX/LINUX 世界没有统一的打印API, 任何程序想打印, 必须自己写 code 生成 postscript 文件, 很难想像所有程序员都原意并有能力考虑中文 postscript 字体问题. 现在 gnome-print 和 QT printer class 都是试图产生一个公用 API 以便应用程序不必自己处理生成 postscript的问题. 可惜二者都处于起步阶段, 仅仅聚焦于 type1 字体, 还没顾的上考虑中文的问题. 也就是说目前所有 GNOME/KDE 应用程序, 只要使用这两个 API, 都不能生成正确的中文 postscript 文件, 不能印出中文字. 台湾有人(见CLE的QT包)写了 QT printer 的patch, 但还不是很完善; 没听说有 gnome-print 的中文 patch.


    三,我是如何打印中文的

    我用的是ghostscript-6.0-1.i386.rpm和gbpfb-1.1-2.i386.rpm来进行中文打印。
    想要该软件的人可再http://www.linuxaid.com.cn/engineer/hubertzou/获得。

    需要提醒的是,要先安装ghostscript-6.0-1.i386.rpm,用qs -help测试一下后再安装gbpfb-1.1-2.i386.rpm.

    再netscape或mozilla中的print command中把lpr改为ns2cps - | lpr

    这样,就可以用netscape来打印中文html和中文txt文件了。

    至于其它的方法,我没有试过,但为了提供尽量多的方法,所以也提供给大家。

    九,Mozilla的汉化

    上网冲浪最重要的软件莫过于浏览器了。Linux下常用的浏览器有Netscape、Lynx等。这里我要向各位推荐的是
    Netscape的新一代浏览器核心——Mozilla。Mozilla完全符合最新W3C标准,

    目前最新版0.8.1无论是从功能还是稳定性上来说都已经做的相当不错了。

    下载Mozilla 0.8.1

    下载地址http://www.mozilla.org

    安装

    tar zxvf mozilla-i686-pc-linux-gnu-0.8.1.tar.gz

    cd mozilla

    ./mozilla

    这时mozilla就启动了。现在我们来做一些配置工作。首先选择Edit--Preferences,弹出对话框

    选择Appearance--Fonts,在Language Encoding中选择Simplified Chinese,然后将Serif、

    Sans Serif、Monospace都选择misc-simsun-gb2312.1980-0字体。Size设为14。

    有些站点可以自动识别语言。这可以通过以下方法实现:

    Navigator--Languages--Add...

    选择Chinese/China [zh-cn]

    点击Move Up,将中文语言放在最上面。

    最后点OK完成配置,然后退出Mozilla。(注意:这一点很重要,因为mozilla退出时会改写配置文件。如果
    没有退出mozilla做以下操作将无效!)

    cd mozilla/defaults/pref,编辑unix.js

    找到这样两行

    pref("font.min-size.variable.zh-CN", 16);

    pref("font.min-size.fixed.zh-CN", 16);

    改为

    pref("font.min-size.variable.zh-CN", 12);

    pref("font.min-size.fixed.zh-CN", 12);

    这样可以使网页看上去美观多了。

    最后是对输入法的配置

    cd ~/.mozilla

    在里面找到pref.js文件,在文件最后加上这样一行

    pref("xim.input_style","over-the-spot");

    然后运行mozilla,就可以显示效果很好的中文网页了!显示效果一点不比IE 5.0差。

    为了方便,可以在panel中增加mozilla的启动图标。mozilla有一个bug,当xmms正在播放的时候不能启动,
    因此启动mozilla时需要停止xmms。

    为了方便中文识别,可以选择View--Character Coding--Auto-Detect--Simplified Chinese以后mozilla会
    自动识别中文代码页面。


    十:glibc 2.2的汉化实验

    glibc 2.2的一个重要方面就是彻底国际化,比如wchar_t内码为4字节Unicode(UCS-4)。对于最新国家
    标准18030-2000的支持更是自然而然的事。

    我的兴趣所在却是UTF-8。试验UTF-8的条件终于成熟了。

    第一件事,去http://dickey.his.com/xterm/xterm.html取来最新的 xterm 源码包,

    tar zxf xterm.tar.gz

    ./configure --enable-wide-chars


    make

    得到 xterm 执行码。调出一个新的 xterm 窗口,

    ./xterm -u8 -fn 9x18U &

    在这个 xterm 窗口中,理论上说,所有的Unicode文件都能显示,中文自不例外。假如手头一时找不到
    UTF-8编码的文件,转一个很容易。比如 A.GBK是一个国标文件,用 iconv -f GBK -t UTF-8 A.GBK >A.UTF-8马
    上得到一个UTF-8文件。看一下对不对, cat A.UTF-8

    第二件事,造一个使用UTF-8的中文环境。

    先拿两个文件来,

    cp /usr/share/i18n/charmaps/UTF-8.gz .;
    gunzip UTF-8.gz cp /usr/share/i18n/locales/zh_CN

    由这两个文件便可以生成UTF-8中文环境,

    localedef -v -c -f ./UTF-8 -i ./zh_CN /usr/lib/locale/zh_CN.UTF-8

    有了这一中文环境,就可以选用了,

    LC_ALL=zh_CN.UTF-8; export LC_ALL

    如何证明呢,看时间, date +%c结果是 2000年11月09日星期五EST下午10点39分15秒甚至ls -l也显示
    出中文月份。至于中文输入,chinput,cce就可搞定!

    发布人:netbull 来自:LinuxAid