2009-10-12 72 views
2

OK,让我们写我们的MFC应用程序中利用built-in localization support with satellite DLL's,因为MFC 7.一切似乎是工作的罚款,但我的Windows 7企业版安装MUI支持和使用瑞典语用户界面而不是英文用户界面仍然会在我们的应用程序中显示英文界面。MFC本地化不工作MUI安装Windows 7的

该应用程序使用瑞典作为其默认的语言,用形式AppNameENU.dll英语本地化DLL,所以MFC实际上是故意在这种情况下切换到英语语言,因为如果它不关心用户在选择启用MUI的Windows操作系统,以及Windows安装的默认装运语言?

从这个MSDN的页面(上面的链接),我把它读作MFC实际上应该把这些设置生效,虽然,但我不是100%肯定。有人可以澄清?

回答

4

这是因为语言选择MFC支持有一个设计错误:这将决定要从exe文件,只有在没有DLL匹配用户或系统语言加载资源。

你的情况:它的语言了(有序)列表设置为这样:

  1. 瑞典(用户语言)
  2. 英语(系统语言)

然后查找你的DLL(Bug:只有dll,而不是exe):与瑞典语不匹配。但是英语匹配!

解决方案:使用我的CLanguageSupport类。即使在你的用例中它也能正常工作。

随意使用它。你只需要几分钟就可以将它整合到你的应用程序中,并且它使用与你已经实现的完全相同的DLL方案。 (提示:不要忘记你必须摆脱CWinApp :: InitInstance()调用的步骤!)

另外,如果你有兴趣(这是可选的),你可以得到一个自动语言菜单让用户选择他自己的偏好,以防缺省情况不是他想要的。

如果你正在寻找一个伟大的工具来帮助你管理你的翻译,认为appTranslator ;-)

HTH,

+0

谢谢!那么我一定会看看你的班级!是的,我们实际上已经看了一下appTranslator。 ;-)由于我们积累了大量的字符串资源,并且缺乏可怕的Visual Studio UI中的监督,所以我们可能不得不采取措施。 :S – Jonas 2009-10-13 12:31:01