Trabajar con configuraciones regionales personalizadas
En este tema se proporcionan algunas instrucciones para controlar configuraciones regionales personalizadas en las aplicaciones. Es mejor preparar todo el código fuente teniendo en cuenta estas consideraciones, ya que la aplicación no controla si las configuraciones regionales personalizadas están instaladas en el sistema operativo.
Controlar LOCALE_STIME constante correctamente
Si tiene una aplicación anterior que usa GetLocaleInfo para obtener el separador de tiempo obsoleto indicado por LOCALE_STIME, la aplicación puede no analizar el formato de hora. Recuerde que el carácter que separa las horas de los minutos es distinto del carácter que separa los minutos de los segundos.
Nota
Al programar para configuraciones regionales personalizadas, recuerde que son inusuales. Prácticamente todos los campos disponibles para NLS tienen que hacer frente a un comportamiento inusual. Por ejemplo, el formato de hora 12H34'12'' es legítimo y generalmente comprensible. Sin embargo, muchas aplicaciones hacen suposiciones sobre los separadores de tiempo que pueden interrumpir las longitudes del búfer o mostrar campos.
Distinguir entre las configuraciones regionales complementarias
Todas las configuraciones regionales complementarias usan la constante LOCALE_CUSTOM_UNSPECIFIED para el identificador de configuración regional. Como regla, GetLocaleInfo no puede distinguir entre configuraciones regionales complementarias, pero GetLocaleInfoEx puede porque usa nombres de configuración regional en lugar de identificadores de configuración regional. La aplicación puede recuperar información sobre una configuración regional complementaria determinada solo cuando esa configuración regional es la configuración regional del usuario seleccionada actualmente. A continuación, la aplicación puede llamar a GetLocaleInfo y pasar la constante LOCALE_USER_DEFAULT como identificador de configuración regional.
Controlar configuraciones regionales de reemplazo
Para conservar la confiabilidad de Windows, recuerde que una configuración regional de reemplazo admitida por la aplicación no puede modificar el identificador de configuración regional de la configuración regional reemplazada. Ninguna configuración regional de reemplazo puede modificar las propiedades de ordenación de Windows.
Aunque una configuración regional de reemplazo puede cambiar el calendario predeterminado, debe conservar el valor predeterminado original en algún lugar de la lista de calendarios disponibles. Por ejemplo, la configuración regional tailandesa (Tailandia) usa el calendario budista tailandés como valor predeterminado. Un administrador puede crear una configuración regional de reemplazo que use el calendario localizado gregoriano. Sin embargo, la lista de calendarios disponibles continúa conteniendo una entrada para el calendario budista tailandés.
Para las configuraciones regionales de reemplazo, la aplicación generalmente debe consultar información específica de la configuración regional en lugar de intentar un "acceso directo" en función del conocimiento de una configuración regional determinada. Por ejemplo, cuando GetThreadLocale recupera la configuración regional actual como inglés (Estados Unidos), podría ser realmente una configuración regional de reemplazo que se debería permitir que surta efecto.
Personalizar calendarios
Las aplicaciones pueden personalizar los nombres de día y mes para los calendarios gregorianos, pero no para los calendarios no gregorianos. Del mismo modo, NLS no admite la creación de calendarios personalizados definidos por el usuario. Para obtener más información, vea Fecha y calendario.
Controlar secuencias de ordenación
Una configuración regional complementaria puede usar cualquier secuencia de ordenación definida por Microsoft. Una configuración regional de reemplazo debe usar la misma secuencia de ordenación que la configuración regional que reemplaza. NLS no admite la creación de secuencias de ordenación definidas por el usuario. Para obtener más información, consulte Control de la ordenación en las aplicaciones.
Localizar información de configuración regional personalizada
NLS no proporciona un mecanismo para localizar información de configuración regional personalizada. Por lo tanto, la constante LOCALE_SLANGUAGE o LOCALE_SLOCALIZEDLANGUAGENAME usada como identificador de configuración regional para una configuración regional personalizada siempre recupera los valores asociados a LOCALE_SNATIVELANGNAME o LOCALE_SNATIVELANGUAGENAME.
Temas relacionados