_create_locale, _wcreate_locale

Crea un oggetto di impostazioni locali.

Sintassi

_locale_t _create_locale(
   int category,
   const char *locale
);
_locale_t _wcreate_locale(
   int category,
   const wchar_t *locale
);

Parametri

category
Categoria.

locale
Identificatore delle impostazioni locali.

Valore restituito

Se viene specificato un valore valido locale e category , le funzioni restituiscono le impostazioni locali specificate come _locale_t oggetto . Le impostazioni locali correnti del programma non vengono modificate.

Osservazioni:

La funzione _create_locale consente di creare un oggetto, che rappresenta determinate impostazioni di aree geografiche, da usare in versioni specifiche di impostazioni locali di molte funzioni CRT (le funzioni con il suffisso _l). Il comportamento è simile a setlocale, ad eccezione del fatto che anziché applicare le impostazioni locali specificate per l'ambiente corrente, le impostazioni vengono salvate in una struttura _locale_t restituita. La _locale_t struttura deve essere liberata usando _free_locale quando non è più necessaria.

_wcreate_locale è una versione a caratteri wide di _create_locale; l'argomento locale in _wcreate_locale è una stringa di caratteri wide. In caso contrario,_wcreate_locale e _create_locale si comportano in modo identico.

L'argomento category indica le parti del comportamento specifico per le impostazioni locali interessate. I flag usati per category e le parti del programma che influiscono sono indicati in questa tabella:

Flag dicategory Impatto
LC_ALL Tutte le categorie, come indicato di seguito.
LC_COLLATE Le funzioni strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll e wcsxfrm.
LC_CTYPE Le funzioni di gestione dei caratteri, ad eccezione di isdigit, isxdigit, mbstowcs e mbtowc che non sono interessate.
LC_MONETARY Informazioni di formattazione monetaria restituite dalla funzione localeconv.
LC_NUMERIC Carattere del separatore decimale per le routine di output formattate, ad esempio printf, per le routine di conversione dei dati e per le informazioni di formattazione non monetarie restituite da localeconv. Oltre al carattere decimale, LC_NUMERIC imposta il separatore delle migliaia e la stringa di controllo di raggruppamento restituita da localeconv.
LC_TIME Funzioni strftime e wcsftime.

Questa funzione convalida i parametri category e locale. Se il parametro category non è uno dei valori specificati nella tabella precedente o se locale è NULL, la funzione restituisce NULL.

L'argomento locale è un puntatore a una stringa che specifica le impostazioni locali. Per informazioni sul formato dell'argomento locale , vedere Nomi delle impostazioni locali, Lingue e Stringhe paese/area geografica.

L'argomento locale può accettare diversi tipi di valori: un nome delle impostazioni locali, una stringa di lingua, una stringa di lingua e un codice paese/area geografica, una tabella codici o una combinazione di stringa di lingua, codice paese/area geografica e tabella codici. Il set (dei nomi delle impostazioni locali, delle lingue, dei codici paese/area geografica e delle tabelle codici disponibili) include tutti gli elementi supportati dall'API NLS di Windows. Il set di nomi _create_locale delle impostazioni locali supporta è descritto in Nomi delle impostazioni locali, Lingue e Stringhe paese/area geografica. Il set di stringhe di lingua e paese/area geografica supportate da _create_locale è elencato in Stringhe di lingua e stringhe paese/area geografica.

Per altre informazioni sulle impostazioni locali, vedere setlocale, _wsetlocale.

Il nome precedente di questa funzione, __create_locale (con due caratteri di sottolineatura iniziali), è stato deprecato.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Ciclo Intestazione obbligatoria
_create_locale <locale.h>
_wcreate_locale <locale.h> o <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// 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'

Vedi anche

Nomi delle impostazioni locali, lingue e stringhe paese/area geografica
Stringhe di linguaggio
Stringhe paese/area geografica
_free_locale
_configthreadlocale
setlocale
impostazioni locali
localeconv
_mbclen, mblen, _mblen_l
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen_mbstrlen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
_setmbcp
setlocale, _wsetlocale
Funzioni strcoll
strftime, wcsftime, _strftime_l_wcsftime_l
strxfrm, wcsxfrm, _strxfrm_l_wcsxfrm_l
wcstombs, _wcstombs_l
wctomb, _wctomb_l