Страница 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, убрал неверное под спойлер.