KDEシステム設定の「地域と言語」が反映されない
KDE neon 5.27のインストールと日本語入力-p--qで日本語が入力ができるようになったものの日付表示が月/日/年だったり曜日を表示させても漢字では表示されない問題がありました。
KDEシステム設定の「地域と言語」ではすべて日本語での標準形式になっているのにこの通りにはなっていません。
localeでLANG環境変数を確認する
KDEシステム設定の日本語の標準設定が正しく反映されていればlocaleの出力の環境変数の値はこのようにja_JP.UTF-8になっているはずです。
ところが表示がおかしなKDE neonではLANGの値はja_JP.UTF-8になっているのに一部の環境変数の値がen_US.UTF-8になっていました。
localeの出力で""がついている値の変数は個別には設定されていなくてLANGの設定から上書きされているものです。
なのでLC_CTYPE、LC_COLLATE、LC_MESSAGES以外の変数はどこかで値が設定されているはずです。
LANG環境変数の設定ファイル
kde neon - Diffence between /etc/locale.conf and /etc/default/locale - Unix & Linux Stack Exchange
この記事の解説が詳しいです。
Debianでは/etc/default/locale、Slackwareでは/etc/profile.d/lang.sh、KDE Plasmaでは~/.config/plasma-localerc、その他のディストリビューションでは/etc/locale.confを読み込むそうです。
localectlコマンドは/etc/locale.confがあればそれを書き換え、なければ/etc/default/localeを書き換えるそうです。
Ubuntuの場合は/etc/locale.confを読み込むので localectlコマンドで/etc/locale.confを書き換えてもそれは反映されないそうです。
KDE neonでは~/.config/plasma-localercにはLANG=ja_JP.UTF-8だけ定義してありました。
さらに/etc/default/localeと/etc/locale.confも存在して正しく表示されているマシンではこの2つのファイルの内容は同一でLC_CTYPE、LC_COLLATE、LC_MESSAGES以外の変数が設定されていました。
表示がおかしなマシンでも内容が同一の/etc/default/localeと/etc/locale.confが存在してそこでen_US.UTF-8が設定されていました。
LANG環境変数の設定ファイルは関係なし
設定ファイルのen_US.UTF-8を消しても解決せず
LC_から始まるLANG環境変数は値を設定しなければLANGの値が使われるはずなのでLC_の設定をすべて消すことにしました。
まず/etc/locale.confの2行目以降を消去してログインし直してみました。
しかしlocaleの出力は何も変わりませんでした。
LANGUAGE=jaとするとログイン画面の日時が日本語へ
KDEシステム設定の地域と言語の言語で「言語"ja_JP"はサポートされていません。」というよくわからないエラー表示があったので再設定し直したところLANGUAGE=jaとなりログイン画面の日付表示が日本語での標準形式になりました。しかしデジタル時計の曜日表示はまだ英語のままです。
今度は「パッケージ不足が完全には解決されませんでした。fonts-noto-cjk-extra;language-pack-ja」とでてくるようになりました。これらをインストールしても日本語の標準設定にはなりません。
ちなみに正しく日本語での標準形式になっているマシンはLANGUAGE=は未設定です。
/etc/default/localeと/etc/locale.confのen_US.UTF-8をja_JP.UTF-8に変更しても解決せず
もう諦めて/etc/default/localeと/etc/locale.confのen_US.UTF-8をja_JP.UTF-8に変更してみましたがlocaleの出力は変わりませんでした。
なのでこのLC_から始まる環境変数がどこで設定されているのかわかりませんでした。
KDEシステム設定の「地域と言語」で日本語を選択し直す
もう他の解決法が思いつかないので KDEシステム設定の「地域と言語」で日本語を選択し直しました。
日本語のデフォルトとなっているのをすべての項目についてもう一度日本語に指定し直しました。
これでLC_NUMERIC、LC_TIME、LC_MONETARY、LC_MESUREMENTがja_JP.UTF-8になりました。しかしLC_PAPER、LC_NAME、LC_ADDRESS、LC_TELEPHONE、LC_IDENTIFICATIONはen_US.UTF-8のままでした。
ja_JP.UTF-8に変更できたのは設定項目が日本語化されているものだけです。
とりあえず時間が日本語の標準設定になったのでもうこのまま使うことにします。
0 件のコメント:
コメントを投稿