精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>网络书籍>>《FreeBSD使用大全》>>FreeBSD连载(51):中文X应用软件

主题:FreeBSD连载(51):中文X应用软件
发信人: Hopper()
整理人: hahalee(2000-02-28 20:03:02), 站内信件
http://www.sina.com.cn 1999年12月23日 13:49 王波

X Window下的中文环境
  Unix的中文化对于Unix的推广使用一向是个难题,对于象FreeBSD这样的操作
系统来讲,中文化工作比较零乱,虽然有不少X下的中文软件,但是由于国内软件
发展的水平还不高,自由软件的开发水平更是如此,并且自由软件的开发者之间
也没有被有效的组织起来,因此还没有出现一个很完整的中文系统。

  然而中文相关的软件却相当丰富,在Ports Collection中,有一个类别就是
chinese,专门收集中文相关的处理软件,但其中绝大多数是台湾的BIG5 版本。
因为台湾在FreeBSD领域的发展相当快,很多软件都是先由台湾出现相应BIG5版本
之后,再出现GB版本。

bash-2.02$ ls /usr/ports/chinese
CJK             big5fonts       gbfonts         nvi-big5        ted
CVS             c2t             gbscript        nvi-euc-cn      tin
Makefile        celvis          hc              nvi-euc-tw      xcin
README.html     cless           hztty           pine3
Wnn             cnsfonts        kcfonts         pine4
bg5ps           cxterm          lunar           pkg
big5con         gb2ps           mule-wnn4       rxvt
 
 


中文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-0
hanzigb16fs
hanzigb16st
hanzigb24st
 
 

  当一个字体不存在但同时存在同样编码的其他字体的时候,可以通过在 fon
ts.alias中定义别名的方法来帮助解决这个问题。

  除了Packages Collection提供的字体之外,从网络上也可以得到其他的一些
中文字体。在ftp://ftp.ifcss.org站点中收集了很多自由或共享中文字体和中文
软件。


cxterm

  cxterm是一个使用非常广泛的中文X终端程序,已经被移植到很多种类的Uni
x系统中。它已经被FreeBSD的爱好者做成Packages,因此安装起来非常简单。cx
term支持GB、BIG5以及日、韩文等编码和多种输入法。

  直接启动cxterm只能用于浏览中文而不能进行输入,这是由于cxterm需要X系
统的一些资源设置,以使用快捷键切换不同输入法,并根据设置寻找其输入法对
应的数据文件。要输入中文必须进行设置,将资源文件预先载入,指定热键、输
入法和输入字典所在的目录。cxterm软件包中提供了一个缺省的资源文件 CXter
m.ad,一些使用者将这个文件中的相应资源定义放入~/.Xdefault中,用户登录进
入X Window时就载入这些资源。另外,cxterm还提供了一个shell脚本 ── CXt
erm,可以在启动cxterm之前完成相应的资源设置工作,所以一般应该 用如下CX
term命令来启动cxterm,这种启动方式更为简易。

  $ CXterm &

  在中文的仿真终端下使用bash作为shell时,会发现在命令行中无法输入中文
,这是因为bash对输入进行了额外处理,可以在~/.bashrc中设置bash让其通过中
文(另一个可能的因素为stty的终端设置):

stty pass8
bind '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下的中文软件所使用。

  标准的CXterm是黑白的,但也存在一个补丁,使CXterm能显示彩色。然而,
Packages Collecion中预编译好的CXterm为标准程序,要使用彩色CXterm就需要
自己下载补丁并重新编译CXterm。


Xcin与crxvt

  crxvt是另一个中文X仿真终端软件,与cxterm相比,它更小巧,占用更少的
内存,并能以ANSI标准显示彩色。Xcin是一个独立的输入服务器,它独立于具体
的X程序之外来提供中文输入功能,X应用程序可以使用其接口支持中文输入。cr
xvt 就使用Xcin作输入系统。与cxterm的将输入与仿真终端集成在一起的方式不
同, Xcin在crxvt外打开一个单独的窗口,但在crxvt中可以使用Ctrl-Space进行
Xcin 下的中英文输入切换。可以看出Xcin的设计目的是作为一个通用输入模块来
实现的,以便多个应用软件都能使用同一个输入模块来进行中文输入,而不是象
cxterm 一样,每个程序使用自己的输入模块。

  FreeBSD的Packages Collection中,也包括了Xcin与crxvt,但遗憾的是,他
们是台湾big5版本。当然这也容易理解,这个软件本来就是由台湾人开发的。其
中 crxvt可以通过使用hztty使其能显示gb数据,但使用者显然不会使用台湾的输
入法输入中文。幸好这个软件已经被移植到GB环境下,并也有编译好的软件包形
式(未被正式FreeBSD发行版本收录),这样就可以使用pkg_add等工具进行管理
,而不再需要手工编译。

  执行时,需要启动xcin和cxrvt,注意要使用Xcin而不是xcin启动Xcin,主要
是Xcin能使用正确的输入法参数启动真正的xcin程序,直接启动xcin由于没有指
定输入模块的设置,就会导致程序启动失败。

$ Xcin &
$ cxrvt &
 
 


其他支持中文的软件与中文本地化

  除了cxterm、cxrvt之外,Ports Collection还包括其他一些软件,如hztty
 用于终端上hz、big5、gb等不同编码的动态转换,big5con用于在控制台上显示
中文 big5码(在hztty的帮助下可以显示gb码),cvi用于替换vi进行中文编辑工
作,cless 用于替换more显示中文,gb2ps用于中文文本文件的打印处理等。

$ LANG=zh_CN.EUC; export LOCALE
$ LC_ALL=zh_CN.EUC; export LC_ALL
 
 

  对于支持多语言的软件,使用环境变量LANG和LC_ALL来标识不同的语言、及
不同的环境。缺省情形下使用的语言LANG被设置为C,如果要支持中文,应该设置
为 zh_EUC.GB,同样LC_ALL用于设置不同语言使用的信息格式的不同,如日期、
时间的表示方式等。虽然当前不是每个应用程序都支持这些环境变量,但随着Fr
eeBSD系统的升级,应用程序国际化程度的提高,以后的软件越来越多会对各种语
言提供更完善的支持。

  另外,FreeBSD下的一些传统工具程序不支持国际化的语言,应该使用较新的
 GNU工具代替。例如标准的ls命令不能显示中文文件名,可以安装gnuls软件包,
使用 gnuls -N命令来代替缺省的ls命令,可以通过shell中的alias设置,使得用
户感觉不同执行命令的差异。

未完,待续。。。  



--
小多子:你知道我们佟家百年不衰的道理么?
        那就是,不要一条路走到黑!

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.190.123]

[关闭][返回]