一种软件语言国际化的方法

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

专利名称::一种软件语言国际化的方法
技术领域
:本发明涉及软件应用
技术领域
,特别是涉及一种软件语言国际化的方法。
背景技术
:随着软件在世界各国的广泛应用,软件处理语言的单一性给软件的普及和用户的应用带来了不便.如何使软件能够处理多种语言已成为人们关注的问题,软件的国际化是解决这一问题的有效途径。目前主要有两种方式来实现软件的国际化1、传统做法传统软件多语言化做法是,直接按照语言的不同,开发不同版本的应用程序。这需要将开发人员按照语言分成若干个小组,每种语言的开发人员负责开发和维护相应语言的软件源代码,如图1所示,这种做法不仅需要大量的人力资源,而且每次软件的更新,都需要各个小组的人员去修改相应的源码部分,很难保证多个语言版本的一致性。2、多语言动态链接库按照国际化方法开发的软件,多语言化的方法是在应用程序内核的基础上为每种语言提供一组资源DLL。这需要每个程序员将自己开发的软件部分的源代码和资源文件分离,按照语言的不同,分成若干个资源文件,在软件开发过程中每做一部分的修改,就要同时修改相应的多个资源文件,如图2所示,这种做法的好处在于将软件的源代码部分与资源部分进行了分离,这样多语言版本的维护工作只在于维护相应的资源文件,不需要修改源代码,不需要重新编译链接就可以得到一个新的语言版本。每种资源被单独的编辑成纯资源DLL,在程序运行期间可以实现动态加载。马里亚纳5D图文包装系统软件中文版本目前已经产品化,随着市场的国际化,需要实现系统的多语言化,以满足开拓国际市场的需求。这就要求研发人员能够在尽量短的时间内,在保证对源代码干预最少的情况下,开发出自己的多语言版本。如果按照传统软件的多语言化来做,需要另外成立多个小组,重新开发其他语言版本的软件,这种做法不仅需要大量的人力资源,重新开发也需要大量的时间,而且由于不同语言版本的软件是由不同小组来开发的,版本间的一致性也很难保证。显然不能满足我们的需求。如果按照多语言动态链接库方法,需要我们的程序员添加和维护多语言的资源文件,编译生成相应的语言DLL。这种做法首先会产生大量的资源动态链接库文件,使得软件系统文件混乱,其次也需要对源代码的资源加载部分进行改动,由于涉及面比较广,因此该方法也不理想。因此,目前需要本领域技术人员迫切解决的一个技术问题就是如何能够创新地提出一种软件语言国际化的方法,以保证软件应用中软件的国际通用性,并有效降低资源消耗。
发明内容本发明所要解决的技术问题是提供一种软件语言国际化的方法,用以保证软件应用中软件的国际通用性,并有效降低成本。为了解决上述问题,本发明公开了一种软件语言国际化的方法,所述方法包括分析软件的PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表;将所述资源信息翻译成目标语言,并将译文保存到资源对照表;将PE文件与带有目标译文的资源对照表进行比对,用相应译文替换匹配的资源信息,生成目标语言的PE文件。优选的,所述分析软件PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表包括以下子步骤分析软件PE文件的结构;获取资源信息段;解析资源信息段中字段信息;提取所需翻译的资源信息;对资源信息整理并保存生成预定格式的资源对照表。优选的,所述将所述资源信息翻译成目标语言,并将译文保存到资源对照表包括以下子步骤打开资源对照表,查询资源数据库;所述资源数据库存储了之前资源信息的译文;通过查询获取所需资源信息的译文,并将所获取的译文保存到资源对照表;对资源对照表中未查询到的资源信息进行翻译,将翻译的译文保存到资源对照表。优选的,所述资源对照表中资源信息以信息字符串形式存在。优选的,所述方法在打开资源对照表,查询资源数据库之前还包括对资源对照表中字符串进行筛选过滤,删除重复的字符串,并将删除处理后的资源对照表进行保存。优选的,所述资源数据库为学习型数据库。优选的,所述对资源对照表中未查询到的资源信息进行翻译,将翻译的译文保存到资源对照表的同时还包括将翻译的译文保存到资源数据库。优选的,所述PE文件包括EXE、DLL、OCX、SYS和COM格式的文件。与现有技术相比,本发明具有以下优点首先,本发明提供一种软件语言国际化的方法,通过分析软件的PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表,将所述资源信息翻译成目标语言,并将译文保存到资源对照表,将PE文件与带有目标译文的资源对照表进行比对,用相应译文替换匹配的资源信息,生成目标语言的PE文件,从而轻松实现了软件的国际通用性。其次,本发明在将所述资源信息翻译成目标语言时,通过查询资源数据库,所述资源数据库存储了之前资源信息的译文,极大的降低了工作量,节省了大量的人力资源,并且在查找资源对照表前,还对资源对照表中字符串进行了筛选过滤,删除了重复的字符串,进一步降低了工作量,提高了工作效率。再次,本发明中所述的资源数据库为学习型数据库,会不断增加新的译文,更进一步的提高了软件语言的国际化速度。图1是现有技术中的传统软件多语言化方法的示意图;图2是现有技术中的多语言动态链接库方法的示意图;图3是本发明实施例中所述的一种软件语言国际化的方法流程图;图4是本发明实施例中所述的生成预定格式资源对照表方法的流程图;图5是本发明实施例图3中所述步骤S102实现方法的流程图;图6是本发明本实施例中资源信息替换的示意图。具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明可广泛应用于众多BI0S、BSD、D0S、Linux、MacOS,OS/2,QNX,Unix,Window等系统软件和Office、WPS、5D图文包装系统、AutoCAD、Photoshop、暴风影音、QQ影音、RealPlayer等应用软件,包括以上任何系统软件和应用软件在内的软件的国际化。随着全球经济的一体化,软件在世界各国广泛应用,软件国际化的需求日益迫切,如果能够找到一种快速有效的软件语言国际化的方法,那么软件普及将不再是问题,同时也会给用户带来极大的便利。因此,本专利发明人创造性地提出了本发明实施例的核心构思之一,即通过分析软件PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表,将所述资源信息翻译成目标语言,并将译文保存到资源对照表,将PE文件与带有目标译文的资源对照表进行比对,用相应译文替换匹配的字符串,生成目标语言的PE文件。实施例参照图3,示出了本发明的一种软件语言国际化的方法流程图,所述方法具体包括S101,分析软件的PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表;优选的,所述PE文件包括EXE、DLL、OCX、SYS和COM格式的文件。软件(software)(中国大陆及香港用语,台湾叫做软体)是一系列按照特定顺序组织的计算机数据和指令的集合,同时软件并不只是包括可以在计算机上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。PE文件被称为可移植的执行体是PortableExecute的全称,包括可执行文件,动态链接库文件等,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)。首先,将固化在软件源代码中的硬编码字符串数据分离出来(例如CStringstr=_T(“中文字符串”);这种形式的数据被称为硬编码字符串),把这些数据作为IDS资源写入源代码的资源文件(.rc文件)中,这样,源代码在经过编译之后,生成PE文件,资源文件就编译成了PE文件中的资源段部分,相应的分离出来的硬编码字符串数据信息也就存储进了PE文件的资源段。同时,为了在程序中使用这些写入资源文件中的数据,通过相应的资源导入类来实现IDS资源到字符串的转换工作,整个过程如下所示源代码中的硬编码字符串数据CStringstr=_T(“中文字符串”);-----------))转化为资源文件中的IDS资源STRINGTABLEBEGINIDS_CHINESE_STRING“中文字符串”END--------------))源代码中资源导入类CNxRedtring实现字符串导入CNxResStringstr(GetModuleHandle,IDS_CHINESE_STRING);--------------))源码经过编译之后,生成PE文件,之前源代码中的硬编码数据就被编译入了PE文件的资源段中。分离之前,源代码如下CStringstr=_T(“中文字符串”);AfxMessageBox(str);//弹出对话框显示“中文字符串”分离之后,源代码如下CNxResStringstr(GetModuleHandle,IDS_CHINESE_STRING);AfxMessageBox(str);//弹出对话框显示“中文字符串”其次,分析软件的PE文件的结构,从中提取所需翻译的资源信息(包括上一步中分离出来的硬编码字符串数据信息,以及菜单资源信息,对话框资源信息等),保存生成预定格式的资源对照表,参见图4,示出了本实施例中生成预定格式的资源对照表方法实现的具体流程图,具体可以包括以下子步骤“CODE"“.data"”DATA"“.rdata"“.idata"‘‘.edata"“.tls"“.reloc"“.rsrc"其中,“.rsrc“即为要获取的资源信息段,并且Sll中描述Wkction1,Section2对应到S12中包括〃.text",‘‘CODE"等这些内容。S13,解析资源信息段中字段信息;所述资源信息段中的字段信息如case0x00000004://RT_MENUcase0x00000005//RT_DIAL0Gcase0x00000006://RT_STRINGS14,提取所需翻译的资源信息;所述所需翻译的资源信息如STRING_TABLEMENUDLALOGS15,对资源信息整理并保存生成预定格式的资源对照表。优选的,所述资源对照表中资源信息以信息字符串形式存在,如中文资源外文资源[你好]=[]S102,将所述资源信息翻译成目标语言,并将译文保存到资源对照表;在完成资源信息的提取后,对保存生成的资源对照表进行翻译,将其翻译成目标语言,所述目标语言是指当前软件所要制作的软件版本的语言,具体可以为英语,印地语、西班牙语、俄罗斯语、法语、德语、孟加拉语、阿拉伯语、葡萄牙语、日语或者印度尼西亚语寸。将需要翻译的字符串直接呈现在翻译人员面前,翻译人员只需要输入相应的翻译后字符串,程序会完成字符串的匹配工作,最后将界面上的所有信息保存到资源对照表。资源对照表中可能会存在很多重复的字符串信息,如删除,可能是下拉菜单中的文本内容,也可能是一个按钮的说明,因此,通过进行过滤,可以自动删除重复的字符串,减少了翻译人员的工作量。本实施例中是通过一个友好的用户界面,将需要翻译的字符串直接呈现给翻译人员的。在翻译过程中,每个资源文件都会产生很多的翻译信息,不同的资源文件之间存在很多重复的翻译信息,例如,designer,exe的资源列表中,存在“打开文件”字符串,M5DGui.dll中也有相同的字符串,这样会造成翻译人员在工作过程中会有很多重复劳动。因此,本实施例中优选的,参见图5,示出了本实施例中步骤S102实现的具体方法流程图,具体可以包括以下子步骤S21,打开资源对照表,查询资源数据库;所述资源数据库存储了之前资源信息的译文;更为优选的,所述方法在打开资源对照表,查询资源数据库之前还包括S20,对资源对照表中字符串进行筛选过滤,删除重复的字符串,并将删除处理后的资源对照表进行保存。通过对重复字符串进行筛选过滤,比如,可能一个菜单资源叫“打开”,还有一个按钮资源,也叫“打开”,事实上这样只是同一个字符串罢了,自动将重复的字符串从资源列表里面删除,将删除处理过的资源对照表进行保存。S22,通过查询获取所需资源信息的译文,并将所获取的译文保存到资源对照表;S23,对资源对照表中未查询到的资源信息进行翻译,将翻译的译文保存到资源对照表。优选的,所述资源数据库为学习型数据库。优选的,所述方法在对资源对照表中未查询到的资源信息进行翻译,将翻译的译文保存到资源对照表的同时还包括S24,将翻译的译文保存到资源数据库。本实施例中,打开资源对照表,在进行翻译之前,先查询资源数据库,所述资源数据库存储了之前资源信息的译文,如果已经有翻译过的资源,直接将其保存到资源对照表中,翻译人员不需要再重复翻译这些内容,只需翻译资源数据库中没有的资源信息,翻译人员可以共享以前的或者别人的翻译信息,极大的降低了工作量,节省了大量的人力资源,提高了翻译速度。同时,所述资源数据库为学习型数据库是指在翻译完成之后,将翻译人员新翻译的资源信息的译文保存到资源数据库,这样建立起日益完善的资源数据库,为日后其他软件的国际化提供了更多的便利。S103,将PE文件与带有目标译文的资源对照表进行比对,用相应译文替换匹配的资源信息,生成目标语言的PE文件。参见图6,示出了本实施例中资源信息替换的示意图,在资源替换中,输入为“原始PE文件”和“资源对照表”,输出为“国际化之后的PE文件”,所述国际化之后的PE文件也就是目标语言的PE文件。通过将原始PE文件中需要进行替换的资源信息与资源对照表中的资源信息进行比对,用资源对照表中与PE文件相匹配的资源信息对其进行替换,最后将替换内容重新写回到PE文件,生成目标语言的PE文件。需要说明的是,本实施例多处借助5D图文包装系统的语言国际化进行了介绍,旨在具体说明本发明的思想。同时,本实施例中概括性的用目标语言来代表需要生成版本中的语言,所述的目标语言可以为任意语种的语言。本实施例提供了一种软件语言国际化的方法,通过分析软件的PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表,将所述资源信息翻译成目标语言,并将译文保存到资源对照表,将PE文件与带有目标译文的资源对照表进行比对,用相应译文替换匹配的资源信息,生成目标语言的PE文件,从而轻松实现了软件的国际通用性。以上对本发明所提供的一种软件语言国际化的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1.一种软件语言国际化的方法,其特征在于,所述方法包括分析软件的PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表;将所述资源信息翻译成目标语言,并将译文保存到资源对照表;将PE文件与带有目标译文的资源对照表进行比对,用相应译文替换匹配的资源信息,生成目标语言的PE文件。2.根据权利要求1所述的方法,其特征在于,所述分析软件PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表包括以下子步骤分析软件PE文件的结构;获取资源信息段;解析资源信息段中字段信息;提取所需翻译的资源信息;对资源信息整理并保存生成预定格式的资源对照表。3.根据权利要求1所述的方法,其特征在于,所述将所述资源信息翻译成目标语言,并将译文保存到资源对照表包括以下子步骤打开资源对照表,查询资源数据库;所述资源数据库存储了之前资源信息的译文;通过查询获取所需资源信息的译文,并将所获取的译文保存到资源对照表;对资源对照表中未查询到的资源信息进行翻译,将翻译的译文保存到资源对照表。4.根据权利要求3所述的方法,其特征在于所述资源对照表中资源信息以信息字符串形式存在。5.根据权利要求4所述的方法,其特征在于,所述方法在打开资源对照表,查询资源数据库之前还包括对资源对照表中字符串进行筛选过滤,删除重复的字符串,并将删除处理后的资源对照表进行保存。6.根据权利要求3所述的方法,其特征在于所述资源数据库为学习型数据库。7.根据权利要求6所述的方法,其特征在于,所述对资源对照表中未查询到的资源信息进行翻译,将翻译的译文保存到资源对照表的同时还包括将翻译的译文保存到资源数据库。8.根据权利要求1所述的方法,其特征在于所述PE文件包括EXE、DLL、OCX、SYS和COM格式的文件。全文摘要本发明提供了一种软件语言国际化的方法,通过分析软件的PE文件的结构,从中提取所需翻译的资源信息,保存生成预定格式的资源对照表,将所述资源信息翻译成目标语言,并将译文保存到资源对照表,将PE文件与带有目标译文的资源对照表进行比对,用相应译文替换匹配的资源信息,生成目标语言的PE文件,从而轻松实现了软件的国际通用性。文档编号G06F17/28GK102103493SQ200910241959公开日2011年6月22日申请日期2009年12月16日优先权日2009年12月16日发明者王蓓蓓申请人:新奥特(北京)视频技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1