Linux中文化之中文Linux的基本要求
您的中文 Linux是否符合一些国际化的习惯呢? 请看下面的分析:中文 Locale 支持
是的, Locale 是第一个基本要求. 没有Locale的支持, 您的中文Linux 不能算是真正的中文Linux. 这可能与一般的思维有些出入, 通常我们会想, "只要能看中文和输入中文不就行了吗, 为什么还要什么Locale". 这完全错了. 下面不妨让我们看一看Locale在整个中文化过程中起的作用.
首先, Locale 把软件和信息分离出来. 一个支持国际化的软件完成后, 它的输出信息要被翻译成各国家/地区的信息, 这个过程又称"本地化". 软件提取信息是根据locale的类型提取的. 在支持locale的Linux系统上, 环境变量 LC_ALL 和 LANG 起着至关重要的作用. 比如, 我们把 LC_ALL设置成 zh_CN.EUC, 这意味着软件所要提取的信息是属于 (1)中国(2)大陆(3)EUC编码的. 这对于中文化尤其重要, 因为一个中文版本的Linux通常支持两种编码:GB 和 Big5, 把LC_ALL设置成zh_TW.Big5 后, 则查找(1)中国(2)台湾/香港(3)Big5编码的信息.
中文 X Locale 支持
在 X Window 下, X Locale扮演着同样重要的角色. X Locale 的主要目的是在显示混合字符串(比如中英文)时区分开并以字体集(FontSet) 显示. 目前比较重要的X高层库比如Motif/LessTif,gtk,qt等都支持字体集, 所以对中文X Locale的支持在中文Linux中也非常重要.
值得注意的是, 目前的中文平台在X Window下着重于截取X的函数或通讯协议, 而不是实用软件的国际化. 无论是直接修改X Server, 还是以LD_PRELOAD来截取函数的外挂式中文平台, 还是运作于X Client和 X Server之间以截取X通讯协议的CXServer. 其本质都是一样的, 那就是通过"Hack"的方式实现中文显示. 这绝不是中文Linux的发展方向. 这一点也可以从Microsoft Windows的汉化历程和其它操作系统/平台的汉化历程中看出来.
综上所述, 在X Window的中文化上, 应注意以下几点:
在中文Linux的宣传上, 不要歪曲"内核汉化"的定义, 因为 上述的几种方法都谈不上是内核汉化. 也不是标准, 一个支持Unicode的文件系统是解决问题的基础 在现阶段应淘汰那些不支持国际化的X高层库(如xforms, xview), 鼓励使用支持国际化而且是GPL/LGPL的函数库 尽量使用支持Unicode的高层函数库 在Linux中, 尽量使用不依赖于中文平台的软件支持国际化输入标准XIM
多内码支持
多内码支持支持在中文化上尤其重要, 因为我们至少要支持两种编码 -- GB 和 Big5, 才能真正地称Linux为中文Linux. 另外, 对GBK的支持也是发展方向,
输入支持
输入支持同样需要国际标准化. 目前在X11R6上的标准是XIM. 日语输入中最广泛使用的kinput, 韩文输入中hanIM也近乎标准, 中文Big5输入中xcin日臻成熟, 中文GB输入中Chinput也加入了XIM支持. 目前中文输入Chinput和XCIN都只有一种模式(root window), 还需要加入 on-the-spot, over-the-spot 和 off-the-spot 模式.
Chinput现在被广泛使用于各大中文Linux版本上和Linux爱好者之中. 它最初使用的协议(ClientMessage)最大程度上满足了中文输入的需要, 相信它对XIM的支持将会使它如虎添翼.
中文打印支持
中文打印是中文Linux的重要组成部份之一. 但是, 中文打印在Linux中实现的难度较大, 这主要是因为打印受到了X Window体系结构的限制. 众所周知, 在MS Windows下, 窗口显示和打印是同一设备的映射. 而在X Windows下, 打印与显示是分离的. 目前最好的解决方法是使用设备无关的PostScript语言实现中文打印
目前中日韩所采用的打印实现方法是, 使用中文 PostScript
对不支持中文的PostScript打印, 须事先过滤 中文文本打印可以转换为PostScript打印
信息中文化
中文Linux对信息本地化的程度在表观上决定了中文Linux的质量. 信息中文化是一项公益性的事业, 需要广大Linux爱好者,Linux俱乐部和Linux公司共同参与, 目前亟需解决的有,
Linux在线手册(man)
Linux文档(Howto)
Linux信息中文化(软件文档的翻译)