У меня в системе (Debian Stretch) умолчальная локаль — en_US.UTF-8. Но вот понадобилось мне временно запустить программку в русифицированном виде. Однако, к моему удивлению, привычное действие, как то:
Shell
LC_ALL=ru_RU.UTF-8 geany
не дало никакого результата — интерфейс остаётся английским. Я пробовал разные программы — geany, ario, gimp, наконец man --help. Не работает!
Локаль в системе есть, но когда её не было — программы ругались, значит они её подцепляют, однако же язык интерфейса не меняется. В чём тут дело?
В общим включил по дефолту русский, перезагрузился — всё стало по-русски. Попробовал LC_ALL=en_US.UTF-8 — сработало. Переключил обратно на английский, перезагрузился, попробовал LC_ALL=ru_RU.UTF8 — заработало! Как такое возможно — не знаю (и всё ещё интересно), но таковы факты.
я сам постоянно это забываю, но значение LC_ALL используется только для не заданных явно значений.
Поэтому если где-то (/etc/locale.gen, например) указан LANGUAGE то он будет иметь приоритет.
% 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
%