当前位置:Linux教程 - Linux - 揭开Linux下中文平台的面纱

揭开Linux下中文平台的面纱



        
    作者:于明俭

      Linux 下的汉化包括X Window系统和控制台的汉化, 控制台类似于DOS 操作窗口, X Window系统类似于MS Windows系统, 由于人们的主要工作环境是X Window, 在此对X Window的汉化机制作详细阐述.

    Linux 下的中文平台, 目前的实现方法属于下列其中之一或兼而有之:

    替换X Client的函数

    截取 X 通讯

    直接修改X Server
    (图platform)
      我们知道, X 窗口系统的结构是Client/Server方式, 从上图可以看出, 如果对X 进行中文化, 则可能从上述的三个地方入手.

      其中替换Client函数的方法为动态汉化, 它是通过LD_PRELOAD (或文件)动态加载的, 类似于Windows下的外挂式中文平台. 截取X通讯的方法, 是通过设置一个虚拟的X Server, 当Client 与此Server联接时, 这个虚拟的Server截取了通讯并把Client 的请求发送给真正的X Server, 它类似于一个Proxy Server. 这种截取信息的方法在其它Unix平台上的实现是有意义的, 但是在Linux这种开放源代码的系统上是不足取的. 实际上, 三种方法的实质是一样的, 目的都是修改X 窗口系统中用于显示和输入的部分从而使X 窗口系统能够显示/输入双字节编码.

      有人故意将外挂和直接修改X Server的方法(如CXWIN)的区别夸大, 以说明到底哪一种汉化方式比较好, 实际上, 把外挂的方式变成直接修改 X Server的方式只不过用几小时的时间. 在实际应用上, 两者各有优点和缺点, 外挂方式的优点是灵活性强, 就象Windows下的外挂平台一样, 可挂可不挂, 对编码显示有灵活的控制, 这主要是因为它是在用户空间操作, 可以针对具体窗口进行操作, 它的缺点是对每一个X应用软件增加了几十 K 大小的内存(由外挂平台的功能决定), 以拥有自己的空间, 这也是对应用软件进行特别配置所必须的(应注意的是, 字体空间存储在X Server 上, 不在用户空间). 直接修改X Server的方法的优点是节省内存, 避免了在用户桌面上留下LD_PRELOAD变量, 缺点是灵活性差,不能对每一个窗口进行控制, 必须随X版本的升级做改动, 更危险的是, 对X Server的改动可能影响到整个X窗口系统的稳定性.

      上面只是从技术角度分析中文平台, 一个中文平台的质量最终取决于用户的评价, 即对用户提供的功能和操作方便程度, 最重要的是, 在中文Linux上提供的本地化的应用软件的数量和质量. 一个好的中文平台还应该用户可以很方便地切换成纯英文状态, 就像 Locale的设计思想一样, 从这一点上考虑, 外挂平台更适应用户的需要, 这也是当前大多数中文平台采取外挂式平台的原因.

      显然, 上面的汉化方法都不是最终解决方案. 最终方案应当是符合国际标准的. 在显示上, X Locale 对双字节(GB/GBK/Big5) 的支持是基础.所写软件应设置字体集(FontSet)或在高层库函数中支持字体集.这对于Linux的程序员是一个挑战.在输入上, 应使用X11R6的标准输入协议XIM. 这同样要求所写软件支持此协议或所使用的高层库函数支持此协议.

      综上所述, 我们的看法是,在X的汉化上不存在所谓的\"内核汉化\", X 本来就不属于内核. 上述的中文平台都是临时的解决方案, 虽然目前在很大程度上满足了用户需要, 但不是最终解决方案. 最彻底的汉化是改动应用软件使其支持双字节操作和XIM输入,其中双字节操作是中文平台不能解决的. 从国际发展来看, 中文平台将起到越来越小的作用, 甚至消失. 特别是对内核的改动, 随着Linux内核对 Unicode的支持, 也将在不远的将来消失.

    发布人:netbull 来自:Linux学习