Где установлена ​​переменная среды LANGUAGE?


9

В каком файле конфигурации установлена ​​переменная среды LANGUAGE? (Или как я могу изменить это другими способами?)

Предыстория: я играл с настройками языка в kubuntu и установил русский случайно. Теперь это не уйдет полностью. Да, английский отображается в графическом интерфейсе, но русский в командной строке. Как я могу понять, это связано с переменной среды LANGUAGE. Смотрите третью строку:

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=

Все настроено правильно, кроме ЯЗЫКА. Я прошел ряд инструкций по настройке локали / языка, но, похоже, ничего не изменило ЯЗЫК (хотя они изменили другие переменные окружения, такие как LANG). Таким образом, я не заинтересован в обзоре того, как изменить язык. Мне нужно конкретно знать, как изменить ЯЗЫК (если я не совсем неправильно понимаю ситуацию). Для чего стоит LANG установлен в / etc / default / locale, но LANGUAGE там не установлен. (Я попытался установить LANGUAGE там, и он каким-то образом переопределяется.) Если я вручную установлю LANGUAGE на en, то эта конкретная оболочка будет работать нормально, поэтому я думаю, что нужно изменить только LANGUAGE.


РЕДАКТИРОВАТЬ:

Просто чтобы прояснить, настройка LANGAUGE в / etc / default / locale не помогает . Кроме того, ~ / .pam_environment не существует.

См. ниже. ЯЗЫК установлен на «en» в / etc / default / locale. Я перезапустил машину. Я проверил содержимое / etc / default / locale. Тем не менее, apt-get все еще выводит на русском языке, потому что LANGUAGE был перезаписан в другом месте (производя вышеуказанный вывод из локали).

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

@ lnmaurer я знаю. Вы пытались установить его в ~/.pam_environment? Я видел ваш комментарий об этом не существует. Вы можете попробовать, grep LANGUAGE /etc -r | lessа затем пройти и вручную проверить каждый экземпляр LANGUAGE. Также обязательно проверьте ~/.profileи~/.xsessionrc
Алексей Магура

2
Я воспользовался вашим советом. /etcничего не обнаружил, но поднял grepping мой домашний каталог /.kde/env/setlocale.sh. Похоже, что это была проблема.
lnmaurer

1

Похоже, у вас есть LANGUAGEпеременная, установленная в ru: en или что-то в /etc/default/localeэтом духе, поэтому попробуйте изменить ее на просто en.

Ответ, который написал Алексей Магура, также упоминает ~/.pam_environment. Возможно, поскольку у вас есть Kubuntu, вместо этого могут быть задействованы другие файлы (или также).


~ / .pam_environment не существует для меня. Любые другие мысли о том, что файл может быть виноват?
lnmaurer

@ lnmaurer: Возможно, ~/.kde/share/config/kcmlocale-groupingкак-то связано с этим. Его можно изменить через Системные настройки -> Локаль -> Языки.
Гуннар Хьялмарссон,

1
Вы правы, что это было что-то конкретное в KDE. Похоже, ~/.kde/env/setlocale.shбыла проблема.
lnmaurer
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.