产品的本地化应通过向该目标语言或地区的本地用户咨询来完成。某些信息样式和格式在开发人员看来可能非常直观和常见,而在用户看来却显得很别扭或者是错误的,甚至会令人不快。下列各节描述了 Solaris 操作系统 中的某些元素,您可以定制这些元素以满足产品的本地化要求。
下表显示了一些不同的语言环境中 11:59 P.M 的写法。
表 1–2 国际时间格式
语言环境 |
格式 |
---|---|
加拿大语 |
23:59 |
芬兰语 |
23.59 |
德语 |
23.59 Uhr |
挪威语 |
23.59 |
泰语 |
23:59 |
英国英语 |
23:59 |
时间用 12 小时制和 24 小时制两种方式表示。小时和分钟分隔符可以是冒号 ( :) 或句点 ( .)。
在不同的国家/地区之间以及国家/地区内部存在着时区划分。尽管时区可以根据早于或晚于协调通用时间(UTC)或格林威治时间 (GMT) 的小时数来描述,但该数字并不总是整数。例如,纽芬兰所在的时区与相邻时区相差半小时。
夏时制时间 (DST) 开始和结束的日期可能因国家/地区的不同而不同。很多国家/地区根本不实行夏时制。此外,夏时制时间还可能在某一个时区内部存在差别。例如,美国不同的州有不同的夏时制时间。
下表显示在世界各地使用的一些日期格式。即使在一个国家/地区内部,日期格式可能也有所不同。
表 1–3 国际日期格式
语言环境 |
惯例 |
实例 |
---|---|---|
加拿大语(英语) |
dd/mm/yy |
24/08/01 |
丹麦语 |
yyyy-mm-dd |
2001-08-24 |
芬兰语 |
dd.mm.yyyy |
24.08.2001 |
法语 |
dd/mm/yyyy |
24/08/2001 |
德语 |
yyyy-mm-dd |
2001-08-24 |
意大利语 |
dd/mm/yy |
24/08/01 |
挪威语 |
dd-mm-yy |
24-08-01 |
西班牙语 |
dd-mm-yy |
24-08-01 |
瑞典语 |
yyyy-mm-dd |
2001-08-24 |
大不列颠 |
dd/mm/yy |
24/08/01 |
美国 |
mm-dd-yy |
08-24-01 |
泰语 |
dd/mm/yyyy |
24/08/2001 |
英国和美国是世界上使用句点表示小数点位置的为数不多的几个地方中的两个。而其他许多国家/地区都使用逗号。小数点分隔符又称为基数字符。同样,英国和美国使用逗号分隔千位组,而其他许多国家/地区则使用句点,同时还有一些国家/地区使用短空格来分隔千位组。
包含特定于某一语言环境的格式的数据文件在传送到其他语言环境的系统时经常被错误地解码。例如,一个包含法语格式数字的文件不能用于特定于英国的程序。
下表显示了一些常用的数字格式。
表 1–4 国际数字惯例
语言环境 |
较大数字 |
---|---|
加拿大语(英语) |
4,294,967.00 |
丹麦语 |
4.294 967.295,00 |
芬兰语 |
4 294 967 295,00 |
法语 |
4 294 967 295,00 |
德语 |
4,294,967.00 |
意大利语 |
4.294.967,00 |
挪威语 |
4.294.967.295,00 |
西班牙语 |
4.294.967.295,00 |
瑞典语 |
4 294 967 295,00 |
大不列颠 |
4,294,967,295.00 |
美国 |
4,294,967,295.00 |
泰语 |
4,294,967,295.00 |
没有特定的语言环境惯例用来指定列表中数字的分隔方式。
货币单位和表示规则在世界各地差别很大。本地和国际货币符号可能是不同的。下表显示了一些国家/地区的货币格式。
表 1–5 国际货币惯例
语言环境 |
货币 |
实例 |
---|---|---|
加拿大语(英语) |
美元 ($) |
$1,234.56 |
加拿大语(法语) |
美元 ($) |
1 234,56$ |
丹麦语 |
克朗 (kr) |
Kr 1.234,56 |
芬兰语 |
欧元() |
1 234,56 |
法语 |
欧元() |
1,234 |
日语 |
日元 (¥) |
¥ 1,234 |
挪威语 |
克朗 (kr) |
kr 1.234,56 |
瑞典语 |
克朗 (Kr) |
1 234,56 Kr |
大不列颠 |
英镑 (£) |
£1,234.56 |
美国 |
美元 ($) |
$1,234.56 |
泰语 |
铢 |
2539 铢 |
欧元 |
欧元() |
5,000 |
当前发行版支持欧元。本地货币符号仍然可用,以保持向后兼容性。
表 1–6 支持欧元的用户语言环境
地区 |
语言环境名称 |
ISO 代码集 |
---|---|---|
奥地利 |
de_AT.ISO8859-15 |
8859-15 |
比利时(法语) |
fr_BE.ISO8859-15 |
8859-15 |
比利时(佛兰德语) |
nl_BE.ISO8859-15 |
8859-15 |
丹麦 |
da_DK.ISO8859-15 |
8859-15 |
爱沙尼亚 |
et_EE.ISO8859-15 |
8859-15 |
芬兰 |
fi_FI.ISO8859-15 |
8859-15 |
法国 |
fr_FR.ISO8859-15 |
8859-15 |
德国 |
de_DE.ISO8859-15 |
8859-15 |
大不列颠 |
en_GB.ISO8859-15 |
8859-15 |
爱尔兰 |
en_IE.ISO8859-15 |
8859-15 |
意大利 |
it_IT.ISO8859-15 |
8859-15 |
荷兰 |
nl_NL.ISO8859-15 |
8859-15 |
葡萄牙 |
pt_PT.ISO8859-15 |
8859-15 |
西班牙加泰罗尼亚 |
ca_ES.ISO8859-15 |
8859-15 |
西班牙 |
es_ES.ISO8859-15 |
8859-15 |
瑞典 |
sv_SE.ISO8859-15 |
8859-15 |
美国 |
en_US.ISO8859-15 |
8859-15 |
欧洲语言环境基于 ISO8859-15 代码集。
请记住,经过转换的货币金额可能比原始货币金额占用更多或更少的空间,例如 $1,000 可能变为 1.307.000。
欧元地区中语言环境的当前语言环境设置的状态由 locale 实用程序的 LC_MONETARY 操作数表示。例如,下表显示了“德国”的状态。
表 1–7 德国语言环境和相应的 LC_MONETARY 操作数
语言环境 |
LC_MONETARY |
---|---|
de_DE.ISO8859-1 |
DM |
de_DE.ISO8859-15 |
Euro |
de_DE.UTF-8 |
Euro |
de_DE.ISO8859-15@euro |
Euro |
de_DE.UTF-8@euro |
Euro |