Linux 的中文化问题简介( 二 )



最近;glibc-2.1;的;pre-release;已经出来,我个人已做过初步测试,;LC_CTYPE;在我们的;locale;下已经正常,虽然仍有其他问题存在,但这已是一个好消息,我预计在未来的一年内,等大部分的;Linux;distribution;都换装了;glibc-2.1;之後,我们就有了最底层的「中文化」条件 。;

三、;X;Window;的部分:;

接着我们来看看上层,;X;Window;的「中文化」;(或「国际化」) 。;X11R6;也有一个;locale;的目录,放在;/usr/X11R6/lib/X11/locale;头,如果是装;CLE;的朋友,就会见到一个;zh_TW.Big5;的目录,那就是我们的;XLC;Locale;data 。在「标准」的情况下,;XLC;Locale;必须架构在;libc;locale;之上运作,它头除了定义一些字元对应,最重要的是内码与字型的对应 。以我们的;locale;为例,我们需要两种字型,一是「半形;(单位元)」,显示;ASCII;码用,另一是「全形;(双位元)」用来显示中文 。举一个例子,像以下这一串字:;

这是一个;abcd;....;测试字串;string!;OK!;

那些要用全形显示?;那些要用半形显示?;这必须靠;libc;的;LC_CTYPE;来判断 。因此,;LC_CTYPE;如果挂掉,可以说什麽都没辄 。;

我相信,有了上述的「配备」後,基本的;I18N;环境就已经具备了 。但一定有人会问:;「看起来;CLE;在上述所说的都没问题,为什麽还是到处都不是中文?」;没错,那是因为目前;Linux;上大部分的程式还不是用;I18N;的标准而写的 。例如大家常用的;Netscape,;xcin,;crxvt;....;等等,它们都是用「自己」的招术来处理中文,这也就是为什麽;xcin;只能在;crxvt;上输入,为什麽我们要靠;CXWin;来看中文;....;等等 。这些都不是正解,只是暂时的一个手段,最後都是要放弃的 。;

目前,有越来越多程式将朝向;I18N;来发展,而我们目前最需要的工作,就是弄;I18N;的;zh_TW.Big5;部分 。举个例子,目前;CLE;group;正忙於;GNOME;的中文化,它算是目前;I18N;化相当彻底的一个;X;Disktop;/;Window;Manager,;Platin;预计在下一版的;CLE;就是以;GNOME;为主,只要将其中的讯息都翻译成中文,做好;LC_MESSAGES;的工作,未来在;GNOME;中,将不需要依靠;CXWin,;打开後就到处都是中文 。;

其他的;GNU;软体也是,有另一组人马正将一些常见指令如;ls,;cp;等的讯息中文化,并将结果回报给;GNU,;期望未来新版的;GNU;软体中,中文讯息就是标准的一部分,我们不再需要每次人家更新版就急急忙忙地做;patch;了 。;

中文输入就比较杂,除了上述的;I18N;以外,还有一个;XIM;(X;Input;Method);协定 。我们必须要有;XIM;server;来取代目前的;xcin,;而且还要;X;Window;的应用程式能够遵循;XIM;协定,才能做到;"Chinese;Input;Anywhere" 。目前;CLE;已有一个;XIM;server,;即;xcin-cxim;之类的程式,但麻烦的是遵循;XIM;协定的应用程式仍不多,最着名的就是;GNOME,;xemacs,;以及一些;X11R6;所附的软体;(如;xedit,;由;Xt;及;Xaw;提供;I18N;支援) 。而我个人目前正在写的;xcin-2.5;就是一个;XIM;server,;我希望这个软体能在将来与「各路人马」配合,做出一点贡献 。;

因此,「中文化」的工作,并不是那麽简单地说「因为;Linux;是免费、没有人付钱给程式设计师,所以做不好」,或者说「我们中国人不团结,大家不肯合作发展程式」,或者说「;Linux;是;server;导向,不适合做中文」;....;等等 。;Linux;可以发展中文,而且有很多人正努力地在工作,但是更重要的是,我们还得配合国外;(或说软体的原设计者);的脚步 。前面说过,我们要有完整;locale;支援的;libc,;这一切才有希望,我们也需要我们常用的软体;(如;Netscape,;window;manager,;甚至;database,;office;....);的设计者觉悟到,真正的标准是;I18N,;是;locale,;是;XIM,;我们才能跟进,将中文化的部分加进去 。更重要的一点,我们自己的程式设计师在写软体时,是不是也能遵循;I18N,;locale,;XIM??;

推荐阅读