Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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á setlocalechová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_localeje verze širokého znaku _create_localelocale ; 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, _strncollstrxfrm_wcsncoll_strnicoll, _wcsnicoll, a wcsxfrm funkce. |
LC_CTYPE |
Funkce zpracování znaků (s výjimkou isdigit, isxdigitmbstowcs, 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í NULLfunkce .
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