BASH Programming - Введение


Настройка локали - часть 2


language_TERRITORY.Codeset

или формально:

language[_TERRITORY[.Codeset[@modifier]]]

Стандарт ISO 639 описывает "language names", ISO 3166 -- "territory names". Территории _SU более не существует (вернее, теперь она означает Судан), однако для совместимости некоторые системы продолжают ее поддерживать как alias: ru_SU --> ru_RU.

Для русского языка LANG устанавливается, как правило, равным LANG="ru_RU.KOI8-R" или LANG="ru_RU.ISO_8859-5". То есть:

$ export LANG="ru_RU.KOI8-R"

Согласно стандарту допустимы также короткие именования значений locale, которые часто оформляются как aliases (псевдонимы) полного наименования. Например "C" --> "POSIX".

$ export LANG=ru $ export LANG=ru_RU $ export LANG=ru_RU.KOI8-R

Однако, если вы указываете короткое имя, может оказаться, что ваша кодировка оказывается вовсе не KOI8-R (почему следует использовать именно koi8-r, описано в разделе ). Лучше не пользоваться значениями по умолчанию, а указывать точное длинное имя.

Во FreeBSD 2.x так и есть. Для Linux -- зависит от дистрибутива. В коммерческих реализациях (Solaris, SCO, AIX etc) как правило используется значение LANG="ru_RU", или укороченное LANG="ru" (и как правило, Codeset ISO8859-5 по умолчанию).

Некоторые могут пожелать сделать себе локализацию в другом наборе символов: ru_RU.X-CP-866 (ru_RU.IBM866), ru_RU.x-mac-cyrillic, ru_RU.ISO_8859-5 или даже ru_RU.CP1251 -- на это нет никаких ограничений. Все эти кодировки совершенно равноправны и зарегистрированы (кроме x-mac-cyrillic) в IANA. Только не забудьте, что локализация, ввод-вывод и отображение национальных символов на терминале -- это совершенно разные вещи.

Если система локализована не полностью и использовать полное переключение на другой язык (с помощью export LANG={язык}) нельзя, можно включить locale только для функций locale API

библиотеки libc, задав значение категорий локализации. Можно также присваивать разные значения разным категориям, задавая их имена в строках окружения:

Если вас раздражают русские даты, сообщения и man-ы, но нужно обрабатывать русские буквы и т.д., то сделайте:




Начало  Назад  Вперед



Книжный магазин