Setlocale, _wsetlocale

Якщо дані дійсні locale та category. повертає покажчик на рядок, пов'язану із зазначеним locale та category. Якщо locale або category недійсні, повертає покажчик null, і поточні параметри мовного стандарту програми не змінюються.

setlocale (LC_ALL, "en-US");

Ви маєте можливість копіювати рядок, повернуту setlocale. для відновлення цієї частини даних про мовному стандарті програми. Глобальне або локальне сховище потоку використовується для рядка, що підлягає поверненню setlocale. Наступні виклики setlocale перезаписують цей рядок, що анулює покажчики рядків, повернуті попередніми викликами.

_wsetlocale - це версія з розширеними символами для setlocale; аргумент locale і повертається значення _wsetlocale є рядками з розширеними символами. Поведінка _wsetlocale і setlocale ідентично в іншому випадку.

Універсальне текстове зіставлення функцій

_UNICODE і _MBCS не визначені

Аргумент category вказує частини інформації про мовному стандарті програми, які підпадають під вплив. Макроси, використовувані для category і частини програми, на які вони надають, вказані нижче.

LC_COLLATE
Функції strcoll. _stricoll. wcscoll. _wcsicoll. strxfrm. _strncoll. _strnicoll. _wcsncoll. _wcsnicoll і wcsxfrm.

LC_CTYPE
Функції символів (за винятком isdigit. Isxdigit. Mbstowcs і mbtowc. Які не будуть зачіпатися).

LC_MONETARY
Інформація про форматування грошових значень, яка повертається функцією localeconv.

LC_NUMERIC
Символ десяткового роздільника для інформації процедур форматированного виведення (наприклад, printf), для процедур перетворення даних і для форматування не відносяться до грошових значень, яку повертатимуть localeconv. Крім символу десяткового роздільника LC_NUMERIC також задає роздільник тисяч і групування елемента управління Рядок, яка повертається функцією localeconv.

LC_TIME
Функції strftime і wcsftime.

Аргумент locale є покажчиком на рядок, яка задає мовної стандарт. Додаткові відомості про формат параметра locale аргумент, в розділі імені мовного стандарту, мов і країн і регіонів. Якщо locale вказує на порожній рядок, мовної стандарт відповідає вихідної середовищі, певною реалізацією. Значення C задає мінімальну відповідну ANSI середу для перенесення C. Мовний стандарт C передбачає, що всі типи даних char відповідають 1 байту, а їх значення завжди менше 256.

При запуску програми виконується еквівалент наступного оператора:

setlocale (LC_ALL, "C");

Аргумент locale може приймати ім'я мовного стандарту, строкову змінну з назвою мови, строкову змінну з назвою мови та код країни або регіону, кодову сторінку або строкову змінну з назвою мови, код країни або регіону і кодову сторінку. Доступні імен мовного стандарту, назв мов, кодів країни і кодових сторінок включає всі підтримувані API багатомовної підтримки Windows, крім кодових сторінок, які потребують більше2; байт на один знак, таких як UTF-7 і UTF-8. Якщо вказати значення кодової сторінки UTF-7 або UTF-8, setlocale завершиться помилкою, повертаючи значення NULL. Набір імен мовних стандартів, підтримуваних setlocale описані в імені мовного стандарту, мов і країн і регіонів. Набір рядків мови і країни або регіону, підтримуваних setlocale. перераховані в рядки мови і країн і регіонів. Рекомендується використовувати форму імені мовного стандарту для забезпечення продуктивності і зручності підтримки рядків мовного стандарту, впроваджених в код або серіалізовать в сховище. Строкові значення імен мовного стандарту рідше піддаються зміні оновленням операційної системи, ніж мова і форма назви країни або регіону.

// Set all categories and return "en-US"

// Set only the LC_MONETARY category and return "fr-FR"

printf ( "% s \ n", setlocale (LC_ALL, NULL));

setlocale (LC_ALL, "");
Задає мовної стандарт за замовчуванням, тобто задану за замовчуванням для користувача кодову сторінку ANSI, отриману від операційної системи.

setlocale (LC_ALL, ".OCP");
Явно задає мовної стандарт згідно поточної кодової сторінці OEM, отриманої від операційної системи.

setlocale (LC_ALL, ".ACP");
Задає мовної стандарт згідно поточної кодової сторінці ANSI, отриманої від операційної системи.

setlocale (LC_ALL, "");
Задає мовної стандарт, псевдонімом мовного стандарту * <> > *.

setlocale (LC_ALL, "_");
Задає мовної стандарт для мови і країни або регіону, позначеними * <>> * І * <> > * Разом з кодовою сторінкою за замовчуванням, отримані з операційної системи.

setlocale (LC_ALL, "_.");
Задає мовної стандарт для мови, країни або регіону і кодової сторінки, позначеними * <> > *, * <> > *, І * * Рядків. Можна використовувати різні поєднання мови, країни або регіону і кодової сторінки. Наприклад, цей виклик встановлює мовної стандарт "французький (Канада)" з кодовою сторінкою +1252.

setlocale (LC_ALL, "French_Canada.1252");

Цей виклик встановлює мовної стандарт "французький (Канада)" з кодовою сторінкою за замовчуванням ANSI.

setlocale (LC_ALL, "French_Canada.ACP");

Цей виклик встановлює мовної стандарт "французький (Канада)" з кодовою сторінкою за замовчуванням OEM.

setlocale (LC_ALL, "French_Canada.OCP");

setlocale (LC_ALL, "");
Задає мовної стандарт для мови, зазначеного в * <> > * І використовує країни або регіону за замовчуванням для певної мови і ANSI за замовчуванням кодова сторінка для країни або регіону, отримане з операційної системи. Наприклад, такі виклики setlocale функціонально еквівалентні:

setlocale (LC_ALL, "en-US");

setlocale (LC_ALL, "English");

setlocale (LC_ALL, "English_United States.1252");

Рекомендується використовувати першу форму для забезпечення продуктивності і простоти обслуговування.

setlocale (LC_ALL, ".");
Задає кодову сторінку для значенням, отриманим шляхом * *, Разом з за замовчуванням країни або регіону і мови (відповідно до операційної системи) для зазначеної кодової сторінки.

setlocale (LC_ALL, ".1252");

setlocale (LC_ALL, "English_United States.1252");

Функція _configthreadlocale можна вказати, чи є setlocale впливає мовної стандарт всіх потоків в програмі або тільки на мовній стандарт викликає потоку.