1. 程式人生 > >第2章 系統本地化和鍵盤設定

第2章 系統本地化和鍵盤設定

第2章 系統本地化和鍵盤設定

系統本地化決定系統服務和使用者介面的語言環境。鍵盤佈局設定包括文字控制檯和使用者圖形介面兩部分。
本地化和鍵盤設定有兩種方法:直接修改/etc/locale.conf檔案、使用localectl配置工具。你也可以通過圖形介面設定,具體方法請參考《FEDORA安裝指南》(Fedora Installation Guide)。

2.1設定系統本地化

系統級別的本地化設定檔案是/etc/locale.conf,這個配置檔案會在系統啟動的時候被systemd 服務載入。在沒有被使用者自定義設定檔案覆蓋的情況下,/etc/locale.conf對所有服務和使用者都有效。
/etc/locale.conf的基本格式是每行一個變數。使用英語的德國本地化配置檔案是這樣的:
LANG=de_DE.UTF-8
LC_MESSAGES=C
LC_MESSAGES選項決定了本地使用者標準輸入輸出所使用的語言。在/etc/locale.conf檔案裡,你還可以指定其它選項。常用的選項總結在表2.1 /etc/locale.conf可選配置項裡。你也可以檢視locale(7)的手冊以瞭解這些選項的更詳細的資訊。注意:
LC_ALL選項,它會替代其它所有可能的選項,所以在/etc/locale.conf裡你不應該用它來設定本地化資訊。
表2.1 /etc/locale.conf可選配置項
選項 功能描述
LANG 系統語言環境的預設值
LC_COLLATE 分類、排序和比較習慣。(譯者注:比如英語用字母排序,中文按筆劃排序)
LC_CTYPE 字元顯示格式。
LC_NUMERIC 數字顯示格式。
LC_TIME 時間顯示格式。包括24小時和12小時兩種。
LC_MESSAGES 選單、對話方塊、標題欄、錯誤輸出顯示格式。

2.1.1 顯示當前狀態

localectl命令可以查詢和改變系統本地化設定和鍵盤佈局設定。如果要檢視相關狀態,可以用下面的引數:
localectl status
例子2.1 顯示當前狀態
前面的命令將顯示控制檯和X11視窗系統的本地化設定資訊和鍵盤佈局資訊。
~]$ localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: n/a

2.1.2 顯示可選的本地化選項

下面的命令顯示所有可以用的本地化選項:
localectl list-locales
例子2.2 顯示本地化資訊
假設你想選擇一個特定的英語環境,但是你不確定你的系統上有沒有。你可以用下面的命令顯示所有和英語有關的選項:
~]$ localectl list-locales | grep en_
en_AG
en_AG.utf8
en_AU
en_AU.iso88591
en_AU.utf8
en_BW
en_BW.iso88591
en_BW.utf8
output truncated

2.1.2 設定本地化

用以下命令設定本地化:
localectl set-locale LANG=locale
用你想用的本地化程式碼代替上面命令中的locale就可以了。你可以用localctl list-locales來查詢。
相關的語法和可用的引數可以參考表2.1 /etc/locale.conf的配置選項
例子2.3 改變系統預設的本地化
舉個例子,如果你想把BRITISH ENGLISH設成你的預設環境,首先用list-locales查詢名稱,然後用root使用者執行以下命令:
~]# localectl set-locale LANG=en_GB.utf8

2.2修改鍵盤佈局

鍵盤佈局同樣可以通過文字控制檯和圖形介面來控制。

2.2.1顯示當前鍵盤佈局

和前面一樣,你可以用以下命令顯示鍵盤佈局:
localectl status
例子2.4 顯示鍵盤佈局
使用了前面的命令後,就可以看到控制檯和X11視窗系統的鍵盤佈局配置資訊了:
~]$ localectl status
System Locale: LANG=en_US.utf8
VC Keymap: us
X11 Layout: us

2.2.2 顯示可用的鍵盤佈局對映

顯示可用的鍵盤佈局用下面的命令:
localectl list-keymaps
例子2.5 查詢特定的佈局
你可以用grep 在前面命令輸出的資訊中查詢指定的佈局名稱。每個本地化通常都會有多個相容的佈局。比如找到Czech的佈局:
~]$ localectl list-keymaps | grep cz
cz
cz-cp1250
cz-lat2
cz-lat2-prog
cz-qwerty
cz-us-qwertz
sunt5-cz-us
sunt5-us-cz

2.2.3設定鍵盤佈局

在Root使用者下使用下面的命令設定佈局:
Localectl set-keymap map
把map換成你實際要用的佈局名稱。佈局名稱可以用localectl list-keymaps命令查詢。
除非使用了–no-convert引數,否則選定的佈局將同時用於X11系統。你也可以用ROOT使用者執行下面的命令分別指定不同的鍵盤佈局:
Localectl set-x11-keymap map
如果你想讓你的X11佈局不同於控制檯佈局,則需要新增–no-convert引數
Localectl –no-convert set-x11-keymap map
增加了這個引數後,X11的鍵盤佈局將指定為你所設定的佈局,而且終端控制檯的佈局不會發生改變。
例子2.6 設定不同的X11佈局
假定你想在圖形介面下使用GERMAN佈局,但是又想在控制檯使用US佈局,你可以ROOT使用者執行以下命令:
~]# localectl –no-convert set-x11-keymap de
然後你檢視下狀態以確認是否成功:
~]$ localectl status
System Locale: LANG=de_DE.UTF-8
VC Keymap: us
X11 Layout: de
除了map外,還有三個引數可以設定:
localectl set-x11-keymap map model variant options
Model、variant、options可以增強鍵盤。這些引數不會設定預設值。關於這三個引數的設定,請參考kbd(4) 手冊。

2.3 其它資訊

如何配置FEDORA的鍵盤,還可以參考以下資源:
安裝文件
localectl(1)-localectl的手冊
loadkeys(1)-loadkey的手冊