Ressources localisées dans des applications MFC : DLL satellites

MFC version 7.0 et versions ultérieures fournit une prise en charge améliorée des DLL satellites, une fonctionnalité qui permet de créer des applications localisées pour plusieurs langues. Une DLL satellite est une DLL de ressource uniquement qui contient les ressources d’une application localisées pour une langue particulière. Lorsque l’application commence à s’exécuter, MFC charge automatiquement la ressource localisée la plus appropriée pour l’environnement. Par exemple, vous pouvez avoir une application avec des ressources de langue anglaise avec deux DLL satellites, une contenant une traduction Français de vos ressources et l’autre contenant une traduction allemande. Lorsque l’application est exécutée sur un système de langue anglaise, elle utilise les ressources anglaises. S’il s’exécute sur un système Français, il utilise les ressources Français ; si elle est exécutée sur un système allemand, elle utilise les ressources allemandes.

Pour prendre en charge les ressources localisées dans une application MFC, MFC tente de charger une DLL satellite contenant des ressources localisées dans une langue spécifique. Les DLL satellites sont nommées ApplicationNameXXX.dll, où ApplicationName est le nom de .exe ou .dll à l’aide de MFC, et XXX est le code à trois lettres pour la langue des ressources (par exemple, « ENU » ou « DEU »).

MFC tente de charger la DLL de ressource pour chacune des langues suivantes dans l’ordre, en s’arrêtant lorsqu’elle en trouve une :

  1. Langage d’interface utilisateur par défaut de l’utilisateur actuel, tel qu’il est retourné par l’API Win32 GetUserDefaultUILanguage().

  2. La langue par défaut de l’utilisateur actuel, sans sous-langue spécifique (autrement dit, ENC [anglais canadien] devient ENU [anglais américain]).

  3. Langage d’interface utilisateur par défaut du système, tel qu’il est retourné par l’API GetSystemDefaultUILanguage(). Sur d’autres plateformes, il s’agit du langage du système d’exploitation lui-même.

  4. Langage d’interface utilisateur par défaut du système, sans sous-anguage spécifique.

  5. Une fausse langue avec le code de 3 lettres LOC.

Si MFC ne trouve pas de DLL satellites, elle utilise les ressources contenues dans l’application elle-même.

Par exemple, supposons qu’une application LangExample.exe utilise MFC et s’exécute sur un système d’interface utilisateur multiple ; la langue de l’interface utilisateur système est ENU [anglais américain] et la langue d’interface utilisateur de l’utilisateur actuel est définie sur FRC [Canadian Français]. MFC recherche les DLL suivantes dans l’ordre suivant :

  1. LangExampleFRC.dll (langue de l’interface utilisateur de l’utilisateur).

  2. LangExampleFRA.dll (langue de l’interface utilisateur sans sous-langage, dans cet exemple Français (France).

  3. LangExampleENU.dll (langue de l’interface utilisateur du système).

  4. LangExampleLOC.dll.

Si aucune de ces DLL n’est trouvée, MFC utilise les ressources dans LangExample.exe.

Voir aussi

Création de DLL C/C++ dans Visual Studio
TN057 : localisation des composants MFC