_create_locale
, _wcreate_locale
Crea un objeto de configuración regional.
Sintaxis
_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 especifica un valor válido locale
y category
, las funciones devuelven la configuración regional especificada como un _locale_t
objeto . No se cambia la configuración regional actual del programa.
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 _locale_t
estructura debe liberarse con _free_locale
cuando ya no sea necesario.
_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 usadas para category
y las partes del programa que afectan se muestran en esta tabla:
Marca decategory |
Afecta a |
---|---|
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 de separador decimal, LC_NUMERIC establece el separador de miles y la cadena de control de agrupación que devuelve localeconv . |
LC_TIME |
Las funciones strftime y wcsftime . |
Esta función valida los parámetros category
y locale
. Si el parámetro category 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 locale
argumento, vea Nombres de configuración regional, idiomas y cadenas de país o región.
El locale
argumento puede tomar varios tipos de valores: un nombre de configuración regional, una cadena de idioma, una cadena de idioma y código de país o región, una página de códigos o una combinación de cadena de idioma, código de país o región y página de códigos. El conjunto (de nombres de configuración regional disponibles, idiomas, códigos de país o región y páginas de códigos) incluye todos los que son compatibles con la API nlS de Windows. El conjunto de nombres _create_locale
de configuración regional admitidos se describe en Nombres de configuración regional, Idiomas y Cadenas de país o región. El conjunto de cadenas de idioma y país o región compatibles _create_locale
con se enumeran en Cadenas de idioma y Cadenas de país o región.
Para obtener más información sobre la configuración regional, vea setlocale
, _wsetlocale
.
El nombre anterior de esta función, __create_locale
(con dos caracteres de subrayado iniciales), está desusado.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte 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 (<ime);
_gmtime64_s(&thetime, <ime);
// %#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(<ime);
_gmtime64_s(&thetime, <ime);
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'
Vea también
Nombres de configuración regional, idiomas y cadenas de país o región
Cadenas de idioma
Cadenas de país o 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
Funciones strcoll
strftime
, wcsftime
, , _strftime_l
, _wcsftime_l
strxfrm
, wcsxfrm
, , _strxfrm_l
, _wcsxfrm_l
wcstombs
, _wcstombs_l
wctomb
, _wctomb_l