Administración de idiomas de la interfaz de usuario

La interfaz de usuario multilingüe (MUI) permite a las aplicaciones administrar idiomas de la interfaz de usuario de dos maneras. Una aplicación puede usar un enfoque sencillo para la administración de idiomas de forma predeterminada en la configuración de idioma del sistema operativo. Como alternativa, la aplicación puede admitir sus propios idiomas desde los que el usuario puede seleccionar. La API de MUI también permite que la aplicación acceda directamente a idiomas y listas de idiomas compatibles con el sistema operativo y mantenidas por el cargador de recursos. El resto de este tema define los idiomas admitidos por el sistema y el mecanismo de reserva de idioma.

Idiomas mantenidos por el sistema operativo

Idioma predeterminado de la interfaz de usuario del sistema/Idioma de instalación

El idioma predeterminado de la interfaz de usuario del sistema es el idioma de la versión localizada que se usa para configurar Windows. Todos los menús, cuadros de diálogo, mensajes de error y archivos de ayuda se representan en este idioma, excepto cuando el usuario selecciona un idioma diferente.

En Windows Vista y versiones posteriores, el idioma de la interfaz de usuario predeterminado del sistema se conoce como "idioma de instalación" y desempeña un rol más limitado. Para la mayoría de los propósitos, se sustituye por los idiomas preferidos de la interfaz de usuario del sistema. Sin embargo, en determinados contextos resulta útil tener un único idioma de instalación que siempre se sabe que es totalmente compatible.

Nota:

Las aplicaciones de Windows como Paint, Notepad, Wordpad y las opciones de menú seguirán apareciendo en el idioma predeterminado de la interfaz de usuario del sistema después de una implementación muI.

No hay ninguna función MUI disponible para establecer el idioma predeterminado de la interfaz de usuario del sistema. Para recuperar este idioma, la aplicación puede llamar a GetSystemDefaultUILanguage.

Idioma de la interfaz de usuario del sistema

El sistema operativo define el idioma de la interfaz de usuario del sistema como un idioma de interfaz de usuario que un administrador puede establecer en la pestaña Avanzadas de la parte de opciones regionales y de idioma de Panel de control. El sistema operativo usa este idioma si el usuario actual no ha realizado una configuración de idioma específica o si no se ha iniciado sesión en ninguna cuenta activa. El idioma solo se puede cambiar si hay más de un idioma de la interfaz de usuario instalado en el equipo.

Nota:

El sistema operativo debe reiniciarse para que todos los usuarios y servicios vean el efecto del cambio de idioma.

 

No hay ninguna función MUI disponible para establecer el idioma de la interfaz de usuario del sistema. Para recuperar este valor, una aplicación destinada a Windows Vista y versiones posteriores puede llamar a GetSystemPreferredUILanguages y obtener el primer idioma en la lista de idiomas preferidos de la interfaz de usuario del sistema. Las aplicaciones destinadas a sistemas operativos anteriores a Windows Vista no pueden usar GetSystemPreferredUILanguages y deben basarse en la suposición de que el idioma de la interfaz de usuario del sistema siempre es el mismo que el idioma de la interfaz de usuario predeterminado del sistema.

Idioma de la interfaz de usuario del usuario

El idioma de la interfaz de usuario de usuario determina el idioma de la interfaz de usuario que se usa para menús, cuadros de diálogo, archivos de ayuda, etc. El usuario actual puede establecerlo en la pestaña Idioma de la parte de opciones regionales y de idioma de Panel de control. Este idioma solo se puede cambiar si hay más de un idioma de interfaz de usuario instalado en el equipo. Tenga en cuenta que el usuario tendrá que cerrar sesión y volver a iniciar sesión para ver el efecto. Por ejemplo, una corporación multinacional quiere implementar Windows en todas sus subsidiarias. La empresa crea un trabajo de instalación global, que instala la versión en inglés de Windows en todos los clientes, independientemente de la ubicación. Al mismo tiempo, instala módulos de lenguaje específicos en función de la unidad organizativa de la que un equipo sea miembro. Cuando el usuario inicia sesión por primera vez en un sistema operativo recién instalado, Windows aparece como una versión localizada.

