Параметры локали (locale) определяет язык операционной системы и региональные настройки (форма даты и времени, денежные символы, доступные наборы символов и т.д.), которые используется в терминале и в графическом интерфейсе. В этой статье мы рассмотрим, как получить или изменить текущие настройки локали в Linux на примере Ubuntu и Debian
Вывести текущие настройки локали в Ubuntu и Debian можно с помощью команды:
$ locale
LANG=en_US.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=
Вывести список доступных локалей на хосте:
$ locale –a
Чтобы вывести подробную информацию об установленных в системе локалях:
$ locale -a -v
Системная локаль C.UTF-8 в этом списке присутствует всегда. Попробуем добавить русскую локаль ru_RU.UTF-8.
Список локалей, доступных для установки перечислен в файле:
$ cat /etc/locale.gen
Чтобы установить нужную локаль, выполните команду:
$ sudo locale-gen ru_RU.UTF-8
Также вы можете установить нужные локали, просто раскомментировав строки в файле /etc/locale.gen:
Чтобы задать локаль по-умолчанию, выполните команду:
$ sudo update-locale LANG=ru_RU.UTF-8
или:
$ sudo localectl set-locale LANG=ru_RU.UTF-8
Эта команда запишет следующую строку в файл /etc/default/locale:
LANG=ru_RU.UTF-8
Перезагрузите хост Linux, чтобы применить новые настройки локали.
Можно задать отдельную локаль для различных региональных настроек Linux, например:
$ sudo update-locale LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_MONETARY=en_US.UTF-8
Если вы зададите локаль, которая не сгенерировала, команда locale выведет ошибки:
$ 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=fr_FR.utf8
В некоторых случаях нужно сначала установить необходимую локаль:
$ sudo apt-get install language-pack-fr
Если локаль в Linux не задана, и команда locale -a возвращает всего три записи:
C C.UTF-8 POSIX
- Нужно сгенерировать новую локаль
$ sudo locale-gen ru_RU.UTF-8
- Применить новую локаль:
$ sudo update-locale LANG=ru_RU.UTF-8
- Перезагрузите хост или откройте новое окно терминала.
Для более простого управления локалями в Debian и Ubuntu вы можете использовать утилиту dpkg-reconfigure.
С помощью следующей команды вы сможете сгенерировать, задать или удалить локали в Linux:
$ sudo dpkg-reconfigure locales
Утилита предоставляет простой псевдографический интерфейс. Выберите локали, которые нужно установить.
Затем задайте локаль по умолчанию (default locale for the system environment).
Чтобы изменить кодировку в консоли (терминале), выполните команду:
$ sudo dpkg-reconfigure console-setup
Выберите UTF-8 кодировку для консоли, затем выберите поддержку какого набора символов нужно добавить
Эти настройки хранятся в:
$ cat /etc/default/console-setup
Затем настройте клавиатуру:
$ sudo dpkg-reconfigure keyboard-configuration
По умолчанию рекомендуется использовать модель клавиатуры Generic 105-key PC. Затем добавьте раскладку клавиш для нужной страны.
Настройки клавиатуры указываются в файле:
$ cat /etc/default/keyboard
Осталось настроить часовой пояс:
$ sudo dpkg-reconfigure tzdata
Вы можете удалить локали, которые не используете. Список установленных локалей содержится в /usr/lib/locale/locale-archive.
Выведите список локалей в архиве:
$ localedef --list-archive
Удаляем ненужную локаль:
$ sudo localedef --delete-from-archive en_IN.utf8