BBS水木清华站∶精华区

发信人: yanglc (魂归燕园~~别理我,烦着呢), 信区: Linux        
标  题: Linux 国际化本地化和中文化(二) 
发信站: BBS 水木清华站 (Sat Apr 29 17:08:11 2000) 
 
http://www.linuxforum.net/cgi-bin/perl/showpost.pl?Board=chinese& 
Number=878&page=0&view=expanded&sb=5 
 
Subject 
                   Linux 国际化本地化和中文化(二) 
 
Posted by 
                   yumj 
Posted on 
                   4/27/2000 1:58 PM 
 
 
 
Linux 国际化本地化和中文化 
于明俭<justiny@turbolinux.com.cn> 
--------------------------------------------------------------------- 
 
二 Locale 
 
1. Locale 的概念 
 
Locale 是ANSI C语言中最基本的支持国际化的标志, 对中文Linux来说, 如果它 
支持国际化, 那么支持中文Locale是最基本的要求. 
 
Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 
和字符集(Codeset). 其格式为: 语言[_地域[.字符集]]. 如对中文GBK字符集, 
locale的格式是:zh_CN.GBK. 目前Linux上的中文 Locale还不完善, glibc2.1.x 
中的许多涉及Locale的C函数还不正确. 如果 用户需要安装中文GBK Locale, 可 
以直接使用TLC6.0中的: 
 
o glibc-2.1.2(含有GBK模块) 
o localedata-zh-0.07 
o /usr/X11R6/lib/X11/locale/zh_CN.GBK/XLC_LOCALE(X 下的 GBK Locale) 
 
Locale 包含了以下分类: 
 
1. LC_COLLATE, 用于比较和排序. 排序对中文来说也比较重要, 但是现在的 
glibc中的locale对中文支持有些问题. 汉字排序的 的方式有许多种, 按照 
发音(汉语拼音)或者汉字笔画来排序 是比较容易被接受的. 
2. LC_CTYPE, 用于字符分类 
3. LC_MONETORY, 用于货币单位 
4. LC_NUMERIC, 用于数字显示格式. 下面是不同国家的在货币符号 和数字格 
式上的不同: 
 
+ 中国大陆: 1,234.56RMB 
+ 美国: $1,234.56 
+ 德国: 1.234,56DM 
5. LC_TIME, 用于时间和日期. 时间可以用12小时或者24小时的 格式来计算. 
在小时和分钟之间可以用逗点或者冒号隔开. 下面 是一些Locale设置的时 
间和日期的格式: 
 
+ 中国: 14点20分 2000年三月十四号 
+ 英国: 02:20pm 14/03/2000 
+ 美国: 02:20pm 03/14/2000 
+ 芬兰: 14.20 14.03.2000 
 
6. LC_MESSAGES, 用于国际化信息, 主要是提示信息,错误信息, 状态信息, 标 
题, 标签, 按钮和菜单等. 
 
Locale 通过ANSI C 函数setlocale(分类, locale)来初始化locale 数据. 
当locale设置为空时, locale的值便从系统的环境变量中取得. 为了 方便应用 
软件, 设置所有的分类, 可以采用下述方式: 
 
setlocale(LC_ALL, ""); 
 
如果不成功, 该函数返回NULL. 函数应该回落到setlocale(LC_ALL,"C"). 
 
2. 在X中使用Locale 
 
在X的客户程序中使用Locale的机制和在标准C函数中使用Locale的方式一样, 除 
此之外, 在X库中还定义了另外两个函数来判断X的locale支持和设置locale 的修 
饰(XModifier), 在X中使用Locale和libX11的基本步骤如下: 
 
o setlocale(): 设置当前的locale 
o XSupportLocale(): 用来判断X是否支持目前设置的locale. 
o XSetLocaleModifier(): 它用来指定一系列的locale修正值. 它的参量的格 
式是@分类=赋值. 目前唯一可用的是输入 服务器的名称"im". 如果参量为 
空, 则根据系统的环境 变量XMODIFIERS查找. 比如在系统上设置了环境变 
量: 
 
% setenv XMODIFIERS @im=Chinput (csh) 或 
% export XMODIFIERS=im=Chinput (bash) 
 
则客户程序将查找到输入服务器Chinput, "Chinput"是 输入服务器所设置 
的名称. 
 
3. 文化习俗的差别 
 
下面是在国际化和本地化过程中常常遇到的并且应当注意的地方, 对国际化软件 
的开发, 应该充分注意到各个地域的文化和习惯, 开发出通用的软件, 对于本地 
化过程, 则应选择与本地域相符的习惯. 
 
o 姓名,地址等特殊信息 
姓名中的"姓"和"名"的先后次序, 地址书写的先后次序 电话号码的长度等 
等 
o 图标的通用性 
图标是易于接受的用户界面, 设计时应考虑到地域习惯, 而且图标上不能有 
图形文字, 否则需要重新设计本地图标, 并翻译图标上的文字. 
o 声音使用 
不适当的声音或提示可能会引起人的反感. 另外, 声音 的性别对某些国家 
是敏感的. 
o 颜色使用 
颜色和色调与民俗有关, 比如红色在美国表示危险, 在中国 表示喜庆. 
o 纸张尺寸 
打印纸的尺寸因地域而不同, 在选择缺省尺寸时应注意. 
o 键盘差别 
在键盘上的键可能因国家而异, 键的个数也可能不一样. 影射关系也不同. 
o 政治因素 
在产品设计上, 尽量不要有政治敏感性部分. 
 
(第二章完) 
有点累, 先休息两天 
 
Linux is my life. 
=>欢迎访问主页  
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.11.130] 

BBS水木清华站∶精华区