Параметры локали (locale) в Linux определяют текущие региональные настройки операционной системы, которые используется в терминале и в графическом интерфейсе (формат даты и времени, поддерживаемые наборы символов/кодировки). В этой статье мы рассмотрим, как получить или изменить текущие настройки локали в Linux на примере Ubuntu и Debian.
Узнать настройки текущую локали в Ubuntu/Debian
Вывести текущие настройки локали в Ubuntu и Debian можно с помощью команды:
$ locale
Или
$ localectl status
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=
- LANG показывает текущую системную локаль (это en_US.UTF-8)
- LC_NUMERIC – формат чисел
- LC_MONETARY – валюта и параметры форматирования денежных величин
- LC_TIME – формат даты и времени
Вывести список доступных локалей на хосте:
$ locale –a
Или
$ localectl list-locales
Чтобы вывести подробную информацию об установленных в системе локалях:
$ locale -a -v
Системная локаль C.UTF-8 в этом списке присутствует всегда (локаль по-умолчанию).
Получить информацию о переменной окружения, которая определяет формат времени и даты:
$ locale -k LC_TIME
Установить русскую local в Ubuntu и Debian
Попробуем добавить русскую локаль ru_RU.UTF-8.
Список локалей, доступных для установки перечислен в файле:
$ sudo locale-gen ru_RU.UTF-8
Раскомментируйте строки с необходимой вам локалью в /etc/locale.gen .
Теперь сгенерируйте файлы и настройки для выбранной вами локали:
$ sudo locale-gen ru_RU.UTF-8
Теперь нужно назначить русскую локаль по-умолчанию:
$ 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, чтобы применить новые настройки локализации.
Если вы зададите локаль, которая не сгенерировала, команда 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
Можно задать отдельную локаль для различных региональных настроек Linux, например:
$ sudo update-locale LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_MONETARY=en_US.UTF-8
В некоторых случаях нужно сначала установить необходимую локаль:
$ 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
- Перезагрузите хост или откройте новое окно терминала.
Новые пользователи по-умолчанию используют настройки локали, указанные в файле /etc/default/locale.
Если нужно изменить локаль для определенного пользователя, отредактируйте файл .bashrc в его домашнем каталоге:
$ nano .bashrc
Настройки локали в Ubuntu и Linux с помощью dpkg-reconfigure
Для более простого управления локалями в 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
Можно изменить настройки часового пояса в Ubuntu:
$ sudo dpkg-reconfigure tzdata
Вы можете удалить локали, которые не используете. Список установленных локалей содержится в /usr/lib/locale/locale-archive.
Выведите список локалей в архиве:
$ localedef --list-archive
Удаляем ненужную локаль:
$ sudo localedef --delete-from-archive en_IN.utf8
1 comment
Прекрасная статья, спасибо! )