Документация по LinuxLinuxDoc.Ru 🔍

locale - описание поддержки нескольких языков

НАЗВАНИЕ
locale - описание поддержки нескольких языков

СИНТАКСИС
#include

ОПИСАНИЕ
Локализация - это сочетание языковых и культурных
аспектов. Они включают в себя: язык сообщений, различные
наборы символов, лексикографические соглашения и т.д.
Программа должна определять локализацию и действовать
согласно ее установкам в целях достижения взаимосвязи
различных культур.

Файл описывает типы данных, функции и макросы,
необходимые для выполнения этой задачи.

В нем описаны функции: setlocale(), устанавливающая
текущие региональные настройки, и localeconv(), которая
возвращает информацию о форматировании чисел.

Существуют различные категории локализации, которые
программа может использовать; они описаны как макросы.
Используя их в качестве первого аргумента функции setlo-
cale(), можно установить региональные настройки одной из
следующих категорий:

LC_COLLATE
Эта категория изменяет поведение функций strcoll()
и strxfrm(), которые используются для сравнения
строк с учетом местного алфавита. Например,
немецкая sharp s рассматривается как "ss".

LC_CTYPE
Эта категория влияет на поведение функций обработки
и классификации символов, таких, как: isupper() и
toupper(), а также многобайтных символьных функций,
таких, как: mblen() или wctomb().

LC_MONETARY
влияет на информацию, возвращаемую функцией locale-
conv(), которая описывает способ отображения числа:
например, необходимо ли использовать в качестве
десятичного разделителя точку или запятую. Этой
информацией пользуется функция strfmon().

LC_MESSAGES
изменяет язык отображаемых сообщений и указывает,
как должны выглядеть положительный и отрицательный
ответы. Библиотека GNU C содержит функцию rpmatch()
для более удобного применения этой информации.

LC_NUMERIC
изменяет информацию, которой пользуется семейство
функций printf() и scanf(), если необходимо
использовать региональные настройки. Эта
информация может быть также прочитана при помощи
функции localeconv().

LC_TIME
влияет на поведение функции strftime(), которая
используется для отображения текущего времени в
местном формате; например, большая часть Европы
использует 24-часовой формат, тогда как в США
используют 12-часовой.

LC_ALL Все вышеперечисленное.

Если второй аргумент функции setlocale()--- пустая строка
"", то локализация по умолчанию будет определяться
следующим образом:

1. Если существует непустая переменная окружения
LC_ALL, то используется ее значение.

2. Если существует переменная окружения с именем одной
из вышеописанных категорий локализации и она
непустая, то ее значение присваивается этой
категории.

3. Если существует непустая переменная окружения LANG,
то используется ее значение.

Информация о локальном форматировании чисел доступна в
структуре struct lconv, возвращаемой функцией locale-
conv(), которая описана следующим образом:
struct lconv
{
/* Числовая (не связанная с деньгами) информация. */
char *decimal_point; /* Символ десятичного разделителя. */
char *thousands_sep; /* Разделитель тысяч. */
/* Каждый элемент является номером цифры в каждой группе;
большие элементы указывают на крайние слева значения.
Элемент с значением CHAR_MAX означает, что старших групп больше нет.
Элемент со значением 0 указывает, что предыдущий элемент используется
для всех групп, находящихся левее. */
char *grouping;
/* Денежная информация. */
/* Первые три символа являются символом валюты согласно ISO 4217.
Четвертый символ является разделителем. Пятый символ равен '\0'. */
char *int_curr_symbol;
char *currency_symbol; /* Местный символ валюты. */
char *mon_decimal_point; /* Символ десятичной точки. */
char *mon_thousands_sep; /* Разделитель тысяч. */
char *mon_grouping; /* См. выше описание элемента `grouping' */
char *positive_sign; /* Знак положительных значений. */
char *negative_sign; /* Знак отрицательных значений. */
char int_frac_digits; /* Представление дробных чисел в международном варианте. */
char frac_digits; /* Представление дробных чисел в локальном варианте. */
/* 1, если символ валюты предшествует положительному значению,
0, если следует за ним. */
char p_cs_precedes;
/* 1, если пробел отделяет символ валюты от положительного значения. */
char p_sep_by_space;
/* 1, если символ валюты предшествует отрицательному значению,
0, если следует за ним. */
char n_cs_precedes;
/* 1, если пробел отделяет символ валюты от отрицательного значения. */
char n_sep_by_space;
/* Позиция положительного или отрицательного знака:
0 Скобки окружают количество и символ валюты.
1 Знак предшествует количеству и символу валюты.
2 Знак следует за количеством и символом валюты.
3 Знак непосредственно предшествует символу валюты.
4 Знак непосредственно следует за символом валюты. */
char p_sign_posn;
char n_sign_posn;
};

СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1
Читать новости Linux в Telegram
Linux - locale - описание поддержки нескольких языков
Мы в соцсетях ✉