我们这里有一个复杂的应用程序,用MFC和C#编写并以混合模式运行。我们现在正尝试设置此应用程序的多语言版本。因此,我为每个现有资源文件创建了英语资源文件(在.NET部分中),并翻译了所有必需的字符串。 E. g。: MyResource.resx 和 MyResource.en.resx 。原文是德文。
现在,如果我启动仅包含.NET项目的解决方案,并将 Thread.CurrentThread.CurrentUICulture 设置为' en-US'所有对话框和文本都按预期显示为英文。 MFC部分(.exe文件中的已编译代码)使用名为 Lingobit 的工具进行翻译,该工具替换该.exe文件中的字符串,并且工作正常。到现在为止还挺好。
但是,当启动完整的混合模式应用程序时,.NET部分的所有英语资源文件都将被忽略,并且它将回退到德语版本._
我还尝试使用Lingobit来翻译.NET-DLL。 Lingobit创建了一个单独的 mylib.resource.dll ,它原来的 mylib.dll 似乎也被忽略了。
我在这里没有想法如何创建这个应用程序的英文版本。有关如何使我的混合模式应用程序使用英语资源文件的任何建议吗?
提前谢谢。
答案 0 :(得分:0)
解决方案本身很简单,但我花了一段时间才找到它。如果编译.Net项目,Visual Studio会在输出文件夹中创建一个“en”-Folder(例如:bin / Debug /)。此文件夹不是使用混合模式版本的编译创建的,因此只需将其从.Net输出文件夹复制到混合模式输出文件夹即可。 此外,我将创建一个小脚本,在构建后将其复制到所需的位置。
每个人都有一个好人。