localedef(1) компилирует файлы определения локали

ОБЗОР

localedef [параметры] путь_результата
localedef --list-archive [параметры]
localedef --delete-from-archive [параметры] имя_локали
localedef --add-to-archive [параметры] путь_скомпилированного
localedef --version
localedef --help
localedef --usage

ОПИСАНИЕ

Программа localedef читает заданные файлы карты символов (charmap) и входные файлы, компилирует их в двоичную форму для быстрого доступа из функций локали библиотеки C (setlocale(3), localeconv(3) и т. д.) и помещает результат в путь_результата.

Аргумент путь_результата рассматривается следующим образом:

*
Если путь_результата содержит косую черту («/»), то он считается именем каталога для хранения создаваемых определений. В этом случае создаётся отдельный файл результата для каждой категории локали (LC_TIME, LC_NUMERIC и так далее).
*
Если указан параметр --no-archive, то путь_результата считается именем подкаталога в /usr/lib/locale, где размещены скопированные файлы для каждой категории.
*
В противном случае, путь_результата считается именем локали и компилируемые данные локали добавляются в файл архива /usr/lib/locale/locale-archive. Файл архива — это файл отображаемый в память, который содержит все локали системы; он используется всеми локализованными программами, если не установлена переменная окружения LOCPATH.

В любом случае, localedef прекращает работу, если каталог, в который она пытается записать файлы локали, ещё не был создан.

Если файл карты символов не указан, то по умолчанию используется значение ANSI_X3.4-1968 (для ASCII). Если не указан входной файл, или если вместо него указан перенос (-), то localedef читает данные из стандартного входного потока.

ПАРАМЕТРЫ

Параметры действия-выбора

Некоторые параметры указывают localedef сделать что-то другое, а не компилировать определения локали. Одновременно может быть указан только один такой параметр.
--delete-from-archive
Удалить заданную локаль из файла архива локалей.
--list-archive
Показать список локалей, содержащихся в файле архива локалей.
--add-to-archive
Добавить каталоги путь_скомпилированного файл архива локалей. Каталоги должны быть созданы ранее запускавшимся localedef с параметром --no-archive.

Другие параметры

Следующие параметры имеют значение только для определённых операций; обычно, по названию понятно для каких.
-f файл_карты_символов, --charmap=файл_карты_символов
Задаёт файл, которым определяется набор символов, используемый в файле входных данных. Если значение файл_карты_символов содержит косую черту («/»), то оно рассматривается как название карты символов. В противном случае, файл ищется в текущем каталоге и каталоге по умолчанию для карт символов. Если установлена переменная окружения I18NPATH, то после текущего каталога также просматриваются $I18NPATH/charmaps/ и $I18NPATH/. Каталог по умолчанию для карт символов можно увидеть в выводе localedef --help.
-i входной_файл, --inputfile=входной_файл
Задаёт файл определения локали для компиляции. Файл ищется в текущем каталоге и каталоге по умолчанию для файлов определения локалей. Если установлена переменная окружения I18NPATH, то после текущего каталога также просматриваются $I18NPATH/locales/ и $I18NPATH. Каталог по умолчанию для файлов определения локалей можно увидеть в выводе localedef --help.
-u файл_набора, --repertoire-map=файл_набора
Из файла_набора читаются отображения символических имён в кодовые точки Юникода. Если значение файла_набора содержит косую черту («/»), то оно рассматривается имя пути карты набора (repertoire map). В противном случае, файл ищется в текущем каталоге и каталоге по умолчанию для карт наборов. Если установлена переменная окружения I18NPATH, то после текущего каталога также просматриваются $I18NPATH/repertoiremaps/ и $I18NPATH. Каталог по умолчанию для карт наборов можно увидеть в выводе localedef --help.
-A файл_псевдонимов, --alias-file=файл_псевдонимов
Использовать файл_псевдонимов для поиска псевдонимов имён локалей. Для файла псевдонимом нет файла по умолчанию.
--prefix=путь
Указывает префикс полного пути к архиву. По умолчанию префикс пуст. Если указать в качестве префикса foo, то архив будет помещён в foo/usr/lib/locale/locale-archive.
-c, --force
Записывать файлы результата даже, если есть предупреждения при генерации входных данных.
--old-style
Создавать хэш-таблицы в старом формате вместо 3-уровневых таблиц доступа.
-v, --verbose
Генерировать дополнительные предупреждения об ошибках, которые обычно игнорируются.
--quiet
Не показывать все уведомления и предупреждения; сообщать только о фатальных ошибках.
--posix
Жёстко следовать POSIX. Подразумевает --verbose. Этот параметр, в настоящее время, больше ничего не делает. Соответствие POSIX предполагается, если установлена переменная окружения POSIXLY_CORRECT.
--replace
Заменить локаль в файле архива локалей. Без этого параметра, если локаль в архиве уже есть, то выдаётся ошибка.
--no-archive
Не использовать файл архива локалей, вместо этого создать путь_результата в качестве подкаталога в текущем каталоге для файла архива локалей, и создать в нём отдельные файлы результата для категорий локали.
-?, --help
Показать справку по использованию и завершить работу. Также выводятся пути по умолчанию, используемые в localedef.
--usage
Показать краткую справку по использованию и завершить работу.
-V, --version
Показать номер версии, лицензию и уведомление о гарантиях для localedef.

