環境
- archlinux
- デスクトップマネージャ
- lightdm
- デスクトップ環境
- xfce4
現象
/etc/locale.confも/etc/locale.genも
LANG=ja_JP.UTF-8になっている(もちろんlocale-genもしている)のに、
LANG=ja_JP.UTF-8
# LANG=en_US.UTF-8
...
ja_JP.UTF-8
en_US.UTF-8
...
$ locale-gen
lightdmからlogin後に日本語が表示されない。
xfce4-terminal上で確認するとLANG=en_US.utf8となっている
$ env| grep LANG
LANG=en_US.utf8
sshで別なマシンからloginするとLANG=ja_JP.UTF-8となるためlightdmが原因と思われる。
さらにUTF-8でなくutf8(小文字&ハイフンなし)なのも気になる。
知らないところに言語設定があってそれを読んでいるハズ。
$ ssh archlinux.local
...
$ env| grep LANG
LANG=ja_JP.UTF-8
原因
lightdmが~/.dmrc,/var/cache/lightdm/$USERNAME.dmrcにある言語設定を読むため。
.dmrcとはディスプレイマネージャ(lightdm)のセッション情報を保存するファイル。
[Desktop]
LANGUAGE=en_US.utf8
lightdmの設定ファイルはlightdm.confにもあるがこちらではない。
lightdmをstraceしてやっと見つけました。
対策
.dmrcに正しい言語情報を記述する
[Desktop]
LANGUAGE=ja_JP.UTF-8
#日本語フォントを入れて使う設定しないと、文字化け(日本語の文字コードを出力しようとするが、フォントが存在しないため□豆腐の中に文字コードが表示される)して日本語が表示されないため注意する