我这里有几个大型 MFC 应用程序,将它们转换为任何其他格式是不可能的。我们正在扩展到其他市场,并希望使这些应用程序能够在其他语言和文化中运行。

到目前为止,我偶尔发现有关如何使用 Visual C++ 版本 6 的参考资料,其中提到 MFC 的更高版本具有其他相关功能。搜索 MSDN 为我提供了如何将应用程序转换为 Unicode 的说明,我们已经这样做了。我在 MSDN 上找不到任何关于如何在 Unicode 中使语言成为多语言的内容,只有一些使用 Google 的旧东西,以及一本关于使用 VC++6 国际化的书。(我们现在在 XP 和 Vista 上使用 Visual Studio 2008。)

我不会声称我的 Google 功能有多么强大,并且很乐意被引导到我错过的东西。

使用VC++6的方法是否合理,还是应该使用后来的功能?

如果我应该稍后使用这些功能,我在哪里可以找到它们的参考资料?

除了设置区域设置、将所有字符串转换为资源以及以不同语言复制资源之外,还有什么我应该担心的吗?

我可以找到更多有关 .NET 国际化的内容,但我在 .NET 方面缺乏经验。我会在那里找到什么适用于 VC++ 和 MFC 的内容?

编辑:我刚刚在尝试将 Unicode 字符串放入字符串表资源时遇到了困难。(据我所知,Unicode 字符串需要使用文本编辑器以 L"0x0034" 形式输入到 .rc 文件中。我还没有找到资源编辑器的方法来做到这一点。)对此有什么建议吗?我可以在 VS2008 中使用 VC++ 和 MFC 使用其他资源吗?

编辑:Microsoft 论坛上的某人建议我在记事本中打开有问题的 .rc 文件,并将其保存为 Unicode。不幸的是,这似乎并没有修复对话框,尽管字符串表似乎可以在日语中使用。

有帮助吗?

解决方案

有很多不仅仅是翻译“字符串”国际化的应用程序。

你的大部分UI都需要进行更新,以考虑到不同的文本长度和语言方向(东西希伯来语,中国,阿拉伯,...)

某些图像也将需要被修改以适应不同的培养物(不幸的是,我没有为一个例子),或者是具象是不同或颜色不适合当地的规格。

我们使用的是像 appTranslator 一种工具来帮助我们做化妆品本地化(UI重新格式化)并用专业的技术翻译的字符串。

其他提示

您还可以创建只资源DLL

请参阅如何为MFC应用程序更多细节创建本地化的资源DLL。

您可以使用以下方式国际化您的应用程序。

将应用程序转换为 unicode 后(您已经这样做了),并且所有字符串都应该从字符串表中加载。

  1. 对于每种语言,您需要更改字符串表并编译

  2. 另一种方法是维护一个 XML 文件,其中包含本地化格式的所有字符串。根据语言加载 xml 和字符串。

下面是我的描述(用于翻译的文本)非常“编码效率”的方法,以拉从字符串表串的CodeProject上的文章: http://www.codeproject.com/KB/string/stringtable.aspx

下面是另一个类,使您的应用选择合适的用户界面语言。它还可以帮助您创建一个语言选择菜单: http://www.codeproject.com/KB/locale/LanguageMenu.aspx

最后但并非最不重要的,appTranslator是一个工具,可以帮助您将应用程序的UI,检测从上一版本中的资源进行了哪些修改,创建翻译EXE或DLL的资源和更多: http://www.apptranslator.com

(注:我appTranslator的作者)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top