Локализованные ресурсы в приложениях MFC. Вспомогательные библиотеки DLL

В библиотеке MFC версии 7.0 или более поздней реализована расширенная поддержка вспомогательных библиотек DLL, которые могут использоваться для создания многоязыковых версий приложений.Вспомогательная библиотека DLL представляет собой библиотеку ресурсов, в которой содержатся локализованные для определенного языка ресурсы приложения.При запуске приложения с помощью MFC автоматически загружаются локализованные ресурсы, соответствующие текущей среде.Например, для приложения на английском языке можно создать две вспомогательные библиотеки DLL, в которых содержатся ресурсы, локализованные для французского и немецкого языков.При запуске приложения в англоязычной системе используются ресурсы на английском языке.При запуске приложения в системе, в которой используется французский или немецкий язык, загружаются ресурсы на соответствующем языке.

Чтобы обеспечить поддержку локализованных ресурсов в приложении MFC, выполняется попытка загрузки вспомогательной библиотеки DLL, в которой содержатся локализованные для конкретного языка ресурсы.Вспомогательной библиотеке DLL присваивается имя ApplicationNameXXX.dll, где ApplicationName — имя EXE- или DLL-файла, в котором используется библиотека MFC, а XXX — трехбуквенный код языка ресурсов, например ENU или DEU.

В библиотеке MFC выполняется попытка загрузки библиотеки ресурсов для каждого из языков в следующем порядке (загружается первая найденная библиотека ресурсов):

  1. (Только операционная система Windows 2000 или более поздней версии) Используемый по умолчанию язык интерфейса для текущего пользователя, который возвращается с помощью функции GetUserDefaultUILanguage() интерфейса Win32 API.

  2. (Windows версии 2000 или более поздней версии) язык пользовательского интерфейса текущего пользователя по умолчанию без какого-либо конкретного sublanguage (то есть ENCL [канадский английский] будет ENU английскими языки [США]).

  3. Используемый по умолчанию язык пользовательского интерфейса системы.В Windows 2000 или более поздней версии это значение возвращается с помощью функции GetSystemDefaultUILanguage() интерфейса API.На других платформах это значение соответствует языку самой операционной системы.

  4. Используемый по умолчанию язык пользовательского интерфейса системы без конкретного варианта языка.

  5. Фиктивный язык с трехбуквенным кодом LOC.

Если библиотеке MFC не удается найти вспомогательные библиотеки DLL, используются любые ресурсы, входящие в состав самого приложения.

В качестве примера, предположим, что приложения LangExample.exe использует MFC и выполняется в системе интерфейса пользователя Windows 2000 с множественной; язык пользовательского интерфейса системы ENU [США] языки и английский язык пользовательского интерфейса FRC [текущего пользователя задано значение канадскому французский].В библиотеке MFC выполняется поиск следующих библиотек DLL в указанном ниже порядке:

  1. LangExampleFRC.dll (язык пользовательского интерфейса).

  2. LangExampleFRA.dll (язык пользовательского интерфейса без конкретного варианта языка, в этом примере — "Французский (Франция)").

  3. LangExampleENU.dll (язык пользовательского интерфейса системы).

  4. LangExampleLOC.dll.

Если ни одна из этих библиотек не найдена, используются ресурсы, входящие в состав самого приложения LangExample.exe.

См. также

Ссылки

TN057: локализация компонентов MFC

Основные понятия

Библиотека DLL в Visual C++