En Windows Vista y versiones posteriores, el idioma de la interfaz de usuario de usuario es el primer idioma de la lista de idiomas de la interfaz de usuario preferidos por el usuario. Tenga en cuenta que los idiomas de reserva se pueden usar si determinados recursos no están disponibles en este idioma.

En los sistemas operativos anteriores a Windows Vista, el idioma de la interfaz de usuario de usuario suele ser el mismo que el idioma predeterminado de la interfaz de usuario del sistema. Sin embargo, para muI de Windows, los dos idiomas pueden ser diferentes.

Para recuperar el idioma de la interfaz de usuario de usuario, una aplicación puede llamar a GetUserDefaultUILanguage o GetUserPreferredUILanguages. La aplicación no puede cambiar el lenguaje de la interfaz de usuario de usuario, ya que no hay ninguna función para establecerla.

Listas de idiomas mantenidas por el sistema operativo

Lista de idiomas de interfaz de usuario preferidos del sistema

El cargador de recursos mantiene una lista de idiomas de interfaz de usuario preferidos por el sistema. En esta lista se incluyen los idiomas preferidos por el sistema operativo para sus propios recursos, como menús y cuadros de diálogo, mensajes, archivos INF y archivos de ayuda. La lista está formada por el idioma predeterminado de la interfaz de usuario del sistema y el idioma de la interfaz de usuario del sistema y sus reservas. Una aplicación puede recuperar idiomas de interfaz de usuario preferidos del sistema mediante una llamada a GetSystemPreferredUILanguages.

Lista de idiomas de interfaz de usuario preferidos por el usuario

El cargador de recursos usa una lista de idiomas de interfaz de usuario preferidos por el usuario que incluye los idiomas que prefiere el usuario. El cargador de recursos usa los idiomas coincidentes de recursos de esta lista, si está disponible, para un subproceso de aplicación determinado. Estos idiomas tienen prioridad sobre cualquier preferencia del sistema. Para recuperar los idiomas de la interfaz de usuario preferidos por el usuario, la aplicación puede llamar a GetUserPreferredUILanguages.

Procesar lista de idiomas de interfaz de usuario preferidos

En Windows Vista y versiones posteriores, el cargador de recursos mantiene una lista de idiomas de interfaz de usuario preferidos del proceso que consta de hasta cinco idiomas válidos establecidos mediante un proceso en ejecución para una aplicación MUI. La aplicación puede establecer los idiomas con una llamada a SetProcessPreferredUILanguages. La aplicación puede recuperar los idiomas llamando a GetProcessPreferredUILanguages.

Lista de idiomas de interfaz de usuario preferidos de subprocesos

En Windows Vista y versiones posteriores, el cargador de recursos usa una lista de idiomas de interfaz de usuario preferidos para subprocesos que consta de hasta cinco idiomas válidos establecidos por un subproceso en un proceso en ejecución para una aplicación MUI. Estos idiomas se usan para personalizar los idiomas de la interfaz de usuario de la aplicación y hacer que sean diferentes del idioma del sistema operativo. La lista de idiomas preferidos de la interfaz de usuario del subproceso se basa en los idiomas de la interfaz de usuario preferidos por el usuario, los idiomas de interfaz de usuario preferidos del sistema y el idioma predeterminado de la interfaz de usuario del sistema.

Para establecer los idiomas preferidos de la interfaz de usuario del subproceso, la aplicación debe llamar a SetThreadPreferredUILanguages. Para recuperar estos idiomas, la aplicación llama a GetThreadPreferredUILanguages.

Representación del lenguaje neutro

Un idioma neutro se representa como el idioma por sí solo, sin región o configuración regional. Por ejemplo, la representación neutra del idioma inglés (Canadá), en-CA, se representa como "en". Aunque un idioma neutro no está asociado a los aspectos de una región o configuración regional, puede asociarlo a un conjunto de recursos. Normalmente, un recurso de idioma neutro se basa en el uso de la región más frecuente para el idioma.

