3.4 Локализация Linux contents

3.4 Локализация Linux

Локализация означает приспособление программы или операционной системы к кодировке и стилям печати времени, даты, денежных единиц принятых в данной стране. Стандарт описан, например, в документах POSIX 1.c. Здесь мы отметим важные особенности.

Многие системные программы (быть может большинство) в Linux для определения вида кодировки и языка сообщений используют установленные переменные окружения.

LC_ALL
Переменная LC_ALL, если установлена, определяет вс© сразу: язык сообщений, кодировку, вид даты и т.п.

LANGUAGE
Переменная LANGUAGE используется в основном программами из проекта GNU.

LC_CTYPE
Переменная LC_CTYPE, если не установлена LC_ALL, определяет кодировку символов. В отсутствии LC_CTYPE и LC_ALL, для определения типа кодировки используется переменная LANG.

LC_COLLATE
Переменная LC_COLLATE используется в отсутствии LC_ALL используется для определения алгоритма сортировки. В отсутствии LC_COLLATE для этого используется переменная LANG.

LC_MONETARY
Переменная LC_MONETARY используется, если отсутствует LC_ALL, для определения вида денежной единицы. Если LC_ALL и═LC_MONETARY не установлены, то используется переменная LANG.

LC_NUMERIC
Переменная окружения LC_NUMERIC используется, если не установлена переменная LC_ALL, для определения национального формата печати чисел (например, с плавающей точкой или запятой). Если не установлены LC_ALL и LC_NUMERIC, то используется переменная окружения LANG.

LC_TIME
Переменная окружения LC_TIME используется, если не установлена LC_ALL для определения формата даты и времени. Если не установлены переменные LC_ALL и LC_TIME, то используется переменная LANG.

LANG
Переменная окружения LANG используется для всего, что не установлено ранее переменными вида LC_*.

Чтобы увидеть какие переменные из вышеописанных и как установлены можно использовать программу locale из комплекта утилит языка perl


[shevel@pcfarm BOOK]$ locale

LANG=ru_SU

LC_CTYPE="ru_SU"

LC_NUMERIC="ru_SU"

LC_TIME="ru_SU"

LC_COLLATE="ru_SU"

LC_MONETARY="ru_SU"

LC_MESSAGES="ru_SU"

LC_ALL=ru_SU

Какие имеются файлы для локализации на вашей машине, можно посмотреть в каталоге /usr/share/locale/, а также посмотреть результат locale -a. Общий вид строк, которые присваиваются переменным окружения, должен быть примерно таким:
язык_территория_кодировка
Например, ru_RU_koi8r. Однако, как видно выше, на моей установке имются другие файлы для кодировки koi8r, которые приведены в выводе программы locale.

Полезные сведения о локализации можно почерпнуть в
man perllocale.


contents
Обновлено: 16.03.2015