- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CnPack多语组件包概要计划说明书
CnPack多语组件包概要设计说明书
作者:刘啸(liuxiao@)、Riceball
部门:CnPack开发组 专家组/不可视工具组 设计员
类别:组件包设计
版本:V
创建:2004.07.12
修改:2007.11.11
引 言
编写目的
本文档描述了CnPack组件包中的多语组件包的概要设计内容。预期的读者为对CnPack开发组中对Delphi开发有一定掌握程度的成员,或意欲使用该多语组件包对自己的应用程序进行多语化的开发人员。另外因为CnPack IDE 专家包使用了该多语组件包,因此CnPack专家组相关开发人员也应该阅读此文档以掌握专家包开发中多语组件包的使用与多语条目的管理方法。
背景
开发多语包的背景:
由于国际化的大势所趋,CnPack IDE 专家包的多语功能迫在眉睫,所以要求尽快完成灵活方便的多语功能。CnPack IDE 专家包的许多功能已经基本定型。
补充此文档时的背景:
多语包已经开发完成并且顺利应用在CnPack IDE专家包中。专家包的多语功能除了翻译条目有些许不准确之外基本无问题。^_^
定义
多语包/CnMultiLang:CnPack组件包的一个相对独立的子部分,由几个实现多语功能的组件组成,可单独安装,也可以随CnPack组件包一起安装。
多语条目/语言条目:对应着不同语种的字符串,供多语包管理检索,并能被加载并显示到软件界面上去。
多语存储文件:保存某语言条目的文件,在我们的多语包中,一个文件保存且只保存一种语言的所有条目。
翻译能力:能对其他对象进行属性字符串轮询并查找替换的能力,并非指人工智能中的自动将一种语言条目翻译成另外一种语言条目。
多语化/本地化:对应用程序的代码进行处理,以使它能方便地切换到另外一种语言,或使它具有这种切换语言的能力。
参考资料
编写本文件用到的参考资料:
riceball的前期设计:《多语包前期设计文档.chm》,其中多语存储、多语管理的思想来自此。LiuXiao在实现的过程中对设计进行了一些改动。
阅读本文件时需要对照查阅的参考资料:
CnHashMap.pas单元,作者:PanYin。
总体设计
需求规定
以下内容根据多语组件包的需要编写。
功能描述
该多语组件包能够替现有的Delphi工程加入多语翻译的能力。一个工程所具有的翻译能力应该包括三部分:语言条目的存储能力、运行期切换语言的能力和设计期支持的能力。本组件包基本上能完成所提到的功能。
多语组件包允许用户在设计期遍历窗体或工程,针对它们生成所有对象所有字符串属性的条目列表,并可将条目列表存储入多语存储文件中。同样的方法可以生成多个多语存储文件,每个文件代表工程中的一种语言。运行期修改多语文件即可达到通过切换语言来修改界面字符串的目的,而无需重新编译程序。
运行期切换语言的功能主要包括:遍历所有窗体,遍历每一个窗体上的每一个对象的每一个字符串属性,并从多语文件中查找其对应的翻译条目来进行替换。同时,对一些特殊的控件和其下属对象如TreeView/TreeNode、ListView/ListItem等提供翻译控制处理。
字体支持方面,多语包能自动替ParentFont为False的控件生成字体字符串,如果用户需要在不同的语言间切换时使用不同的字体,在多语文件中对字体字符串进行编辑即可。
另外,对对象的翻译也不仅仅是出现在手工进行语言切换的时候。比如主窗体切换语言后又需要创建新窗体时,如果新窗体需要和主窗体的语言保持一致,则需要在新窗体的创建事件里头进行一次自我翻译。工程可以使用基类窗体的方式对多语切换进行统一处理。
再者,多语包提供对源码中的字符串变量的翻译支持,不过变量列表和其翻译值需要用户手工加入多语存储组件中。
最后,多语包提供语言切换的通知事件,用户可在切换事件中写代码进行自己所需要的特殊处理。
总的说来,用户需要手工做的最大部分是对多语存储文件进行翻译,其他的体力活儿,多语包力争自动完成。
性能要求
多语组件包的语言切换性能主要取决于工程规模的大小和切换过程中所实现的内容,如果单纯对于切换多个Form上的所有对象来说,一般从载入语言条目到切换的时间不会超过1到2秒钟。
切换时间由三个子部分组成:切换语言时从文件中载入语言条目到内存的时间;遍历对象进行切换的时间和应用程序响应多语切换事件所进行的自定义操作时间。其中前二者由工程规模和窗体规模确定,后者则由工程的架构和需求所决定。如CnPack IDE专家包目前的0.6.x版本中,多语切换后会释放并重新创建所有菜单专家的子菜单,所以耗时比较多,导致切换语言速度有些慢,这点已在专家框架部分升级后解决。
数据管理能力要求
多语组件包在设计期能实现对多语条目的保存,在运行期能实现动态载入并在内存中整理成以备翻译时快速查找条目的数据结构。目前多语
您可能关注的文档
- CASS实验报告.doc
- CASS鼠标号令.doc
- CAST BISEE基金指南1.doc
- CAU新观点手机发布会策划.doc
- CATIA三维实体设计实例的外型基本流程.doc
- CAQ注册六西格玛绿带学问大纲.doc
- CAXA实体计划教学大纲.doc
- CAXA实体设计应用常见的题目以及解决方法.doc
- CAXA螺旋桨三维实体疾速设计方法.doc
- CA零碎应用安全解决方案.doc
- 师缘主题课件最新完整版本.pptx
- 基于偏好MOEA_D算法的气发动机多目标优化标定研究.pdf
- 师范技能课件比赛一等奖最新完整版本.pptx
- 师范生初中美术说课课件最新完整版本.pptx
- 师范技能课件图片素材库最新完整版本.pptx
- Unit 2 Making a Difference Understanding ideas The Well that changed the world 教学设计-高中英语外研版(2019)必修第三册.docx
- 师范生技能大赛PPT课件语文最新完整版本.pptx
- 基于扭矩的双燃料发动机控制策略研究.pdf
- 1.2.1 等差数列的概念及其通项公式(教学设计)高二数学(北师大版2019选择性必修第二册).docx
- 师范文化课件最新完整版本.pptx
文档评论(0)