多语言版本的开发、替换方法及装置的制作方法

文档序号:6469217阅读:143来源:国知局
专利名称:多语言版本的开发、替换方法及装置的制作方法
技术领域
本发明涉及计算机领域,尤其涉及一种多语言版本开发中实现代码替换的 方法和装置, 一种实现多语言版本的开发的方法及装置。
背景技术
随着科学技术的发展以及经济全球化的逐步形成,信息技术
(Information Technology, IT)业务产品的国际化问题已经渐渐提上日程,即逐 渐需要IT业务产品支持多种国家与地区的语言,如何更好地解决IT业务产品的 国际化问题是人们关注与研究的热点。
现有技术中,实现支持国际化多语言的过程中,需要开发人员手工地逐个从 源代码文件中提取需要进行替换的代码信息,此过程是一个人工纯体力操作过 程,容易出现人为的错误,造成遗漏等问题,而且一旦造成遗漏后需要花费更 大的测试流程进行弥补,另外需要开发人员手工地逐个将需要进行替换的代码 信息进行替换,并手工地记录整理所述要进行替换的代码信息与替换内容的对 应关系,耗费大量的人力,不能在短时间内推出产品的多语言版本。

发明内容
本发明实施例在于提供一种多语言版本开发中实现代码替换的方法及装 置, 一种实现多语言版本的开发的方法及装置,解决了手工搜索提取以及替换 代码而造成的遗漏,耗费大量人力的问题。
为了达到上述技术效果,本发明实施例提出了 一种多语言版本开发中实现 代码替换的方法,该方法包括如下步骤
遍历源代码文件,搜索出需要进行替换的第一语言代码;
对所述搜索出的第一语言代码配置替换内容;
根据所述配置的配置结果,自动将所述源代码文件中的所述第一语言代码 替换成所述替换内容。
5相应的,本发明实施例还公开了一种实现多语言版本的开发的方法,其特
征在于,包括如下步骤
遍历源代码文件,搜索出需要进行替换的第一语言代码; 对所述搜索出的第一语言代码配置替换内容;
根据所述配置的配置结果,自动将所述源代码文件中所述第一语言代码替 换成所述替换内容;
并根据所述替换内容配置资源文件,建立所述替换内容与至少 一种语言版 本代码的替换映射关系;
至少 一种语言版本代码,并保存所述替换后生成的源代码文件。
相应的,本发明实施例还公开了 一种多语言版本开发中实现代码替换的装
置,其特征在于,包括
遍历模块,用于遍历源代码文件,搜索出需要进行替换的第一语言代码; 内容配置模块,用于对所述遍历模块搜索出的第一语言代码配置替换内容; 内容替换模块,用于根据所述内容配置模块的配置结果,自动将所述源代
码文件中的所述第 一语言代码替换成所述替换内容。
相应的,本发明实施例还公开了一种实现多语言版本的开发的装置,其特
征在于,包括
遍历模块,用于遍历源代码文件,搜索出需要进行替换的第一语言代码; 内容配置模块,用于对所述遍历模块搜索出的第一语言代码配置替换内容; 替换模块,用于根据所述内容配置模块的配置结果,自动将所述源代码文
件中的所述第 一语言代码替换成所述替换内容;
文件配置模块,用于根据所述替换内容配置资源文件,建立所述替换内容
与至少一种语言版本代码的替换映射关系;
文件替换模块,用于根据所述文件配置模块配置的资源文件将所述源代码
文件中的所述替换内容替换成所述至少一种语言版本代码,并保存所述替换后
生成的源代码文件。
实施本发明实施例,通过遍历源代码文件,自动搜索出所有需要进行替换
的第一语言代码信息,并为所述第一语言代码配置替换内容,根据配置结果自
动将所述源代码文件中的所述第一语言代码替换成所述替换内容,解 了手工搜索提取以及替换代码而造成的遗漏,耗费大量人力的问题。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的多语言版本开发中实现代码替换的方法第一实施例的流程
图2是本发明的多语言版本开发中实现代码替换的方法实施例的流程图; 图3是本发明实施例的实现多语言版本的开发的方法流程图; 图4是本发明的多语言版本开发中实现代码替换的装置的第一实施例的结 构示意图5是本发明实施例的遍历模块的结构示意图; 图6是本发明实施例的配置模块的结构示意图7是本发明的多语言版本开发中实现代码替换的装置的实施例的结构示 意图8是本发明实施例的实现多语言版本的开发的装置的结构示意图。
具体实施例方式
本发明实施例提供了 一种多语言版本开发中实现代码替换的方法和装置, 一种实现多语言版本的开发的方法和装置及一种计算机可读介质,通过遍历源 代码文件,自动搜索出所有需要进行替换的第一语言代码信息,并为所述第一 语言代码配置替换内容,根据配置结果自动将所述源代码文件中的所述第一语 言代码替换成所述替换内容,解决了手工搜索提取以及替换代码而造成的遗漏, 耗费大量人力的问题,并使产品完成国际化的流程更加方便快捷,更加灵活地 满足海外运营商对当地语言的支持需求。
请参阅图1,图1示出了本发明的多语言版本开发中实现代码j昏换的方法第 一实施例的流程图,包括如下步骤步骤S101:遍历源代码文件,搜索出需要进行替换的第一语言代码; 具体地,所述第一语言代码可为中文代码、英文代码、日文代码,法文代
码等。所述源代码文件可为JSP源代码文件、Java源代码文件以及C十+语言源
代码文件等中任一种或者其结合。
步骤S102:对所述搜索出的第一语言代码配置替换内容;
具体地,所述配置替换内容可包括为所述搜索出的第一语言代码中的每
一代码设置替换内容;生成数据库存储所述替换内容与所述第一语言代码的替
XML静态函数),比如,当需要替换JSP源代码文件中的中文代码时,所述替 换内容可以为STRUTS的替换标签〈bean:messageke""标签"/>,生成的替换 映射关系可为标签=第一语言代码。
例如,JSP源代码文件中的"中国,,,对应的替换标签可为〈bean:message key= "CN"。生成的替换映射关系可为CN二中国;
JSP源代码中的"查找,,,对应的替换标签可为〈bean:messageke尸"search"。 生成的替换映射关系可为searcl^查找。
当需要替换C十+或Java等源代码文件的代码时,所述配置的替换内容可以 为某个类的静态函数,如CMessage::GetMessage ( LAN—FLACV,标签")。
步骤S103:根据所述配置结果,自动将所述源代码文件中的所述第一语言 代码替换成所述替换内容。比如,原来界面上有一个按^組叫"确定",那么在JSP 源代码中写为〈inpuUype-"button"valuey确定",对应所述"确定"的替换标签 可为〈bean:messagekey=,buttoncaption,>",贝寸将所述中文确定替换成成替换内容 后, 戶斤述源、4戈石马变成〈input type="button" value="<bean:message key=,buttoncaption,>"。
上述实施例,通过遍历源代码文件,自动搜索出所有需要进行替换的第一 语言代码信息,并为所述第一语言代码配置替换内容,根据配置结果自动将所 述源代码文件中的所述第一语言代码替换成所述替换内容,解决了手工搜索提 取以及替换代码而造成的遗漏,耗费大量人力的问题。
下面结合一个JSP为源代码的中文版本的产品实现支持国际化多语言的例 子,进一步详细说明本发明的多语言版本开发中实现代码替换的方法,如图2 示出的本发明的多语言版本开发中实现代码替换的方法实施例的流程图,包括如下步骤
步骤S201:遍历系统中的文件夹,搜索出需要进行语言版本替换的JSP源 代码文件;
具体i也,系统可以利用Windows Application Programming Interface, 简称 WindowsAPI函数遍历系统中的文件夹,搜索出需要进行替换的源代码文件,如 JSP源代码文件、C+十语言源代码文件等。
步骤S202:遍历所述搜索出的JSP源代码文件中的代码,在所述源代码文 件的代码中查找出不在特殊字符之间的代码;
具体地,将所述;&索出的JSP源代码文件中的代码分解成每行进行查找处 理,所述特殊字符包括注释符号和/或字符串符号等,所述注释字符包括双斜杠 符号(即"〃,,符号)以及"/*,,符号等,所述字符串符号包括单引符号以及双 引符号等,所述不在特殊字符之间的代码即为有效执行代码,在所述源代码文 件的代码中查找出不在所述特殊字符之间的代码,即为在所述源代码文件的代 码中查找出除了注释代码和/或字符串代码等之外的有效执行代码。
步骤S203:检测所述查找出的代码中是否含有中文字符;
具体地,如果是中文字符则其高位数据为大于128,则整个int值在表现为 <0,当所述检测结果为是时,执行步骤S204,当所述检测结果为否时,执行步 骤S207。
步骤S204:记录所述^r测的所有中文字符对应的代码信息;
具体地,所述代码信息包括代码类型(标签、表头、按钮、对画框、冒泡
等)代码内容、文件名以及所述代码内容在所述文件中的行号等,分别记录代
码的类型,代码中各中文字符对应的中文内容,所述中文字符所在的文件夹的
名称以及所述中文字符所在的文件的行号等。
步骤S205:对所述中文字符配置STRUTS ^f各式的替换标签;
具体地,以原来界面上的一个叫"确定"的按钮为例进行说明,JSP源代码
中的形式为4nputtype^'button" value二"确定",对其中的中文字符(即确定)配
置的替换标签可为〈bean:message key=,buttoncaption,>。
步骤S206:根据所述替换标签将所述中文字符替换成所述替换标签。 具体地,以上述的原来界面上的一个叫"确定"的按钮为例进行说明,把
JSP源代码〈input type="button" value^,确定"中的中文字符替换成所述替换标
9签,那么替换后的JSP源代Z马形式为<input type="button" value="<bean:message key=,buttoncaption,>"。
需要说明的是,执行步骤S202时,具体地,需要针对搜索出的文件进行逐 行逐字的解析,可以预先定义中文开关和预先为单引号、双引号、"〃"符号以 及"/*"符号等分别定义标识开关,并定义每一个标识开关打开之后等待该开关 关闭之前,其他的标识开关不允许打开(即某一种特殊字符之间出现的其他特 殊字符将会被忽略),在所有标识开关都关闭的情况下,标识当前的代码是有效 执行代码,另外,针对很大一部分的中文字符是出现在引号当中的情况,开发 人员可以设定引号的标识开关打开的情况下,也标识当前的代码是有效执行代 码。标识出有效执行代码后,查找所述有效执行代码的中文字符,当检测到中 文字符,则所述中文开关打开,检测到中文字符结束,则中文开关关闭,并记 录中文开关打开和关闭时的代码位置,最后通过记录的代码位置信息输出所述 位置中的中文字符。
特殊地,在JSP页面中的对于一些特殊字符的特殊处理一般分为如下几中 情况
1、 <%...%>的情况,<%...%>中的中文字符不能用标签进行替换,因为这中 间的代码是在服务端执行的,所以替换方式应该和现有中对的Java源代码的替 换方案保持统一。对于这种情况本发明是通过设定进行二次替换来处理,即对 于JSP文件的替换首先不考虑<%...%〉的情况,通过本发明实施例的统一替换之 后,JSP文件的HTML语句和JS脚本中的中文信息已经一皮〈bean:message key=" "/〉的标签替换完毕了 ,然后在设定的进行二次替换的时候只针对<%...%>
中的内容进行替换。上述替换操:作可以在控制界面中"i殳置复选框来进行控制。
2、 &油8口;的情况,如"中&nbsp;文",按照正常的逻辑当文件的分析到&符 号时,文件分析接口会认为中文结束,最后导致"中&nbsp;文"被分割为两段 中文信息,因此可以判断组合字符串&nbsp;,通过预先设定组合字符串&nbsp; 的情况,当在中文开关打开的期间出现组合字符串&1^8^不#见为中文结束。
3、 "English中文english"的情况,所述English与english泛指非中文字符, 此情况需要通过规则来进行设置,如果预设需要提取"中文",则选择进行引号 部分提取,如果预设需要提取"English中文english",则选择进行引号全量提 取,所述引号全量提取表示只要引号中出现中文则整段引号部分都视为中文进
10行资源提取。
需要说明的是,执行步骤S206时,具体地,如果按照关键字直接进行替换 的话,会存在因为字符串存在包含关系而出现错误的替换的问题,比如系统检 索出需要替换中文信息"集团属性,,以及"集团",那么就必须要保证替换"集 团属性"的时候不要单独替换掉"集团属性"中的集团的字符,否则"集团属 性,,就会被替换成〈bean:messagekey^,,,,/〉属性的形式,而不是开发人员希望的 把"集团属性,,替换成〈bean:messageke",,,,^的形式,从而造成了搜索和替换 不统一。为了解决上述出现的替换问题,提高替换的准确性,执行替换的步骤 前,可以重新对文件进行分析,然后执行替换的步骤,即在步骤S205后,重新 执行步骤S201到步骤S203,完成对文件的代码的重新分析,然后直接执行步骤 S206,具体地,重新执行完步骤S203后,即再次遍历搜索出的中文代码后,系
息一致,如果所述4企测的结果不一致,即上述两次搜索出的中文不相同,则结 束流程,如果所述检测的结果一致,则执行步骤S206,把搜索出的需要进行替 换的代码根据之前的步骤S205配置的替换内容进行替换,避免了按照关键字直 接进行替换出现的替换问题,提高搜索和替换的准确性。
需要说明的是,本发明实施例的步骤还包括,在文件替换的最后一步判断 JSP中是否存在"<%@ taglib uri=7WEB-INF/struts-bean.tld" prefix="bean" %>,,, 如果不存在,则自动为程序添加上述代码行至文件头中。
下面结合图3示出的本发明实施例的实现多语言版本的开发的方法流程图, 说明本发明实施例的实现多语言版本的开发的方法,包括如下步骤
步骤S301:遍历源代码文件,搜索出需要进行替换的第一语言代码; 步骤S302:对所述搜索出的第一语言代码配置替换内容; 步骤S303:根据所述配置结果,自动将所述源代码文件中的所述第一语言 代码替换成所述替换内容。
步骤S304:根据所述替换内容配置资源文件,建立所述替换内容与至少一 种语言版本代码的替换映射关系;具体地,以一个JSP为源代码的中文版本的 产品实现支持国际化多语言(,至少两种,比如,可包括中文版本,英文版本 日文版本等)为例子,JSP标签的资源文件可定义在struts-config.xml文件中, 才各式i口下<message-resources parameter="resources.Application—CN.properties"/>。在所述资源文件中,将所述多种语言版本的代码与所述配置的相应的替换格
式内容的对应关系按照标签=value的格式进行输出,如中文版本与所述替换内 容的替换映射关系为
group AttrConfigMainFrame」sp.ProdType-产品类型
groupProdTypeAttrListJ sp.PropSho wType二属性显示类型
英文版本与所述替换内容的替换映射关系为
groupAttrConfigMainFrame」'sp.ProdType=stufftype
groupAttrConfigMainFrame」'sp.ProdType=configtype
步骤S305: #4居所述配置的资源文件将所述源代码文件中的所述替换内容 替换成所述至少一种语言版本代码,并保存所述替换后生成的源代码文件。具 体实现中,可将所述替换后生成的源代码文件保存在内存相应文件中,拷贝到 STUTS架构resources.Application—CN.properties文件中。也可将源代码存放在系 统运行时,可访问的硬盘会外部存储介质中。
下面结合图4示出的本发明的多语言版本开发中实现代码替换的装置的第 一实施例的结构示意图,说明本发明实施例中的一种多语言版本开发中实现代 码替换的装置,包括
遍历模块40,用于遍历源代码文件,搜索出需要进行替换的第一语言代码; 具体地,所述第一语言代码可为中文代码、英文代码、日文代码,法文代码等。 所述源代码文件可为JSP源代码文件、Java源代码文件以及0++语言源代码文 件中任一种。
内容配置模块42,用于对所述遍历模块40搜索出的第一语言代码配置替换 内容;具体地,所述替换内容可为STRUTS替换标签或自定义的替换内容(比 如,XML静态函数)。
内容替换模块44,用于根据所述内容配置模块42配置的配置结果,自动将 所述源代码文件中的所述第一语言代码替换成所述替换内容。比如,原来界面 上有一个按钮叫"确定,,,那么在JSP源代码中写为〈inputtype-"button"value二" 确定",对应所述"确定"的替换标签可为〈bean:messageke",buttoncaption,〉", 则所述内容替换模块44将所述中文"确定"替换成成替换内容后,所述源代码 变成〈input type="button" value=,,<bean:message key=,buttoncaption,>,,。
上述实施例,通过遍历源代码文件,自动搜索出所有需要进行替换的第一语言代码信息,并为所述第一语言代码配置替换内容,根据配置结果自动将所 述源代码文件中的所述第一语言代码替换成所述替换内容,解决了手工搜索提 取以及替换代码而造成的遗漏,耗费大量人力的问题,并且使产品完成国际化 的流程更加方便快捷,更加灵活地满足海外运营商对当地语言的支持需求。
需要说明的是,本发明实施例的多语言版本开发中实现代码替换的装置还
可以包括遍历文件夹模块,所述遍历文件夹模块可以利用Windows Application Programming Interface ,简称Windows API函数遍历系统中的文件夹,搜索出需 要进行替换的源代码文件,如JSP源代码文件、。++语言源代码文件等,然后供 遍历模块40进行遍历,从所述需要进行替换的源代码文件中搜索出需要进行替 换的第一语言代码。
下面结合图5示出的本发明实施例的遍历模块40的结构示意图,进一步详 细说明本发明实施例的 一种多语言版本开发中实现代码替换的装置,遍历模块 40包括
查找模块401 ,用于在所述源代码文件中查找出不在特殊字符之间的代码, 所述特殊字符包括注释符号和/或字符串符号;比如当源代码为JSP源代码时, 所述查找模块401将所述搜索出的JSP源代码文件中的代码分解成每行进行查 找处理,所述特殊字符包括注释符号和/或字符串符号等,所述注释字符包括双 斜杠符号(即"〃"符号)以及"/*,,符号等,所述字符串符号包括单引符号以 及双引符号等,所述不在特殊字符之间的代码即为有效执行代码,在所述源代 码文件的代码中查找出不在所述特殊字符之间的代码,即为在所述源代码文件 的代码中查找出除了注释代码和/或字符串代码等之外的有效执行代码。
检测处理模块403,用于在所述查找模块401查找出的代码中检测并找出需 要进行替换的第 一语言代码。
下面结合图6示出的本发明实施例的内容配置模块42的结构示意图,进一 步详细说明本发明实施例的 一种多语言版本开发中实现代码替换的装置,内容 配置沖莫块42包括
设置模块421,用于为所述搜索出的第一语言代码中的每一代码设置替换内
容;
存储模块423,用于生成数据库存储所述替换内容与所述第一语言代码的替 换映射关系。比如,当需要替换JSP源代码文件中的中文代码时,所述替换内容可以为 STRUTS的替换标签〈bean:messageke""标签"/>,生成的替换映射关系可为 标签=第一语言代码。
例如,JSP源代码文件中的"中国",所述设置模块421设置的替换标签可 为〈bean:messageke尸"CN"。所述存储模块423生成的替换映射关系可为CN= 中国;
JSP源代码中的"查找",所述设置模块421设置的替换标签可为 〈bean:message key= "search"。所述存储才莫块423生成的替换映射关系可为 search^查找。
下面结合图7示出的本发明的多语言版本开发中实现代码替换的装置的实 施例的结构示意图,进一步详细说明本发明实施例中的一种多语言版本开发中 实现代码替换的装置,除了包括上述的遍历模块40、内容配置模块42以及内容 替换模块44以外,还包括
记录模块46,用于记录所述遍历模块40搜索出的需要进行替换的第一语言 代码的具体内容及其在所述源代码中的位置信息。所述具体内容及位置信息包 括包括代码类型(标签、表头、按钮、对画框、冒泡等)代码内容、文件名 以及所述代码内容在所述文件中的行号等,分别记录代码的类型,代码中各中 文字符对应的中文内容,所述中文字符所在的文件夹的名称以及所述中文字符 所在的文件的行号等。
下面结合一个JSP为源代码的中文版本的产品实现支持国际化多语言的例 子,进一步详细说明本发明的多语言版本开发中实现代码替换的装置的功能以 及结构
遍历模块40中的查找模块401在搜索出的源代码文件的代码中查找出不在 特殊字符之间的代码,所述特殊字符包括注释符号和/或字符串符号等,所述注 释字符包括双斜杠符号(即"〃"符号)以及"/*"符号等,所述字符串符号包 括单引符号以及双引符号等,所述不在特殊字符之间的代码即为有效执行代码, 在所述源代码文件的代码中查找出不在所述特殊字符之间的代码,即为在所述 源代码文件的代码中查找出除了注释代码和/或字符串代码等之外的有效执行代 码;具体地,需要针对搜索出的文件进行逐行逐字的解析,可以预先定义中文 开关和预先为单引号、双引号、"〃,,符号以及7*,,符号等分别定义标识开关,
14并定义每一个标识开关打开之后等待该开关关闭之前,其他的标识开关不允许打开(即某一种特殊字符之间出现的其他特殊字符将会被忽略),在所有标识开关都关闭的情况下,标识当前的代码是有效执行代码,另外,针对很大一部分的中文字符是出现在引号当中的情况,开发人员可以设定引号的标识开关打开的情况下,也标识当前的代码是有效执行代码。标识出有效执行代码后,查找所述有效执行代码的中文字符,当检测到中文字符,则所述中文开关打开,检测到中文字符结束,则中文开关关闭,并记录中文开关打开和关闭时的代码位置,最后通过记录的代码位置信息输出所述位置中的中文字符。
特殊地,在JSP页面中的对于一些特殊字符的特殊处理一般分为如下几中情况
1、 <%...%>的情况,<%...%>中的中文字符不能用标签进行替换,因为这中间的代码是在服务端执行的,所以替换方式应该和现有中对的Java源代码的替换方案保持统一。对于这种情况本发明是通过设定进行二次替换来处理,即对于JSP文件的替换首先不考虑<%...%>的情况,通过本发明实施例的统一替换之后,JSP文件的HTML语句和JS脚本中的中文信息已经被〈bean:messagekey=" "/>的标签替换完毕了 ,然后在设定的进行二次替换的时候只针对<%...%>中的内容进行替换。上述替换操作可以在控制界面中设置复选框来进行控制。
2、 (&nbsp;的情况,如"中&nbsp;文",按照正常的逻辑当文件的分析到&符号时,文件分析接口会认为中文结束,最后导致"中&nbsp;文"被分割为两段中文信息,因此可以判断组合字符串&nbsp;,通过预先设定组合字符串&nbsp;的情况,当在中文开关打开的期间出现组合字符串(&nbsp;不视为中文结束。
3、 "English中文english,,的情况,所述English与english泛指非中文字符,此情况需要通过规则来进行设置,如果预设需要提取"中文",则选择进行引号部分提取,如果预设需要提取"English中文english",则选择进行引号全量提取,所述引号全量提取表示只要引号中出现中文则整段引号部分都视为中文进行资源提取。
遍历模块40中的检测处理模块403检测所述查找模块401查找出的代码中是否含有中文字符,当检测处理模块403的检测结果为是时,触发记录模块46记录所述检测处理模块4032检测的所有中文字符对应的代码信息,具体地,所述代码信息包括代码内容、文件名以及所述代码内容在所述文件中的行号,分
15别记录代码中各中文字符对应的中文内容,所述中文字符所在的文件夹的名称,所述中文字符所在的文件的行号。
内容配置模块42对所述检测处理模块403检测的中文字符配置替换标签,具体地,配置的替换标签的模式为预先设置的替换逻辑的模式,如开发人员预先设置的替换逻辑的模式为〈bean:messageke"" "/>,以原来界面上的一个叫"确定"的按钮为例进行说明,代码中的形式为<input type="button" value—确定",对其中的中文字符(即确定)配置〈bean:message ke",buttoncaption、的替换标签。
内容替换模块44根据内容配置模块42配置的替换标签自动将所述中文字符替换成所述替换标签,具体地,以上述的原来界面上的一个叫"确定"的按钮为例进行说明,把〈input type="button" value-"确定"中的中文字符替换成所述^孚:換标签,那么替4炎后的形式为<input type="button" value="<bean:messagekey=,buttoncaption,〉,,。
需要说明的是,内容替换模块44执行替换时,如果按照关键字直接进行替换的话,会存在因为字符串存在包含关系而出现错误的替换的问题,比如系统检索出需要替换中文信息"集团属性"以及"集团",那么就必须要保证替换"集团属性"的时候不要单独替换掉"集团属性"中的集团的字符,否则"集团属性,,就会被替换成〈bean:messagekey^,,,/〉属性的形式,而不是开发人员希望的把"集团属性"替换成〈bean:messageke"",》的形式,从而造成了搜索和替换不统一。为了解决上述出现的替换问题,提高替换的准确性,内容替换模块44执行替换前,可以重新触发遍历模块40对文件再次进行分析,再次遍历搜索出的第一语言代码后,可以检测所述再次遍历搜索出的第 一语言代码是否与记录模块46记录的代码信息一致,如果所述检测的结果不一致,即遍历模块40两次搜索出的第一语言代码不相同,则结束流程,如果所述检测的结果一致,则根据之前内容配置模块42配置的替换内容进行替换,避免了按照关键字直接进行替换出现的替换问题,提高搜索和替换的准确性。
下面结合图8示出的本发明实施例的实现多语言版本的开发的装置的结构示意图,说明本发明实施例的实现多语言版本的开发的装置,除了包括上述的遍历模块40、内容配置模块42、内容替换模块44以及记录模块46外,还包括
文件配置模块48,用于根据所述替换内容配置资源文件,建立所述替换内容与至少一种语言版本代码的替换映射关系;
文件替换模块50,用于根据所述文件配置^莫块48配置的资源文件将所述源代码文件中的所述替换内容替换成所述至少一种语言版本代码,并保存所述替换后生成的源代码文件。
具体地,以一个JSP为源代码的中文版本的产品实现支持国际化多语言(,至少两种,比如,可包括中文版本,英文版本日文版本等)为例子,JSP标签的资源文件可定义在struts-config.xml文件中,格式如下<message-resourcesparameter="resources.Application—CN.properties" /〉。在所述资源文件中,将所述多种语言版本的代码与所述配置的相应的替换格式内容的对应关系按照标签=value的格式进行输出,如中文版本与所述替换内容的替换映射关系为
groupAttrConfigMainFrame」'sp.ProdType-产品类型
groupProdTypeAttrList」'sp.PropShowType二属性显示类型
英文版本与所述替换内容的替换映射关系为
group AttrConfigMainFrameJ sp .ProdType=stufftype
groupAttrConfigMainFrame」'sp.ProdType=configtype
具体实现中,可将所述替换后生成的源代码文件保存在内存相应文件中,拷贝到STUTS架构resources.Application_CN.properties文件中。也可将源代码存放在系统运行时,可访问的硬盘会外部存储介质中。
综上所述,实施本发明实施例,通过遍历源代码文件,自动搜索出所有需要进行替换的第一语言代码信息,并为所述第一语言代码配置替换内容,根据配置结果自动将所述源代码文件中的所述第一语言代码替换成所述替换内容,解决了手工搜索提取以及替换代码而造成的遗漏,耗费大量人力的问题。
需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在
存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所揭露的仅为本发明实施例中的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1、一种多语言版本开发中实现代码替换的方法,其特征在于,包括如下步骤遍历源代码文件,搜索出需要进行替换的第一语言代码;对所述搜索出的第一语言代码配置替换内容;根据所述配置的配置结果,自动将所述源代码文件中的所述第一语言代码替换成所述替换内容。
2、 如权利要求l所述的方法,其特征在于,所述搜索出需要进行替换的第 一语言代码包括在所述源代码文件中查找出不在特殊字符之间的代码,所述特殊字符包括 注释符号和/或字符串符号;在所述查找出的代码中检测并找出需要进行替换的第 一语言代码。
3、 如权利要求l所述的方法,其特征在于,所述对所述搜索出的第一语言 代码配置替换内容之前,还包括记录所述搜索出的需要进行替换的第 一语言代码的具体内容及其在所述源 代码中的位置信息。
4、 如权利要求1所述的方法,其特征在于,所述对所述搜索出的第一语 言代码配置替换内容包括为所述搜索出的第 一语言代码中的每一代码设置替换内容; 生成数据库存储所述替换内容与所述第 一语言代码的替换映射关系。
5、 如权利要求4所述的方法,其特征在于,所述根据所述配置结果,自动 将所述源代码文件中的所述第 一语言代码替换成所述替换内容包括再次遍历源代码文件,搜索出需要进行替换的第一国家语音代码; 根据所述数据库中所述替换内容与所述第一语言代码的替换映射关系,自 动将所述源代码文件中的所述第 一 国家语音代码替换成所迷替换内容。
6、 如权利要求5所述的方法,其特征在于,所述根据所述数据库中所述替 换内容与所述第一语言代码的替换映射关系,自动将所述源代码文件中的所述 第一国家语音代码替换成所述替换内容包括检测所述再次遍历搜索出的需要进行替换的第一语言代码及其位置是否与 所述记录的代码相同;根据所述数据库中所述替换内容与所述第一语言代码的替换映射关系,自 动将所述源代码中与所述记录的代码信息及位置相同的第 一语言代码替换成所 述替换内容。
7、 如权利要求1-6中任一项所述的方法,其特征在于,所述替换内容为 STRUTS替换标签或自定义的替换内容。
8、 如权利要求l-6所述的方法,其特征在于,所述源代码文件为JSP源代 码文件、Java源代码文件以及C十+语言源代码文件中任一种。
9、 一种实现多语言版本的开发的方法,其特征在于,包括如下步骤 遍历源代码文件,搜索出需要进行替换的第 一语言代码; 对所述搜索出的第一语言代码配置替换内容;根据所述配置的配置结果,自动将所述源代码文件中所述第一语言代码替 换成所述替换内容;并根据所述替换内容配置资源文件,建立所述替换内容与至少 一种语言版 本代码的替换映射关系;根据所述配置的资源文件将所述源代码文件中的所述替换内容替换成所述 至少一种语言版本代码,并保存所述替换后生成的源代码文件。
10、 一种多语言版本开发中实现代码替换的装置,其特征在于,包括 遍历模块,用于遍历源代码文件,搜索出需要进行替换的第一语言代码;内容配置模块,用于对所述遍历模块搜索出的第一语言代码配置替换内容; 内容替换模块,用于根据所述内容配置模块的配置结果,自动将所述源代码文件中的所述第 一语言代码替换成所述替换内容。
11、 如权利要求IO所述的装置,其特征在于,所述遍历模块包括 查找模块,用于在所述源代码文件中查找出不在特殊字符之间的代码,所述特殊字符包括注释符号和/或字符串符号;检测处理模块,用于在所述查找模块查找出的代码中检测并找出需要进行 替换的第一语言代码。
12、 如权利要求IO所述的装置,其特征在于,所述装置还包括 记录模块,用于记录所述遍历模块搜索出的需要进行替换的第一语言代码的具体内容及其在所述源代码中的位置信息。
13、 如权利要求IO所述的装置,其特征在于,所述内容配置模块包括 设置模块,用于为所述搜索出的第 一语言代码中的每一代码设置替换内容; 存储^t块,用于生成tt据库存储所述替换内容与所述第一语言代码的替换映射关系。
14、 一种实现多语言版本的开发的装置,其特征在于,包括 遍历模块,用于遍历源代码文件,搜索出需要进行替换的第一语言代码; 内容配置模块,用于对所述遍历模块搜索出的第一语言代码配置替换内容; 内容替换模块,用于根据所述内容配置模块的配置结果,自动将所述源代码文件中的所述第 一语言代码替换成所述替换内容;文件配置模块,用于根据所述替换内容配置资源文件,建立所述替换内容 与至少一种语言版本代码的替换映射关系;文件替换模块,用于根据所述文件配置模块配置的资源文件将所述源代码 文件中的所述替换内容替换成所述至少一种语言版本代码,并保存所述替换后 生成的源代码文件。
15、 一种计算机可读介质,其特征在于,其内存储有计算机程序,所述计 算机程序运行时可使得一个或多个处理器执行如权1或权9所述的方法。
全文摘要
本发明实施例公开了一种多语言版本开发中实现代码替换的方法和装置,一种实现多语言版本的开发的方法及装置,以及一种计算机可读介质。其中,所述多语言版本开发中实现代码替换的方法,包括如下步骤遍历源代码文件,搜索出需要进行替换的第一语言代码;对所述搜索出的第一语言代码配置替换内容;根据所述配置结果,自动将所述源代码文件中的所述第一语言代码替换成所述替换内容。本发明实施例解决了手工搜索提取以及替换代码而造成的遗漏,耗费大量人力的问题。
文档编号G06F9/44GK101667118SQ200810198258
公开日2010年3月10日 申请日期2008年9月2日 优先权日2008年9月2日
发明者斌 游 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1