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

linux汉化大全(一)



        


    hubertzou [email protected]

    前言:

    为了写这篇文章,我参考了internet上大量的文章,结合自己多年的使用实践经验才写出来,目的是让大家不用
    满世界找资料,参考本文就有一个大致了解,并能选择地进行汉化。

    由于参考文章太多,大多又经过多此转载,所以没有列出文章来源,我只能多谢各位前辈的工作,本文也是GPL,
    欢迎使用,转载,只希望标明出处。


    Linux的中文输入概述:

    汉字输入上, GB 与 Big5 的输入由于历史与习惯的原因, 已截然分化成两种, 这就是在大陆最流行的Chinput 和 在台湾最流行的 XCIN, 它们都经历了自定义协议阶段, 目的是配合外挂式中文平台, 最终向国际化标准协议靠拢, 即支持XIM协议(日语输入软件kinput2也经历了漫长的过程). 在中文平台TL-ZWinPro下使用Chinput, 它的XIM协议和原来的协议能够无缝接合使用.

    目前Chinput已成为大陆最流行的Linux中文输入软件. 它被众多的Linux中文平台所采用:

    TurboLinux 中文版6.0,Xteam Linux 3.2,BluePoint Linux 2.0
    ZhXWin: 由宫敏博士开发的Linux下的中文平台

    Chinput 以CXterm的输入引擎为基础, 支持中文GB/GBK/Big5, 日文和韩文输入. 后又增添了李振春先生的智能拼音输入, 使输入法日臻完备. 它具有独特的无边界窗口, 浏览输入模式, 单双行输入模式, 颜色字体可配置性. 如果配合中文平台 TL-ZWinPro, 它可以根据窗口当前的编码自动输入GB/GBK/Big5.极大地方便了中文用户的网上冲浪, 如浏览网页时的输入,上BBS时输入, 都有可能需要同时输入GB和Big5编码, 这时您不必要重新启动Chinput, 便可以输入这两种不同的编码.

    XIM 协议

    Chinput 对X11R6的国际化输入提供了标准接口, 即XIM接口. Chinput 所使用的Locale是zh_CN, 定义的输入服务器名称是"Chinput", 所以 在客户程序找不到 Chinput 时, 应设置XMODIFIERS为"@im=Chinput".

    XIM 的输入风格(preedittype)共有四种: on the spot, over the spot, off the spot, root window, "on the spot" 是在Client软件的当前 输入处输入, "over the spot" 是在当前输入处之上有一预编辑窗口提供 输入, "off the spot" 是在输入窗口的下方提供预编辑取和输入状态显示 区, "root window" 是在独立于输入软件的窗口中(该窗口为根窗口的子 窗口)输入. 可以看出, "root window" 是比较适合汉字输入的. Chinput 目前只支持根窗口输入风格(root-window style). 如果有必要, 其它的输入风格也将被陆续加入.

    XIM 支持与原协议无缝结合, 对用户来说是不透明的. 当用户在中文平台上使用XIM支持的软件时,原协议对该应用软件自动失效. 这要求中文平台需要作特殊处理, 才能避免两种协议的冲突.


    支持软件(运行前设置LC_ALL=zh_CN.EUC, LANG=zh_CN.EUC)

    nxterm, 修改源码. 中文显示需中文平台支持
    xemacs, 编译:configure --with-xim=xlib
    rxvt2.60, 编译:configure --enable-xim --enable-gb, 运行: rxvt -im Chinput -pt Root
    netscape: 需改动Netscape.ad, 部份输入区有问题:
    Netscape*fontList: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*;-*-gb13000.1993-1:

    vim 资源文件 .gvimrc(.vimrc):
    :set fileencoding=prc
    :set guifontset=-sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1,-tlc-song-medium-r-normal-*-16-*-*-*-*-*-gb13000.1993-1


    qt-1.44(i18n patched)/KDE: setenv XMODIFIERS @im=Chinput
    gtk/gnome: 设置 fontset
    gimp: 须修改资源文件
    Motif: 设置 fontset


    一,Linux下的中文终端

    Linux 下现在用户可以有许多中文终端可用, 比如 CXterm, rxvt, kvt, 即使是普通的 xterm, 在中文平台下也可以成为中文终端. 在这些中文终端之中, 最好用的当属 CXterm.CXterm 自带中文输入方法, 当然在中文平台下也可以使用中文平台所带的输入方法. 比如在TurboLinux下使用Chinput中的智能拼音是最好的选择. 此外, 除了支持GB外, CXterm还可以支持中文Big5 编码, 日语EUC编码和韩语EUC编码(尽管实际上使用它作日韩语终端 的人比较少).

    CXterm 是上BBS的最佳选择之一, 它也可以用来和 jvim一起编辑汉字文件.

    rxvt 也是支持中/日/韩双字节编码的终端, 它与CXterm不同的是, rxvt本身不带输入部分, 但它支持XIM输入或在中文平台上使用.

    cce也非常好用,不象union还需要重新编译内核.大家可从网上下载cxterm或cce的rpm包安装即可.
    unicon 3.0.2当然有它的好处,如支持中文目录,文件名显示.



    二,安装中文字库

    方案一:安装中文TrueType字体

    XFree86 4.x可以比较好的支持TrueType字体。TrueType字体可以无级缩放,显示效果非点阵字体可比。为了达
    到Microsoft Windows那样的漂亮字体效果,我们可以安装中文TrueType字体。最简单的方法就是直接使用Windows下
    的中文字体。

    注意:Windows的TTF字体是Microsoft公司的商业软件,这里使用它主要是用于学习和教育目的,不可非法使用。

    mkdir /usr/share/fonts/default/TrueType
    cp /mnt/c/windows/fonts/simsun.ttf /usr/share/fonts/default/TrueType
    cd /usr/share/fonts/default/TrueType
    ttmkfdir > fonts.dir

    因为ttmkfdir对Windows字体的编码识别有问题,因此需要手动修改一下。

    编辑fonts.dir文件,将

    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
    然后设置可缩放字体

    cp fonts.dir fonts.scale

    设置编码文件

    cp /usr/X11R6/lib/X11/fonts/encodings/encodings.dir .
    因为我们修改了字体名称,所以不能再用xfs了,必须指定字体路径。

    编辑/etc/X11/XF86Config-4文件,将默认的xfs部分注释起来,再加上所需要的字体路径,如下所示:
    (#表示注释行,以下同)

    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/misc"
    FontPath "/usr/X11R6/lib/X11/fonts/Type1"
    FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
    FontPath "/usr/share/fonts/default/Type1"
    FontPath "/usr/share/fonts/default/TrueType" (关键)
    EndSection

    还有在该文件的Modules部分,请加上xtt模块,同时必须取消freetype模块,两模块不可同时使用。
    例如:
    Section "Module"
    Load "GLcore"
    Load "dbe"
    # Load "dri"
    Load "extmod"
    Load "glx"
    Load "pex5"
    Load "record"
    Load "xie"
    Load "v4l"
    # Load "freetype"
    Load "xtt" (关键)
    Load "type1"
    Load "speedo"
    EndSection

    运行/etc/rc.d/init.d/xfs stop
    再运行/usr/sbin/setup,取消xfs在启动时的加载。

    方案二:
    我喜欢简单,所以直接用bluepoint linux 2.0的一些rpm包
    rpm -Uhv bluepoint-release-2.0-1BP.noarch.rpm
    rpm -Uhv XFree86-zhfont-3.3.5-1.i386.rpm

    需要这些软件的人可到http://www.linuxaid.com.cn/engineer/hubertzou/下载。
    关闭xfs,修改/etc/X11/XF86Config-4:

    Section "Files"
    # FontPath "unix/:7100"

    FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
    FontPath "/usr/share/zhfont/X11/"
    FontPath "/usr/X11R6/lib/X11/fonts/chinese/"
    FontPath "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"

    EndSection

    相关问题:

    有网友说在XFree864.0.2下可以不关闭XFS因为某此程序如 realplayer只认默认的 fixed 字体.关掉XFS
    会出错说找不到字体.

    我也试过了,其实在XFree 86 4.0.1里面也可以不用关。只要在/etc/X11/XF86Config-4里面加上TrueType字
    体的路径就可以了。这样写:

    Section "Files"

    FontPath "unix/:7100"
    FontPath "/usr/share/fonts/default/TrueType"

    EndSection

    这是就不要动xfs相关的部分了。

    三,bluepoint汉化

    如果你的显卡在XFree86 3.3.6上运行良好,而你有不打算在汉化上自找麻烦的话,直接用bluepoint linux的rpm包来进行汉化,用不了几分钟.

    本方法只可用于redhat 6.2,redhat 7.0以及mandrake 7.0等版本得汉化,但遗憾得是,目前只支持xfree86 3.3.6,
    xfree86 3.3.6不支持得显卡只能寻求它法了.

    选择显卡驱动(如XF86_SVGA,视你的显卡而定)
    下载下列rpm软件包(可从http://www.linuxaid.com.cn/engineer/hubertzouhttp://www.bluepoint.com.cn下载).
    1,XFree86-SVGA-3.3.6-6BP.i386.rpm
    2,XFree86-zhfont-3.3.5-1.i386.rpm
    3,bluepoint-release-1.0-1BP.noarch.rpm
    4,cxwin-tools-1.0-4BP.i386.rpm

    rpm -Uhv XFree86-SVGA-3.3.6-6BP.i386.rpm
    rpm -Uhv XFree86-zhfont-3.3.5-1.i386.rpm
    rpm -Uhv bluepoint-release-1.0-1BP.noarch.rpm
    rpm -Uhv cxwin-tools-1.0-4BP.i386.rpm

    修改/etc/X11/XF86Config如下:

    # FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
    # FontPath "unix/:-1"

    FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
    FontPath "/usr/X11R6/lib/X11/fonts/encodings:unscaled"
    FontPath "/usr/share/zhfont/X11/"
    FontPath "/usr/X11R6/lib/X11/fonts/misc"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
    FontPath "/usr/X11R6/lib/X11/fonts/100dpi"

    EndSection


    修改/etc/X11/ChineseConfig

    CodingSystem GB2312


    重启动Xwindow,就可用中文输入和用netscape浏览中文网站,big5也可以正确显示.
    如需进一步汉化kde,最好安装bluepoint linux 2.0带得kde软件,至少要它的qt-1.44bp
    修改kde的字体设置,把默认code改为简体中文即可,

    重启动kde后,所有的东西全是中文的,菜单,书签...,中文输入也很好用,

    注意:用kde的人最好再安装bluepoint的三个blinp包
    blinp-0.1-4BP.i386.rpm
    blinp-ccetab-0.1-6BP.i386.rpm
    blinp-kde-0.1-1BP.i386.rpm

    四,炎黄中文输入

    * 适用环境:RedHat7.x,必须安装qt2和kdelibs2
    * RPM包的编译环境:

    * kernel 2.4.2
    * glibc-2.2.2-3
    * gcc(-c++)-2.96-77(RH)
    * XFree86-4.0.2-11
    * QT-2.3.0
    * KDE-2.1
    * 安装

    使用以下命令行:
    rpm -Uvh --force rf-xim-input-2.1-2.i386.rpm

    然后重新登录当前用户。
    本包中自带中文点阵字体(14),并自动设置环境变量,在RH7.1(beta)下无需其它任何设置。
    * 用法:

    Ctrl+空格:进入/取消中文输入状态
    Ctrl+Shift:切换中文输入法

    在中文输入状态下,按
    Alt+1:智能拼音输入法
    Alt+2:GBK拼音输入法
    Alt+3:国标区位输入
    Alt+4:五笔字型输入法

    KDE用户可以点击桌面右下角的图标选择输入法。
    * 关于五笔输入法:

    rf-xim-input中的五笔输入法码表文件是一个文本文件,您可以任意添加自己的词组,每个词组占一行,格式请查看文件/usr/local/rfinput/lib/wbx.mb
    * 已知的问题:

    如果出现意外而使得rf-xim-input中止运行,可能使得它无法再次启动。此时请用以下方法解决:

    在控制台输入命令:

    ps -A|grep rfinput

    如果有输出的话,用命令:

    kill -s SIGKILL <输出中的数字>


    此时KDE2可能会报应用程序崩溃信息,确定即可。
    然后再次启动rf-xim-input,如果还无法运行,等一会再试即可重新运行。

    * 关于src.rpm:

    该包可以在qt-2.2.3/qt-2.2.4/qt-2.3.0(for RedHat,qt安装在/usr/lib/qt-2.x.x下)下编译通过。如果编译
    程序无法找到库的头文件,请修改Makefile。


    五,Chinput的安装方法:

    下载到Chinput-3.0.1.tar.gz
    pth-1.3.7-1.i386.rpm
    unicon2-im.tar.gz
    zh_CN

    首先安装pth
    rpm -Uhv pth-1.3.7-1.i386.rpm

    接着,tar zxvf unicon2-im.tar.gz
    mv unicon2 /usr/lib/


    编译新 locale,以 root 身份执行:localedef -f GB2312 -i zh_CN zh_CN.gb2312
    若无错误提示,则编译成功,在 /usr/lib/locale 下会增加 zh_CN.gb2312 目录。

    确定在 /usr/lib/gconv/gconv-modules 文件中包含了 alias GB2312-1980// EUC-CN// 一行,
    若没有,加入它。在redhat7.1b2中已有
    "alias GB2312// EUC-CN//"
    "alias csGB2312// EUC-CN//"
    "alias CN-GB// EUC-CN//"

    但我还是加上"alias GB2312-1980// EUC-CN//"

    好,我们开始安装Chinput

    tar zxvf Chinput-3.0.1.tar.gz
    cd Chinput-3.0.1
    make
    make install

    进入usr/lib
    ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-2.so.3

    再修改 /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 的限制。





    发布人:netbull 来自:LinuxAid