Де встановлена ​​змінна середовище 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 не існує.

Дивись нижче. У / etc / default / locale для мови LANGUAGE встановлено значення "en". Я перезапустив машину. Я перевірив вміст / etc / default / locale. Однак 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

...

EDIT 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"виходу з системи і потім знову увійти в систему . Він працював. Потім повідомлення про помилки відображалися російською мовою, принаймні для кореневого облікового запису (на якому я тестував цей рахунок). Зміна значення LANGUAGEдля "en"фіксованого.


На жаль, як я зазначив, встановлення змінної в / etc / default / locale недостатньо. (Див. Оригінал публікації та редагування для уточнення.) Мабуть, змінна десь перезаписується, і мені потрібно знати, де це десь.
lnmaurer

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

2
Я прийняв вашу пораду, вітаючись. /etcнічого не з'явилося, але прив’язавшись до мого домашнього каталогу /.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це щось стосується. Це можна змінити за допомогою "Налаштування системи" -> Місце розташування -> Мови.
Gunnar Hjalmarsson

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