用户界面的多语言切换方法和装置的制作方法

文档序号:6332166阅读:151来源:国知局

专利名称::用户界面的多语言切换方法和装置的制作方法
技术领域
:本发明涉及图形显示领域,尤其涉及一种用户界面的多语言切换方法和装置。
背景技术
:国际化是现代企业的大趋势,也是一个企业成长与成熟的标志之一。在企业的国际化过程中,企业研发出来的产品,例如计算机应用程序或系统,应该能够支持多种语言,以提供给不同国家的用户使用;并且,应用系统能够支持多种语言,也方便了工程人员去现场对产品进行维护时将系统的界面切换到自己熟悉的语言后再开展工作。为了用户界面支持或切换多种语言,现有技术一提供的一种方法是,根据产品可能应用的地域,为该地域的语言开发出一种对应版本的应用系统,这意味着要求支持多少种语言就必须开发出多少种版本的应用系统。现有技术二提供的另一种方法是,在开发平台上,事先将需要的语言资源添加到系统资源中,然后经过编译系统的编译,最终显示出需要显示的语言。这种方法意味着需要专业的软件开发人员事先做好若干工作,然后,什么时候需要哪种语言,必须编译一次。上述现有技术一提供的方法,由于需要为每一种语言对应开发一种版本的应用系统,这种重复开发、维护多个版本的方式成本太高,并且极容易出错。而对于现有技术二提供的方法与现有技术一提供的方法类似,相当于也有一个重复开发的过程。
发明内容本发明实施例提供一种用户界面的多语言切换方法和装置,以减少应用系统用户界面的重复开发,支持多种语言的显示,方便用户对界面的切换。本发明实施例提供一种用户界面的多语言切换方法,包括基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式;根据用户的切换指令,读取所述保存为XML格式的目标语言的资源文件到内存;以所述目标语言显示用户界面。进一步地,所述基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式包括导入与所述应用程序相关的可执行文件.exe或动态链接库文件.dll;通过解析所述.exe文件或.dll文件,提取所述各种语言的资源字符串和资源属性;将所述资源字符串和所述资源属性存储为可扩展标记语言XML文件格式。进一步地,所述将所述资源字符串和所述资源属性存储为可扩展标记语言XML格式后还包括生成与所述各种语言对应的资源文件。进一步地,所述读取所述保存为XML格式的目标语言的资源文件包括读取配置文件中所述目标语言的语言文件名;根据所述目标语言的语言文件名读取与所述目标语言对应的XML资源文件;将所述目标语言的所有资源文件加载至内存中的双向链表。进一步地,所述将所述目标语言的所有资源文件加载至内存中的双向链表之后还包括查询所述目标语言对应的XML文件的编码方式,若所述编码方式不是Unicode编码,则将所述目标语言对应的XML文件的编码转换成Unicode编码。进一步地,所述以所述目标语言显示用户界面包括读取资源文件,所述资源文件包括所述内存中存储的目标语言的资源文件;根据所述资源文件创建资源显示模板;发送消息至用户界面UI进程,由所述UI进程显示切换至目标语言后的用户界面。进一步地,所述根据所述资源文件创建资源显示模板包括获取目标用户界面的显示信息,所述目标用户界面是切换至所述目标语言后显示的用户界面;提取所述目标用户界面的各个显示模块的身份标识ID;根据所述各个显示模块的身份标识ID查询与所述身份标识ID对应的资源段;根据所述资源段创建资源显示模板。进一步地,由所述UI进程显示切换至目标语言后的用户界面包括所述UI进程查询消息队列;若所述消息队列具有更新的消息,则获取所述资源显示模板;根据所述资源显示模板,将当前用户界面切换至所述目标用户界面。本发明实施例提供一种用户界面的多语言切换装置,包括保存模块,用于基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式;读取模块,用于根据用户的切换指令,将所述保存模块的保存的XML格式的目标语言的资源文件读取到内存;显示模块,根据所述读取模块读取到内存的所述目标语言的资源文件,以所述目标语言显示用户界面。进一步地,所述保存模块包括导入单元、提取单元、存储单元和资源生成单元,所述读取模块包括第一读取单元、第二读取单元和加载单元,所述显示模块包括资源文件读取单元和模板创建单元;所述导入单元,用于导入与所述应用程序相关的可执行文件.exe或动态链接库文件.dll;所述提取单元,用于通过解析所述导入单元导入的.exe文件或.dll文件,提取所述各种语言的资源字符串和资源属性;所述存储单元,用于将所述提取单元提取的资源字符串和所述资源属性存储为可扩展标记语言XML格式;所述资源生成单元,用于生成与所述各种语言对应的资源文件;所述第一读取单元,用于读取配置文件中所述目标语言的语言文件名;所述第二读取单元,用于根据所述第一读取单元读取的目标语言的语言文件名读取与所述目标语言对应的XML资源文件,所述与所述目标语言对应的XML文包括所述目标语言的资源文件;所述加载单元,用于将所述第二读取单元读取的目标语言的所有资源文件加载至内存中的双向链表;所述资源文件读取单元,用于读取资源文件,所述资源文件包括所述内存中存储的目标语言的资源文件;所述模板创建单元,用于根据所述资源文件读取单元读取的资源文件创建资源显示模板。进一步地,所述装置包括转换模块,用于查询所述目标语言对应的XML文件的编码方式,若所述编码方式不是Unicode编码,则将所述目标语言对应的XML文件的编码转换成Unicode编码。从上述本发明实施例可知,本发明是基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式,在收到用户的切换指令,读取保存为XML格式的目标语言的资源文件到内存,最后才以目标语言显示用户界面。与现有技术相比,本发明在需要支持一种新语言的场合下,不需要重新开发一个新版本的应用程序,因此,降低了开发成本;此外,由于直接将各种语言的资源文件保存为可扩展标记语言XML格式,可以在任意一个windows系统中运行一个应用程序不同语言的版本,也不需要专业的开发人员,任何用户都可以将用户界面切换至其熟悉的语言显示的界面,给用户使用应用程序带来极大方便。为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以如这些附图获得其他的附图。图1是本发明实施例提供的一种用户界面的多语言切换方法流程示意图;图2是本发明另一实施例提供的一种用户界面的多语言切换方法流程示意图;图3是本发明实施例提供的一种用户界面的多语言切换装置逻辑结构示意图;图4是本发明另一实施例提供的一种用户界面的多语言切换装置逻辑结构示意图;图5是本发明另一实施例提供的一种用户界面的多语言切换装置逻辑结构示意图;图6是本发明另一实施例提供的一种用户界面的多语言切换装置逻辑结构示意图;图7是本发明另一实施例提供的一种用户界面的多语言切换装置逻辑结构示意图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅附图1,是本发明实施例提供的一种用户界面的多语言切换方法流程示意图,主要包括步骤S101,基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式。应用程序的系统资源,是在开发应用程序过程中生成的。当应用程序安装在终端后,这些系统资源和应用程序本身一起驻留于终端。在本发明实施例中,应用程序的系统资源包括该应用程序的可执行(EXE,executable)文件和动态链接库(DLL,DynamicLinkLibrary)文件,这些文件都以.exe和.dll为扩展名存在。由于一种数据格式的文件需要解析出来才可使用,因此,当将与应用程序相关的可执行文件.exe或动态链接库文件.dll导入后,通过一些解析器解析这些.exe文件或.dll文件,提取各种语言的资源字符串和资源属性,例如,字体颜色、位置和大小等,再将各种语言的资源字符串和资源属性存储为可扩展标记语言(XML,extensibleMarkupLanguage)文件格式。XML是一套定义语义标记的规则,这些标记将文件分成许多部件并对这些部件加以标识,并且可使用XML自由决定的语言,这就是语言的可扩展性。遵守XML结构和语义的文件,称为XML文件。当将各种语言的资源文件保存为可扩展标记语言XML格式后,可以进一步生成与各种语言对应的资源文件。作为本发明一个实施例,可以是开发人员使用XML文件编辑器编辑各种语言对应的资源文件,也可以是终端用户使用XML文件编辑器编辑各种语言对应的资源文件,本发明对此不加限制。在本发明实施例中,可以建立一个根目录下,例如,根目录Languages。将用户界面支持的各种语言的XML资源文件(即XML格式的各种语言的资源字符串及其的资源属性文件)统一存放于该根目录下。然后根据用户界面支持的语言种类,创建根目录下各语言的相应目录,例如,中文cn目录、英文en目录、法文fr目录和俄文ru目录等等。如此,应用程序的用户界面对应的XML资源文件都存放于相应目录下,例如,中文XML资源文件都存放于Languages\cn目录下,英文XML资源文件都存放于Languages\en目录下,法文XML资源文件都存放于LanguageiAfr目录下以及俄文XML资源文件都存放于LanguagesXru目录下寸寸。S102,根据用户的切换指令,读取保存为XML格式的目标语言的资源文件到内存。具体地,可以先读取配置文件中目标语言的语言文件名。配置文件,例如,可以是以.ini为扩展名的文件,语言文件名是在安装应用程序时选择该语言后自动配置的。例如,目标语言是英文,则可以读取自动配置的英文文件名。然后,根据目标语言的语言文件名读取与该目标语言对应的XML资源文件。例如,可以根据目标语言为英文的英文文件名读取LanguagesXen目录下的英文XML资源文件。最后,将目标语言的所有资源文件加载至内存中的双向链表。双向链表是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。在双向链表中,结点除含有数据域外,还有两个链域,一个存储直接后继结点地址,一般称之为右链域;一个存储直接前驱结点地址,一般称之为左链域。在本实施例中,结点数据域可以包含ID数据项和string数据项,其中,ID数据项是语言字符串的ID号,在一个XML文件中,唯一标识一个语言字符串;而string数据项则用于保存语言字符串本身,例如,字母、数字和标点符号等字符的优先序列。需要说明的是,为了防止语言切换后的乱码,可以在完成将目标语言的所有资源文件加载至内存中的双向链表后,进一步查询目标语言对应的XML文件的编码方式,若编码方式不是Unicode编码,则将目标语言对应的XML文件的编码转换成Unicode编码。S103,以目标语言显示用户界面。首先,读取资源文件,该资源文件包括内存中存储的目标语言的资源文件;其次,根据资源文件创建资源显示模板;发送消息至用户界面(UI,UserInterface)进程,由UI进程显示切换至目标语言后的用户界面。需要说明的是,根据资源文件创建资源显示模板可以由下述步骤完成S1031,获取目标用户界面的显示信息,该目标用户界面是切换至目标语言后显示的用户界面;目标用户界面的显示信息可以是,例如,目标用户界面的视图页句柄。S1032,提取目标用户界面的各个显示模块的身份标识ID;显示模块,具体而言,可以是用于显示目标用户界面的菜单、工具栏、状态栏和文档等功能模块。S1033,根据各个模块的身份标识ID查询与该身份标识ID对应的资源段;在本发明实施例中,如果没有与身份标识ID对应的资源段,则赋予一默认值。S1034,根据资源段创建资源显示模板。在UI进程运行期间,不断查询属于该进程的消息队列,若其消息队列具有更新的消息,则获取资源显示模板,根据资源显示模板,将当前用户界面切换至目标用户界面。从上述本发明实施例可知,本发明是基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式,在收到用户的切换指令,读取保存为XML格式的目标语言的资源文件到内存,最后才以目标语言显示用户界面。与现有技术相比,本发明在需要支持一种新语言的场合下,不需要重新开发一个新版本的应用程序,因此,降低了开发成本;此外,由于直接将各种语言的资源文件保存为可扩展标记语言XML格式,可以在任意一个windows系统中运行一个应用程序不同语言的版本,也不需要专业的开发人员,任何用户都可以将用户界面切换至其熟悉的语言显示的界面,给用户使用应用程序带来极大方便。请参阅图2,本发明另一实施例提供的用户界面的多语言切换方法流程示意图,包括步骤S201,安装应用系统;S202,运行应用系统;S203,判断是否首次运行该应用系统;若是,流程转入S204,否则,转入S207。S204,系统自动导出.exe文件和.dll文件等系统资源文件,生成默认的.xml资源文件。S205,判断是否以默认的.xml资源文件为基础编辑其他语言的.xml资源文件,若是,流程转入S206,否则,循环。S206,使用xml编辑器编辑其他语言资源文件并保存至本应用系统的语言文件目录。S207,读取应用系统的.ini文件,获取目标语言的ID。S208,根据目标语言的ID,加载相应的语言的.xml资源文件到内存中。例如,可以加载到内存的双向链表中。S209,判断.xml资源文件的编码格式是否是Unicode编码,若是,则流程转入S210,否则,流程转入S211。S210,更新所有资源为加载到内存中的数据。S211,将.xml资源文件的编码格式转换为Unicode编码。S212,刷新当前显示界面,显示由目标语言显示的用户界面。S213,显示人机界面。8S214,判断是否点击了切换语言菜单,若是,流程转入S208,否则,转入S213。请参阅图3,本发明实施例提供的一种用户界面的多语言切换装置逻辑结构示意图。为了便于说明,仅仅示出了与本发明实施例相关的部分。该装置中的功能模块\单元可以是软件模块\单元、硬件模块\单元或软硬件模块\单元相结合单元。图3所示装置包括保存模块301、读取模块302和显示模块303,其中保存模块301,用于基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式;读取模块302,用于根据用户的切换指令,将保存模块301保存的XML格式的目标语言的资源文件读取到内存;显示模块303,根据读取模块302读取到内存的目标语言的资源文件,以该目标语言显示用户界面。进一步地,附图3示例的用户界面的多语言切换装置还包括转换模块401,如附图4所示本发明另一实施例提供的用户界面的多语言切换装置,其中转换模块401,用于查询目标语言对应的XML文件的编码方式,若编码方式不是Unicode编码,则将该目标语言对应的XML文件的编码转换成Unicode编码。图3或图4示例的保存模块301进一步包括导入单元501、提取单元502、存储单元503和资源生成单元504,如附图5所示本发明另一实施例提供的用户界面的多语言切换装置,其中导入单元501,用于导入与应用程序相关的可执行文件.exe或动态链接库文件.dll;提取单元502,用于通过解析导入单元501导入的.exe文件或.dll文件,提取各种语言的资源字符串和资源属性;存储单元503,用于将提取单元502提取的资源字符串和资源属性存储为可扩展标记语言XML格式;资源生成单元504,用于生成与各种语言对应的资源文件。图3或图4示例的读取模块302进一步包括第一读取单元601、第二读取单元602和加载单元603,如附图6所示本发明另一实施例提供的用户界面的多语言切换装置,其中第一读取单元601,用于读取配置文件中目标语言的语言文件名;第二读取单元602,用于根据第一读取单元601读取的目标语言的语言文件名读取与该目标语言对应的XML资源文件,与该目标语言对应的XML文包括目标语言的资源文件;加载单元603,用于将第二读取单元602读取的目标语言的所有资源文件加载至内存中的双向链表。图3或图4示例的显示模块301进一步包括资源文件读取单元701和模板创建单元702,如附图7所示本发明另一实施例提供的用户界面的多语言切换装置,其中资源文件读取单元701,用于读取资源文件,该资源文件包括内存中存储的目标语言的资源文件;模板创建单元702,用于根据资源文件读取单元701读取的资源文件创建资源显9示模板。需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括ROM、RAM、磁盘或光盘等。以上对本发明实施例提供的一种用户界面的多语言切换方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。10权利要求一种用户界面的多语言切换方法,其特征在于,所述方法包括如下步骤基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式;根据用户的切换指令,读取所述保存为XML格式的目标语言的资源文件到内存;以所述目标语言显示用户界面。2.如权利要求1所述的方法,其特征在于,所述基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式包括导入与所述应用程序相关的可执行文件.exe或动态链接库文件.dll;通过解析所述.exe文件或.dll文件,提取所述各种语言的资源字符串和资源属性;将所述资源字符串和所述资源属性存储为可扩展标记语言XML文件格式。3.如权利要求2所述的方法,其特征在于,所述将所述资源字符串和所述资源属性存储为可扩展标记语言XML格式后还包括生成与所述各种语言对应的资源文件。4.如权利要求3所述的方法,其特征在于,所述读取所述保存为XML格式的目标语言的资源文件包括读取配置文件中所述目标语言的语言文件名;根据所述目标语言的语言文件名读取与所述目标语言对应的XML资源文件;将所述目标语言的所有资源文件加载至内存中的双向链表。5.如权利要求4所述的方法,其特征在于,所述将所述目标语言的所有资源文件加载至内存中的双向链表之后还包括查询所述目标语言对应的XML文件的编码方式,若所述编码方式不是Unicode编码,则将所述目标语言对应的XML文件的编码转换成Unicode编码。6.如权利要求4所述的方法,其特征在于,所述以所述目标语言显示用户界面包括读取资源文件,所述资源文件包括所述内存中存储的目标语言的资源文件;根据所述资源文件创建资源显示模板;发送消息至用户界面UI进程,由所述UI进程显示切换至目标语言后的用户界面。7.如权利要求6所述的方法,其特征在于,所述根据所述资源文件创建资源显示模板包括获取目标用户界面的显示信息,所述目标用户界面是切换至所述目标语言后显示的用户界面;提取所述目标用户界面的各个显示模块的身份标识ID;根据所述各个显示模块的身份标识ID查询与所述身份标识ID对应的资源段;根据所述资源段创建资源显示模板。8.如权利要求7所述的方法,其特征在于,所述由所述UI进程显示切换至目标语言后的用户界面包括所述UI进程查询消息队列;若所述消息队列具有更新的消息,则获取所述资源显示模板;根据所述资源显示模板,将当前用户界面切换至所述目标用户界面。9.一种用户界面的多语言切换装置,其特征在于,所述装置包括保存模块,用于基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式;读取模块,用于根据用户的切换指令,将所述保存模块保存的XML格式的目标语言的资源文件读取到内存;显示模块,根据所述读取模块读取到内存的所述目标语言的资源文件,以所述目标语言显示用户界面。10.如权利要求9所述的装置,其特征在于,所述保存模块进一步包括导入单元、提取单元、存储单元和资源生成单元,所述读取模块包括第一读取单元、第二读取单元和加载单元,所述显示模块包括资源文件读取单元和模板创建单元;所述导入单元,用于导入与所述应用程序相关的可执行文件.exe或动态链接库文件.dll;所述提取单元,用于通过解析所述导入单元导入的.exe文件或.dll文件,提取所述各种语言的资源字符串和资源属性;所述存储单元,用于将所述提取单元提取的资源字符串和资源属性存储为可扩展标记语言XML格式;所述资源生成单元,用于生成与所述各种语言对应的资源文件;所述第一读取单元,用于读取配置文件中所述目标语言的语言文件名;所述第二读取单元,用于根据所述第一读取单元读取的目标语言的语言文件名读取与所述目标语言对应的XML资源文件,所述与所述目标语言对应的XML文包括所述目标语言的资源文件;所述加载单元,用于将所述第二读取单元读取的目标语言的所有资源文件加载至内存中的双向链表;所述资源文件读取单元,用于读取资源文件,所述资源文件包括所述内存中存储的目标语言的资源文件;所述模板创建单元,用于根据所述资源文件读取单元读取的资源文件创建资源显示模板。11.如权利要求10所述的装置,其特征在于,所述装置进一步包括转换模块,用于查询所述目标语言对应的XML文件的编码方式,若所述编码方式不是Unicode编码,则将所述目标语言对应的XML文件的编码转换成Unicode编码。全文摘要本发明提供一种用户界面的多语言切换方法和装置,以减少应用系统用户界面的重复开发,支持多种语言的显示,方便用户对界面的切换。所述方法包括基于应用程序的系统资源,将各种语言的资源文件保存为可扩展标记语言XML格式;根据用户的切换指令,读取所述保存为XML格式的目标语言的资源文件到内存;以所述目标语言显示用户界面。与现有技术相比,本发明降低了开发成本;此外,可以在任意一个windows系统中运行一个应用程序不同语言的版本,也不需要专业的开发人员,任何用户都可以将用户界面切换至其熟悉的语言显示的界面,给用户使用应用程序带来极大方便。文档编号G06F9/44GK101916192SQ201010283800公开日2010年12月15日申请日期2010年9月14日优先权日2010年9月14日发明者勒长华,张应榜,杨礼军,王波涛,胡波申请人:深圳市华力特电气股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1