今天把 display manager 切换成 ly 后,发现终端里面的语言默认被切换成中文了,想改回英文。由于使用的 labwc 环境,不想切换到 Gnome 点击 GUI 设置。或者假设你在服务器上面没有图形界面,这个时候命令行方式变更系统语言就有用武之地了。
下面记录命令行方式切换系统语言的方法(演示的是从英文切换到中文,反之亦然):
1➜ ~ locale
2LANG=en_US.UTF-8
3LANGUAGE=
4LC_CTYPE="en_US.UTF-8"
5LC_NUMERIC=en_US.UTF-8
6LC_TIME=en_US.UTF-8
7LC_COLLATE="en_US.UTF-8"
8LC_MONETARY=en_US.UTF-8
9LC_MESSAGES="en_US.UTF-8"
10LC_PAPER=en_US.UTF-8
11LC_NAME=en_US.UTF-8
12LC_ADDRESS=en_US.UTF-8
13LC_TELEPHONE=en_US.UTF-8
14LC_MEASUREMENT=en_US.UTF-8
15LC_IDENTIFICATION=en_US.UTF-8
16LC_ALL=
从上面可以看出,当前系统语言为英文,货币、计量、地址、电话、时间等都会是英文的方式展示。很多程序会依赖这个配置,glibc 就是。
1➜ ~ sudo dpkg-reconfigure locales
2Generating locales (this might take a while)...
3 en_AG.UTF-8... done
4 en_AU.UTF-8... done
5 en_BW.UTF-8... done
6 en_CA.UTF-8... done
7 en_DK.UTF-8... done
8 en_GB.UTF-8... done
9 en_HK.UTF-8... done
10 en_IE.UTF-8... done
11 en_IL.UTF-8... done
12 en_IN.UTF-8... done
13 en_NG.UTF-8... done
14 en_NZ.UTF-8... done
15 en_PH.UTF-8... done
16 en_SG.UTF-8... done
17 en_US.UTF-8... done
18 en_ZA.UTF-8... done
19 en_ZM.UTF-8... done
20 en_ZW.UTF-8... done
21 zh_CN.UTF-8... done
22 zh_SG.UTF-8... done
23Generation complete.
期间会弹出 tui 界面,先需要选中目标支持语言,可以多选的。

选择默认语言

退出重启后,再次检测,如下所示,发现部分配置被切换了中文。
1➜ ~ locale
2LANG=zh_CN.UTF-8
3LANGUAGE=
4LC_CTYPE="zh_CN.UTF-8"
5LC_NUMERIC=en_US.UTF-8
6LC_TIME=en_US.UTF-8
7LC_COLLATE="zh_CN.UTF-8"
8LC_MONETARY=en_US.UTF-8
9LC_MESSAGES="zh_CN.UTF-8"
10LC_PAPER=en_US.UTF-8
11LC_NAME=en_US.UTF-8
12LC_ADDRESS=en_US.UTF-8
13LC_TELEPHONE=en_US.UTF-8
14LC_MEASUREMENT=en_US.UTF-8
15LC_IDENTIFICATION=en_US.UTF-8
16LC_ALL=
此时输入date命令查看,还是英文格式。因为LC_TIME=en_US.UTF-8
1➜ ~ date
2Thu Jul 13 04:27:39 PM CST 2023
测试修改下LC_TIME=zh_CN.UTF-8,时间变成中文格式:
1➜ ~ date
22023 年 07 月 13 日 星期四 16:31:57 CST
3➜ ~ cat /etc/default/locale
4LANG=zh_CN.UTF-8
5LC_NUMERIC=en_US.UTF-8
6LC_TIME=zh_CN.UTF-8
7LC_MONETARY=en_US.UTF-8
8LC_PAPER=en_US.UTF-8
9LC_NAME=en_US.UTF-8
10LC_ADDRESS=en_US.UTF-8
11LC_TELEPHONE=en_US.UTF-8
12LC_MEASUREMENT=en_US.UTF-8
13LC_IDENTIFICATION=en_US.UTF-8
14➜ ~ cat /etc/default/locale |grep LC_TIME
15LC_TIME=zh_CN.UTF-8
16➜ ~ date
172023 年 07 月 13 日 星期四 16:32:38 CST
可见不同配置项,控制不同地方,就不一一列举了,我一般选择全部更改成英文。
命令示例:
vim
%s/aaa/bbb/g
sed
1sudo sed -i s/zh_CN/en_US/g /etc/default/locale
如何知道这些关键字呢?请看
1
2➜ ~ locale -a
3C
4C.utf8
5en_AG
6en_AG.utf8
7en_AU.utf8
8en_BW.utf8
9en_CA.utf8
10en_DK.utf8
11en_GB.utf8
12en_HK.utf8
13en_IE.utf8
14en_IL
15en_IL.utf8
16en_IN
17en_IN.utf8
18en_NG
19en_NG.utf8
20en_NZ.utf8
21en_PH.utf8
22en_SG.utf8
23en_US.utf8
24en_ZA.utf8
25en_ZM
26en_ZM.utf8
27en_ZW.utf8
28POSIX
29zh_CN.utf8
30zh_SG.utf8
注意,测试的时候记得退出 tmux session(会记住会话,影响对比效果),该重启系统的时候重启。
今天把 display manager 切换成 ly 后,发现终端里面的语言默认被切换成中文了,想改回英文。由于使用的 labwc 环境,不想切换到 Gnome 点击 GUI 设置。或者假设你在服务器上面没有图形界面,这个时候命令行方式变更系统语言就有用武之地了。
下面记录命令行方式切换系统语言的方法(演示的是从英文切换到中文,反之亦然):
1➜ ~ locale
2LANG=en_US.UTF-8
3LANGUAGE=
4LC_CTYPE="en_US.UTF-8"
5LC_NUMERIC=en_US.UTF-8
6LC_TIME=en_US.UTF-8
7LC_COLLATE="en_US.UTF-8"
8LC_MONETARY=en_US.UTF-8
9LC_MESSAGES="en_US.UTF-8"
10LC_PAPER=en_US.UTF-8
11LC_NAME=en_US.UTF-8
12LC_ADDRESS=en_US.UTF-8
13LC_TELEPHONE=en_US.UTF-8
14LC_MEASUREMENT=en_US.UTF-8
15LC_IDENTIFICATION=en_US.UTF-8
16LC_ALL=
从上面可以看出,当前系统语言为英文,货币、计量、地址、电话、时间等都会是英文的方式展示。很多程序会依赖这个配置,glibc 就是。
1➜ ~ sudo dpkg-reconfigure locales
2Generating locales (this might take a while)...
3 en_AG.UTF-8... done
4 en_AU.UTF-8... done
5 en_BW.UTF-8... done
6 en_CA.UTF-8... done
7 en_DK.UTF-8... done
8 en_GB.UTF-8... done
9 en_HK.UTF-8... done
10 en_IE.UTF-8... done
11 en_IL.UTF-8... done
12 en_IN.UTF-8... done
13 en_NG.UTF-8... done
14 en_NZ.UTF-8... done
15 en_PH.UTF-8... done
16 en_SG.UTF-8... done
17 en_US.UTF-8... done
18 en_ZA.UTF-8... done
19 en_ZM.UTF-8... done
20 en_ZW.UTF-8... done
21 zh_CN.UTF-8... done
22 zh_SG.UTF-8... done
23Generation complete.
期间会弹出 tui 界面,先需要选中目标支持语言,可以多选的。

