Из Википедии:
В вычислениях языковой стандарт - это набор параметров, который определяет язык пользователя, страну и любые особые предпочтения варианта, которые пользователь хочет видеть в своем пользовательском интерфейсе. Обычно идентификатор языкового стандарта состоит как минимум из идентификатора языка и идентификатора региона.
locale
Программы будут выводить набор переменной оболочки и их значение. Это переменные, которые изменяют поведение некоторых команд относительно языка, использования наборов символов и так далее. Из моей системы:
benoit@thorgal:~s 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=
benoit@thorgal:~$
Это говорит тем командам, которые слушают, использовать американский английский и кодировку UTF8 для специальных символов. Если я изменю значение LANG и поставлю вместо него fr_FR.UTF-8, то команды, которые его поддерживают, будут записывать свои выходные данные на французском, а не на английском языке. Конечно, только если установлен французский перевод.
Для locale-gen
команды, я думаю, что первый абзац ее справочной страницы говорит сам за себя:
Файлы скомпилированных локалей занимают около 50 МБ дискового пространства, и большинству пользователей требуется всего несколько локалей. Чтобы сэкономить место на диске, скомпилированные файлы локалей не распространяются в пакете локалей, но выбранные локали автоматически генерируются, когда этот пакет устанавливается при запуске программы locale-gen.
Когда вы запускаете locale-gen
или locale-gen <locale code>
компилируете необходимые файлы локали, позволяя командам использовать локаль, указанную в переменных среды, отображаемых с помощью locale
.
Пример: locale-gen en_US.UTF8
Вы можете получить доступные коды локали с помощью команды locale -a
.