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



中文化,需要一个标准,而我们希望这个标准,是世界通用的,而不是我们自己七拼八凑出来的 。否则的话,我们永远都要自己玩自己的,永远都会事倍功半,永远会抱怨「为什麽;Linux;的中文支援比不上;Win95?」;

四、中文列印:;

中文列印与上述的关较小,但也是大家关心的问题之一,在此我也稍作一些说明 。;

在;UNIX;的世界,就我所知印表机输出最常见的就是两个:;ASCII;码与;Postscript,;而;Postscript;就是「图形列印」的共通语言 。因此,当我们要做中文列印,就是要寻求「图形列印」的途径,也就是找一个「能将中文字档转成;Postscript;输出」的程式」 。目前大家常见的,如传统的;cnprint、;CLE;中能直接使用;TTF;字型的;bg5ps,;或是;ChiTeX,;CJK LaTeX,;lyx;....;等等 。;

在此稍微值得一提的是,;CJK;似乎已渐渐成为;Free;Software;/;Open;Source;所公认的标准之一,其原因如下:;

 ;

它是;Free;Software; 。;
目前;CJK;与;freetype;配合,已经可以完全整合到;LaTeX;的环境中,而不需要;像以往一样需要再更动;LaTeX;的程式与环境 。相信在不久的将来它应该会成为;LaTeX;的标准附件之一 。;
就我所知,;Netscape;在下一版的列印部分将支援;CJK;做为中日文;Postscript;输出,;我想这一点很值得成为我们未来发展中文列印的一个参考 。;

五、准备您的;I18N;环境:;

以下我针对目前大家常用的系统,如何做到像;CLE;那样,有基本的;locale;环境,而不必真的非装;CLE;不可;(因为常听大家说;CLE;太大) 。虽然以下所说的对各位的中文环境可能改善不多;(因为目前大部分的软体都还没有;I18N;化),但就当做是为未来做准备 。也希望对;source;code;有兴趣,喜欢东玩玩、西摸摸;Linux;的网友们,能多多熟悉这个领域,或者能加入这个领域与我们共同努力 。;

以下的软体我以;tgz;为主,而不用;RedHat;的;RPM,;或;Debian;的;deb,;希望这个「共通语言」在大部分的;Linux;distribution;都能适用 。;

 ;

请确定您的;Linux;的;libc;是;glibc-2.0.7;以上,若您还是用;libc5,;请参;考您的;distribution;套件,将;glibc-2.0.7;装起来 。;
若您有冒险的精神,想直接玩;glibc-2.1;的话,;可以在这找到;source:;

glibc-pre2.1_*.tar.gz;

请注意,如果您决定玩;glibc-2.1,;您必须为自己负责,除非您是有经验者,;否则您要有「;Linux;可能会被我不小心玩挂掉」的心准备 。一个保险的做;法,是找一台空机器,或一个空的;partition;灌一个白老鼠系统来玩 。如果;您不小心出差错而造成任何损失的话,本人不负任何责任 。;



如果您是用;glibc-2.1;且一切正常的话,那麽恭喜您,您可以略过这一步 。;如果您是用;glibc-2.0.7,;请至;xcin.linux.org.tw;抓;
 ;

libwcsmbs-0.0.4.tar.gz
wcsmbs-locale-0.4.7.tar.gz

并将它们装起来 。这两个套件其实是来自;CLE,;其中特别注意;wcsmbs-locale;这;个套件,其原始套件不包函;zh_TW.Big5;locale;data,;这个;locale;data;是;Platin;加入的,有了它才有用 。然後,在;/etc/profile;中加一行:;

 ;

export;LD_PRELOAD=<路径名>/libwcsmbs.so



如果您是使用;glibc-2.0.7;的话,请跳过这一步 。若您是用;glibc-2.1,;您的系;统多半还没有;zh_TW.Big5;locale;data,;此;locale;data;可以在上述;wcsmbs-locale;套件中找到 。请将该套件抓回并解开後,找到;localedata;目录下的;zh_TW.Big5;及;charmaps/BIG5;两个档,这两个分别是;locale;def;与;charmap;档,您必须;将这两个档;compile;之後才能使用:;
localedef;-i;zh_TW.Big5;-f;BIG5;-u;charids.894;zh_TW.Big5

(有关;localedef;的用法请见;localedef;--help),;compile;完成後的;locale;data;会自动安装到;/usr/share/locale/zh_TW.big5;下,但由於我们的;locale;名是;zh_TW.Big5,;所以请您自行将它改名,或做一个;symbolic;link 。;

推荐阅读