КОД РЕЗУЛЬТАТА

Программа localedef может возвращать один из следующих кодов завершения:
0
Команда успешно выполнена.
1
Произошла ошибка или предупреждение, файлы результата записаны.
4
Произошла ошибка, результат не записан.

ОКРУЖЕНИЕ

POSIXLY_CORRECT
Если эта переменная окружения установлена, то предполагается флаг --posix.
I18NPATH
Список каталогов через двоеточие для поиска файлов.

ФАЙЛЫ

/usr/share/i18n/charmaps
Обычный путь по умолчанию для файлов карт символов.
/usr/share/i18n/locales
Обычный путь по умолчанию для файлов определений локалей.
/usr/share/i18n/repertoiremaps
Обычный путь по умолчанию для файлов карт набора.
/usr/lib/locale/locale-archive
Обычный путь по умолчанию для расположения архива локалей.
/usr/lib/locale
Обычный путь по умолчанию для скомпонованных файлов данных отдельных локалей.
outputpath/LC_ADDRESS
Файл результата содержит информацию о формате адресов и географических элементах.
outputpath/LC_COLLATE
Файл результата содержит информацию о правилах сравнения строк.
outputpath/LC_CTYPE
Файл результата содержит информацию о классах символов.
outputpath/LC_IDENTIFICATION
Файл результата содержит метаданные о локали.
outputpath/LC_MEASUREMENT
Файл результата содержит информацию о единицах измерения (метрическая или система мер США).
outputpath/LC_MESSAGES/SYS_LC_MESSAGES
Файл результата содержит информацию о языке, на котором должны выводиться сообщения и как выглядят ответы «да» и «нет».
outputpath/LC_MONETARY
Файл результата содержит информацию о правилах написания денежных единиц.
outputpath/LC_NAME
Файл результата содержит информацию об описании персон.
outputpath/LC_NUMERIC
Файл результата содержит информацию о правилах написания не денежных числовых единиц.
outputpath/LC_PAPER
Файл результата содержит информацию о параметрах, относящихся к размерам бумаги.
outputpath/LC_TELEPHONE
Файл результата содержит информацию о форматах, используемых в телефонных службах.
outputpath/LC_TIME
Файл результата содержит информацию о форматах значений даты и времени.

СООТВЕТСТВИЕ СТАНДАРТАМ

POSIX.1-2008.

ПРИМЕР

Компилирование файлов локали для финских пользователей с набором символов UTF-8 и добавление к архиву локалей по умолчанию с именем fi_FI.UTF-8:

localedef -f UTF-8 -i fi_FI fi_FI.UTF-8

В следующем примере делается тоже самое, но файлы генерируются в каталоге fi_FI.UTF-8, который затем можно использовать в программах, установив переменную окружения LOCPATH равной текущему каталогу (заметим, что последний аргумент должен содержать косую черту):

localedef -f UTF-8 -i fi_FI ./fi_FI.UTF-8