cnpack多语组件帮助部门CnPack开发不可视管理员_第1页
cnpack多语组件帮助部门CnPack开发不可视管理员_第2页
cnpack多语组件帮助部门CnPack开发不可视管理员_第3页
cnpack多语组件帮助部门CnPack开发不可视管理员_第4页
cnpack多语组件帮助部门CnPack开发不可视管理员_第5页
已阅读5页,还剩10页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CnPack多语组件帮助文档作者: )CnPack开发组不可视组件开发组管理员类别:帮助文档V2006.09.28一、引言1 CnPackCnPack组件包中的一个重要组成部分,主要用来用来实现多语言界面。不大。本文档提供了CnPack多语组件包中的几个组件的详细帮助信息。2 CnPack组件包一起安装。3 二、TCnLangMgr组件1 TCnLangMgr是到组件板的多语管理器组件,主要用来提供翻译窗体界面等的功能。它能连接到一多语组件。设置多语管理器的LanguageIndex可触发当前语言的改变,多语管理器可将当前语言改变的传入多语组件,待多语组件装载当前语言条目成功后,从多语组件中当前语言的条目并进行窗体界面等的翻译。同时多语管理器还提供一些属性、方法和用来进行其他的翻译控制。TagTag2001时,翻译中将忽略此组件以及2 3 propertyLanguageStorage:propertyCurrentLanguageIndex:当前语言号索引,影响到整个程序的语言设置。语言号含义由组件的条目内容决propertyAutoTranslate:布尔属性,控制是否在当前语言号改变后自动翻译已经存在的窗体和其他内容。可读写。propertyTranslationMode:TCnTranslationMode;TCnTranslationMode=( ponents,tmByStrings);翻译模式,控制根据窗体和控件等遍历还是根据翻译字符串内容遍历,前者是递规搜索界面字符串并去多语组件中寻找翻译条目,后者是遍历多语组件中的字符串条目并定位到界面进行翻译。默认为前者。可读写。propertyAutoTransOptions:TCnAutoTransOption;TCnAutoTransOption=(atApplication,atForms,atDataModules);TCnAutoTransOptions=setofTCnAutoTransOption;自动翻译时的选项,当自动翻译属性AutoTranslateTrue时,控制是否翻译现存的窗体、数据模块和Application实例,默认三者都参与翻译。可读写。property istItem:布尔属性,控制翻译过程中是否翻译ListView中的ListItem,默认为TruepropertyTranslateTreeNode:布尔属性,控制翻译过程中是否翻译TreeView中的TreeNode,默认为True。可读写。propertyUseDefaultFont:布尔属性,控制是否翻译完窗体后使用DefaultFont属性来设置窗体字体。默认为True。可读写。propertyTranslateOtherFont:布尔属性,控制翻译过程中是否将除TControl.Font外的其他的Font属性翻译成字符串。默认为False。可读写。propertyIgnoreAction:布尔属性,控制翻译过程中是否翻译Action属性不为空的控件的CaptionHint属性。因为连接了Action的组件自身的CaptionHint等属性,通常都由对应的Action控制,不需要单独设置,所以此属性默认为True。可读写。4 functionTranslate(Src:string):string;功能:根据当前语言和字符串标识从多语组件中获得翻译的字符串返回值:翻译的字符串值,无多语组件或当前语言条目中无此标识则返回空。参数:Src:string;functionTranslateString(Src:string):string;功能:根据当前语言和字符串标识从多语组件中获得翻译的字符串返回值:翻译的字符串值,无多语组件或当前语言条目中无此标识则返回空。参数:Src:string;functionTranslateStrFmt(Src:string;Args:arrayofconst):string;功能:根据当前语言和字符串标识从多语组件中获得翻译字符串,然后将此字符串作为格式字符串,将后续参数填入后返回。返回值:翻译并格式化后的字符串值,无多语组件或当前语言条目中无此标识则返回空。参数:Src:string;Args:arrayofconst;FormatFormat功能:递规翻译一个Form及其子对象和属性。参数:AForm:TCustomForm; ponent(AComponent:constBaseName:string=功能:翻译一个组件及其子对象属性。AComponent:TComponent;constBaseNamestring;procedureAddChangeNotifier(Notify:TNotifyEvent);TNotifyEvent=procedure(Sender:TObject)ofobject;Notify:TNotifyEvent;待添加的处理函数,也就是方法名procedureRemoveChangeNotifier(Notify:TNotifyEvent);TNotifyEvent=procedure(Sender:TObject)ofobject;功能:删除已经增加过的语言改变时后的通知。删除该后,语言改变后此不再Notify:TNotifyEvent;待删除的处理函数,也就是方法名5 propertyOnStorageChanged:TNotifyEvent;TNotifyEventprocedure(SenderTObjectofobject;组件属性LanguageStorage改变时触发。参数:SenderTObject;propertyOnLanguageChanged:TNotifyEvent;TNotifyEventprocedure(SenderTObjectofobject;当前语言索引号改变后触发。参数:SenderTObject;propertyOnTranslateObject:TCnTranslateObjectEvent;TCnTranslateObjectEvent=procedure(AObject:TObject;varTranslate:Boolean)of开始翻译一对象时触发,用户可控制是否翻译此对象。注意此仅当翻译模式是以控件为根据( ponents)时触发。参数:AObjectTObject;varTranslateBoolean;propertyOnTranslateObjectProperty:TCnTranslateObjectPropertyEvent;TCnTranslateObjectPropertyEvent=procedure(AObject:TObject;constPropName:string;varTranslate:Boolean)of开始翻译一对象的某个属性时触发,用户可控制是否翻译此对象的此属性。参数:AObjectTObject;constPropNamestring;varTranslateBoolean;6 functionCnLanguageManager:procedureCreaanguageManager(AOwnerTComponentnil);AOwnerTComponent;OwnerprocedureTranslateStr(varSrcStr:string;constIDStr:SrcStr保持不变。varSrcStr:string;constIDStr:string;procedureTranslateStrArray(varStrArray:arrayofstring;constIDStr加数组下标的形式。varStrArray:arrayofstring;constIDStr:string;7 propertyCurrentLanguageIndex:此属性的属性编辑器能下拉当前组件的语言条目ID和名称等供直观选择,如无多语三、TCnLangTranslator组件1 2 3 4 5 6 窗体翻译管理器上部是。左边的树状结构显了当前窗体上的多语组件及其语言条(黑体的语组件示它是语管理所连接语 组件黑体的言条目示是当语言string属性。制到“翻译后文本”中。注意“原文”是不保存到多语组件中的。保存:将当前翻译栏目中的字符串保存到多语组件中。切换左边语言前请注意是否保存当四、TCnCustomLangStorage基类1 供了一些基础的属性方法等供多语管理器,包括、加载多语条目,改变当前语言等,同时2 CnLangStorage.pas多语基类的实现单元CnLangEditors.pas3 propertyCurrentLanguage:propertyCurrentLanguageIndex:propertyDefaultFont:propertyDefaultLanguageID:IDpropertyFontInited:propertyLanguageCount:propertyLanguages:4 procedureAddLanguage(ALanguageID:IDALanguageID参数。ALanguageID:LongWord;IDfunctionGetString(Name:string;varValue:string):Boolean;;:;orm1CaptionvarValuestring;procedureGetNamesList(List:TStrings); ListTStrings;Strings中,Strings中原有的procedureClearCurrentLanguage; functionLoadCurrentLanguage:Boolean; 功能:抽象方法,可以是从介质中载入当前语言条目,为翻译字串做准备。子类可视需要procedureSaveCurrentLanguage; procedureSetString(Name,Value:string); :;orm1CaptionValuestring;1function tor: tor;功能:抽象方法,获得一条目的遍历器接口实例,如果子类不支持按条目遍历,则必须返回nil。5 propertyOnLanguageChanged:ofSender:TObject;多语组件本身ALanguageIndex:Integer;propertyOnLanguageChanging:TLanguageChangingEvent;TLanguageChangingEvent=procedure(Sender:TObject;ALanguageIndex:Integer;varAllowChange:Boolean)ofSender:TObject;多语组件本身ALanguageIndex:Integer;次改变被,当前语言号保持不变。6 propertyLanguages:双击多语组件,可弹出Languages属性的Collection编辑器供编辑语言条目五、TCnCustomLangFileStorage基类1 TCnCustomLangFileStorage是所有基于文件方式的多语组件的基础类,其自身并 下的“语言ID” 下比如英语的存可于1033子 下不同语言的语言文件的文件名相同, 2 CnLangStorage.pasCnLangEditors.pas3 propertyStorageMode:TCnStorageMode;TCnStorageMode=(smByFile,smByDirectory);该多语组件的文件类型按同 下多文件还是不 下的同一文件名propertyLanguagePath:所有语言文件的统一 “C:\LangpropertyFileName:多语文件 propertyAutoDetect:LanguagePath改变时是否自动搜索检测 4 functionGetCurrentLanguageFileName:string;classfunctionGetLanguageFileExt:string;functionIsLanguageFile(constFileName:string):Boolean;;1.constFileNamestring;5 6 propertyLanguagePath: 六、TCnHashLangFileStorage组件1 TCnHashLangFileStorage是到组件板上的、基于TXT文件和Hash方式管理多语条目的多语组件,它了HashMap来管理和搜索多语条目,因此具有较快的速度。2 3 propertyListLength:propertyIncSize:4 5 七、TCnIniLangFileStorage组件1 TCnIniLangFileStorage是到组件板上的、基于INI文件的多语组件,它继承自TCnHashLangFileStorageHashMap来管理条目,而外部接口使用的是VCL中封装的INI读写过程,因此在工程稍大时读写效率稍许低下一些。TCnIniLangFileStorage的INI格式规定如下:以感叹号!开头的内部条目于[!Global]符串条目自成一节,节名为窗体类名或DataModule类名。2 3 4 5 八、 LanguageItem1 LanguageItem用于在多语组件中管理语言条目,为从此两类的实例。前者的属性方法等和普通Collection类似,因此此处不赘述,只列出TCnLanguageItem类的各项信息。2 CnLangCollection.pas3 propertyAbbreviation:propertyAuthor:property :propertyLanguageID:该语言的IDpropertyLanguageName:propertyLanguageFileName:可用的保存文件名供多语言组件使用,以文件方式时其结果有效。可读写。在设propertyLanguageDirName: 被自动设置为该语言的LanguageID。propertyD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论