您的位置:首页 > 编程语言 > C语言/C++

C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(二)

2017-08-25 08:43 661 查看
       在上一篇”C++ 实现多语言程序开发研究与Xtreme ToolkitPro的使用(一)”博文中提到了使用VS2008创建多语言资源DLL文件,本文将继续讲解MultiLanguageDemo程序的开发。

       参考Xtreme ToolkitPro源码中的MultiLanguage例子,可以发现其中定义了30多种语言,也看到了有一个漂亮的工具条BMP,当然要添加到工程中使用,至于怎么添加,总结一下傻瓜式,快速完事:

在“Resource.h”头文件中添加定义:
#define IDR_LANGBAR 150
在资源文件中添加包含文件:
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDR_LANGBAR             BITMAP                  "res\\langbar.bmp"

在“Resource.h”头文件中添加多国语言定义:(这里必须收藏)
#define XTP_IDC_LANG_ARABIC             35200
#define XTP_IDC_LANG_BULGARIAN          35201
#define XTP_IDC_LANG_CHINESE_PRC        35202
#define XTP_IDC_LANG_CHINESE_TAIWAN     35203
#define XTP_IDC_LANG_CROATIAN           35204
#define XTP_IDC_LANG_CZECH              35205
#define XTP_IDC_LANG_DANISH             35206
#define XTP_IDC_LANG_DUTCH              35207
#define XTP_IDC_LANG_ENGLISH            35208
#define XTP_IDC_LANG_ESTONIAN           35209
#define XTP_IDC_LANG_FINNISH            35210
#define XTP_IDC_LANG_FRENCH             35211
#define XTP_IDC_LANG_GERMAN             35212
#define XTP_IDC_LANG_GREEK              35213
#define XTP_IDC_LANG_HEBREW             35214
#define XTP_IDC_LANG_HUNGARIAN          35215
#define XTP_IDC_LANG_ITALIAN            35216
#define XTP_IDC_LANG_JAPANESE           35217
#define XTP_IDC_LANG_KOREAN             35218
#define XTP_IDC_LANG_LATVIAN            35219
#define XTP_IDC_LANG_LITHUANIAN         35220
#define XTP_IDC_LANG_NORWEGIAN          35221
#define XTP_IDC_LANG_POLISH             35222
#define XTP_IDC_LANG_PORTUGUESE         35223
#define XTP_IDC_LANG_PORTUGUESE_BR      35224
#define XTP_IDC_LANG_ROMANIAN           35225
#define XTP_IDC_LANG_RUSSIAN            35226
#define XTP_IDC_LANG_SERBIAN            35227
#define XTP_IDC_LANG_SLOVAK             35228
#define XTP_IDC_LANG_SLOVENIAN          35229
#define XTP_IDC_LANG_SPANISH            35230
#define XTP_IDC_LANG_SWEDISH            35231
#define XTP_IDC_LANG_THAI               35232
#define XTP_IDC_LANG_TURKISH            35233
#define XTP_IDC_LANG_UKRAINIAN          35234
然后可以开始创建工具栏:
/////////////////////////////////////////////////////////////////////////////
//
// Toolbar
//

IDR_LANGBAR TOOLBAR  16, 15
BEGIN
BUTTON      XTP_IDC_LANG_ARABIC
BUTTON      XTP_IDC_LANG_BULGARIAN
BUTTON      XTP_IDC_LANG_CHINESE_PRC
BUTTON      XTP_IDC_LANG_CHINESE_TAIWAN
BUTTON      XTP_IDC_LANG_CROATIAN
BUTTON      XTP_IDC_LANG_CZECH
BUTTON      XTP_IDC_LANG_DANISH
BUTTON      XTP_IDC_LANG_DUTCH
BUTTON      XTP_IDC_LANG_ENGLISH
BUTTON      XTP_IDC_LANG_ESTONIAN
BUTTON      XTP_IDC_LANG_FINNISH
BUTTON      XTP_IDC_LANG_FRENCH
BUTTON      XTP_IDC_LANG_GERMAN
BUTTON      XTP_IDC_LANG_GREEK
BUTTON      XTP_IDC_LANG_HEBREW
BUTTON      XTP_IDC_LANG_HUNGARIAN
BUTTON      XTP_IDC_LANG_ITALIAN
BUTTON      XTP_IDC_LANG_JAPANESE
BUTTON      XTP_IDC_LANG_KOREAN
BUTTON      XTP_IDC_LANG_LATVIAN
BUTTON      XTP_IDC_LANG_LITHUANIAN
BUTTON      XTP_IDC_LANG_NORWEGIAN
BUTTON      XTP_IDC_LANG_POLISH
BUTTON      XTP_IDC_LANG_PORTUGUESE_BR
BUTTON      XTP_IDC_LANG_PORTUGUESE
BUTTON      XTP_IDC_LANG_ROMANIAN
BUTTON      XTP_IDC_LANG_RUSSIAN
BUTTON      XTP_IDC_LANG_SLOVAK
BUTTON      XTP_IDC_LANG_SLOVENIAN
BUTTON      XTP_IDC_LANG_SPANISH
BUTTON      XTP_IDC_LANG_SWEDISH
BUTTON      XTP_IDC_LANG_THAI
BUTTON      XTP_IDC_LANG_UKRAINIAN
BUTTON      XTP_IDC_LANG_SERBIAN
BUTTON      XTP_IDC_LANG_TURKISH
END
并加入提示文本:
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
XTP_IDC_LANG_ARABIC         "Arabic (Saudi Arabia)"
XTP_IDC_LANG_BULGARIAN      "Bulgarian"
XTP_IDC_LANG_CHINESE_PRC    "Chinese (PRC)"
XTP_IDC_LANG_CHINESE_TAIWAN "Chinese (Taiwan)"
XTP_IDC_LANG_CROATIAN       "Croatian"
XTP_IDC_LANG_CZECH          "Czech"
XTP_IDC_LANG_DANISH         "Danish"
XTP_IDC_LANG_DUTCH          "Dutch"
XTP_IDC_LANG_ENGLISH        "English (United States)"
XTP_IDC_LANG_ESTONIAN       "Estonian"
XTP_IDC_LANG_FINNISH        "Finnish"
XTP_IDC_LANG_FRENCH         "French (France)"
XTP_IDC_LANG_GERMAN         "German (Germany)"
XTP_IDC_LANG_GREEK          "Greek"
XTP_IDC_LANG_HEBREW         "Hebrew"
XTP_IDC_LANG_HUNGARIAN      "Hungarian"
XTP_IDC_LANG_ITALIAN        "Italian (Italy)"
XTP_IDC_LANG_JAPANESE       "Japanese"
XTP_IDC_LANG_KOREAN         "Korean"
XTP_IDC_LANG_LATVIAN        "Latvian"
XTP_IDC_LANG_LITHUANIAN     "Lithuanian"
XTP_IDC_LANG_NORWEGIAN      "Norwegian (Bokmal)"
XTP_IDC_LANG_POLISH         "Polish"
XTP_IDC_LANG_PORTUGUESE     "Portuguese (Portugal)"
XTP_IDC_LANG_PORTUGUESE_BR  "Portuguese (Brazil)"
XTP_IDC_LANG_ROMANIAN       "Romanian"
XTP_IDC_LANG_RUSSIAN        "Russian"
XTP_IDC_LANG_SERBIAN        "Serbian"
XTP_IDC_LANG_SLOVAK         "Slovak"
XTP_IDC_LANG_SLOVENIAN      "Slovenian"
XTP_IDC_LANG_SPANISH        "Spanish (Spain - Modern Sort)"
XTP_IDC_LANG_SWEDISH        "Swedish"
XTP_IDC_LANG_THAI           "Thai"
XTP_IDC_LANG_TURKISH        "Turkish"
XTP_IDC_LANG_UKRAINIAN      "Ukrainian"
END
这里继续收藏下“简体中文”的提示文本:
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE DISCARDABLE 
BEGIN
    XTP_IDC_LANG_ARABIC         "阿拉伯语(沙特阿拉伯)"
