国际语言环境指南

什么是语言环境?

程序的语言环境 是应用程序的一个重要概念。语言环境是指当地语言环境的显式模型和定义。ANSI C 语言标准的库定义中明确定义并包含了语言环境的概念。

一个语言环境包括许多种类,对于这些种类,存在与国家/地区有关的格式设置或其它规范。一个程序的语言环境定义它的代码集、日期和时间格式设置惯例、货币惯例、十进制格式设置惯例和排序顺序。

语言环境可由基本语言、 使用国家(地区)和可选的 代码集组成。通常采用代码集。 例如,德语是 de(Deutsch 的缩写),而瑞士德语是 de_CHCH 是 Confederation Helvetica 的缩写)。 这使得能够区别国家/地区之间的特定差异,如货币单位表示法。

一个特定语言可以与多个语言环境相关联,这使得能够区分地区间的差异。 例如,美国的英语用户可以选择 en_US 语言环境(美国英语),而英国的英语用户可选择 en_GB(英国英语)。

语言环境名称通常由 LANG 环境变量指定。语言环境种类从属于 LANG,但也可单独设置,这时它们将覆盖 LANG。如果设置了 LC_ALL 操作数,则它不但覆盖 LANG,而且还将覆盖所有单独的语言环境类别。

语言环境命名惯例如下:

语言[_地区][.代码集] [@修饰符]

其中双字母语言代码来自 ISO 639,并且双字母地区代码来自 ISO 3166,代码集表示在该语言环境中使用的代码集的名称,而修饰符则表示将该语言环境与不带该修饰符的语言环境相区分的特征名称。

所有 Solaris 产品语言环境都保留了具有 US-ASCII 代码值的可移植字符集 (PCS) 字符。

有关可移植字符集的详细信息,请参考“X/Open CAE 规范: 系统接口定义,第 5 期” (ISBN 1–85912–186–1)。

一个语言环境可以有多个语言环境名称。例如 POSIXC 是相同的。

完全语言环境和不完全语言环境

完全 Solaris 语言环境具有列出的所有功能和相关语言的本地化系统信息。不完全语言环境 未安装任何本地化信息。只要安装了相关语言的本地化信息,Solaris 环境中的所有语言环境便能够显示这些本地化信息。例如,下列语言环境既可以是不完全语言环境,也可以是完全语言环境:

在使用 Language CD 安装了德语信息翻译后,以上所有语言环境均成为完全语言环境,因为它们可以访问完全翻译了的桌面。该 Language CD 包含下列语言和语言环境的信息翻译:

所有不完全语言环境都可从 Software CD 中获得。 信息翻译可从 Software CD 中获得。

所有英语语言环境也是完全语言环境,并可从 Software CD 中获得。

受语言环境影响的行为

在编写日期和时间、格式化数字、分隔单词和短语以及引用材料方面,不同文化通常使用不同的惯例。 在整个系统中,语言环境决定了下列项目的行为:

Solaris 环境将语言和与文化有关的信息与应用程序分开,并在应用程序以外将其保存起来。这样,您就不必针对每个市场对应用程序进行翻译、重新编写或重新编译了。进入新市场的唯一要求就是将外部信息本地化为本地语言和习惯。

语言环境种类

语言环境种类如下所示:

LC_CTYPE

控制字符处理功能的行为。

LC_TIME

指定日期和时间格式,包括月份名称、每周日期和通用的完整表示法和缩写表示法。

LC_MONETARY

指定货币格式,包括该语言环境的货币符号、千位分隔符、符号位置、小数位数等。

LC_NUMERIC

指定十进制分隔符(或基数字符)、千位分隔符和分组。

LC_COLLATE

指定排序顺序和该语言环境的正规表达式定义。

LC_MESSAGES

指定编写本地化信息的语言,该语言环境的肯定和否定响应(yes no 字符串和表达式)。

LO_LTYPE

指定提供有关语言绘制信息的布局引擎。 语言绘制(或文本绘制)由文本形状和方向性组成。