Sdílet prostřednictvím


_create_locale, _wcreate_locale

Vytvoří místní objekt.

_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, vrátí zadané nastavení národního prostředí jako objekt _locale_t.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é specifické regionální nastavení pro použití ve verzích specifických pro národní prostředí mnoha funkcí CRT (funkce s příponou _l).Chování je podobné setlocale s tím rozdílem, že místo použití zadaného nastavení národního prostředí na aktuálního prostředí je nastavení uloženo ve struktuře _locale_t, která je vrácena.Struktura _locale_t by měla být uvolněna pomocí _free_locale, když již není potřeba.

_wcreate_locale je širokoznaká verze _create_locale; argument locale pro _wcreate_locale je širokoznaký řetězec._wcreate_locale a _create_locale se jinak chovají stejně.

Argument category určuje části chování specifického pro národní prostředí, které jsou ovlivněny.Příznaky použité pro category a části programu, které ovlivňují, jsou uvedeny v následující tabulce.

  • LC_ALL
    Všechny kategorie, jak je uvedeno níže.

  • LC_COLLATE
    Funkce strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll a wcsxfrm.

  • LC_CTYPE
    Funkce zpracování znaků (s výjimkou isdigit, isxdigit, mbstowcs a mbtowc, které nejsou ovlivněny).

  • LC_MONETARY
    Informace o formátování měny vrácené funkcí localeconv.

  • LC_NUMERIC
    Znak desetinné čárky pro rutiny formátovaného výstupu (jako například printf), pro rutiny převodu dat a informace nefinančního formátování vrácené localeconv.Kromě znaku desetinné čárky LC_NUMERIC nastaví oddělovač tisíců a řetězec řídící seskupení vrácený localeconv.

  • LC_TIME
    Funkce strftime a wcsftime.

Tato funkce ověřuje parametry category a locale.Pokud parametr kategorie není jedna z hodnot uvedených v předchozí tabulce nebo pokud locale je NULL, vrátí funkce NULL.

Argument locale je ukazatel na řetězec, který určuje národní prostředí.Informace o formátu argumentu locale viz Řetězce s názvy národních prostředí, jazyků a zemí/oblastí.

Argument locale přijímá název národního prostředí, řetězec jazyka, řetězec jazyka a kód země nebo oblasti, znakovou stránku nebo řetězec jazyka, kód země/oblasti a znakovou stránku.Sada dostupných názvů národního prostředí, jazyků, kódů země/oblasti a znakových stránek obsahuje všechny, které jsou podporovány v rozhraní API Windows NL kromě znakových stránek, které vyžadují více než dva bajty na znak, například UTF-7 a UTF-8.Pokud zadáte kódovou stránku jako UTF-7 nebo UTF-8, _create_locale selže a vrátí hodnotu NULL.Sada názvů národních prostředí podporovaných _create_locale, je popsána v Řetězce s názvy národních prostředí, jazyků a zemí/oblastí.Sada řetězců jazyka a země/oblasti, které jsou podporovány _create_locale, je uvedena v Řetězce jazyků a Řetězce zemí/oblastí.

Další informace o nastaveních jazykové verze naleznete v části setlocale, _wsetlocale.

Předchozí název této funkce, __create_locale (se dvěma vedoucími podtržítky), se již nepoužívá.

Požadavky

Rutina

Požadované záhlaví

_create_locale

<locale.h>

_wcreate_locale

<locale.h> nebo <wchar.h>

Další informace o kompatibilitě naleznete 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);
}

Výstup ukázky

In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'

Ekvivalent v rozhraní .NET Framework

System::Globalization::CultureInfo Class

Viz také

Referenční dokumentace

Řetězce s názvy národních prostředí, jazyků a zemí/oblastí

Řetězce jazyků

Řetězce zemí/oblastí

_free_locale

_configthreadlocale

setlocale

Národní prostředí

localeconv

_mbclen, mblen, _mblen_l

strlen, strlen_l, wcslen, wcslen_l, _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