选择默认语言

退出重启后,再次检测,如下所示,发现部分配置被切换了中文。
1➜ ~ locale
2LANG=zh_CN.UTF-8
3LANGUAGE=
4LC_CTYPE="zh_CN.UTF-8"
5LC_NUMERIC=en_US.UTF-8
6LC_TIME=en_US.UTF-8
7LC_COLLATE="zh_CN.UTF-8"
8LC_MONETARY=en_US.UTF-8
9LC_MESSAGES="zh_CN.UTF-8"
10LC_PAPER=en_US.UTF-8
11LC_NAME=en_US.UTF-8
12LC_ADDRESS=en_US.UTF-8
13LC_TELEPHONE=en_US.UTF-8
14LC_MEASUREMENT=en_US.UTF-8
15LC_IDENTIFICATION=en_US.UTF-8
16LC_ALL=
此时输入date命令查看,还是英文格式。因为LC_TIME=en_US.UTF-8
1➜ ~ date
2Thu Jul 13 04:27:39 PM CST 2023
测试修改下LC_TIME=zh_CN.UTF-8,时间变成中文格式:
1➜ ~ date
22023 年 07 月 13 日 星期四 16:31:57 CST
3➜ ~ cat /etc/default/locale
4LANG=zh_CN.UTF-8
5LC_NUMERIC=en_US.UTF-8
6LC_TIME=zh_CN.UTF-8
7LC_MONETARY=en_US.UTF-8
8LC_PAPER=en_US.UTF-8
9LC_NAME=en_US.UTF-8
10LC_ADDRESS=en_US.UTF-8
11LC_TELEPHONE=en_US.UTF-8
12LC_MEASUREMENT=en_US.UTF-8
13LC_IDENTIFICATION=en_US.UTF-8
14➜ ~ cat /etc/default/locale |grep LC_TIME
15LC_TIME=zh_CN.UTF-8
16➜ ~ date
172023 年 07 月 13 日 星期四 16:32:38 CST
可见不同配置项,控制不同地方,就不一一列举了,我一般选择全部更改成英文。
命令示例:
vim
%s/aaa/bbb/g
sed
1sudo sed -i s/zh_CN/en_US/g /etc/default/locale
如何知道这些关键字呢?请看
1
2➜ ~ locale -a
3C
4C.utf8
5en_AG
6en_AG.utf8
7en_AU.utf8
8en_BW.utf8
9en_CA.utf8
10en_DK.utf8
11en_GB.utf8
12en_HK.utf8
13en_IE.utf8
14en_IL
15en_IL.utf8
16en_IN
17en_IN.utf8
18en_NG
19en_NG.utf8
20en_NZ.utf8
21en_PH.utf8
22en_SG.utf8
23en_US.utf8
24en_ZA.utf8
25en_ZM
26en_ZM.utf8
27en_ZW.utf8
28POSIX
29zh_CN.utf8
30zh_SG.utf8
注意,测试的时候记得退出 tmux session(会记住会话,影响对比效果),该重启系统的时候重启。