Локализованные ресурсы в приложениях MFC. Вспомогательные библиотеки DLL
В библиотеке MFC версии 7.0 или более поздней реализована расширенная поддержка вспомогательных библиотек DLL, которые могут использоваться для создания многоязыковых версий приложений.Вспомогательная библиотека DLL представляет собой библиотеку ресурсов, в которой содержатся локализованные для определенного языка ресурсы приложения.При запуске приложения с помощью MFC автоматически загружаются локализованные ресурсы, соответствующие текущей среде.Например, для приложения на английском языке можно создать две вспомогательные библиотеки DLL, в которых содержатся ресурсы, локализованные для французского и немецкого языков.При запуске приложения в англоязычной системе используются ресурсы на английском языке.При запуске приложения в системе, в которой используется французский или немецкий язык, загружаются ресурсы на соответствующем языке.
Чтобы обеспечить поддержку локализованных ресурсов в приложении MFC, выполняется попытка загрузки вспомогательной библиотеки DLL, в которой содержатся локализованные для конкретного языка ресурсы.Вспомогательной библиотеке DLL присваивается имя ApplicationNameXXX.dll, где ApplicationName — имя EXE- или DLL-файла, в котором используется библиотека MFC, а XXX — трехбуквенный код языка ресурсов, например ENU или DEU.
В библиотеке MFC выполняется попытка загрузки библиотеки ресурсов для каждого из языков в следующем порядке (загружается первая найденная библиотека ресурсов):
(Только операционная система Windows 2000 или более поздней версии) Используемый по умолчанию язык интерфейса для текущего пользователя, который возвращается с помощью функции GetUserDefaultUILanguage() интерфейса Win32 API.
(Windows версии 2000 или более поздней версии) язык пользовательского интерфейса текущего пользователя по умолчанию без какого-либо конкретного sublanguage (то есть ENCL [канадский английский] будет ENU английскими языки [США]).
Используемый по умолчанию язык пользовательского интерфейса системы.В Windows 2000 или более поздней версии это значение возвращается с помощью функции GetSystemDefaultUILanguage() интерфейса API.На других платформах это значение соответствует языку самой операционной системы.
Используемый по умолчанию язык пользовательского интерфейса системы без конкретного варианта языка.
Фиктивный язык с трехбуквенным кодом LOC.
Если библиотеке MFC не удается найти вспомогательные библиотеки DLL, используются любые ресурсы, входящие в состав самого приложения.
В качестве примера, предположим, что приложения LangExample.exe использует MFC и выполняется в системе интерфейса пользователя Windows 2000 с множественной; язык пользовательского интерфейса системы ENU [США] языки и английский язык пользовательского интерфейса FRC [текущего пользователя задано значение канадскому французский].В библиотеке MFC выполняется поиск следующих библиотек DLL в указанном ниже порядке:
LangExampleFRC.dll (язык пользовательского интерфейса).
LangExampleFRA.dll (язык пользовательского интерфейса без конкретного варианта языка, в этом примере — "Французский (Франция)").
LangExampleENU.dll (язык пользовательского интерфейса системы).
LangExampleLOC.dll.
Если ни одна из этих библиотек не найдена, используются ресурсы, входящие в состав самого приложения LangExample.exe.
См. также
Ссылки
TN057: локализация компонентов MFC