Como ilustración, supongamos que la aplicación MUI localiza los recursos de idioma alemán para alemán (Suiza) representados como de-CH y alemán (Austria) representados como de-AT, al mismo tiempo que crea un conjunto completo de recursos para alemán (Alemania) representado como de-DE. Debe tomar decisiones para esta aplicación teniendo en cuenta los archivos de recursos completos. Si la aplicación duplica los recursos de de-DE como recursos de idioma neutro, debe proporcionar un idioma de reserva para el cargador de recursos. Si el cargador no encuentra un archivo de recursos específico del idioma determinado para de-CH o para de-AT, recurre a los recursos "de" neutros del idioma. Es más probable que estos recursos sean más adecuados que los recursos para un idioma completamente diferente, por ejemplo, inglés (Estados Unidos), que son los únicos otros posibles reservas.

Como otro ejemplo, es posible que una aplicación no se localice en absoluto para Belice. Sin embargo, la compatibilidad con una preferencia de idioma del inglés (Belice), representada como en-BZ, permite que la aplicación revierte a los recursos "en".

Reserva de idioma en el cargador de recursos

Windows Vista y, posteriormente, organizan la configuración del idioma de la interfaz de usuario en una lista de idiomas de reserva preordenada que usa el cargador de recursos. Para formar la lista, el sistema operativo combina varios idiomas, en el orden que se muestra:

  • Lenguajes de interfaz de usuario preferidos por subprocesos, que constan del lenguaje de la interfaz de usuario del subproceso y su forma neutra. Algunos ejemplos son fr-FR para francés (Francia) y su forma neutra "fr" y es-ES para español (España) y su forma neutra "es".

  • Procesar idiomas de interfaz de usuario preferidos, que constan del lenguaje de la interfaz de usuario del proceso y su forma neutra. Un ejemplo es de-DE para alemán (Alemania) y su forma neutra "de".

  • Idioma de la interfaz de usuario de usuario y su forma neutra. Un ejemplo es ja-JP para japonés (Japón) y su forma neutra "ja".

  • Lenguaje de interfaz de usuario del sistema y su forma neutra. Un ejemplo es it-IT para italiano (Italia) y su forma neutra "it".

    Nota:

    Este idioma solo se incluye en la lista de reserva cuando no se establece el idioma de la interfaz de usuario de usuario.

     

  • Lenguaje de interfaz de usuario predeterminado del sistema y su forma neutra. Un ejemplo es-ES para español (España) y su forma neutra "es".

A continuación se muestra la lista de reserva combinada. Tenga en cuenta que se elimina la duplicación de idiomas, por ejemplo, es-ES y es. Dado que en el ejemplo se establece el idioma de la interfaz de usuario de usuario en ja-JP, el idioma de la interfaz de usuario del sistema no aparece en la lista de reserva combinada.

fr-FR, fr, es-ES, es, de-DE, de, ja-JP, ja

Al cargar recursos para una aplicación MUI, el cargador de recursos intenta seleccionar uno de los archivos que coinciden con la lista de idiomas de interfaz de usuario preferidos del subproceso para el subproceso de aplicación que se está ejecutando actualmente. Si el cargador de recursos no encuentra una coincidencia directa entre un idioma seleccionado y el primer recurso específico del idioma de la lista de reserva combinada, comprueba los idiomas subsiguientes de la lista hasta que encuentre una reserva aceptable.

Si el cargador de recursos no encuentra ningún archivo que necesite, debe usar un lenguaje de reserva "correcto garantizado". Para la tecnología de recursos MUI, el cargador de recursos determina el idioma de reserva de los datos de configuración de recursos proporcionados. Para obtener más información, consulte ADMINISTRACIÓN de recursos MUI.

Acerca de la interfaz de usuario multilingüe

Configuraciones regionales e idiomas

Terminología de NLS