自由気ままに書いちゃおう

好きなことをつらつらと・・・

【RHEL8】ロケール設定(OS言語設定)について

ロケール(=地域情報)についてです。
「OSの言語設定」「キーボードレイアウト変更」の際に利用すると思っていただければ支障はないかと。
ここでは、「OSの言語設定」だけにフォーカスしています。
※「キーボードレイアウト設定」は以下です。

 

www.guri2o1667.work

 

 

■ロケールの種類と優劣について

ロケールの適用箇所には「システム」「ユーザ」があります。
また、ロケール設定項目(LANG、LC_MESSAGES等)は複数あります。
設定項目の優劣ですが、ユーザ単体の設定が利用されます。


※ユーザ単体で設定されていない設定項目は、システム全体の設定が適用(継承)されます。
※ユーザ単体のロケールが設定されていない場合には、自動的にシステム全体のロケールが利用されます。

■注意点

前述の通り、ロケールには「システム」「ユーザ」があります。
「システム」は基本的にはrootユーザで確認した設定値です。
ユーザは一般ユーザで確認した設定値です。

以降では、
システムロケールはrootユーザで確認
ユーザロケールは一般ユーザで確認しているものとします。

■現在の設定情報を確認1

localectlコマンドで確認できます。

・「System Locale」はOS言語設定
・「VC Keymap」は仮想コンソールのキーボードレイアウト
・「X11 Layout」はX11ウィンドウシステム用のキーボードレイアウト

f:id:guri2o1667:20210107105424p:plain

■現在の設定情報を確認2

システムロケールのOS言語設定パラメータは以下で確認します。

locale

f:id:guri2o1667:20210107113038p:plain

各設定値は下記に説明があります。
こちら

LC_ALLが設定されている場合、LC~の各設定は全て無視され、LC_ALLの設定値が利用されます。

LC_ALLが設定されていない場合は、LC~の各設定が利用されます。


■システムロケールを変更

「システムロケール」と言った場合、大半はOS言語設定のことかと思いますが、
人によってはキーボードレイアウト設定を含んでいることがあるみたいなので、
「OS言語設定のことですよね?」って確認してからが良いです。

OS内で利用できるシステムロケールを確認します。
※下記コマンド結果に表示された言語が利用可能です。

localectl list-locales


日本語(ja_JP.UTF-8)に設定するには以下の通りです。

localectl set-locale ja_JP.UTF-8

 

■システムロケールの代表例

主なロケール名は以下の通りです。

f:id:guri2o1667:20210107110206p:plain

■システムロケールの保存場所

/etc/locale.confです。

f:id:guri2o1667:20210107105751p:plain

■システムロケールの即時反映方法

システムロケールを変更した際に、現シェル上で即時反映させるには以下を実行します。

source /etc/locale.conf

■ユーザロケールについて

基本的な確認方法はシステムロケールと同じです。
ユーザロケールを設定したい場合には、$HOME/.bashrc内で定義することが多いです。



以上です。