Страница 1 из 1

LC_ALL=ru_RU.UTF-8 не работает [Решено?]

Добавлено: 08.11.2017 15:55
yoshakar
У меня в системе (Debian Stretch) умолчальная локаль — en_US.UTF-8. Но вот понадобилось мне временно запустить программку в русифицированном виде. Однако, к моему удивлению, привычное действие, как то:

Shell

LC_ALL=ru_RU.UTF-8 geany


не дало никакого результата — интерфейс остаётся английским. Я пробовал разные программы — geany, ario, gimp, наконец man --help. Не работает!

Локаль в системе есть, но когда её не было — программы ругались, значит они её подцепляют, однако же язык интерфейса не меняется. В чём тут дело?

Re: LC_ALL=ru_RU.UTF-8 не работает [Решено?]

Добавлено: 08.11.2017 16:17
yoshakar
Вроде нашёл:

Shell

# apt-get --reinstall install $(dpkg -S LC_MESSAGES | cut -d: -f1 | tr ', ' ' ' | sort -u)



UPD: Не, не помогло.

Re: LC_ALL=ru_RU.UTF-8 не работает [Решено?]

Добавлено: 08.11.2017 16:48
yoshakar
В общим включил по дефолту русский, перезагрузился — всё стало по-русски. Попробовал LC_ALL=en_US.UTF-8 — сработало. Переключил обратно на английский, перезагрузился, попробовал LC_ALL=ru_RU.UTF8 — заработало! Как такое возможно — не знаю (и всё ещё интересно), но таковы факты.

Re: LC_ALL=ru_RU.UTF-8 не работает [Решено?]

Добавлено: 16.11.2017 18:31
Reboot
под спойлером неправда
Spoiler

я сам постоянно это забываю, но значение LC_ALL используется только для не заданных явно значений.
Поэтому если где-то (/etc/locale.gen, например) указан LANGUAGE то он будет иметь приоритет.

Re: LC_ALL=ru_RU.UTF-8 не работает [Решено?]

Добавлено: 16.11.2017 19:58
Bizdelnick
Reboot писал(а):
16.11.2017 18:31
LC_ALL используется только для не заданных явно значений.

Нет, он переопределяет все LC_*:

Shell

Код: Выделить всё

% locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
% LC_ALL=en_US.UTF-8 locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=ru_RU.UTF-8
LANGUAGE=
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=en_US.UTF-8
%


Reboot писал(а):
16.11.2017 18:31
Поэтому если где-то (/etc/locale.gen, например) указан LANGUAGE то он будет иметь приоритет.
А LANGUAGE живёт сам по себе.

Re: LC_ALL=ru_RU.UTF-8 не работает [Решено?]

Добавлено: 16.11.2017 21:15
Reboot
Bizdelnick писал(а):
16.11.2017 19:58
Reboot писал(а):
16.11.2017 18:31
LC_ALL используется только для не заданных явно значений.

Нет, он переопределяет все LC_*

да, спасибо, я благополучно перепутал ALL и LANG, убрал неверное под спойлер.