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

Puede establecer el locale argumento en las setlocalefunciones , _wsetlocale, _create_localey _wcreate_locale de varias maneras. La configuración regional se puede establecer mediante los nombres de configuración regional, los idiomas, los códigos de país o región y las páginas de códigos compatibles con la API nlS de Windows. El locale argumento toma una de las formas siguientes:

locale :: "locale-name"
 | "idioma[_country-region[.code-page]]"
 | ".página de códigos"
 | "C"
 | ""
 | NULL

La forma locale-name es una cadena corta estandarizada por IETF; por ejemplo, en-US para Inglés (Estados Unidos) o bs-Cyrl-BA para Bosnio (cirílico, Bosnia y Herzegovina). Se prefieren estas formas. Para una lista de nombres de configuración regional compatibles con la versión del sistema operativo Windows, consulte la columna Language tag (Etiqueta de idioma) de la en la tabla Appendix A: Product Behavior (Apéndice A: Comportamiento del producto) en [MS-LCID]: Windows Language Code Identifier (LCID) Reference ([MS-LCID]: Referencia de identificador de configuración regional (LCID) de Windows). En este recurso se enumeran las partes de idioma, script y región compatibles de los nombres de configuración regional. Para obtener información sobre los nombres de configuración regional admitidos que tienen pedidos de ordenación no predeterminados, vea la columna Nombre de configuración regional en Identificadores de criterio de ordenación. En Windows 10 o posterior, se permiten nombres de configuración regional que corresponden a etiquetas de idioma BCP-47 válidas. Por ejemplo, jp-US es una etiqueta BCP-47 válida, pero solo US es eficaz para la funcionalidad de configuración regional.

El formato language[_country-region[.code-page]] se almacena en la configuración regional para una categoría cuando se usa una cadena de idioma, o una cadena de idioma y una cadena de país o región, para crear la configuración regional. El conjunto de cadenas de idioma admitidas se describe en Cadenas de idioma y la lista de cadenas de país y región admitidas se muestra en cadenas de país o región. Si el idioma especificado no está asociado al país o región especificados, el idioma predeterminado del país o región especificado se almacena en la configuración regional. No se recomienda este formulario para las cadenas de configuración regional insertadas en el código o serializadas en el almacenamiento: es más probable que una actualización del sistema operativo cambie que el formulario de nombre de configuración regional.

code-page es la página de códigos de ANSI/OEM asociada a la configuración regional. La página de códigos se determina automáticamente al especificar una configuración regional solo por idioma o por idioma y país o región. El valor especial .ACP especifica la página de códigos ANSI para el país o región. El valor especial .OCP especifica la página de códigos OEM para el país o región. Por ejemplo, si especifica "Greek_Greece.ACP" como configuración regional, la configuración regional se almacena como Greek_Greece.1253 (la página de códigos ANSI para griego) y, si especifica "Greek_Greece.OCP" como configuración regional, se almacena como Greek_Greece.737 (la página de códigos OEM para griego). Para obtener más información sobre las páginas de códigos, vea Páginas de códigos. Para obtener una lista de las páginas de códigos admitidas en Windows, consulte Identificadores de página de códigos.

Si usa solo la página de códigos para especificar la configuración regional, se usa el idioma predeterminado del usuario y el país o región según se indique.GetUserDefaultLocaleName Por ejemplo, si especifica ".1254" (ANSI del turco) como configuración regional de un usuario configurado para inglés (Estados Unidos), la configuración regional que se almacena es English_United States.1254. No se recomienda este formulario, ya que podría provocar un comportamiento incoherente.

Un locale valor de argumento de C especifica el entorno mínimo conforme a ANSI para la traducción de C. La configuración regional de C supone que cada tipo de datos char es de 1 byte y su valor es siempre menor que 256. Si locale señala a una cadena vacía, la configuración regional es el entorno nativo definido por la implementación.

Puede especificar a la vez todas las categorías de configuración regional para las funciones setlocale y _wsetlocale con la categoría LC_ALL . Todas las categorías se pueden establecer en la misma configuración regional. También puede establecer cada categoría por separado mediante un argumento de configuración regional con el siguiente formato:

LC-ALL-specifier :: locale
 | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][;LC_TIME=locale]

Puede especificar varios tipos de categoría, separados por punto y coma. Los tipos de categoría que no se especifican usan la configuración regional actual. Por ejemplo, este fragmento de código establece la configuración regional actual para todas las categorías en de-DEy, a continuación, establece las categorías LC_MONETARY en en-GB y LC_TIME en es-ES:

_wsetlocale(LC_ALL, L"de-DE");
_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");

Compatibilidad con UTF-8

La compatibilidad con UTF-8 se puede habilitar mediante la página de códigos UTF-8 en la cadena de configuración regional. Para obtener más información, consulte la sección compatibilidad con UTF-8 de setlocale.

Consulte también

Referencia de la biblioteca en tiempo de ejecución de C
_get_current_locale
setlocale, _wsetlocale
_create_locale, _wcreate_locale
Cadenas de idioma
Cadenas de país o región