有时我们需要修改Linux系统的默认语言,特别是在安装系统时使用了默认语言或者安装后希望更改语言的情况。而不同的Linux发行版对此有着不同的管理机制。
原文链接: http://blog.ryjer.com/posts/a1954f37dc.html
0. 快捷指令
localectl 设置中文环境 zh_CN.utf8
1 | localectl set-locale LANG=zh_CN.utf8 |
然后重启,就能生效了。如果不想重启可以看下面
debian系可以使用 dpkg-reconfigure
来重新配置 locale 包的配置,使用以下命令配置系统语言
1 | sudo dpkg-reconfigure locales |
当然,这也需要重启才能生效。
1. locale
locale
中文翻译的意思是 地区
或地域
。其机制可以参考这篇文章 locale 详解 - 欢乐的程序员 - 博客园 (cnblogs.com)。不过我们这里只需要知道本地化中文需要配置locale为中文对应的字符集
就行了。
如果你要手动进行配置的话,需要设定12个大类的locale分类属性:
- 语言符号及其分类 (LC_CTYPE)
- 数字(LC_NUMERIC)
- 比较和排序习惯(LC_COLLATE)
- 时间显示格式(LC_TIME)
- 货币 单位(LC_MONETARY)
- 信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES)
- 姓名 书写方式(LC_NAME)
- 地址书写方式(LC_ADDRESS)
- 电话号码书写方式(LC_TELEPHONE)
- 度量衡表达方式 (LC_MEASUREMENT)
- 默认纸张尺寸大小(LC_PAPER)
- 对locale自身包含信息的概述 (LC_IDENTIFICATION)
不过这12个的组合通常通常是固定的几组,而一般的发行版往往会提供对应的工具进行快捷的设置,比如localectl
。该命令在红帽系和debian系的发行版中都会提供
2. localectl
注:rocky8已验证
2.1 查看 localectl 安装状态
通常,红帽系发行版(redhat、centos、rockylinux等)和debian系发行版都会默认安装该命令。你可以使用 type localectl
查看以下该命令是否安装。如果没有你需要手动安装
1 | [root@rocky8-5 ~]# type localectl |
如果你的系统默认语言是英文,那么结果应当如下
1 | [root@rocky8-5 ~]# type localectl |
2.2 查看当前系统语言设置
你可以使用命令 localectl status
查看当前的系统语言设置,我这里是 zh_CN.UTF-8
。这里还会显示键盘布局等相关信息
1 | # localectl status |
2.3 设置系统语言
通常系统安装时会自动安装语言包(但不一定安装字符包),你可以直接使用以下命令设置系统语言为中文zh_CN.utf8
1 | localectl set-locale LANG=zh_CN.utf8 |
或者设置为英文en_US.utf8
1 | localectl set-locale LANG=en_US.utf8 |
如果系统提示没有对应的语言包,你可以使用命令安装对应语言包。比如中文包
1 | # rhel8 系列使用dnf安装 |
2.4 生效
运行完以上命令后系统语言并不会立即改变,你可以重启后使该配置生效。
或者使用以下命令手动加载配置文件,使配置文件被加载到内存中去。
1 | . /etc/locale.conf |
3. dpkg-reconfigure 设置系统语言
注:debian 10 已验证
不过debian系通常使用 dpkg-reconfigure
来配置语言,该命令是用来重新配置软件包的命令,运行该命令可以重新配置软件包第一次安装后的配置问题。
3.1 安装 locales 软件包
这里需要先安装 locales
软件包(不是 locale
)
1 | sudo apt-get install locales |
3.2 安装并选择系统语言
当使用该命令配置 locales
软件包时,便可以用来配置系统语言
1 | dpkg-reconfigure locales |
该命令会打开一个命令行的 窗口
让你选择需要安装的语言包,你可以使用上线键移动,并使用空格
进行选择。
选择完成后,回车确定。然后再次使用空格
设置 系统语言。
3.3 重启生效
根据 Debian 官方 wiki 的说法,配置完成后需要重启才能生效。
1 | sudo reboot |