用户可使用shell环境变量来改变语言环境设置。每个类别命名一个现有的语言环境。setlocale() 函数直接设置或查询这些类别的设置。国际化的功能使用这些设置来访问所需语言环境相应的表。
环境变量可用以间接设置类别:当 setlocale() 将类别设置为该地点的默认设定值时,它使用每个环境变量的设定值来设置相关类别。setlocale() 函数不改变环境变量的设定值,只是读取它们的设定值。
可用下列步骤改变系统范围的默认语言环境。
通过添加或改变此行以编辑 /etc/default/init文件。
用 C、zh 或 zh.GBK 代替 locale.
LANG=locale |
使所有用户退出 CDE。
键入下列命令:
%su # /usr/dt/bin/dtconfig -kill |
键入下列命令:
% su # reboot |
术语"语言环境"和"类别"有如下关系:
语言环境包括语言规范、地域、代码集和其它特性。简体中文 Solaris 操作环境包括下列语言环境:
C- 对 ASCII 英文环境,该语言环境必须设置为 C。
zh- 对 EUC 的简体中文环境,该语言环境必须设置为 zh。
zh.GBK- 对 GBK 的简体中文环境,该语言环境必须设置为 zh.GBK。
类别是组成语言环境的特性集。例如,字符显示或时间/日期的表达,其性能取决于 语言环境 。简体中文 Solaris 类别包括下列内容:
LC_CTYPE 设置分类和转换的字符类型。
LC_TIME 设置用于表达日期和时间的语言环境。
LC_NUMERIC 设置数字表达的语言环境(也用于 I/O)。
LC_MONETARY 设置货币表达的语言环境。
LC_MESSAGES 设置给用户的消息的语言环境。
LC_COLLATE 设置取决语言环境的字符串校对。
环境变量 LC_ALL 明确为所有类别设置相同的语言环境;它有最高级优先权。如果类别或 LC_ALL 未设置,则 LANG 环境变量将决定类别设置。
关于简体中文窗口系统输入服务器,键组合进程把键盘上的某些键同应用程序的某些操作链接在一起。可以把应用程序的复杂操作(例如关闭打开的窗口)组合成单一键或一系列键,如同 CTRL-H 或 Esc w c 一样。
所有输入转换模式下与非 ASCII 输入转换相关的 Control 键命令都在 /usr/lib/mle/zh/data/keybind.dat 中设置。在芦简体中文 Solaris 用户指南禄第四章"简体中文的输入" 末尾的表中列出了默认命令。
只有在 zh 语言环境下,才可用改变此文件中的键名并重新启动 htt 输入服务器的方法来更改键组合。可按如下方法制作和使用自己定制的 keybind.dat 文件:
在另一目录中制作名为 keybind.dat 的用户化拷贝。
把环境变量 MLE_PATH 设置为包含这一用户化文件的目录路径名。
启动输入服务器。
然后搜索MLE_PATH 中设置的目录以寻找 keybind.dat 文件和该文件中为用户设置的命令。
如果 MLE_PATH 未设置或不包含可使用的 keybind.dat 文件,则使用 /usr/lib/mle/zh/data/keybind.dat。
要改变键的组合,编辑组合键文件以新键代替默认键。也可使用键组合和开/关切换。
在 C shell 级,每个环境变量都可以shell命令设置成语言环境(用于 ASCII 的 C、用于 EUC 简体中文的 zh 或 GBK 简体中文的 zh.GBK),方法如下:
C shell 用户可输入如下 shell 命令:
system% setenv LC_TIME locale |
Bourne shell (sh) 用户可用 set 或 export:
$ set -a LC_TIME $ LC_TIME=locale |
或者
$ LC_TIME=locale $ export LC_TIME |
设置 zh 或 zh.GBK为语言环境则让用户环境得以简体中文格式和文本显示时间。用户可以为工作的环境定义混合的语言环境。例如,字符可以简体中文键入和转换,时间可以法文格式显示而消息可以英文显示。
许多用户在单一文化环境中工作。LC_ALL 和 LANG 环境变量把所有类别设置为系统默认值。例如,这些 C shell 命令把所有类别的系统默认设置为 locale.
system% setenv LC_All locale system% setenv LANG locale |
系统管理员或用户可设置默认值,setenv 语法可在程序设计时使用。
该设置在下次应用程序行调用 setlocale() 函数把类别设置为默认设置时生效:setlocale()(LC_XXX "")