计算机系统中控件与多语言文本动态绑定显示的方法

文档序号:6555502阅读:171来源:国知局
专利名称:计算机系统中控件与多语言文本动态绑定显示的方法
技术领域
本发明涉及计算机技术领域,特别涉及计算机系统控件多语言支持技术领域,具体是指一种计算机系统中控件与多语言文本动态绑定显示的方法。
背景技术
现代的计算机系统中,已经越来越多的支持多语言功能,但是对于控件本身的文本显示信息,要实现多语言的实时切换,是非常困难的。不仅如此,在手机的应用中,经常也会涉及到控件文本的动态变换,比如多语言的切换。
然而,在现有技术中,传统的控件却无法方便的做到文本的动态绑定,必须由应用开发者自己去处理这些琐碎的文本替换工作,这样就大大限制了计算机多语言技术的进一步发展。

发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够根据用户的选择将控件与显示文本进行动态绑定、执行效率较高、定制选择灵活方便、性能稳定可靠、适用范围较为广泛的计算机系统中控件与多语言文本动态绑定显示的方法。
为了实现上述的目的,本发明的计算机系统中控件与多语言文本动态绑定显示的方法如下该计算机系统中控件与多语言文本动态绑定显示的方法,其主要特点是,所述的方法包括以下步骤(1)系统进行初始化操作,并进行多语言控制模块的加载操作,该模块进行数字标识与对应显示文本信息之间的转换;(2)系统根据用户操作将预定义的文本传递给控件;(3)控件检查所述的文本是否属于特定编码,并判断多语言控制模块是否加载成功;(4)如果文本不属于特定编码,或者模块加载不成功,则控件进行普通显示文本保存和显示处理操作;(5)否则,控件将该文本转换成相应的数字标识并保存,然后根据该数字标识调用多语言控制模块取得对应的显示文本信息,并进行保存和显示;(6)系统接收用户的语言种类切换设置请求,并判断多语言控制模块是否加载成功;(7)如果模块加载成功,则对多语言控制模块进行文本语言种类的设置操作,并触发相应的控件;(8)控件判断多语言控制模块是否加载成功;(9)如果模块加载成功,则根据所述的数字标识调用多语言控制模块取得对应的显示文本信息,并进行保存和显示。
所述的多语言控制模块为多语言切换控制功能接口,包括通过数字标识获取显示文本信息的接口、将特定编码格式转换成整型数字值的接口和设置当前文本语言种类的接口。
所述的多语言控制模块的加载操作包括以下步骤(1)系统从预设的指定位置初始化该多语言切换控制功能接口;(2)如果初始化成功,则系统保存相应的模块接口指针;(3)如果初始化失败,则系统设置相应的模块接口指针为空。
所述的判断多语言控制模块是否加载成功包括以下步骤(1)判断系统中所述的模块接口指针是否为空;(2)如果不为空,则返回模块加载成功的结果;(3)反之,则返回模块加载不成功的结果。
所述的根据该数字标识调用多语言控制模块取得对应的显示文本信息包括以下步骤(1)控件根据该数字标识调用多语言控制模块中的通过数字标识获取显示文本信息的接口(2)多语言控制模块查找与该数字标识相对应的显示文本信息,并将该信息返回。
所述的显示文本信息可以存储于系统数据库或者配置文件中。
所述的对多语言控制模块进行文本语言种类的设置操作为系统根据用户选择的语言种类调用多语言控制模块中的设置当前文本语言种类的接口。
所述的触发相应的控件包括以下步骤(1)系统激发一个文本语言种类改变的事件;(2)相应的控件接收该事件并响应。
所述的普通显示文本保存和显示处理操作为将所述的文本直接保存并显示。
采用了该发明的计算机系统中控件与多语言文本动态绑定显示的方法,由于系统中将控件和对应的显示文本信息根据不同的语言种类进行了分离,并在控件中设置了对应于显示文本信息的数字标识,根据设置的语言种类和数字标识利用多语言控制模块进行文本信息的提取,从而实现了控件与多语言文本的动态绑定和显示;同时,该方法不仅执行效率较高,而且用户的定制选择灵活方便,性能稳定可靠,适用范围较为广泛,为计算机系统和手持设备的嵌入式系统的多语言技术的进一步发展奠定了坚实的基础。