XTP_IDC_LANG_BULGARIAN      "保加利亚语"
    XTP_IDC_LANG_CHINESE_PRC    "中文(中国)"
    XTP_IDC_LANG_CHINESE_TAIWAN "中文(台湾)"
    XTP_IDC_LANG_CROATIAN       "克罗地亚语"
    XTP_IDC_LANG_CZECH          "捷克语"
    XTP_IDC_LANG_DANISH         "丹麦语"
    XTP_IDC_LANG_DUTCH          "荷兰语"
    XTP_IDC_LANG_ENGLISH        "英语(美国)"
    XTP_IDC_LANG_ESTONIAN       "爱沙尼亚语"
    XTP_IDC_LANG_FINNISH        "芬兰语"
    XTP_IDC_LANG_FRENCH         "法语"
    XTP_IDC_LANG_GERMAN         "德语(德国)"
    XTP_IDC_LANG_GREEK          "希腊语"
    XTP_IDC_LANG_HEBREW         "希伯来语"
    XTP_IDC_LANG_HUNGARIAN      "匈牙利语"
    XTP_IDC_LANG_ITALIAN        "意大利语(意大利)"
    XTP_IDC_LANG_JAPANESE       "日语"
    XTP_IDC_LANG_KOREAN         "朝鲜语"
    XTP_IDC_LANG_LATVIAN        "拉脱维亚语"
    XTP_IDC_LANG_LITHUANIAN     "立陶宛语"
    XTP_IDC_LANG_NORWEGIAN      "挪威语(博克马尔语)"
    XTP_IDC_LANG_POLISH         "波兰语"
    XTP_IDC_LANG_PORTUGUESE     "葡萄牙语(葡萄牙)"
    XTP_IDC_LANG_PORTUGUESE_BR  "葡萄牙语(巴西)"
    XTP_IDC_LANG_ROMANIAN       "罗马尼亚语"
    XTP_IDC_LANG_RUSSIAN        "俄语"
    XTP_IDC_LANG_SERBIAN        "塞尔维亚语"
    XTP_IDC_LANG_SLOVAK         "斯洛伐克语"
    XTP_IDC_LANG_SLOVENIAN      "斯洛文尼亚语"
    XTP_IDC_LANG_SPANISH        "西班牙语(西班牙 - 现代风格)"
    XTP_IDC_LANG_SWEDISH        "瑞典语"
    XTP_IDC_LANG_THAI           "泰语"
XTP_IDC_LANG_TURKISH        "土耳其语"
    XTP_IDC_LANG_UKRAINIAN      "乌克兰语"
END
       为了清楚地看到生成不同的资源文件是否相同,可以查看XML文件或者DLL是否除了语言不同之外,其他的都相同,特别是ID。对于DLL和XML的互换,Xtreme
ToolkitPro提供了一个很好的工具,ResourceEditor.exe,可以在源码目录中Xtreme ToolkitPro v15.2.1\Utils看到,当然,本人还是比较喜欢用Beyond Compare这个工具比较两个文件的不同之处:



可以看出,除了语言的提示文本不一样之外,其他的都一致,这样就可以很方便地根据自己需要的语言进行修改。
     关于MultiLanguageDemo程序的语言定义就讲解到此,将在下一篇继续介绍在程序中动态添加语言资源DLL文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