Compartir a través de


_create_locale, _wcreate_locale

Crea un objeto de configuración regional.

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

Parámetros

  • category
    Categoría.

  • locale
    Especificador de la configuración regional.

Valor devuelto

Si se proporcionan parámetros locale y category válidos, devuelve la configuración regional especificada como objeto _locale_t. La configuración regional actual del programa no cambia.

Comentarios

La función _create_locale permite crear un objeto que represente ciertos valores específicos de la región, para su uso en versiones específicas de la configuración regional de muchas funciones de CRT (funciones con el sufijo _l). El comportamiento es parecido al de setlocale, salvo que en lugar de aplicar la configuración regional especificada al entorno actual, la configuración se guarda en una estructura de _locale_t que se devuelve. La estructura de _locale_t se debe liberar mediante _free_locale cuando ya no se necesita.

_wcreate_locale es una versión con caracteres anchos de _create_locale; el argumento locale para _wcreate_locale es una cadena de caracteres anchos. Por lo demás, _wcreate_locale y _create_locale se comportan de forma idéntica.

El argumento de category especifica las partes del comportamiento específico de la configuración regional que resultan afectadas. Las marcas que se usan para category y las partes del programa a las que afectan se muestran en la tabla siguiente.

  • LC_ALL
    Todas las categorías, como se indica a continuación.

  • LC_COLLATE
    Las funciones strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll y wcsxfrm.

  • LC_CTYPE
    Las funciones de control de caracteres (excepto isdigit, isxdigit, mbstowcs y mbtowc, que no se ven afectadas).

  • LC_MONETARY
    Información de formato de moneda devuelta por la función localeconv.

  • LC_NUMERIC
    Carácter de separador decimal para las rutinas de salida con formato (por ejemplo printf), para las rutinas de conversión de datos y para la información de formato no monetaria devuelta por localeconv. Además del carácter del separador decimal, LC_NUMERIC establece el separador de miles y la cadena de control de agrupación devueltos por localeconv.

  • LC_TIME
    Las funciones strftime y wcsftime.

Esta función valida los parámetros category y locale. Si el parámetro de categoría no es uno de los valores especificados en la tabla anterior, o si locale es NULL, la función devuelve NULL.

El argumento de locale es un puntero a una cadena que especifica la configuración regional. Para obtener información sobre el formato del argumento de locale, vea Nombres de configuración regional, idiomas y cadenas de país/región.

El argumento de locale puede tomar un nombre de configuración regional, una cadena de idioma, una cadena de idioma y un código de país o región, una página de códigos, o una cadena de idioma, un código de país o región y una página de códigos. El conjunto de nombres de configuración regional, idiomas, códigos de país o región y páginas de códigos disponibles contiene todos los admitidos por la API NLS de Windows, excepto las páginas de códigos que requieren más de dos bytes por carácter, por ejemplo UTF-7 y UTF-8. Si proporciona una página de códigos como UTF-7 o UTF-8, _create_locale producirá un error y devolverá NULL. El conjunto de nombres de configuración regional admitidos por _create_locale se describe en Nombres de configuración regional, idiomas y cadenas de país/región. Los conjuntos de cadenas de idioma, y de país o región, admitidos por _create_locale se enumeran en Cadenas de idioma y Cadenas de país y región.

Para obtener más información sobre las configuraciones regionales, vea setlocale, _wsetlocale.

El nombre anterior de esta función, __create_locale (con dos caracteres de subrayado iniciales), está desusado.

Requisitos

Rutina

Encabezado necesario

_create_locale

<locale.h>

_wcreate_locale

<locale.h> o <wchar.h>

Para obtener más información sobre compatibilidad, vea Compatibilidad.

Ejemplo

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

Resultados del ejemplo

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

Equivalente en .NET Framework

System::Globalization::CultureInfo Class

Vea también

Referencia

Nombres de configuración regional, idiomas y cadenas de país/región

Cadenas de idioma

Cadenas de país y región

_free_locale

_configthreadlocale

setlocale

Configuración regional

localeconv

_mbclen, mblen, _mblen_l

strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

_setmbcp

setlocale, _wsetlocale

strcoll (Funciones)

strftime, wcsftime, _strftime_l, _wcsftime_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l