Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用MSWin资源进行国际化(对话框/菜单/字符串)_C++_Windows_Winapi_Localization_Internationalization - Fatal编程技术网

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

C++ 使用MSWin资源进行国际化(对话框/菜单/字符串),c++,windows,winapi,localization,internationalization,C++,Windows,Winapi,Localization,Internationalization,我想知道,对于通常通过资源编译器包含在本机C++/WTL MSWin应用程序中的windows项目,人们发现什么样的i18n方法有用 我有一些处理这些事情的经验,尽管大约是在2005年,粗略地说,是“传统”方法:复制资源文件并翻译成另一种语言、对话框等等。我的经验是这有点痛苦。如果您有任何关于积极经验以及如何实现这些经验的反馈,我们将不胜感激 我也有过一些GNU gettext的经验,它似乎在将开发人员的关注点与翻译人员的关注点分开方面做得更好。不幸的是,我认为在windows环境中使用GNU

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

我有一些处理这些事情的经验,尽管大约是在2005年,粗略地说,是“传统”方法:复制资源文件并翻译成另一种语言、对话框等等。我的经验是这有点痛苦。如果您有任何关于积极经验以及如何实现这些经验的反馈,我们将不胜感激

我也有过一些GNU gettext的经验,它似乎在将开发人员的关注点与翻译人员的关注点分开方面做得更好。不幸的是,我认为在windows环境中使用GNU gettext将意味着放弃Visual Studio中内置的用于生成应用程序菜单和对话框等的有用工具。请提供有关如何克服这一问题的任何建议

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


如果您对该方法有任何其他建议,我们也将不胜感激。

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

Qt的i18n模型通常比本机windows更好。但是,我确实希望避免重写:(