Посмотрим установленные локали:
1
2
3
4
  | 
$ locale -a
C
C.UTF-8
POSIX
  | 
 
Мне нужны 2 локали en_US.utf8 и ru_RU.utf8.
Для этого нужно раскомментировать в файле /etc/locale.gen следующие строки:
1
2
  | 
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
  | 
 
Теперь достаточно выполнить команду:
1
2
3
4
5
  | 
$ sudo locale-gen
Generating locales (this might take a while)...
  en_US.UTF-8... done
  ru_RU.UTF-8... done
Generation complete.
  | 
 
2й вариант такой:
1
2
3
  | 
$ locale-gen en_US.UTF-8
# либо
$ localedef -i en_US -f UTF-8 en_US.UTF-8
  | 
 
Проверим, снова и убедимся, что локали присутствуют:
1
2
3
4
5
6
  | 
$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
ru_RU.utf8
  | 
 
Посмотрим, какие локали заданы в системе:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
  | 
$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC=C.UTF-8
LC_TIME=C.UTF-8
LC_COLLATE="C.UTF-8"
LC_MONETARY=C.UTF-8
LC_MESSAGES=C.UTF-8
LC_PAPER=C.UTF-8
LC_NAME=C.UTF-8
LC_ADDRESS=C.UTF-8
LC_TELEPHONE=C.UTF-8
LC_MEASUREMENT=C.UTF-8
LC_IDENTIFICATION=C.UTF-8
LC_ALL=
  | 
 
LC_ALL - если установлена, то используется для всех категорий локалей, даже если они заданы; 
LANG - используется для тех категорий локалей, для которых значение не задано; 
LANGUAGE - если установлена, то используется вместо LC_MESSAGES. 
LC_MESSAGES - язык, на котором будут выводиться ошибки. (Если задана LANGUAGE, то будет использоваться она) 
Это совсем не то, что мне нужно. Исправим ситуацию:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
  | 
sudo update-locale \
    LANG="en_US.UTF-8" \
    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="en_US.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"
  | 
 
2й вариант установки локалей, через export переменных:
1
2
3
4
5
  | 
export LANGUAGE=en_US.UTF-8
export LANG=ru_RU.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
  | 
 
Убедимся, что всё применилось как надо:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
  | 
$ locale
LANG=en_US.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=en_US.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=
  | 
 
Полезные ссылки: