Linux 版 (精华区)
发信人: don (驿路梨花), 信区: Linux
标 题: 国际化本地化和中文化(二)
发信站: 紫 丁 香 (Sat Apr 29 18:19:45 2000), 转信
发信人: 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.
=>欢迎访问主页
--
一条驿路,一种氛围。
一朵梨花,一种思考。
希望能在Linux这条驿路上与你同行!
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.239.63]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.344毫秒