LANGUAGE環境変数はどこに設定されていますか?


9

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などの他の環境変数は変更されています)。したがって、ロケールの変更方法の概要には興味がありません。言語を変更する方法を具体的に知る必要があります(状況を完全に誤解している場合を除きます)。なんと言っても、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

回答:


5

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.

リンクの答えと同じように足りないので、これはおそらくあなたが望むものです。

上記のリンクで参照されている投稿では、コマンドラインに表示される言語を変更する場合は、またはのどちらかで両方を設定する必要があるLANGと説明LANGUAGEされています。/etc/default/locale~/.pam_environment

ですでに設定LANGUAGEを試み/etc/default/locale~/.pam_environmentので、それはユーザー設定ファイルであり、その内容はグローバル環境で設定されたものを上書きするはずなので、設定を試みます。

編集:

私は先に進み、ログアウトしてから再度ログインするように設定LANGUAGEする/etc/default/localeことによって、あなたが説明した問題を複製してみ"en:ru:en"ました。それはうまくいきました。次に、少なくともrootアカウント(これをテストしていたアカウント)については、ロシア語でエラーメッセージが表示されました。の値を変更しLANGUAGE"en"修正しました。


残念ながら、すでに述べたように、/ etc / default / localeで変数を設定するだけでは不十分です。(明確にするために元の投稿と編集を参照してください。)どうやら、変数はどこかで上書きされるので、どこにあるのかを知る必要があります。
lnmaurer 2014

@lnmaurer知っています。設定してみました~/.pam_environmentか?存在しないというコメントをいただきました。を試してみgrep LANGUAGE /etc -r | lessて、手動でのすべてのインスタンスをチェックすることができますLANGUAGE。また、必ず確認してください~/.profile~/.xsessionrc
Alexejマグラ

2
私はあなたの忠告をしがみついた。/etc何も見つかりませんでしたが、ホームディレクトリをgreppingしました/.kde/env/setlocale.sh。それが問題だったようです。
lnmaurer 2014

1

LANGUAGE変数がru:enまたは何かに設定されているようですので、/etc/default/localeそこでenだけに変更してみてください。

Alexejマグラが書いた答えは、も言及します~/.pam_environment。おそらく、Kubuntuを使用しているために、代わりに(または)他のファイルが関係している可能性があります。


〜/ .pam_environmentは私には存在しません。どのファイルが非難される可能性があるかについての他の考えはありますか?
lnmaurer 2014

@lnmaurer:おそらく~/.kde/share/config/kcmlocale-groupingそれと関係があります。システム設定->ロケール->言語で変更できます。
Gunnar Hjalmarsson 2014

1
それはKDE固有のものだったと思う。~/.kde/env/setlocale.sh問題だったようです。
lnmaurer 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.