zoukankan      html  css  js  c++  java
  • ubuntu Change Language

     慎用

    所謂的語系(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配置问题根源解决之道

  • 相关阅读:
    新建存储过程
    c#List移除列表中的元素
    学习总结初篇:发现问题
    webpack的几个使用方法
    Does Lamda expression return value?
    委托的最佳科普解释
    正则表达式字符匹配攻略
    Beta冲刺 第一天
    ###Beta准备
    高校征信系统项目Postmortem结果
  • 原文地址:https://www.cnblogs.com/k98091518/p/6490266.html
Copyright © 2011-2022 走看看