Ubuntu 切換系統語言

今天把 display manager 切換成 ly 後,發現終端裏面的語言默認被切換成中文了,想改回英文。由於使用的 labwc 環境,不想切換到 Gnome 點擊 GUI 設置。或者假設你在服務器上面沒有圖形界面,這個時候命令行方式變更系統語言就有用武之地了。

下面記錄命令行方式切換系統語言的方法(演示的是從英文切換到中文,反之亦然):

1. 先查看當前語言設置

 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 就是。

2. 重新選擇系統語言

 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 界面,先需要選中目標支持語言,可以多選的。

select language

選擇默認語言

select language2

3. 配置檢測

退出重啓後,再次檢測,如下所示,發現部分配置被切換了中文。

 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
 220230713 日 星期四 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
1720230713 日 星期四 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(會記住會話,影響對比效果),該重啓系統的時候重啓。

最後修改於: Monday, August 28, 2023

相關文章:

翻譯: