В Linux команда locale
— набор настроек для пользовательской среды, таких как язык, страна/регион и сценарий.
Локаль позволяет операционной системе или приложениям использовать порядок сортировки, раскладку клавиатуры, форматы даты, времени, чисел, валют.
Содержание
Установка
Пакет locale
уже установлен в операционной системе. Для желания убедиться в этом в Ubuntu, например, достаточно выполнить команду:
oleg@mobile:~:$ sudo apt install locales
Синтаксис
$ locale [КЛЮЧ…] ИМЯ
или
$ locale [КЛЮЧ…] [-a|-m]
Параметры
Информация о системе
-a, --all-locales
Написать имена доступных локалей
-m, --charmaps
Написать имена доступных отображений знаков
Изменение выходного формата
-c, --category-name
Написать имена выбранных категорий
-k, --keyword-name
Написать имена выбранных ключевых слов
-v, --verbose
Вывести больше информации
-?, --help
Вывести справочный список
--usage
Вывести краткую информацию об использовании
-V, --version
Вывести версию программы
Примеры использования в Linux команды locale
Генерация локали
При необходимости можно сгенерировать необходимую локаль, используя список из файла конфигурации локалей, который обычно находится в /etc/locale.gen
:
oleg@mobile:~:$ cat /etc/locale.gen
# Configuration file for locale-gen
#
# lists of locales that are to be generated by the locale-gen command.
#
# Each line is of the form:
#
# <locale> <charset>
#
# where <locale> is one of the locales given in /usr/share/i18n/locales
# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
#
# Examples:
# en_US ISO-8859-1
# en_US.UTF-8 UTF-8
# de_DE ISO-8859-1
# de_DE@euro ISO-8859-15
#
# The locale-gen command will generate all the locales,
# placing them in /usr/lib/locale.
#
# A list of supported locales is included in this file.
# Uncomment the ones you need.
#
#aa_DJ.UTF-8 UTF-8
#aa_DJ ISO-8859-1
#aa_ER UTF-8
#aa_ER@saaho UTF-8
#aa_ET UTF-8
#af_ZA.UTF-8 UTF-8
#af_ZA ISO-8859-1
#agr_PE UTF-8
#ak_GH UTF-8
#am_ET UTF-8
#an_ES.UTF-8 UTF-8
#an_ES ISO-8859-15
#anp_IN UTF-8
#ar_AE.UTF-8 UTF-8
#ar_AE ISO-8859-6
#ar_BH.UTF-8 UTF-8
#ar_BH ISO-8859-6
#ar_DZ.UTF-8 UTF-8
#ar_DZ ISO-8859-6
#ar_EG.UTF-8 UTF-8
#ar_EG ISO-8859-6
,,,
#xh_ZA.UTF-8 UTF-8
#xh_ZA ISO-8859-1
#yi_US.UTF-8 UTF-8
#yi_US CP1255
#yo_NG UTF-8
#yue_HK UTF-8
#yuw_PG UTF-8
#zh_CN.GB18030 GB18030
#zh_CN.GBK GBK
#zh_CN.UTF-8 UTF-8
#zh_CN GB2312
#zh_HK.UTF-8 UTF-8
#zh_HK BIG5-HKSCS
#zh_SG.UTF-8 UTF-8
#zh_SG.GBK GBK
#zh_SG GB2312
#zh_TW.EUC-TW EUC-TW
#zh_TW.UTF-8 UTF-8
#zh_TW BIG5
#zu_ZA.UTF-8 UTF-8
#zu_ZA ISO-8859-1
oleg@mobile:~:$
В конфигурационном файле необходимо раскомментировать необходимую локаль, войдя в него из редактора как sudo
.
После настройки локалей следует выполнить генерацию локали следующей командой:
$ sudo locale-gen
Список установленных локалей
oleg@mobile:~:$ locale -a
C
C.utf8
en_US
en_US.iso88591
en_US.utf8
POSIX
ru_RU.utf8
oleg@mobile:~:$
Текущая локаль
oleg@mobile:~:$ locale
LANG=ru_RU.utf8
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES="ru_RU.utf8"
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=
oleg@mobile:~:$
Сведения о конкретной переменной
Для получения сведений о конкретной переменной, например, LC_TIME
(формат времени и даты), LC_PAPER
(настройки размера бумаги), LC_TELEPHONE
(формат настроек телефона) и прочих необходимо выполнить одну из следующий команд:
$ locale -k LC_TIME
$ locale -k LC_TELEPHONE
$ locale -k LC_PAPER
Изменение локали
Для изменения значения глобальной локали одного пользователя можно отредактировать профиль .bash_profile
, добавив строку с необходимой локалью в конец файла:
oleg@mobile:~:$ cat .bash_profile
...
#source ~/.bashrc
export LANG=ru_RU.utf8
Заключение
В операционной системе Linux знание команды locale
, умение работать с ней необходимы. Изучить её использование несложно.