Xtreme.Toolkit.Pro v11.2.1漢化方法

來源:互聯網
上載者:User

環境:Xtreme.Toolkit.Pro v11.2.1+vs2008sp1

在工作中用到了CXTPCommandBars,但是按照預設的,是英文的,這樣拿給客戶,肯定是不行的,所以需要改成中文。我想著改一下資源檔裡面的內容(我理解就是改一下宏)。這樣改了以後,發現中文會出現亂碼。然後我設想設定一下setlocale,但是,事實證明,我這個拍腦袋的想法行不通。最後,認真查看了資料,發現其實Xtreme本身就提供了多語言的支援,不需要自己改資源檔,已經有現成的資源檔了。

現在,開始我們的漢化。

一、開啟ToolkitPro_vc90.sln項目,然後查看ToolkitPro.rc原始碼,拉到檔案最後,會發現如下的定義:

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "XTToolkitPro.rc" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif

  代碼中定義包含的檔案"XTToolkitPro.rc"  是在Toolkit.Pro的Source檔案夾下的,"XTToolkitPro.rc"  檔案集中定義的是介面庫各種控制項的資源檔。

二、開啟"XTToolkitPro.rc"檔案,我們發現檔案開頭幾行定義說明了一切問題。

#define LANGUAGE_DEFAULT(ProdName) <##ProdName##\res\Resource.rc>

#ifdef _XTP_RESOURCE_LANGUAGE
#define LANGUAGE_LOCALIZED__(ProdName, LangName) <##ProdName##\res\Resource_##LangName##.rc>
#define LANGUAGE_LOCALIZED_(ProdName, LangName) LANGUAGE_LOCALIZED__(ProdName, LangName)
#define LANGUAGE_LOCALIZED(ProdName) LANGUAGE_LOCALIZED_(ProdName, _XTP_RESOURCE_LANGUAGE)
#else
#define LANGUAGE_LOCALIZED(ProdName) LANGUAGE_DEFAULT(ProdName)
#endif

  #define LANGUAGE_DEFAULT(ProdName) <##ProdName##\res\Resource.rc>      定義了預設的語言

#ifdef _XTP_RESOURCE_LANGUAGE

    定義的標識_XTP_RESOURCE_LANGUAGE可以看出定義的即是語言的標識。那麼只要在程式庫中定義該標識就可以使介面庫應用相對應的語言資產庫了。

三、開啟Source檔案下每個控制項的檔案夾下都可以看到許多尾碼為.rc的資源檔


由資源檔的名稱(Resource_zh_CN.rc),再由定義 

#define LANGUAGE_LOCALIZED__(ProdName, LangName) <##ProdName##/res/Resource_##LangName##.rc>

可以很容易猜得到中文的定義為zh_CN,自然可知定義中文的語句即為:

#define _XTP_RESOURCE_LANGUAGE zh_CN

這個定義我習慣放在XTToolkitPro.rc檔案的開頭

#include "afxres.h"

#define _XTP_RESOURCE_LANGUAGE zh_CN

#define LANGUAGE_DEFAULT(ProdName) <##ProdName##\res\Resource.rc>

#ifdef _XTP_RESOURCE_LANGUAGE
#define LANGUAGE_LOCALIZED__(ProdName, LangName) <##ProdName##\res\Resource_##LangName##.rc>
#define LANGUAGE_LOCALIZED_(ProdName, LangName) LANGUAGE_LOCALIZED__(ProdName, LangName)
#define LANGUAGE_LOCALIZED(ProdName) LANGUAGE_LOCALIZED_(ProdName, _XTP_RESOURCE_LANGUAGE)
#else
#define LANGUAGE_LOCALIZED(ProdName) LANGUAGE_DEFAULT(ProdName)
#endif

  當然也可以放在其他地方,只要在#ifdef _XTP_RESOURCE_LANGUAGE之前就好了。

四、在ToolkitPro.rc檔案中找到

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

修改為

LANGUAGE  LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

五、重新編譯一下,就可以使用了。

註:我的編譯後有一個函數使用的時候有點問題,不保證編譯後,E文正確的中文也正確。本來想把漢化好的bin和lib分享給大家,無奈檔案太大了,還好這個漢化的步驟不複雜,大家應該都可以成功。如果有問題,歡迎大家留言交流




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.