Идея состоит в том, что все локализуемые элементы должны храниться в ресурсах. Стандартные объекты пользовательского интерфейса, такие как меню и диалоги, автоматически сохраняются там (ресурсы) для вас, но такие элементы, как строковые литералы (например, сообщения об ошибках, сообщения в сообщениях, ...), должны быть извлечены из исходного кода в таблицу строк. В этой короткой статье кода проекта моей показано, как легко извлечь строки из таблицы строк в вашем коде.
Примечание. В вашем скрипте ресурсов должна быть только одна таблица строк (.rc).
С этого момента вы можете переводить свои ресурсы и создавать DLL-библиотеки ресурсов (также называемые спутниковыми DLL). Идея состоит в том, что вы сохраняете разные копии файлов .rc для каждого языка. Каждый перевод компилируется в DLL без кода , которая действует как контейнер для ресурсов.
Эта другая моя статья кода проекта позволяет вам легко загружать библиотеки ресурсов в соответствии с настройками системы или предпочтениями пользователя: код просматривает среди ваших библиотек ресурсов ресурсы, доступный язык которых лучше всего соответствует настройкам пользователя (на основе языка пользовательского интерфейса и региональные настройки). Код также позволяет легко создать меню со всеми доступными языками. Таким образом, ваш пользователь может переопределить выбор по умолчанию.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Мое объявление следует. Не стесняйтесь пропустить: -)
Что касается перевода ресурсов, управления переводами и создания библиотек ресурсов, вы можете проверить appTranslator .
КОНЕЦ ОБЪЯВЛЕНИЯ: -)
Что касается Unicode, MFC поставляется с версиями кода ANSI и Unicode. Вам решать, хотите ли вы создать приложение ANSI или Unicode: просто сделайте свой выбор на первой странице настроек проекта. Конечно, если вы начинаете с нуля, вам обязательно следует использовать Unicode. Но если устаревшие причины вынуждают вас оставаться ANSI / MBCS, не беспокойтесь слишком сильно: это не помешает вам локализовать ваше приложение.