51 FreeBSD连载:中文X应用软件

X Window下的中文环境Unix的中文化对于Unix的推广使用一向是个难题,对于象FreeBSD这样的操作系统来讲,中文化工作比较零乱,虽然有不少X下的中文软件,但是由于国内软件发展的水平还不高,自由软件的开发水平更是如此,并且自由软件的开发者之间也没有被有效的组织起来,因此还没有出现一个很完整的中文系统 。
然而中文相关的软件却相当丰富,在Ports Collection中,有一个类别就是chinese,专门收集中文相关的处理软件,但其中绝大多数是台湾的BIG5版本 。因为台湾在FreeBSD领域的发展相当快,很多软件都是先由台湾出现相应BIG5版本之后,再出现GB版本 。
bash-2.02$ ls /usr/ports/chineseCJKbig5fontsgbfonts nvi-big5tedCVSc2tgbscriptnvi-euc-cntinMakefilecelvishcnvi-euc-twxcinREADME.HTMLcless hztty pine3Wnncnsfontskcfonts pine4bg5ps cxtermlunar pkgbig5con gb2ps mule-wnn4rxvt中文X应用软件
在X Window下使用中文的基本条件之一就是需要安装合适的中文字库 。当前的XFree86发行版本中带有一些基本中文字库,在系统安装选择X组件的设置时需要将其包括在内,然而中文存在不同的编码方式,使用不同编码的应用程序就使用不同的字体文件,XFree86中提供的中文字体对于另外一些中文程序还是不够的 。
Packages Collection中的chinese类别中也提供了其他的一些BIG5和GB编码的字体,如gbfonts、kcfonts、big5fongs等软件包,需要使用pkg_add命令将其安装入系统 。在真正执行中文X应用程序时,可以使用xlsfont命令可以查看系统中是否有相应字库,如:
$ xlsfonts *gb*-cc-song-medium-r-normal-jiantizi-0-0-75-75-c-0-gb2312.1980-0-cc-song-medium-r-normal-jiantizi-40-400-75-75-c-400-gb2312.1980-0-cc-song-medium-r-normal-jiantizi-48-480-75-75-c-480-gb2312.1980-0-isas-fangsong ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0-isas-song ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0hanzigb16fshanzigb16sthanzigb24st当一个字体不存在但同时存在同样编码的其他字体的时候,可以通过在fonts.alias中定义别名的方法来帮助解决这个问题 。
除了Packages Collection提供的字体之外,从网络上也可以得到其他的一些中文字体 。在ftp://ftp.ifCSS.org站点中收集了很多自由或共享中文字体和中文软件 。
cxterm
cxterm是一个使用非常广泛的中文X终端程序,已经被移植到很多种类的Unix系统中 。它已经被FreeBSD的爱好者做成Packages,因此安装起来非常简单 。cxterm支持GB、BIG5以及日、韩文等编码和多种输入法 。
直接启动cxterm只能用于浏览中文而不能进行输入,这是由于cxterm需要X系统的一些资源设置,以使用快捷键切换不同输入法,并根据设置寻找其输入法对应的数据文件 。要输入中文必须进行设置,将资源文件预先载入,指定热键、输入法和输入字典所在的目录 。cxterm软件包中提供了一个缺省的资源文件CXterm.ad,一些使用者将这个文件中的相应资源定义放入~/.Xdefault中,用户登录进入X Window时就载入这些资源 。另外,cxterm还提供了一个shell脚本 ── CXterm,可以在启动cxterm之前完成相应的资源设置工作,所以一般应该 用如下CXterm命令来启动cxterm,这种启动方式更为简易 。
$ CXterm &
在中文的仿真终端下使用bash作为shell时,会发现在命令行中无法输入中文,这是因为bash对输入进行了额外处理,可以在~/.bashrc中设置bash让其通过中文(另一个可能的因素为stty的终端设置):
stty pass8bind "set convert-meta off"bind "set meta-flag on"bind "set output-meta on"在FreeBSD下的预编译的cxterm软件包中,cxterm的输入法及输入字典放在了/usr/X11R6/lib/X11/cxterm.dic目录中 。由于cxterm的影响,它的输入法被相当多的X Window下的中文软件所使用 。

推荐阅读