linux修改语系

前陣子為了某個案子去買了VPS,主機商提供了好多種Linux distribution可以安裝,其中也有Ubuntu。看到Ubuntu當然就很高興的給它安裝下去。安裝好做了些設定,才熊熊想到,那這個語系要怎麼設定? 在網路上爬了些文,發現Ubuntu的語系設定其實還蠻簡單的~(高興),趁現在趕快給她寫下來,免得老人病發作,過沒幾天又忘了…

關於語系

所謂的語系(locale),其實包含語言及地區的設定,因為除了語言之外,國家與國家的日期表示方式、數字格式、貨幣符號、度量單位可能都不一樣,所以才會有了這個locale的發明,依照國家和語言給予分類編號,再加上語言編碼,就構成了locale。

例如
zh_TW 表示 繁體中文 台灣
zh_CN 表示 簡體中文 中國
en_US 表示 英文 美國

然後再加上語言編碼
zh_TW.UTF-8 表示 繁體中文 台灣 UTF-8編碼
zh_TW.Big5 表示 繁體中文 台灣 Big5編碼
zh_CN.UTF-8 表示 簡體中文 中國 UTF-8編碼
zh_CN.GB2312 表示 簡體中文 中國 GB2312編碼
en_US.UTF-8 代表 英文 美國 UTF-8編碼

等等還有好多好多,Ubuntu所有支援的語系和編碼,可以看這個檔案:

/usr/share/i18n/SUPPORTED

設定語系

列出已安裝的語系

首先要先看看我們自己的系統上安裝了哪些語系:

$ locale  -a
C
POSIX

C和POSIX是系統預設的,看來這台機器三比八,什麼都沒有裝…(囧)

列出目前的語系設定

再來看看我們現在的語系設定是怎樣:

$ locale
LANG=
LC_CTYPE= "POSIX"
LC_NUMERIC= "POSIX"
LC_TIME= "POSIX"
LC_COLLATE= "POSIX"
LC_MONETARY= "POSIX"
LC_MESSAGES= "POSIX"
LC_PAPER= "POSIX"
LC_NAME= "POSIX"
LC_ADDRESS= "POSIX"
LC_TELEPHONE= "POSIX"
LC_MEASUREMENT= "POSIX"
LC_IDENTIFICATION= "POSIX"
LC_ALL=

果然,全部也是預設的POSIX…(囧)

那這裡面一堆LC_xxx的就是我們上面所說的,關於日期、度量單位、貨幣符號等等各種的設定,其實它就是我們系統的環境變數,可以用 export 指令來看

挑幾個重點來講:
LC_CTYPE 這會影響字元的分類和轉換,若要能輸入中文,就是設定這裡
LC_TIME 這就是日期和時間的顯示格式囉
LC_MONETARY 這會影響貨幣單位的符號和表示
LC_MESSAGES 這會影響系統訊息的顯示,若想要顯示中文,就是設定這裡
LANG 這是預設,如果上面有沒設定的,就會用這裡的設定
LC_ALL 這是強制全部使用這裡的設定,如果這裡設定了,那麼上面的都沒用,全部以這裡的為準

基本上我們會全部都用同一個國家語系,但不表示全部就要設相同的,你可以日期設成中國、度量設成台灣、貨幣設成美國都OK,隨你高興,只是…沒有人會這樣做吧= =”

產生語系檔案

要設定語系,必須先有語系檔案,我們可以用locale-gen這個指令來產生

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

這樣就產生了4種語系檔案,由於Big5是zh_TW的預設編碼,所以下指令時不需要寫成zh_TW.Big5

檔案就放在 /usr/lib/locale 目錄下,會產生與語系同名的目錄:

ls  -l  /usr /lib /locale
drwxr-xr-x  3 root root  4096  2011- 10- 15  17: 27 en_US.utf8
drwxr-xr-x  3 root root  4096  2011- 10- 15  17: 27 zh_CN.utf8
drwxr-xr-x  3 root root  4096  2011- 10- 15  17: 18 zh_TW
drwxr-xr-x  3 root root  4096  2011- 10- 15  17: 18 zh_TW.utf8

另外我們也可以在 /var/lib/locales/supported.d/ 底下建一個 local 檔,裡面寫上妳要產生的語系,格式與我們上面提到的 /usr/share/i18n/SUPPORTED 這個檔案裡面列出的相同,例如:

sudo  vim  /var /lib /locales /supported.d / local
zh_TW.UTF- 8 UTF- 8
zh_CN.UTF- 8 UTF- 8
en_US.UTF- 8 UTF- 8
zh_TW BIG5

一行一個語系,有了這個檔案,以後只要下 locale-gen 指令,不指定語系,它會自己去找這裡面寫的語系去產生檔案

sudo locale-gen
Generating locales...
en_US.UTF- 8... up-to-date
zh_CN.UTF- 8... up-to-date
zh_TW.BIG5... up-to-date
zh_TW.UTF- 8... up-to-date
Generation complete.

更改語系設定

若只是要暫時更改語系設定,直接下 export 指令更改環境變數即可

先看一下日期格式:

date
Sat Oct  15  17: 44: 37 CST  2011

然後設定,再看一下日期:

export  LC_TIME=zh_TW.UTF- 8
date
六  10月  15  17: 50: 58 CST  2011

唷~ 變中文了耶,喔耶~~ 不過這種格式其實我不是很喜歡,所以下面我要把它改回英文…

若只要變更自己帳號登入的語系設定,那麼編輯家目錄下的.bashrc檔,在最後面加上,例如:

vim ~ /.bashrc
... ()...
export  LC_CTYPE=zh_TW.UTF- 8  # 可以輸入UTF-8中文
export  LC_MESSAGES=zh_TW.UTF- 8  # 可以顯示UTF-8中文
export  LC_TIME=en_US.UTF- 8  # 日期格式還是用美式的

然後重新登入,噹噹~~就生效了

若要變更的是系統全域設定,那麼就把設定寫在 /etc/default/locale 這個檔案裡

sudo  vim  /etc /default /locale
LC_CTYPE=zh_TW.UTF- 8
LC_MESSAGES=zh_TW.UTF- 8
LC_TIME=zh_TW.UTF- 8

或者加到環境變數的設定檔 /etc/environment 最後面

sudo  vim  /etc /environment
.... ()...
LC_CTYPE=zh_TW.UTF- 8
LC_MESSAGES=zh_TW.UTF- 8
LC_TIME=en_US.UTF- 8

相關檔案目錄
/usr/share/i18n/SUPPORTED
/usr/lib/locale/
/var/lib/locales/supported.d/local
~/.bashrc
/etc/default/locale
/etc/environment

相關指令
local
local-gen

參考
locale man page
Ubuntu Documentation
[Ubuntu]初建置的中文環境
[拋磚] locale 設定相關說明
Ubuntu Locale配置问题根源解决之道

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值