Share via


Recursos localizados em aplicativos MFC: DLLs satélites

O MFC na versão 7.0 ou posterior fornece suporte avançado para DLLs satélite, um recurso que ajuda na criação de aplicativos localizados para vários idiomas. Uma DLL satélite é uma DLL somente de recurso que contém os recursos de um aplicativo localizados para um idioma específico. Quando o aplicativo começa a ser executado, o MFC carrega automaticamente o recurso localizado mais apropriado para o ambiente. Por exemplo, você pode ter um aplicativo com recursos do idioma inglês com duas DLLs satélites, uma contendo uma tradução em francês de seus recursos e outra contendo uma tradução em alemão. Quando o aplicativo é executado em um sistema de idioma inglês, ele usa os recursos em inglês. Se executado em um sistema francês, ele usa os recursos em Francês; se executado em um sistema alemão, ele usa os recursos em alemão.

Para dar suporte a recursos localizados em um aplicativo MFC, o MFC tenta carregar uma DLL satélite contendo recursos localizados em um idioma específico. As DLLs satélites são denominadas ApplicationNameXXX.dll, em que ApplicationName é o nome do .exe ou .dll que está usando o MFC, e XXX é o código de três letras para o idioma dos recursos (por exemplo, 'ENU' ou 'DEU').

O MFC tenta carregar a DLL do recurso para cada um dos seguintes idiomas na ordem e para quando encontrar uma:

  1. O idioma de interface do usuário padrão do usuário atual, conforme retornado da API do Win32 GetUserDefaultUILanguage().

  2. O idioma de interface do usuário padrão do usuário atual, sem qualquer subidioma específico (ou seja, ENC [inglês canadense] torna-se ENU [inglês dos EUA]).

  3. O idioma de interface do usuário padrão do sistema, conforme retornado da API GetSystemDefaultUILanguage(). Em outras plataformas, esse é o idioma do sistema operacional em si.

  4. O idioma da interface do usuário padrão do sistema, sem qualquer subidioma específico.

  5. Um idioma falso com o LOC de código de 3 letras.

Se o MFC não encontrar DLLs satélites, ele usará quaisquer recursos contidos no próprio aplicativo.

Por exemplo, suponha que um aplicativo LangExample.exe usa MFC e está em execução em um sistema de interface do usuário múltiplo; o idioma da interface do usuário do sistema é ENU [inglês americano] e o idioma da interface do usuário atual está definido como FRC [francês canadense]. O MFC procura as seguintes DLLs na ordem a seguir:

  1. LangExampleFRC.dll (Idioma da interface do usuário).

  2. LangExampleFRA.dll (idioma da interface do usuário sem o subidioma, neste exemplo francês (França).

  3. LangExampleENU.dll (idioma da interface do usuário do sistema).

  4. LangExampleLOC.dll.

Se nenhuma dessas DLLs for encontrada, o MFC usará os recursos em LangExample.exe.

Confira também

Criar DLLs C /C++ no Visual Studio
TN057: localização de componentes MFC