0


ubuntu 配置 locale(语言环境)

locale 是 Linux 系统中多语言环境的接口,每个 locale 都定义了地区、语言和字符集。locale 的语法规则是:

<语言>_<地区>.<字符集编码><@修正值>

,如

zh_CN.UTF-8

中,

zh

表示中文,

CN

表示中国大陆,

UTF-8

表示字符集。

一、查看和安装可用的 locale(语言环境/字符集)

1. 查看可用的语言环境/字符集

locale -a

可以列出所有可用的语言环境/字符集,加

-v

选项可以输出更详细的信息。

$ locale -a 
bo_CN.utf8
C
C.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
...

这些 locale 在 ubuntu 系统中的默认存放位置为:/usr/share/i18n/locales。

可以筛选查看是否存在可用的中文语言环境:

$ locale -a|grep ^zh
zh_CN.utf8
zh_SG.utf8

2. 安装中文 locale(语言环境/字符集)

如果没有发现可用的中文语言环境,则需要安装中文语言包

language-pack-zh-hans

$ sudoaptinstall language-pack-zh-hans

3. 启用中文语言环境/字符集

通过修改

/etc/locale.gen

文件,将

#zh_CN.UTF-8 UTF-8

前面的注释去掉保存,并执行

sudo locale-gen

命令使之生效。

比如,我们通常启用的是中文、英文、藏文:

$ sudovim /etc/locale.gen 
...
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
bo_CN.UTF-8 UTF-8
...

$ sudo locale-gen

二、查看当前 locale(语言环境/字符集)

操作系统根据区域不同以及人们对于计算机的输入习惯,将 locale(语言环境/字符集)归纳为 12 大类,并且分别赋予了 12 个环境变量,即12个

LC_*


变量含义LC_CTYPE:语言符号及其分类LC_NUMERIC:数字LC_TIME:时间显示格式LC_COLLATE:比较和排序习惯LC_MONETARY:货币单位LC_MESSAGES:信息,如提示信息、错误信息、状态信息、标题、标签、按钮和菜单等LC_PAPER:默认纸张大小LC_NAME:姓名书写方式LC_ADDRESS:地址书写方式LC_TELEPHONE:电话号码书写方式LC_MEASUREMENT:度量衡表达方式LC_IDENTIFICATION:locale 对自身包含信息的概述
我们通过

locale

命令可以查看当前的语言环境(字符集)的环境变量:

$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"LC_NUMERIC="zh_CN.UTF-8"LC_TIME="zh_CN.UTF-8"LC_COLLATE="zh_CN.UTF-8"LC_MONETARY="zh_CN.UTF-8"LC_MESSAGES="zh_CN.UTF-8"LC_PAPER="zh_CN.UTF-8"LC_NAME="zh_CN.UTF-8"LC_ADDRESS="zh_CN.UTF-8"LC_TELEPHONE="zh_CN.UTF-8"LC_MEASUREMENT="zh_CN.UTF-8"LC_IDENTIFICATION="zh_CN.UTF-8"LC_ALL=

从输出结果发现,除了上面提到的 12 个

LC_*

以外,还有 3 个变量,分别是

LC_ALL

LANG

LANGUAGE

这里需要分别说明,其中的 2 个变量:

LC_ALL

LANG

与当前 locale 有关。而且,它们之间有一个优先级的关系:

LC_ALL
LC_*
LANG

  • 当设置了 LC_ALL 的值,则 LC_*LANG 的值将会强制转换为 LC_ALL 的值
  • 当设置了 LANG 的值,如果 LC_* 有值,则 locale 采用该值(LC_* > LANG);而没有赋值的 LC_* ,则 locale 会采用 LANG 的值。
  • 如果 LC_ALLLANGLC_* 都不设置的话,系统将采用 POSIX 作为 lcoale,也就是 C locale。

至于另一个变量

LANGUAGE

则是用来指定应用程序的界面语言的。

三、设置当前的 locale

理解了上面的知识之后,我们就可以来设置当前的 locale 了。大概有下面几种设置 locale 的方法:

1.修改

/etc/profile

文件

/etc/profile

文件代码的最后添加定义环境变量的语句,然后执行

sudo source /etc/profile

后注销生效。如:

sudovim /etc/profile
exportLANG=zh_CN.UTF-8
exportLANGUAGE=zh_CN:zh

这种方法比较可靠,因为这个环境变量的调用发生在系统启用的最后阶段。

2. 命令设置

$ sudo localectl set-locale LANG=zh_CN.UTF-8

这个命令其实就是对

LANG

变量以及未赋值的

LC_*

变量进行赋值。对于已经赋值的

LC_*

变量是不起作用的,当然可以单独对

LC_*

变量进行赋值,如:

$ sudo localectl set-locale LC_CTYPE=zh_CN.UTF-8

3. 修改

/etc/default/locale

文件

$sudovim /etc/default/locale
LANG=zh_CN.UTF-8
LANGUAGE="zh_CN:zh"

如上,将

LANG=zh_CN.UTF-8

LANGUAGE="zh_CN:zh"

写入该文件,注销或重启生效。

4. 创建

/etc/locale.conf

文件

/etc/locale.conf

文件的内容同上面

/etc/default/locale

文件的内容一样,然后通过通过

source /etc/locale.conf

使其生效。

$sudovim /etc/locale.conf
LANG=zh_CN.UTF-8
LANGUAGE="zh_CN:zh"

ps:根据第2、第3和第4种方法,在设置了变量值以后,在某些桌面环境会往往会无效,如 UKUI。这是因为 UKUI 在启动时会再次对 locale 进行设置。

标签: ubuntu linux locale

本文转载自: https://blog.csdn.net/ymz641/article/details/131607024
版权归原作者 ymz316 所有, 如有侵权,请联系我们删除。

“ubuntu 配置 locale(语言环境)”的评论:

还没有评论