chlang 命令

用途

更改系统或用户的语言设置。

语法

要通过更改缺省语言设置修改环境或概要文件:

chlang [ -u UID | Uname ] [ -m MsgTransLst | -M ] 语言

要在不更改缺省语言设置的情况下修改环境或概要文件:

chlang [ -u UID | Uname ] -m MsgTransLst | -M

要从环境或概要文件除去 NLSPATH 设置:

chlang -d [ -u UID | UName ]

描述

chlang 命令是高级 shell 命令,它为整个系统或个别用户更改语言设置。 如果调用者的有效标识是 root 用户,并且没有使用 -u 选项,那么将为 /etc/environment 文件中的整个系统更改语言设置。 如果调用者的有效标识不是 root 用户,或者如果使用了 -u 选项,那么将在用户的 .profile 文件中为个别用户更改语言设置。

当使用语言(而不使用选项)运行 chlang 时,LANG 环境变量将设置为指定的语言。

当使用 -m 选项运行 chlang 时,将设置 LANGNLSPATH 环境变量。 此外,如果-m参数与语言参数不同,且语言参数有系统提供的翻译可用, 则LC_MESSAGES变量将设置为-m参数 MsgTransLst中指定的第一个值 ,前提是它与语言参数不同,且语言参数具有系统提供的可用翻译。

当使用 -d 选项运行 chlang 时,将除去 NLSPATH 环境变量。

注意:
  1. 当修改 /etc/environment 或用户的 .profile 时, chlang 对 NLS 环境进行的更改不是立即的。 对 /etc/environment 的更改要求重新引导系统。 对用户的 .profile 的更改要求再次登录或运行 .profile 文件。
  2. 修改用户的配置文件时,如果用户使用 C shell (/usr/bin/csh) ,那么将修改其 .cshrc 文件而不是 .profile 文件。

标志

描述
-d 用于除去 NLSPATH 环境变量。 此选项将从 /etc/environment 或用户的 .profile 中除去 NLSPATH。 如果 NLSPATH 当前不在正在被修改的文件中,那么显示一条警告消息。
-m MsgTransLst 用于对 NSLPATH 环境变量进行更改。 MsgTransLst 是以冒号分隔的消息转换(语言环境名称)列表,它表示系统或用户所需的消息转换层次结构。 如果列表中的第一个语言不同于 Language 参数,并且 Language 参数具有系统提供的转换,那么将 LC_MESSAGES 环境变量设置为该第一个值。 如果列表中的第一个语言地区与设置的语言相同,那么将除去 LC_MESSAGES 环境变量。 列表中的所有项都成为 NLSPATH 环境中硬编码的目录。
-M 用于重新设置 LC_MESSAGES 环境变量并将 NLSPATH 环境变量设置为缺省转换层次结构,该结构为:
/usr/lib/nls/msg/%L/%N:
/usr/lib/nls/msg/%L/%N.cat:
-u UIDUName 用于对个别用户进行修改。 该用户可以通过用户标识号或用户登录名来指定。 如果 chlang 的有效标识是 root,那么 -u 参数必须用于为任何特定用户标识更改语言环境,包括 root 用户本身(这种情况下,没有 -u 参数将更新 /etc/environment 文件而不是 root 用户的 .profile)。 如果有效的标识不是 root,那么不需要 -u 参数。 如果指定了该参数,那么它必须与调用者的有效标识相同。
语言 这是语言地区(语言环境名称),它将成为 LANG 环境变量的语言环境设置。

退出状态

描述
重大安全事件数量 指示成功完成。
> 0 指示发生错误。

示例

  1. 假定首选语言环境为挪威语,按首选顺序的语言翻译为挪威语,瑞典语和英语。 对于用户 amcleod ,完成此操作的命令如下:
    chlang -u amcleod -m no_NO:sv_SE:en_US no_NO
    将在用户 amcleod.profile 中进行以下设置。 由于消息转换列表中的第一个语言是挪威语,与 Language 参数一样,那么 LC_MESSAGES 将不由 chlang 来设置。 如果已经设置了 LC_MESSAGES,那么将除去它:
    LANG=no_NO
      
    NLSPATH=/usr/lib/nls/msg/%L/%N:
            /usr/lib/nls/msg/no_NO/%N:
            /usr/lib/nls/msg/sv_SE/%N:
            /usr/lib/nls/msg/en_US/%N:
            /usr/lib/nls/msg/%L/%N.cat:
            /usr/lib/nls/msg/no_NO/%N.cat:
            /usr/lib/nls/msg/sv_SE/%N.cat:
            /usr/lib/nls/msg/en_US/%N.cat
  2. 假定首选语言环境为法语,并且按首选顺序的语言翻译为加拿大法语和英语。 对于非 root 用户,要完成此操作,请输入:
    chlang -m fr_CA:en_US fr_FR
    对于用户调用 chlang,将在 .profile 文件中进行以下设置。 由于消息转换列表中的第一个语言不同于文化约定(语言环境),所以由 chlang 设置 LC_MESSAGES
    LANG=fr_FR
     
    LC_MESSAGES=fr_CA
     
    NLSPATH=/usr/lib/nls/msg/%L/%N:
            /usr/lib/nls/msg/fr_CA/%N:
            /usr/lib/nls/msg/en_US/%N:
            /usr/lib/nls/msg/%L/%N.cat:
            /usr/lib/nls/msg/fr_CA/%N.cat:
            /usr/lib/nls/msg/en_US/%N.cat
  3. 假定西班牙的系统管理员 (root 用户权限) 正在从另一个国家或地区配置系统,并且需要更改缺省语言环境,以便机器在其新位置正常运行。 要更改 /etc/environment 文件中的缺省值,请输入:
    chlang -m es_ES es_ES
    以下设置将在 /etc/environment 文件中进行。
    LANG=es_ES
     
    NLSPATH=/usr/lib/nls/msg/%L/%N:
            /usr/lib/nls/msg/es_ES/%N:
            /usr/lib/nls/msg/%L/%N.cat:
            /usr/lib/nls/msg/es_ES/%N.cat

文件

描述
/usr/bin/chlang 更改语言命令
/etc/environment 指定所有进程的基本环境
$HOME/.profile 指定特定的用户需要的环境