| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 娱乐休闲 | 软件下载 | 在线视频 | 请您留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • Alumin远程访问控制软件 让你…

  • 浏览器操作记录工具Internet…

  • 让Google Deskbar实现简体中…

  • 网页打不开 Windows的Hosts表…

  • windows IE浏览器精典技巧两…

  • 实现了!中文WinXP安装IE7 B…

  • 腾讯TT浏览器V2.03简体中文版

  • 解决珊瑚虫QQ不能在Win2003运…

  • 在Win XP中让QQ跑得更快

  • 超级变态挂qq(升级方法)

  • Q
    您现在的位置: 我是IT人 >> 应用学院 >> 操作系统 >> Linux >> 教程正文
    构筑稳健的中文Linux(下)           
    构筑稳健的中文Linux(下)
    作者:网络 文章来源:转载 点击数: 更新时间:2005-8-15
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:

    Linux是操作系统中的一朵奇葩,是中国软件发展的机遇。要使这朵奇葩在中国的大地上生根、发芽,开花,要想抓住Linux机遇,首先必须解决中文本地化的问题。上期我们已经介绍了中文Linux采用中文平台及Linux国际化中的用双字节/多字节编码代替单字节7位或8位编码、使用统一的大字符集ISO 10646等知识的介绍。要建筑稳健的中文Linux,我们还要认识Linux的本地化及Linux核心的修改等重要问题。

       3. 本地化数据库Locale DB

       国际化的第三个内容是搞好本地化数据库Locale DB。

       语言、字符集、文化习俗等组成一个软件运行时的本地环境Locale。一个Locale是从本地化特征中提取的执行环境。它包括语言、地域、字符集。Locale的格式是ZH_CN.GBK,表示中文(zh)、中国(CN)、字符集(GBK)。

       Locale可以一组Shell环境变量LANG、LC_ALL、LC_CTYPE、LC_COLLATE、LC_TIME、LC_MONETORY、LC_NUMERIC、LC_MESSAGES进行设置,也可以通过C语言国际标准中提供的setlocale()函数在应用程序中查询和设置。用户可以在运行时设置整个Locale的全部和部分。

       Setlocale()函数为应用程序开发者提供了一种具有设置所有或部分(称之为类别)本地化环境的工具,setlocale()函数的语法为:

       Char *setlocale (category,locale)

       Int category;

       Char *locale;

       其中category是五个类别之一的名字,这些类别的名字是:

       LC_CTYPE(提供字符分类和大小写区分功能);

       LC_COLLATE(提供字符串比较和排序功能);

       LC_TIME(提供日期和时间表示格式,如中国是年、月、日,美国是 月/日/年,英国是日/月/年);

       LC_MONETARY(提供货币表示格式,如中国为阿拉伯数字后加RMB,在财务表格中为$后写阿拉伯数字);

       LC_NUMERIC(提供数字表示格式)。

       另外,用LC_ALL的特殊值使setlocale()函数设置所有的类别。

       Locale数据库中除了上述本地环境服务,还包括消息服务和代码集转换。

       4. 输入、输出服务(I/O服务)

       输入法可分为两大类,即模式识别类和编码类。模式识别类包括声音输入法、光学字符识别(optical character recognition,OCR)、手写体识别等输入法。编码类主要是基于拼音、笔划、部首等输入法。

       图形界面的国际化与中文本地化,具体包括:

       建立中文输入模块的摘挂方法和界面;

       建立各种点阵汉字库、矢量轮廓汉字库、曲线轮廓汉字库的摘挂方法和界面;

       建立基于图形界面的汉字信息处理函数。

       图形界面的国际化处理主要在三个层次上:

       X字型服务器层(X Font Server)提供处理点阵、矢量轮廓、曲线轮廓文字;

       库函数层(Libarries)、提供有关X字型服务器的函数,如把字体装入服务器、调入、查询、释放字型;

       命令层(Commands)包括工具类和转换类命令:

       图形界面中文本地化提供以下应用程序:汉字造字工具、汉字图标编辑器、汉字图文编辑工具、汉字图形打印工具。

       Linux关于输入的标准还是限于键盘输入。在X11R6中,有XIM(X InputMehtod)标准。XIM是在应用程序和输入法之间的通信协议,目前还没有字符终端的输入法标准。

       本地化
       本地化(localization,L10n,取首尾两个字母,中间有10个字母)是向特定本地语言操作环境的转换。

       本地化工作主要包括:代码体系国家特征文件和输入、输出服务的具体实现。

       1.代码体系指采用的字符集,我国目前是GB2312、GBK、GB18030和GB13000。

       2.国家特征文件指Locale中的本地环境内容。

       3.输入、输出服务与国际化中的输入、输出服务密切相关。

       输入方法按其功能可分为:输入管理层、前端处理层、输入单元层、输入单元算法层、辅助区处理层。

       输入管理层是根据Locale环境自动到指定目录下找出所需的输入方法模块、将其启动或装入应用程序,并填入有关入口表,以便建立应用程序与输入方法之间的联系。

       前端处理层是对各个输入单元进行管理、负责解释特殊键的含义,切换输入单元,并把输入单元处理的结果存于相应的缓冲区中,以保证应用程序取走、或调辅助区处理层函数显示。

       输入单元层是根据输入单元的要求,对每个输入键事件进行解释、确定相应的动作、形成符合输入单元要求的输入串,并调用输入单元算法层的函数进行字典查找或代码转换运算,把查找结果返回前端处理层。

       输入单元算法层是根据上层函数送来的输入码串进行字典查找运算,并把查找结果返回上一层函数。

       辅助区处理层用来提供输入方法的界面,即时状态区、预编辑区和造字区类处理函数进行相应的管理。

       三、修改Linux的核心,使其完全支持UCS。
       国际化就是为了解决本地化,它是由一个一个“本地化”组成的。本地化要遵循国际化,本地化完全遵循了国际化,本地化只需要解决输入法和增加字型了。本地化的标准组织应尽量把本地化所需的内容加入到国际化中,并尽量遵循国际化。做好本地化的工作,就是为了消除本地化。什么时候不需要再做本地化的工作了,那就说明本地化和国际化的工作做好了。

       ISO 10646是彻底解决“代码壁垒”软件“千年虫”的方法。彻底实行ISO 10646就意味着放弃目前各国的字符集标准,包括中国的GB、美国的ASCII。完全实现UCS,就是在操作系统、高级程序语言、支持软件、应用软件、通信协议、网络都UCS化,即都可以支持UCS。而且一些相关硬件设备如终端、打印机也要支持UCS,因为基本ASCII的硬件设备会把UCS中的一些码值当成控制字符。这时整个系统都是完全国际化了,那时的本地化工作只是提供输入法和扩充字型(Font)。要彻底实行ISO 10646,首先应从操作系统开始做起,对我国来说就是从Linux开始做起。

       UCS从1993年颁布至今已7年了,但进展不大。要完全国际化只能一步一步地走。第一步已制定了UCS,下一步就是在操作系统上完全支持UCS。然后各种软件、硬件都逐个完全支持UCS。因为操作系统是所有软件的基础。不动Linux核心,进行的国际化/本地化本质上仍是一个“中文平台”。因为它仍是按字节处理,是架构在操作系统之上的中文处理环境。只有在操作系统上实现按字符处理、支持宽字符,彻底抛弃ASCII和各种“国家标准”, 完全支持UCS ,才能彻底解决问题。中文平台的前途是不光明的,Windows上不就有过多种中文平台吗,后来都被微软的核心汉化彻底击败。

    [1] [2] 下一页  

    教程录入:小秦    责任编辑:小秦 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |