Посмотрим установленные локали:
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=
|
Полезные ссылки: