使用MSWin资源进行国际化(对话框/菜单/字符串)

时间:2011-03-28 02:31:06

标签: c++ windows winapi localization internationalization

我想知道i18n人们通过资源编译器发现对于通常包含在本机C ++ / WTL MSWin应用程序中的Windows项目有用的方法是什么?

我有一些经验,尽管大约在2005年,使用“传统”方法来处理这些事情,粗略地说:复制资源文件并翻译成另一种语言,对话框和所有。我对此的体验是,它有点痛苦。非常感谢有关积极体验的反馈以及如何实现这些体验。

我也有一些GNU gettext的经验,这似乎可以更好地将开发人员的关注点与翻译者的关注点分开。不幸的是,我认为在Windows环境中使用GNU gettext意味着放弃Visual Studio中内置的有用工具来生成应用程序菜单和对话框等。任何有关如何克服这些内容的建议都将不胜感激。

我有一个特别关注的问题是,MSWin没有/使用任何布局管理器(我知道)。这意味着将对话框转换为另一种语言可能需要对对话框进行维度更改,以适应由于翻译而导致的文本空间要求的任何增加或减少。

关于方法的任何其他建议也将受到赞赏。

1 个答案:

答案 0 :(得分:1)

Windows本身没有任何布局管理器,但有一些用于Windows的UI库。仅举一个明显的例子,Qt使得i18n比直接使用Win32 API简单得多。它具有网格布局,流程布局等管理器。它还具有直接支持翻译的类,包括将在翻译文件中查找翻译的QTranslator类,直接支持不同文本表示之间的转换等。