Это потому, что поддержка выбора языка MFC имеет ошибку проектирования : он решит загрузить ресурсы из exe, только если ни одна DLL не соответствует пользователю ИЛИ системному языку.
В вашем случае: он устанавливает (упорядоченный) список языков следующим образом:
- Шведский (язык пользователя)
- Английский (язык системы)
Затем он ищет ваши DLL (ошибка: только dll, а не exe!): Не подходит для шведского. Но есть совпадение для английского!
Решение : Используйте мой CLanguageSupport класс. Он отлично работает даже в вашем случае использования.
Не стесняйтесь использовать его. Вам понадобится всего пара минут, чтобы включить его в ваше приложение, и оно использует ту же схему DLL, что и та, которую вы уже реализовали. ( Подсказка : Не забывайте шаг, где вы должны избавиться от вызова CWinApp :: InitInstance ()!)
Кроме того, если вы заинтересованы (это необязательно), вы можете получить автоматическое меню языков, позволяющее пользователю выбирать свои предпочтения в случае, если значение по умолчанию не соответствует его желанию.
И если вы ищете отличный инструмент для управления своими переводами, подумайте: appTranslator ; -)
НТН,