图1为本发明的计算机系统中控件与多语言文本动态绑定显示的方法各功能模块工作原理示意图。
图2为本发明的计算机系统中控件与多语言文本动态绑定显示的方法中加载多语言控制模块的工作流程图。
图3为本发明的计算机系统中控件与多语言文本动态绑定显示的方法中控件设置显示文本信息的工作流程图。
图4为本发明的计算机系统中控件与多语言文本动态绑定显示的方法中语言种类切换触发控件的工作流程图。
图5为本发明的计算机系统中控件与多语言文本动态绑定显示的方法中控件响应进行语言种类切换操作的工作流程图。
图6为使用本发明的计算机系统中控件与多语言文本动态绑定显示的方法改造现有控件的运行效果示意图。
具体实施例方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图1至图5所示,该计算机系统中控件与多语言文本动态绑定显示的方法,包括以下步骤(1)系统进行初始化操作,并进行多语言控制模块的加载操作,该模块进行数字标识与对应显示文本信息之间的转换,所述的多语言控制模块为多语言切换控制功能接口,包括通过数字标识获取显示文本信息的接口、将特定编码格式转换成整型数字值的接口和设置当前文本语言种类的接口;所述的多语言控制模块的加载操作包括以下步骤(a)系统从预设的指定位置初始化该多语言切换控制功能接口;(b)如果初始化成功,则系统保存相应的模块接口指针;(c)如果初始化失败,则系统设置相应的模块接口指针为空;
(2)系统根据用户操作将预定义的文本传递给控件;(3)控件检查所述的文本是否属于特定编码,并判断多语言控制模块是否加载成功,该判断包括以下步骤(a)判断系统中所述的模块接口指针是否为空;(b)如果不为空,则返回模块加载成功的结果;(c)反之,则返回模块加载不成功的结果;(4)如果文本不属于特定编码,或者模块加载不成功,则控件进行普通显示文本保存和显示处理操作,该处理操作为将所述的文本直接保存并显示;(5)否则,控件将该文本转换成相应的数字标识并保存,然后根据该数字标识调用多语言控制模块取得对应的显示文本信息,并进行保存和显示,所述的取得对应的显示文本信息包括以下步骤(a)控件根据该数字标识调用多语言控制模块中的通过数字标识获取显示文本信息的接口;(b)多语言控制模块查找与该数字标识相对应的显示文本信息,并将该信息返回,其中所述的显示文本信息可以存储于系统数据库或者配置文件中;(6)系统接收用户的语言种类切换设置请求,并判断多语言控制模块是否加载成功;(7)如果模块加载成功,则对多语言控制模块进行文本语言种类的设置操作,并触发相应的控件,该设置操作为系统根据用户选择的语言种类调用多语言控制模块中的设置当前文本语言种类的接口;该触发相应的控件包括以下步骤(a)系统激发一个文本语言种类改变的事件;(b)相应的控件接收该事件并响应;(8)控件判断多语言控制模块是否加载成功;(9)如果模块加载成功,则根据所述的数字标识调用多语言控制模块取得对应的显示文本信息,并进行保存和显示。
在使用上述方法进行实际实现过程中,需要按照以下步骤进行实施1.接口定义定义ILanguage接口 实现数字ID到字符串之间的转换interface ILanguage{//通过ID设置字符串资源SetText([in]INT nTextID,[in]EzStr esText);
//通过ID获取字符串资源GetText([in]INT nTextID,[out]EzStrBuf esbText);//把特定编码格式转换成整型ID值ConvertToID([in]EzStr esText,[out]INT*pTextID);//获取当前语言IDGetLanguageID([out]INT*pLanguageID);//设置当前语言IDSetLanguage ID([in]INT nLanguageID);}其中各接口的实现过程说明如下●SetText方法可以动态的建立字符串和数字ID的映射关系。
●GetText方法获得数字ID对应的字符串。
●ConvertToID方法将一个特定编码格式转换成一个数字ID,比如,将字符“1234”转换成数字的1234。
●GetLanguageID获得了当前语言的类型,如中文,英文●SetLanguageID设置了当前语言的类型,如中文,英文同时,ILanguage构件本身只是提供一个抽象的接口。用户只要实现该接口的指定语义,就能被系统正确的调用。系统调用方并不关心接口实现方是使用文件或数据,还是从网络,只要返回数字ID对应的字符串就可以了。
接口实现的示例代码片断如下SetText([in]INT nTextID,[in]EzStr esText){//在数据库中添加个映射关系database.add(nTextID,esText);}GetText([in]INT nTextID,[out]EzStrBuf esbText){//从数据库中获得一个映射关系database.get(nTextID,esText);}ConvertToID([in]EzStr esText,[out]INT*pTextID){//返回特定编码格式到数字ID的转换*pTextID=decode(esText);}SetLanguage ID([in]INT nLanguageID){currentLanguageID=nLanguageID;//根据设置的当前语言环境,选择不同的数据库if(nLanguage==CHINESE){database=database_Chinese;}if(nLanguage==ENGLISH){database=database_Englise;}……}GetLanguageID([out]INT*pLanguageID){//返回当前的语言环境return currentLanguageID;}2.定义激发多语言切换事件的接口IGShell接口实现多语言的切换并激发相应的事件Interface IGShell{//设置当前的语言SetLanguage(INT nLanguageID);//注册文本改变事件AddEventHandler([in]INT nEvent,[in]EzDelegate edHandler);//注销文本改变事件RemoveEventHandler( INT nEvent,[in]EzDelegate edHandler);…}3.定义控件的文本切换过程当用户编写图形应用时,会调用控件的SetText方法,设置初始化文本;当设置的文本是一个特殊的字符串时,表示该文本动态绑定。该特殊字符串是由用户自定义,自己解释的。
代码实现片断如下CButton::SetText(Ezstr ezsText){//将该字符转换成数字IDm_nID=pILanguage->ConvertToID(ezsText);if(ValidID(m_nID)){//如果ID有效,就根据该ID转意出相应的字符串pILanguage->GetText(m_nID,m_ezsbCaption);}else{//如果ID无效,则不做转意,直接使用该字符串m_ezsbCaption.Copy(ezsText);}}当用户需要切换控件的文本时,调用IGShell接口的SetLanguage方法,该方法调用成功后,会激发一个LanguageChanged事件,当控件收到该事件后,就会去同步新的文本。
4.定义控件显示文本信息的同步更新过程当控件收到LanguageChanged事件的时候,就从ILanguage接口调用GetText方法,获得新的文本。这样就完成了文本的动态替换。控件下次更新时就使用了新的字符串。
代码实现片断CButton::OnLanguageChanged(){//重新获取文本pLanguage->GetText(m_nID,m_ezsbCaption);}
经过上述的四个步骤的定义和实现过程后,就实现了本发明的计算机系统中控件与多语言文本动态绑定显示的方法的如下工作过程(1)第一步加载多语言模块首先从指定的位置加载多语言模块,如果成功,则保留该接口指针,如果失败,则接口指针为空。
(2)第二步设置控件初始文本当控件初始化时,需要设置一个初始的文本。用户可以将预定义好的特定编码的文本设置给控件,设置文本时,控件检查该文本是否属于特定编码的,如果多语言接口为空,或ConverToID转换失败,则当作普通文本保存起来。
如果检查成功,则将该编码转换成相应的数字ID,并调用多语言接口的GetText方法,得到相应的文本,并保存起来。
(3)第三步运行时设置控件文本该步骤同第二步,需要说明的是,设置新文本时会替换掉原先保存的文本。
(4)第四步语言的切换调用IGShell接口的SetLanguage方法,多语言接口为空,则调用失败,如果SetLanguage调用成功,则该方法就会激发一个文本改变的事件,如果SetLanguage调用失败,则不激发事件。
(5)第五步事件的响应当控件收到该事件时,首先检查多语言接口Ilanguage是否有效,如果无效则不作任何操作,如果有效,则调多语言的GetText方法,如果该函数执行成功,则替换掉原来保留的字符串,如果该函数执行失败,则不做任何操作。
(6)第六步控件的刷新当完成一次语言切换时,控件自己做一次更新,将当前的文本画出来。
再请参阅图6所示,将本发明的方法应用于普通控件中,可以在其中加入动态文本切换功能。对于原先没有设计文本动态切换的控件,可以采用以下方式扩展功能以windows的控件改造为例。
(1)第一步给窗口自定义一个消息WM_TEXTSYNC,表示文本改变事件(2)第二步当文本需要改变时,发送一个WM_TEXTSYNC给相应的窗口(3)第三步当窗口收到该消息后,遍历其子控件,然后获得控件各自保留的特定编码的字符串,根据转换出来后的真正字符串,重新设置子控件的文本,具体如下
●遍历子控件●获得子控件的特定编码字符●利用Ilanguage接口指针调用GetText获得新的文本●重新设置控件文本。
采用了上述的计算机系统中控件与多语言文本动态绑定显示的方法,由于系统中将控件和对应的显示文本信息根据不同的语言种类进行了分离,并在控件中设置了对应于显示文本信息的数字标识,根据设置的语言种类和数字标识利用多语言控制模块进行文本信息的提取,从而实现了控件与多语言文本的动态绑定和显示;同时,该方法不仅执行效率较高,而且用户的定制选择灵活方便,性能稳定可靠,适用范围较为广泛,为计算机系统和手持设备的嵌入式系统的多语言技术的进一步发展奠定了坚实的基础。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
权利要求
1.一种计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的方法包括以下步骤(1)系统进行初始化操作,并进行多语言控制模块的加载操作,该模块进行数字标识与对应显示文本信息之间的转换;(2)系统根据用户操作将预定义的文本传递给控件;(3)控件检查所述的文本是否属于特定编码,并判断多语言控制模块是否加载成功;(4)如果文本不属于特定编码,或者模块加载不成功,则控件进行普通显示文本保存和显示处理操作;(5)否则,控件将该文本转换成相应的数字标识并保存,然后根据该数字标识调用多语言控制模块取得对应的显示文本信息,并进行保存和显示;(6)系统接收用户的语言种类切换设置请求,并判断多语言控制模块是否加载成功;(7)如果模块加载成功,则对多语言控制模块进行文本语言种类的设置操作,并触发相应的控件;(8)控件判断多语言控制模块是否加载成功;(9)如果模块加载成功,则根据所述的数字标识调用多语言控制模块取得对应的显示文本信息,并进行保存和显示。
2.根据权利要求1所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的多语言控制模块为多语言切换控制功能接口,包括通过数字标识获取显示文本信息的接口、将特定编码格式转换成整型数字值的接口和设置当前文本语言种类的接口。
3.根据权利要求2所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的多语言控制模块的加载操作包括以下步骤(1)系统从预设的指定位置初始化该多语言切换控制功能接口;(2)如果初始化成功,则系统保存相应的模块接口指针;(3)如果初始化失败,则系统设置相应的模块接口指针为空。
4.根据权利要求3所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的判断多语言控制模块是否加载成功包括以下步骤(1)判断系统中所述的模块接口指针是否为空;(2)如果不为空,则返回模块加载成功的结果;(3)反之,则返回模块加载不成功的结果。
5.根据权利要求2所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的根据该数字标识调用多语言控制模块取得对应的显示文本信息包括以下步骤(1)控件根据该数字标识调用多语言控制模块中的通过数字标识获取显示文本信息的接口;(2)多语言控制模块查找与该数字标识相对应的显示文本信息,并将该信息返回。
6.根据权利要求5所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的显示文本信息存储于系统数据库或者配置文件中。
7.根据权利要求2所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的对多语言控制模块进行文本语言种类的设置操作为系统根据用户选择的语言种类调用多语言控制模块中的设置当前文本语言种类的接口。
8.根据权利要求1至7中任一项所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的触发相应的控件包括以下步骤(1)系统激发一个文本语言种类改变的事件;(2)相应的控件接收该事件并响应。
9.根据权利要求1至7中任一项所述的计算机系统中控件与多语言文本动态绑定显示的方法,其特征在于,所述的普通显示文本保存和显示处理操作为将所述的文本直接保存并显示。
全文摘要
本发明涉及一种计算机系统中控件与多语言文本动态绑定显示的方法,包括系统进行多语言控制模块加载操作、将预定义的文本传递给控件、控件检查所述的文本是否属于特定编码,并判断多语言控制模块是否加载成功、根据判断结果分别进行普通显示文本保存和显示处理操作或者将该文本转换成相应的数字标识并保存同时根据该数字标识调用多语言控制模块取得对应的显示文本信息行保存并显示、系统根据用户请求进行文本语言种类的设置操作并触发相应的控件、控件调用多语言控制模块取得对应的显示文本信息保存并显示。采用该种计算机系统中控件与多语言文本动态绑定显示的方法,执行效率较高,而且用户的定制选择灵活方便,性能稳定可靠,适用范围较为广泛。
文档编号G06F9/44GK1862488SQ200610027528
公开日2006年11月15日 申请日期2006年6月9日 优先权日2006年6月9日
发明者周华伟, 方华 申请人:上海科泰世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1