作为我的自动化活动的一部分,我想比较两种不同语言的资源dll内容。以下是英文资源的内容:
IDD_DIALOG_M DIALOGEX 0, 0, 474, 278 STYLE DS_SETFONT | DS_FIXEDSYS |
WS_CHILD | WS_CAPTION | WS_SYSMENU CAPTION "I AM DIALOG" FONT 8, "MS
Shell Dlg", 400, 0, 0x1 BEGIN END
中文资源内容成为:
IDD_DIALOG_M DIALOGEX 0, 0, 474, 278 STYLE DS_SETFONT | DS_FIXEDSYS |
WS_CHILD | WS_CAPTION | WS_SYSMENU CAPTION "我是DIALOG" FONT 8, "MS
Shell Dlg", 400, 0, 0x1 BEGIN END
我将用C#或任何特定语言编写工具,并提供两个本地化dll作为输入。一个工具将比较两个资源,如果匹配,则传递两个dll。
答案 0 :(得分:1)
我想您要检查对话框的所有资源组件(控件)是否存在。如果他们有正确的风格。
在C#中编写它可能比在C ++中编写这些东西更复杂;)
比较这有点棘手,因为所有项目都是可变大小。
我在一个类中直接在我的应用程序中使用它,它只在调试版本中执行。因此,在alpha和beta测试中,当资源不按预期运行时,我们立即得到断言。
检查时忽略控件的位置是有意义的。但重要的是类名和样式(style / exStyle成员),因为它们对控件的行为有深刻的影响。
只是一个提示:我们使用名为RC-WinTrans的特殊翻译程序。使用此工具,我们将所有RC文件从一种语言翻译成一种语言。我们总是得到正确格式化的RC文件,并且可以轻松创建相应的附属DLL。