Sdílet prostřednictvím


_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á 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 Vlajky 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 (&ltime);
    _gmtime64_s(&thetime, &ltime);

    // %#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(&ltime);
    _gmtime64_s(&thetime, &ltime);

    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