最近用 Vagrant 建環境時,因為下載的 Ubuntu Box 只有安裝英文語系,也就是沒辦法在 Terminal 上正常顯示和輸入中文。 為避免記性差了,特以此文章做個紀錄!

解決步驟:

1. 確認目前系統安裝的語系

輸入 locale -a

  $ locale -a
  
  C
  C.UTF-8
  en_US.utf8
  POSIX

可以看到只有英文語系(C, POSIX, en_US.UTF8…等)的設定。

2. 確認目前語系的設定

輸入 locale

  $ locale
  
LANG=en_US.utf8

可以看到只有 LANG 被設定為 en_US.UTF8 下面也列出語系相關的設定值:

  • LANG 為所有語系設定的預設值,若其他語系設定有設定值,則取代此預設值。

  • LC_ADDRESS 地址的顯示格式 e.g. 台灣, 台北 或是 台北, 台灣

  • LC_ALL 所有語系設定的設定值,可直接覆蓋其他語系設定的設定值。

  • LC_COLLATE 字串的排序方式。 e.g. 檔名字典排序

  • LC_CTYPE 字元轉換為文字或數字的設定。 e.g. 鍵盤的輸入字元轉換為文字

  • LC_IDENTIFICATION 語系資訊的 Metadata 的設定。

  • LC_MEASUREMENT 度量衡使用的單位 e.g. 公斤/英鎊, 公尺/英尺

  • LC_MESSAGES 系統訊息顯示的語系。

  • LC_MONETARY 貨幣使用的單位和名稱。 e.g. NTD, USD

  • LC_NAME 名字顯示的格式。 e.g. First name, Last name

  • LC_NUMERIC 數字顯示的格式。 e.g. 123.456, 123,456

  • LC_PAPER 紙張列印尺寸的設定。 e.g. A4, 11 x 17 英尺

  • LC_RESPONSE 系統回應訊息的顯示格式。 e.g. Yes/No, y/n

  • LC_TELEPHONE 電話號碼的顯示格式。

  • LC_TIME 時間和日期的顯示格式。

3. 新增系統語系

輸入 sudo locale-gen locale1, locale2

  $ sudo locale-gen zh_TW zh_TW.UTF-8
  
  Generating locales...
    zh_TW.BIG5... done
    zh_TW.UTF-8... done
  Generation complete.

或是編輯 /var/lib/locales/supported.d/local 增加想新增的語系後,輸入 sudo locale-gen

$ sudo locale-gen

en_US.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
zh_TW BIG5

4. 變更語系設定

  • 變更系統層級的全域設定

    編輯 /etc/default/localeLANGLC_ALL 設定為 zh_TW.UTF-8

     $ sudo vim /etc/default/locale
    
       LANG="zh_TW.UTF-8"
       LC_ALL="zh_TW.UTF-8"   
    
  • 變更個人 User 層級的設定

    編輯 /.bash_profile 等 User 設定檔 將 LANGLC_ALL 設定為 zh_TW.UTF-8

     $ sudo vim _/.bash_profile_
    
       export LANG="zh_TW.UTF-8"
       export LC_ALL="zh_TW.UTF-8"   
    

5. 最後

重新登入後,就可以看到 Terminal 支援中文囉!

Ref: