2009-02-18 69 views
3

我在这里有几个大的MFC应用程序,并将它们转换为任何其他格式是不成问题的。我们正在扩展到其他市场,并希望使这些应用程序可以用其他语言和文化进行工作。制作MFC应用程序国际版

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

我对Google-fu的实力没有任何要求,并且很乐意指向我错过的东西。

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

如果我应该使用比这更晚的功能,我可以在哪里找到对它们的引用?

除了设置语言环境,将所有字符串转换为资源以及使用不同语言复制资源之外,是否还有其他需要担心的问题?

我可以找到更多关于.NET国际化的东西,但我对.NET没有经验。我会发现那里适用于VC++和MFC?

编辑:我只是遇到了困难,试图把Unicode字符串放入字符串表资源。 (据我所知,Unicode字符串需要用文本编辑器输入到.rc文件中,格式为L“0x0034”。我还没有找到一种资源编辑器的方式来做到这一点)。我可以在VS2008中使用VC++和MFC使用其他资源吗?

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

回答

3

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

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

一些图像也需要更改以适应不同的文化(不幸的是,我没有这方面的例子),或者图形是不同的或者颜色不符合当地的规格。

我们使用类似appTranslator的工具来帮助我们完成化妆品定位(UI重新格式化)并使用专业技术翻译器处理字符串。

+0

呀,买appTranslator和阅读文档。这会给你你需要的一切。 – Roel 2009-02-20 13:32:00

+0

@Roel appTranslator已不存在。对新应用程序有任何想法? – 2016-12-30 17:44:48

1

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

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

  1. 对于需要修改字符串表和编译

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

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的作者。)