用户管理  |   用户注册                                                                                    首 页软件下载教程中心办公指南flash动画文档下载办公公文

www.4oa.com - 中科软件园

投递文章 用户管理 投稿指南 资讯通告 :
站内搜索: 您的位置中科软件园 > 教程中心 > 操作系统 > Linux > 中文化 > 教程内容

构筑稳健的中文Linux(下)

2005-5-26 23:20:10  来源:本站整理  作者:不详 【 投递文章
内容提要:Linux是操作系统中的一朵奇葩,是中国软件发展的机遇。要使这朵奇葩在中国的大地上生根、发芽,开花,要想抓住Linux机遇,首先必须解决中文本地化的问题。上期我们已经介绍了中文Linux采用中文平台及...
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核心,进行的国际化/本地化本

[1] [2]  下一页

(评论内容只代表网友观点,与本站立场无关!)[ 全部评论 ]

网友评论:

    用户名:

    评   分:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

                 (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -有事点这里