使MFC应用程序国际化

时间:2009-02-18 15:36:31

标签: visual-c++ mfc internationalization vc6

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

到目前为止,我偶尔会发现如何处理Visual C ++版本6,其中一个提到MFC的更高版本具有其他相关功能。搜索MSDN向我提供了有关如何将应用程序转换为Unicode的说明,我们已经这样做了。我在MSDN上没有发现任何关于如何使用Unicode的语言多语言,只有少数使用谷歌的旧语言,以及一本关于使用VC ++ 6进行国际化的书籍。 (我们现在在XP和Vista上使用Visual Studio 2008。)

我没有声称我的Google-fu的力量,并且很乐意接受我错过的事情。

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

如果我应该在晚些时候使用功能,我在哪里可以找到它们的参考?

除了设置区域设置,将所有字符串转换为资源以及使用不同语言复制资源之外,还有其他问题吗?

我可以找到更多关于.NET国际化的内容,但我对.NET缺乏经验。我会在那里发现哪些适用于VC ++和MFC?

编辑:我在尝试将Unicode字符串放入String Table资源时遇到了困难。 (据我所知,Unicode字符串需要使用文本编辑器以L“0x0034”形式输入.rc文件。我没有找到资源编辑器的方法来做到这一点。)有关于此的任何提示吗?我可以使用VC ++和MFC在VS2008中使用的任何其他资源吗?

编辑:微软论坛上有人建议我在记事本中打开有问题的.rc文件,并将其保存为Unicode。不幸的是,这似乎没有修复对话框,尽管stringtable似乎是用日语工作的。

4 个答案:

答案 0 :(得分:3)

除了翻译“字符串”以使应用程序国际化之外,还有很多其他内容。

您的大部分用户界面都需要更新,以考虑不同的文字长度和语言方向(事物希伯来语,中文,阿拉伯语......)

某些图像也需要更改以适应不同的文化(遗憾的是,我没有这方面的例子),要么比喻不同或颜色不符合当地规格。

我们正在使用像appTranslator这样的工具来帮助我们进行整形本地化(UI重新格式化),并使用专业的技术翻译来完成字符串。

答案 1 :(得分:2)

您还可以创建资源dll

有关详细信息,请参阅How To Create Localized Resource DLLs for MFC Application

答案 2 :(得分:1)

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

将应用程序转换为unicode(您已经完成)并且应该从String表中加载所有字符串。

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

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

答案 3 :(得分:0)

这是我的一篇CodeProject文章,它描述了从字符串表中提取字符串的非常“编码效率”方法(可翻译文本所需): http://www.codeproject.com/KB/string/stringtable.aspx

这是另一个帮助您的应用选择正确的UI语言的课程。它还可以帮助您创建语言选择菜单: http://www.codeproject.com/KB/locale/LanguageMenu.aspx

最后但同样重要的是,appTranslator是一个工具,可以帮助您翻译应用的UI,检测自上一版本以来对资源所做的更改,创建翻译的exe或资源DLL等等: http://www.apptranslator.com

(注意:我是appTranslator的作者。)