Recursos localizados en aplicaciones MFC: archivos DLL satélite

En MFC 7.0 y versiones posteriores se proporciona compatibilidad mejorada con los archivos DLL satélite, una característica que ayuda a crear aplicaciones en múltiples idiomas. Un archivo DLL satélite es una DLL solo de recursos que contiene los recursos de una aplicación localizados para un idioma determinado. Cuando se inicia la ejecución de la aplicación, MFC carga de forma automática el recurso localizado más apropiado para el entorno. Por ejemplo, puede tener una aplicación con recursos en inglés con dos archivos DLL satélite, uno que contenga una traducción en francés de los recursos y otro con una traducción en alemán. Cuando la aplicación se ejecuta en un sistema en inglés, usa los recursos en inglés. Si se ejecuta en un sistema en francés, usa los recursos en francés; si se ejecuta en un sistema alemán, usa los recursos en alemán.

Para admitir recursos localizados en una aplicación MFC, MFC intenta cargar un archivo DLL satélite que contiene recursos localizados en un idioma concreto. Los archivos DLL satélite se denominan NombreDeAplicaciónXXX.dll, donde NombreDeAplicación es el nombre del archivo .exe o .dll que usa MFC, y XXX es el código de tres letras del idioma de los recursos (por ejemplo, "ESN" o "DEU").

MFC intenta cargar el archivo DLL de recursos para cada uno de los idiomas siguientes en orden y se detiene cuando encuentra uno:

  1. El idioma predeterminado de la interfaz de usuario del usuario actual, tal y como lo devuelve la API GetUserDefaultUILanguage() de Win32.

  2. El idioma de la interfaz de usuario predeterminado del usuario actual, sin ningún sublanguaje específico (es decir, ENC [inglés canadiense] se convierte en ENU [inglés de EE. UU.]).

  3. El idioma predeterminado de la interfaz de usuario del sistema, tal y como devuelve la API GetSystemDefaultUILanguage(). En otras plataformas, es el idioma del propio sistema operativo.

  4. El idioma predeterminado de la interfaz de usuario del sistema, sin ningún subidioma específico.

  5. Un idioma falso con el código LOC de tres letras.

Si MFC no encuentra ningún archivo DLL satélite, usa los recursos incluidos en la propia aplicación.

Por ejemplo, supongamos que una aplicación LangExample.exe usa MFC y se ejecuta en un sistema de interfaz de usuario múltiple; el idioma de la interfaz de usuario del sistema es ENU [inglés de EE. UU.] y el idioma de la interfaz de usuario del usuario actual está establecido en FRC [francés canadiense]. MFC busca los archivos DLL siguientes en este orden:

  1. LangExampleFRC.dll (idioma de la interfaz de usuario del usuario).

  2. LangExampleFRA.dll (idioma de la interfaz de usuario del usuario sin el subidioma, en este ejemplo Francés (Francia).

  3. LangExampleENU.dll (idioma de la interfaz de usuario del sistema).

  4. LangExampleLOC.dll.

Si no se encuentra ninguno de estos archivos DLL, MFC usa los recursos de LangExample.exe.

Consulte también

Creación de archivos DLL de C/C++ en Visual Studio
TN057: Localización de componentes de MFC