AIX语言环境变量详细介绍

系统 其他OS
在文章中,我们会对AIX境变量的知识进行讲解。包括了很多的知识,例如LANG,LC_ALL,LC_COLLATE ,LC_CTYPE,LC__FASTMSG 等的介绍。

我们今天来讲解本地语言支持(NLS)使用多种环境变量来影响对AIX语言环境的选择。可以设置这些变量的值来更改AIX语言环境信息的搜索路径。

LANG

指定安装时缺省的AIX语言环境。
注:LANG 环境变量值是在安装时确定的。(除非设置了 LC_* 环境变量,否则每个进程都使用都使用该语言环境)。可以使用 SMIT 中的 Manage Language Environment 菜单来更改 LANG 语言环境。有关使用 SMIT 的更多信息,请参阅 AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的 System Management Interface Tool (SMIT) Overview。C 和 POSIX 语言环境的目的就是提供***性能。

LC_ALL

覆盖 LANG 环境变量的值以及所有其它 LC_* 环境变量的值。

LC_COLLATE

指定用于 LC_COLLATE 类别信息的AIX语言环境。LC_COLLATE 类别确定了字符整序和字符串整序的规则,这些规则控制着范围、同等类以及多字符整序元素的行为。

LC_CTYPE

指定用于 LC_CTYPE 类别信息的AIX语言环境。LC_CTYPE 类别确定了字符处理的规则,这些规则控制着文本数据字符(即单字节和多字节字符)的字节序列的解释、字符的分类(如,字母、数字等)以及字符类的行为。

LC__FASTMSG

当 LC__FASTMSG 设为 true 时,该变量规定对于 C 和 POSIX 语言环境使用缺省消息,并且规定忽略 NLSPATH。否则,执行符合 POSIX 规范的消息处理。在 /etc/environment 文件中,缺省值为 LC__FASTMSG=true。

LC_MESSAGES

指定用于 LC_MESSAGES 类别信息的AIX语言环境。LC_MESSAGES 类别确定了控制肯定性和否定性响应的规则,以及控制用于消息和菜单的语言环境(语言)的规则。
在使用不能显示多字节字符的终端时,如果希望不显示不可打印字符,可将 LC_MESSAGES 环境变量设为 C@lft。可显示多字节字符的登录会话禁用此设置。

使用 cron 或 inittab 启动的进程保留 C@lft LC_MESSAGES 设置,并使用 setlocale() 子例程建立缺省消息的语言环境。如果应用程序不显示消息,请确保 LC_MESSAGES="C@lft",并通过 putenv("LC_MESSAGES=") 子例程禁用此设置。其结果就是使用经翻译的消息目录的输出。

LC_MONETARY

指定用于 LC_MONETARY 类别信息的语言环境。LC_MONETARY 类别确定了控制货币相关格式的规则。

LC_NUMERIC

指定用于 LC_NUMERIC 类别信息的AIX语言环境。LC_NUMERIC 类别确定了控制非货币数字格式的规则。

LC_TIME

指定用于 LC_TIME 类别信息的语言环境。LC_TIME 类别确定了控制日期和时间格式的规则。


LOCPATH
指定用于本地化信息的搜索路径,包括二进制AIX语言环境文件、输入法和代码集转换器。

注:所有的 setuid 和 setgid 程序都忽略 LOCPATH 环境变量。

NLSPATH

指定用于查找消息目录文件的搜索路径。NLS 子系统的消息工具组件使用该环境变量。请参阅 catopen 子例程以获取更多有关 NLSPATH 变量所要求的格式的信息。
影响AIX语言环境选择的环境变量可分为三种优先级类:高、中和低。处于高优先级类的环境变量有:
LC_ALL
LC_COLLATE
LC_CTYPE
处于中优先级类的环境变量有:
LC_MESSAGES
LC_MONETARY
LC_NUMERIC
LC_TIME
而处于低优先级类的环境变量是:LANG

当 setlocale 子例程为一个特定类别或所有类别请求AIX语言环境时,将按以下方式,根据这些环境变量设置的优先级级别对这些设置进行查询:
如果设置了 LC_ALL 环境变量,则所有六个类别都使用该变量指定的环境变量。例如,如果 LC_ALL 环境变量等于 en_US,而 LANG 环境变量等于 fr_FR,调用 setlocale 子例程会把所有六个类别都设为 en_US 语言环境。

如果 LC_ALL 环境变量未设,则各个类别分别使用由各自对应的环境变量指定的AIX语言环境。例如,如果 LC_ALL 环境变量未设,LC_COLLATE 环境变量设为 de_DE,而 LC_TIME 环境变量设为 fr_CA,那么调用 setlocale 子例程将把 LC_COLLATE 类别设为 de_DE,而把 LC_TIME 类别设为 fr_CA。这两个环境变量中的任一方都不会优先于另一方。

如果 LC_ALL 环境变量未设,并且某一个特定的 LC_* 环境变量的值也未设,那么 LANG 环境变量的值就决定了这一特定类别的设置。

例如,如果 LC_ALL 环境变量未设,LC_CTYPE 环境变量设为 en_US,LC_NUMERIC 环境变量未设,LANG 环境变量设为 is_IS,那么调用 setlocale 子例程会将 LC_CTYPE 类别设为 en_US,而将 LC_NUMERIC 类别设为 is_IS。LANG 语言环境只为那些先前未由 LC_*? 环境变量确定的类别指定语言环境。

如果 LC_ALL 环境变量未设,某一个特定的 LC_* 环境变量的值也未设,而且 LANG 环境变量的值也同样未设置,那么该特定类别的环境变量缺省为 C 语言环境。例如,如果 LC_ALL 环境变量未设,LC_MONETARY 环境变量设为 sv_SE,LC_TIME 环境变量未设,LANG 环境变量也未设,那么调用 setlocale 子例程会将 LC_MONETARY 类别设为 sv_SE,而将 LC_TIME 类别设为 C。

关于AIX语言的知识,我们就讲解的很全面了。

【编辑推荐】

  1. 了解可用AIX CPU 资源
  2. 讲解如何使用AIX微分区
  3. 获得 AIX系统中处理器资源的代码示例
  4. AIX系统lparstat 和 mpstat讲解
  5. 讲解AIX系统并行多线程知识
责任编辑:小霞
相关推荐

2010-04-27 18:30:42

AIX系统

2010-03-01 18:01:45

Python环境变量

2009-07-08 11:23:54

JDK1.6安装环境变量设置

2021-02-15 15:52:27

Linux环境变量命令

2023-11-01 13:40:25

GolangGo

2012-09-18 01:22:33

Java环境变量Classpath

2020-08-05 09:48:20

Docker容器工具

2009-07-09 15:37:01

JDK1.6环境变量

2011-12-21 10:46:17

Java

2019-09-09 09:02:04

Linux脚本语言文本编辑器

2009-06-15 16:28:30

JAVA环境变量

2009-10-21 12:58:18

2010-10-11 09:25:31

MySQL环境变量

2009-07-07 13:44:35

JDK环境变量设置

2010-04-21 16:58:51

Unix环境变量

2021-11-29 10:25:16

Linux环境变量命令

2011-05-31 13:41:50

Android 环境变量

2009-07-03 16:46:07

JSP环境变量

2009-07-07 12:48:29

JDK环境变量设置

2009-06-15 16:47:41

Java环境变量
点赞
收藏

51CTO技术栈公众号