Partager via


_create_locale, _wcreate_locale

Crée un objet local.

_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 de retour

Si un locale valide et category sont spécifiés, renvoie les paramètres régionaux spécifiés comme un 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 spécifiques à une région, pour une utilisation dans des versions régionales de nombreuses fonctions CRT (fonctions avec le suffixe _l ). Le comportement est semblable à setlocale, mais au lieu d'appliquer des paramètres régionaux spécifiés à l'environnement actuel, les paramètres sont stockés dans une structure _locale_t qui est retournée. La structure _locale_t doit être libérée avec _free_locale devenu inutile.

_wcreate_locale est une version à caractères larges de _create_locale; l'argument locale vers _wcreate_locale est une chaîne à caractères larges. _wcreate_locale et _create_locale se comportent sinon de manière identique.

L'argument category spécifie les parties du comportement spécifique aux paramètres régionaux affectés. Les indicateurs utilisés pour category et les parties du programme qu'elles affectent sont comme indiqué dans le tableau suivant.

  • LC_ALL
    Toutes les catégories, comme répertoriées 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. Outre le caractère de virgule décimale, LC_NUMERIC définit le séparateur de milliers et la chaîne de contrôle de regroupement retournés par localeconv.

  • LC_TIME
    Les fonctions strftime et wcsftime.

Cette fonction valide les paramètres category et locale. Si le paramètre Catégorie ne fait pas partie des valeurs données dans la table précédente ou si locale est NULL, la fonction renvoie 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 Chaînes relatives aux noms, aux langues, au pays et à la région.

L'argument locale peut accepter un nom de paramètres régionaux, une chaîne de langue, une chaîne de langue et un pays/région, une page de code, ou une chaîne de langue, un pays/région, et une page de codes. L'ensemble des noms de paramètres régionaux, des langages, des codes pays ou codes zone, et des pages de codes disponibles incluent tous ceux pris en charge par l'API Windows NLS, à l'exception des pages de codes qui requièrent plus de deux octets par caractère—par exemple, UTF-7 et UTF-8. Si vous fournissez une page de codes comme UTF-7 ou UTF-8, _create_locale va échouer et renvoyer Null. L'ensemble des noms de paramètres régionaux pris en charge par _create_locale sont décrits dans Chaînes relatives aux noms, aux langues, au pays et à la région. L'ensemble des chaînes de langage et de pays/région prises en charge par _create_locale sont répertoriées dans Chaînes de langue et Chaînes pays/région.

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

Ancien nom de cette fonction, __create_locale (avec deux principaux traits de soulignement), a été déconseillé.

Configuration requise

Routine

En-tête requis

_create_locale

<locale.h>

_wcreate_locale

<locale.h> ou <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité.

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);
}

Résultat de l'exemple

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

Équivalent .NET Framework

System::Globalization::CultureInfo Class

Voir aussi

Référence

Chaînes relatives aux noms, aux langues, au pays et à la 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