LANGUAGE環境変数はどの構成ファイルに設定されていますか? (または、他の方法でどのように変更できますか?)
背景:私はkubuntuの言語設定で遊んでいて、偶然ロシア語をインストールしました。今では完全に消えることはありません。はい、英語はGUIに表示されますが、コマンドラインではロシア語です。私が理解できる限りでは、それはLANGUAGE環境変数によるものです。 3行目を参照してください。
leon@leon-Desktop:~$ locale
LANG=en_US.UTF-8
LANGUAGE=en:ru:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
LANGUAGEを除くすべてが正しく設定されています。ロケール/言語を構成する方法についてはいくつかの手順を実行しましたが、LANGUAGEは変更されていないようです(ただし、LANGなどの他の環境変数は変更されています)。したがって、ロケールの変更方法の概要には興味がありません。 LANGUAGEの変更方法を明確に知る必要があります(状況を完全に誤解していない限り)。価値があるため、LANGは/ etc/default/localeに設定されていますが、LANGUAGEは設定されていません。 (そこでLANGUAGEを設定しようとしましたが、どういうわけかオーバーライドされます。)LANGUAGEを手動でenに設定すると、その特定のシェルは正常に機能するため、変更する必要があるのはLANGUAGEだけだと思います。
編集:
明確にするために、/ etc/default/localeでLANGAUGEを設定します助けにはなりません。さらに、〜/ .pam_environmentは存在しません。
下記参照。 LANGUAGEは/ etc/default/localeで「en」に設定されます。マシンを再起動しました。/etc/default/localeの内容を確認しました。ただし、LANGUAGEが他の場所で上書きされたため(ロケールから上記の出力が生成されたため)、apt-getは引き続きロシア語で出力されます。
leon@leon-Desktop:~$ cat /etc/default/locale
LANG="en_US.UTF-8"
LANGUAGE="en"
leon@leon-Desktop:~$ cat ~/.pam_environment
cat: /home/leon/.pam_environment: No such file or directory
leon@leon-Desktop:~$ Sudo apt-get update
Игн http://mirror.anl.gov utopic InRelease
編集2:
〜/ .kde/env/setlocale.shが問題のようです。 KDEバグレポートを提出するでしょう。
$ cat ~/.kde/env/setlocale.sh
export LANGUAGE=en:ru:en
export LANG=en_US.UTF-8
export LC_NUMERIC=en_US.UTF-8
export LC_TIME=en_US.UTF-8
export LC_MONETARY=en_US.UTF-8
export LC_PAPER=en_US.UTF-8
export LC_IDENTIFICATION=en_US.UTF-8
export LC_NAME=en_US.UTF-8
export LC_ADDRESS=en_US.UTF-8
export LC_TELEPHONE=en_US.UTF-8
export LC_MEASUREMENT=en_US.UTF-8
help.ubuntu.com から取得
The LANGUAGE priority list
The "LANGUAGE" environment variable, which is set by the GUIs more often than not on
Ubuntu desktops, controls language for message and menu display for GNU compatible
applications. For such applications it overrides whatever locale names are set in
"LANG" and "LC_MESSAGES".
Unlike "LANG" and "LC_*", "LANGUAGE" should not be assigned a complete locale name
including the encoding part (e.g. ".UTF-8"). Instead "LANGUAGE" should contain a
colon separated priority list of language codes, for instance "es:de:en". A single
language code is also correct.
リンクの答えとしては不十分であるように、 this はおそらくあなたが望むものです。
上記のリンクで参照されている投稿は、コマンドラインに表示される言語を変更する場合、/etc/default/locale
または~/.pam_environment
でLANG
とLANGUAGE
の両方を適宜設定する必要があることを説明しています。
/etc/default/locale
で既にLANGUAGE
を設定しようとしているので、~/.pam_environment
で設定しようとします。これはユーザー構成ファイルであり、その内容はグローバル環境で設定されたものを上書きするからです。
編集:
私は先に進み、/etc/default/locale
のLANGUAGE
を"en:ru:en"
に設定して、ログアウトしてからログインし直して、説明した問題を再現しようとしました。その後、少なくともルートアカウント(これをテストしているアカウント)については、ロシア語でエラーメッセージが表示されました。 LANGUAGE
の値を"en"
に変更すると修正されました。
LANGUAGE
変数がru:enまたは/etc/default/locale
の何かに設定されているように聞こえるので、そこにenだけに変更してみてください。
Alexej Maguraが書いた答えは、~/.pam_environment
にも言及しています。おそらく、Kubuntuがあるため、代わりに(または)他のファイルが関係している可能性があります。