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
国际化就是为了解决本地化,它是由一个一个“本地化”组成的 。本地化要遵循国际化,本地化完全遵循了国际化,本地化只需要解决输入法和增加字型了 。本地化的标准组织应尽量把本地化所需的内容加入到国际化中,并尽量遵循国际化 。做好本地化的工作,就是为了消除本地化 。什么时候不需要再做本地化的工作了,那就说明本地化和国际化的工作做好了 。
推荐阅读
- 白鹅一文中作者抓住鹅的什么特点
- 抓住越冬期巧治橘园病虫害
- 怎样才能抓住男人的心
- 抓住果树成虫盛期,防治苹小卷叶蛾
- 果树补钙抓住三个黄金期
- 苹果手机遇到强光屏幕变暗
- 三招减少用药成本
- 虫害多 病毒病防治要跟上
- 清明过后,抓住最佳时间防治番茄灰霉病
- Win2003自带防火墙构筑安全防线