程序的语言环境是应用程序的一个重要概念。语言环境是指当地语言环境的显式模型和定义。ANSI C 语言标准的库定义中明确定义并包含了语言环境的概念。
一个语言环境包括许多种类,对于这些种类,存在与国家/地区有关的格式设置或其他规范。一个程序的语言环境对程序的编码集、日期和时间格式设置惯例、货币惯例、十进制格式设置惯例和排序顺序进行定义。
语言环境可以由基本语言、使用国家(地区)和可选的编码集组成。通常采用代码集。例如,德语是 de(Deutsch 的缩写),而瑞士德语是 de_CH(CH 是 Confederation Helvetica 的缩写)。这种转换使得能够区分国家/地区之间的特定差异,如货币单位表示法。
一个特定语言可以与多个语言环境相关联,这使得能够区分地区间的差异。例如,美国的英语用户可以选择 en_US 语言环境(美国英语),而英国的英语用户可选择 en_GB(英国英语)。
语言环境名称通常由 LANG 环境变量指定。语言环境种类从属于 LANG,但也可单独设置,这时它们将覆盖 LANG。如果设置了 LC_ALL 操作数,则它会覆盖 LANG 和所有不同的语言环境种类。
语言环境命名惯例如下:
语言[_地区][.代码集] [@modifier]
其中,双字母语言代码来自 ISO 639,并且双字母地区代码来自 ISO 3166,代码集是在此语言环境中使用的代码集的名称,而修饰符是将此语言环境与不带此修饰符的语言环境相区分的特征名称。
所有 Solaris 产品语言环境都保留了具有 US-ASCII 代码值的可移植字符集 (PCS) 字符。
有关可移植字符集的更多信息,请参考“X/Open CAE 规范:系统接口定义,第 5 期”(ISBN 1-85912-186-1)。
一个语言环境可以有多个语言环境名称。例如,POSIX 与 C 是相同的语言环境。
C 语言环境,也称为 POSIX 语言环境,是所有 POSIX 兼容系统的 POSIX 系统的缺省语言环境。Solaris 操作系统是 POSIX 系统。单个 UNIX 规范,版本 3,定义 C 语言环境。请进行注册以在下列网站读取和下载规范:http://www.unix.org/version3/online.html.
您可以采用两种方法中的一种指定在 C 语言环境中运行的国际化程序:
取消对所有语言环境的环境变量的设置。
system% unsetenv LC_ALL LANG LC_CTYPE LC_COLLATE LC_NUMERIC \ LC_TIME LC_MONETARY LC_MESSAGES
取消对所有语言环境的环境变量的设置。在 C 语言环境中运行应用程序。
将语言环境显式设置为 C 或 POSIX。
system% setenv LC_ALL C system% setenv LANG C
某些应用程序检查 LANG 环境变量,而不是实际调用 setlocale(3C) 来引用当前语言环境。此时,setenv 通过指定 LC_ALL 和 LANG 语言环境的环境变量来显式设置 C 语言环境。有关语言环境的环境变量之间的优先级关系,请参见 setlocale(3C) 手册页。
要检查终端环境中的当前语言环境设置,请运行 locale(1) 命令。
system% locale
完全 Solaris 语言环境具有列出的所有功能和相关语言的本地化系统信息。部分语言环境 未安装任何本地化信息。只要安装了相关语言的本地化信息,Solaris 环境中的所有语言环境便能够显示这些本地化信息。例如,下列语言环境既可以是部分语言环境,也可以是完全语言环境:
de_DE.ISO8859-1
de_DE.ISO8859-15
de_DE.UTF-8
de_AT.ISO8859-1
de_AT.ISO8859-15
de_CH.ISO8859-1
在从 Language CD 中安装了德语信息翻译后,以上所有语言环境均成为完全语言环境,因为它们可以访问完全翻译了的桌面。此 Language CD 包含下列语言和语言环境的信息翻译:
德语
法语
西班牙语
瑞典语
意大利语
日语
朝鲜语
简体中文语言环境
繁体中文语言环境
所有部分语言环境都可从 Software CD 中获得。信息翻译可从 Languages CD 中获得。
所有英语语言环境也是完全语言环境,并可从 Software CD 中获得。
在格式化数字、书写日期和时间、分隔单词和短语或引用书面和口语材料方面,不同文化通常有不同的习惯。语言环境确定不同地区对下列操作、文件、格式和表达式的不同处理方式:
文本数据的编码和处理
资源文件的语言标识和编码
文本字符串的绘制和布局
客户机间的文本的互换
满足所选书写体的代码集和文本处理要求的输入法选择
文化特定的字体和图标文件
操作和文件类型
用户界面定义 (UID) 文件
日期和时间格式
数字格式
货币格式
排序顺序
特定于语言环境的正则表达式处理
信息性和诊断性信息与交互式响应的格式
Solaris 环境将语言和与文化有关的信息与应用程序分开,并在应用程序以外将这些信息保存起来。使用此方法就不会针对每个市场对应用程序进行翻译、重新编写或重新编译了。进入新市场的唯一要求就是将外部信息本地化为本地语言和习惯。
控制字符处理功能的行为。
指定日期和时间格式,包括月份名称、每周日期和通用的完整表示法和缩写表示法。
指定货币格式,包括此语言环境的货币符号、千位分隔符、符号位置、小数位数等。
指定十进制分隔符(或基数字符)、千位分隔符和分组。
指定排序顺序和此语言环境的正则表达式定义。
指定编写本地化信息的语言及此语言环境的肯定和否定响应(yes 和 no 字符串和表达式)。
指定提供有关语言绘制信息的布局引擎。语言绘制(或文本绘制)取决于书写体的形状和方向属性。