_create_locale, _wcreate_locale

Crée un objet de paramètres régionaux.

Syntaxe

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

Paramètres

category
Catégorie.

locale
Spécificateur de paramètres régionaux.

Valeur retournée

Si une valeur est valide locale et category donnée, les fonctions retournent les paramètres régionaux spécifiés en tant qu’objet _locale_t . Les paramètres régionaux actuels du programme ne sont pas modifiés.

Notes

La fonction _create_locale vous permet de créer un objet qui représente certains paramètres régionaux, pour une utilisation dans des versions régionales de nombreuses fonctions CRT (fonctions avec le suffixe _l). Le comportement est semblable à setlocale, à ceci près qu’au lieu d’appliquer les paramètres régionaux spécifiés à l’environnement actuel, les paramètres sont enregistrés dans une structure _locale_t qui est retournée. La _locale_t structure doit être libérée à l’aide _free_locale du moment où elle n’est plus nécessaire.

_wcreate_locale est une version à caractères larges de _create_locale; l'argument locale de _wcreate_locale est une chaîne à caractères larges. Sinon,_wcreate_locale et _create_locale se comportent de la même façon.

L’argument category spécifie les parties du comportement relatif aux paramètres régionaux qui sont affectées. Les indicateurs utilisés pour category et les parties du programme qu’ils affectent sont indiqués dans ce tableau :

Indicateurcategory Éléments affectés
LC_ALL Toutes les catégories, comme indiqué ci-dessous.
LC_COLLATE Les fonctions strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll et wcsxfrm.
LC_CTYPE Les fonctions de gestion de caractères (sauf isdigit, isxdigit, mbstowcs, et mbtowc, qui ne sont pas affectés).
LC_MONETARY Les informations de mise en forme monétaire retournées par la fonction localeconv.
LC_NUMERIC Le caractère de virgule décimale pour les routines de sortie mise en forme (comme printf), pour les routines de conversion de données, et pour les informations de mise en forme non monétaire retournées par localeconv. En plus du caractère décimal, LC_NUMERIC définit le séparateur de milliers et la chaîne de contrôle de regroupement retournée par localeconv.
LC_TIME Les fonctions strftime et wcsftime.

Cette fonction valide les paramètres category et locale. Si le paramètre de catégorie n’est pas l’une des valeurs fournies dans le tableau précédent ou si locale c’est NULLle cas, la fonction retourne NULL.

L'argument locale est un pointeur vers une chaîne qui spécifie les paramètres régionaux. Pour plus d’informations sur le format de l’argument locale , consultez les noms de paramètres régionaux, les langues et les chaînes Pays/Région.

L’argument locale peut prendre plusieurs types de valeurs : un nom de paramètres régionaux, une chaîne de langue, une chaîne de langue et un code pays/région, une page de codes ou une combinaison de chaînes de langue, de code pays/région et de page de codes. L’ensemble (des noms régionaux disponibles, langues, codes pays/région et pages de codes) inclut tous ceux pris en charge par l’API NLS Windows. L’ensemble de noms _create_locale de paramètres régionaux prend en charge les noms de paramètres régionaux, les langues et les chaînes pays/région. L’ensemble de chaînes de langue et de pays/région pris en charge par _create_locale sont répertoriés dans les chaînes de langue et les chaînes Country/Region.

Pour plus d’informations sur les paramètres régionaux, consultez setlocale, _wsetlocale.

Le nom précédent de cette fonction, __create_locale (avec deux traits de soulignement de début), a été déconseillé.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Routine En-tête requis
_create_locale <locale.h>
_wcreate_locale <locale.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

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

Voir aussi

Noms de paramètres régionaux, langues et chaînes pays/région
Chaînes de langue
Chaînes pays/région
_free_locale
_configthreadlocale
setlocale
Paramètres régionaux
localeconv
_mbclen, mblen, _mblen_l
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
_setmbcp
setlocale, _wsetlocale
strcoll, fonctions
strftime, wcsftime, _strftime_l, _wcsftime_l
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
wcstombs, _wcstombs_l
wctomb, _wctomb_l