Как изменить или установить системные локали в Linux

Локаль - это набор переменных окружения, который определяет настройки языка, страны и символов (или любые другие специальные варианты) для ваших приложений и сеанса оболочки в системе Linux. Эти переменные окружения используются системными библиотеками и языковыми приложениями в системе.

Язык влияет на такие моменты, как формат времени / даты, первый день недели, цифры, валюта и многие другие значения, отформатированные в соответствии с языком или регионом / страной, установленной в системе Linux.

В этой статье мы покажем, как просмотреть установленный в данный момент язык системы и как установить локаль системы в Linux.

Чтобы просмотреть информацию о текущей установленной локали, используйте утилиту locale или localectl.

$ locale 

LANG=ru_RU.UTF-8 
LANGUAGE=ru 
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=''
$ localectl status 

   System Locale: LANG=ru_RU.UTF-8 
       VC Keymap: n/a 
      X11 Layout: us 
       X11 Model: pc105

Вы можете просмотреть дополнительную информацию о переменной окружения, например LC_TIME, которая хранит формат времени и даты.

$ locale -k LC_TIME
  
abday="Вс;Пн;Вт;Ср;Чт;Пт;Сб"  
day="Воскресенье;Понедельник;Вторник;Среда;Четверг;Пятница;Суббота" 
abmon="янв;фев;мар;апр;мая;июн;июл;авг;сен;окт;ноя;дек" 
mon="января;февраля;марта;апреля;мая;июня;июля;августа;сентября;октября;ноября;декабря" 
am_pm=";" 
d_t_fmt="%a %d %b %Y %T" 
d_fmt="%d.%m.%Y" 
t_fmt="%T" 
t_fmt_ampm="" 
era= 
era_year="" 
era_d_fmt="" 
alt_digits= 
era_d_t_fmt="" 
era_t_fmt="" 
time-era-num-entries=0 
time-era-entries="" 
week-ndays=7 
week-1stday=19971130 
week-1stweek=1 
first_weekday=2 
first_workday=2 
cal_direction=1 
timezone="" 
date_fmt="%a %b %e %H:%M:%S %Z %Y" 
time-codeset="UTF-8" 
alt_mon="Январь;Февраль;Март;Апрель;Май;Июнь;Июль;Август;Сентябрь;Октябрь;Ноябрь;Декабрь" 
ab_alt_mon="янв;фев;мар;апр;май;июн;июл;авг;сен;окт;ноя;дек"

Чтобы отобразить список всех доступных локалей, используйте следующую команду:

$ locale -a 

C 
C.UTF-8 
en_US.utf8 
POSIX 
ru_RU.utf8 
ru_UA.utf8

Если вы хотите изменить или установить локальную систему, используйте программу update-locale. Переменная LANG позволяет вам установить локаль для всей системы.

Следующая команда устанавливает LANG в en_IN.UTF-8 и удаляет определения для LANGUAGE:

$ sudo update-locale LANG=ru_RU.UTF-8 LANGUAGE

или

$ sudo localectl set-locale LANG=ru_RU.UTF-8

Чтобы настроить определенный параметр локали, отредактируйте соответствующую переменную. Например:

$ sudo update-locale LC_TIME=ru_RU.UTF-8

или

$ sudo localectl set-locale LC_TIME=ru_RU.UTF-8

Глобальные настройки локали можно найти в следующих файлах:

  • /etc/default/locale – в Ubuntu/Debian
  • /etc/locale.conf – в CentOS/RHEL

Для настройки локали системы эти файлы также можно редактировать вручную, используя ваши любимых редакторы командной строки, такие как Vim или Nano.

Чтобы установить глобальную локаль для одного пользователя, вы можете просто открыть файл ~/.bash_profile и добавить следующие строки:

LANG="ru_RU.utf8"
export LANG

Для получения дополнительной информации, «курим» man'ы locale, update-locale и localectl.

$ man locale 
$ man update-locale 
$ man localectl

На этом все! В этой короткой статье мы узнали, как просматривать и устанавливать локаль системы в Linux.