荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (人生不定式), 信区: Linux
标  题: Linux 国际化本地化和中文化(二) (转载)
发信站: BBS 荔园晨风站 (Sun Sep 24 08:23:38 2000), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: rover (Eggplant), 信区: FreeDevelop
标  题: Linux 国际化本地化和中文化(二) (转载)
发信站: BBS 水木清华站 (Sat Apr 29 22:06:30 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 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店