您的位置:首页 > 其它

BCGControlBar本地化(汉化)详解

2017-11-20 10:15 288 查看
转载自:https://www.evget.com/article/2012/6/18/17004.html

概述:BCGControlBar本地化机制提供了一个创建多语言应用程序的非常简单和可靠的方法。本文将为你详细介绍如何进行BCGControlBar本地化(汉化)。

BCGControlBar本地化机制提供了一个创建多语言应用程序的非常简单和可靠的方法。

BCGControlBar语言包文件:

本地化文件位于BCGCBPro\L.*目录中,其中* - 语言名称前缀(FRA - 法国,ITA - 意大利,...)。特定语言资源DLLs位于BCGControlBar\Bin目录下:
 BCGCBProResCHS.dll Chinese BCGCBProResITA.dll Italian
 BCGCBProResCSY.dll Czech BCGCBProResJPN.dll Japanese
 BCGCBProResDEN.dll Danish BCGCBProResKOR.dll Korean
 BCGCBProResDEU.dll German BCGCBProResPTG.dll Portuguese
 BCGCBProResDUT.dll Dutch BCGCBProResROM.dll Romanian
 BCGCBProResELL.dll Greek BCGCBProResRUS.dll Russian
 BCGCBProResESP.dll Spanish BCGCBProResSKY.dll Slovak
 BCGCBProResFRA.dll French BCGCBProResSLV.dll Slovenian
 BCGCBProResHUN.dll Hungarian BCGCBProResTRK.dll Turkish
BCGControlBar DLL本地化:
请将以下成员加入到您的应用程序类中:  

HINSTANCE m_hinstBCGCBProRes;
在应用的InitiInstance()中添加DLL资源初始化:  

m_hinstBCGCBProRes = LoadLibrary (_T("BCGCBProRes***.dll"));    // *** - language

BCGCBSetResourceHandle (m_hinstBCGCBProRes);
卸载ExitInstance中的DLL资源:  

FreeLibrary (m_hinstBCGCBProRes);

BCGControlBar静态库本地化:
在该项目的“Resource Includes”对话框(View | Resource Includes)修改  
#include "BCGCBPro.rc"
为:
#define _BCGCBPRO_STATIC_
#include "L.***\BCGControlBar.rc" // *** language
#pragma code_page(code)
例如: 
#define _BCGCBPRO_STATIC_
#include "L.FRA\BCGControlBar.rc"
#pragma codepage(1252)

如何将库资源翻译成新语言?
在BCGControlBar目录下,创建新的子目录叫做“L.***”,其中“***”是语言的名称前缀;
从任何其他现有的语言目录复制下列文件: 

BCGCBRes.dsp 

BCGCBRes.dsw 
从BCGControlBar目录复制BCGCBPro.rc(英语资源)。将它重新命名为BCGControlBar.rc;
在Visual C++中,打开BCGCBRes项目;
删除资源的版本信息;
将DLL输出的文件名​​更改为“..\..\bin\BCGCBProRes***.dll”(*** - 表示语言名称的前缀);
转换对话框,字符串和菜单资源;
创建项目。因为BCGControlBar.rchas参考的BCGControlBar的共同资源(位图,图标和光标),会要求你创建“RES”子目录。这是Visual Studio资源编辑器的一个问题 - 它不解析从项目设置以正确的方式获得路径。只需回答是,L.***\res就会被创建。当资源文件创建完成后(静态和DLL模式),将采用正确的RES路径(BCGControlBar dir\RES)。语言资源DLL将被放置到BIN目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息