_create_locale
, _wcreate_locale
Vytvoří objekt národního prostředí.
Syntaxe
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Parametry
category
Kategorie:
locale
Specifikátor národního prostředí
Vrácená hodnota
Pokud jsou zadány platné locale
a category
jsou zadány, vrátí funkce zadané nastavení národního prostředí jako _locale_t
objekt. Aktuální nastavení národního prostředí programu se nezmění.
Poznámky
Funkce _create_locale
umožňuje vytvořit objekt, který představuje určitá nastavení specifická pro oblast, pro použití v verzích specifických pro národní prostředí mnoha funkcí CRT (funkce s příponou _l
). Chování se podobá setlocale
chování s tím rozdílem, že místo použití zadaného nastavení národního prostředí v aktuálním prostředí se nastavení uloží do _locale_t
struktury, která se vrátí. Struktura _locale_t
by měla být uvolněna, _free_locale
když už ji nepotřebujete.
_wcreate_locale
je verze širokého znaku _create_locale
locale
; argument je _wcreate_locale
řetězec širokého znaku. _wcreate_locale
a _create_locale
chovat se stejně jinak.
Argument category
určuje části chování specifické pro národní prostředí, které jsou ovlivněny. Příznaky používané pro category
a části programu, které ovlivňují, jsou uvedené v této tabulce:
category vlajka |
Ovlivňuje |
---|---|
LC_ALL |
Všechny kategorie, jak je uvedeno níže. |
LC_COLLATE |
Funkce strcoll , , _stricoll , wcscoll , _wcsicoll , _strncoll strxfrm _wcsncoll _strnicoll , _wcsnicoll , a wcsxfrm funkce. |
LC_CTYPE |
Funkce zpracování znaků (s výjimkou isdigit , isxdigit mbstowcs , a mbtowc , které nejsou ovlivněny). |
LC_MONETARY |
Informace o peněžním formátování vrácené localeconv funkcí |
LC_NUMERIC |
Znak desetinné čárky pro formátované výstupní rutiny (například printf ), pro rutiny převodu dat a informace o nepeněžním formátování vrácené localeconv . Kromě znaku LC_NUMERIC desetinné čárky nastaví oddělovač tisíců a seskupovací ovládací řetězec vrácený znakem localeconv . |
LC_TIME |
Funkce strftime a wcsftime funkce. |
Tato funkce ověří category
parametry a locale
parametry. Pokud parametr kategorie není jednou z hodnot uvedených v předchozí tabulce nebo pokud locale
je NULL
, vrátí NULL
funkce .
Argument locale
je ukazatel na řetězec, který určuje národní prostředí. Informace o formátu argumentu locale
naleznete v tématu Názvy národních prostředí, Jazyky a Řetězce země/oblasti.
Argument locale
může mít několik druhů hodnot: název národního prostředí, řetězec jazyka, kód jazyka a kód země/oblasti, znakovou stránku nebo kombinaci řetězce jazyka, kódu země/oblasti a znakové stránky. Sada (dostupných názvů národních prostředí, jazyků, kódů zemí/oblastí a znakových stránek) zahrnuje všechny podporované rozhraním API služby Windows NLS. Sada názvů národních prostředí _create_locale
je popsaná v názvech národního prostředí, jazycích a řetězcích země/oblasti. Sada řetězců jazyka a země/oblasti, které _create_locale
jsou podporovány, jsou uvedeny v řetězcích jazyků a řetězců země/oblasti.
Další informace o nastavení národního prostředí naleznete v tématu setlocale
, _wsetlocale
.
Předchozí název této funkce __create_locale
(se dvěma úvodními podtržítky) je zastaralý.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_create_locale |
<národní prostředí.h> |
_wcreate_locale |
<locale.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// crt_create_locale.c
// Sets the current locale to "de-CH" using the
// setlocale function and demonstrates its effect on the strftime
// function.
#include <stdio.h>
#include <locale.h>
#include <time.h>
int main(void)
{
time_t ltime;
struct tm thetime;
unsigned char str[100];
_locale_t locale;
// Create a locale object representing the German (Switzerland) locale
locale = _create_locale(LC_ALL, "de-CH");
time (<ime);
_gmtime64_s(&thetime, <ime);
// %#x is the long date representation, appropriate to
// the current locale
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
{
printf("_strftime_l failed!\n");
}
else
{
printf("In de-CH locale, _strftime_l returns '%s'\n", str);
}
_free_locale(locale);
// Create a locale object representing the default C locale
locale = _create_locale(LC_ALL, "C");
time(<ime);
_gmtime64_s(&thetime, <ime);
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
{
printf("_strftime_l failed!\n");
}
else
{
printf("In 'C' locale, _strftime_l returns '%s'\n", str);
}
_free_locale(locale);
}
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Viz také
Názvy národních prostředí, jazyky a řetězce země/oblasti
Řetězce jazyka
Řetězce zemí a oblastí
_free_locale
_configthreadlocale
setlocale
Národní prostředí
localeconv
_mbclen
, , mblen
_mblen_l
strlen
, wcslen
, _mbslen
, _mbslen_l
, , _mbstrlen
_mbstrlen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
_setmbcp
setlocale
, _wsetlocale
strcoll
– funkce
strftime
, wcsftime
, , _strftime_l
_wcsftime_l
strxfrm
, wcsxfrm
, , _strxfrm_l
_wcsxfrm_l
wcstombs
, _wcstombs_l
wctomb
, _wctomb_l