Linux 系统语言环境配置解析
文章目录
1. locale 语言环境配置配置层级结构
locale是表达一个地域内人们的语言习惯的配置。linux系统提供了LC_ALL宏,LC_*变量和LANG 3类变量来进行系统语言环境配置。基于Linux的应用程序默认采用当前会话的系统语言环境配置,也可以通过setenv()和setlocale()函数来按需设置。
2. locale 本地化配置变量说明
locale配置格式说明: <语言>_<地区>.<字符集编码>
zh_CN.UTF-8: zh代表中文,CN代表大陆地区,UTF-8表示字符集
2.1 配置变量说明
配置变量生效优先级: LC_ALL > LC_*(具体配置变量) > LANG
-
LC_ALL宏使用说明
设定了LC_ALL为具体指,那么不管LC_*和LANG有没有设定,语言环境变量都采用LC_ALL的设定。
-
LC_* 环境变量说明
1.语言符号及其分类(LC_CTYPE) 2.数字(LC_NUMERIC) 3.比较和习惯(LC_COLLATE) 4.时间显示格式(LC_TIME) 5.货币单位(LC_MONETARY) 6.信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES) 7.姓名书写方式(LC_NAME) 8.地址书写方式(LC_ADDRESS) 9.电话号码书写方式(LC_TELEPHONE) 10.度量衡表达方式 (LC_MEASUREMENT) 11.默认纸张尺寸大小(LC_PAPER) 12.对locale自身包含信息的概述(LC_IDENTIFICATION)。
-
LANG环境变量说明
LANG设定所有语言环境的配置的默认值,当没有设置LC_ALL和LC_*语言变量时,采用LANG配置。
2.2 查看当前系统已安装语言环境配置
确认系统是否已有需要的语言环境配置,不存在需安装。
2.3 查看当前会话语言环境配置
3. Linux 语言环境配置方法
3.1 系统语言环境配置方法
-
修改/etc/profile文件
#修改/etc/profile文件 #在最下面增加 export LC_ALL=zh_CN.utf8 export LANG=zh_CN.utf8 #保存修改后,重新加载生效 source /etc/profile
-
命令行模式配置
localectl set-locale LANG=zh_CN.utf8
3.2 应用程序设置语言环境变量
#include <locale.h>
// category:为locale分类,具体值为LC_ALL,LC_*,LANG
// locale: 期望设定的locale名称字符串
// 返回值:
// 1. 当 locale为 NULL 时,取回当前 locale 操作,通过返回值传出
// 2. 当 locale为 "" 时,根据环境的设置来设定 locale
// 3. 当 locale为具体配置值时,如果成功,返回配置的locale的全名称;如果失败,会返回 NULL
char* setlocale(int category, ![在这里插入图片描述](https://img-blog.csdnimg.cn/5f0f6d4850a6439e99ce9b0ed8a67afc.png#pic_center)
const char* locale);