CN110806896A - 基于maven插件实现软件开发中国际化信息提取方法 - Google Patents

基于maven插件实现软件开发中国际化信息提取方法 Download PDF

Info

Publication number
CN110806896A
CN110806896A CN201910932572.6A CN201910932572A CN110806896A CN 110806896 A CN110806896 A CN 110806896A CN 201910932572 A CN201910932572 A CN 201910932572A CN 110806896 A CN110806896 A CN 110806896A
Authority
CN
China
Prior art keywords
information
mapping set
map mapping
key
internationalized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910932572.6A
Other languages
English (en)
Other versions
CN110806896B (zh
Inventor
茆正华
谭翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Para Software Co Ltd
Original Assignee
Shanghai Para Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Para Software Co Ltd filed Critical Shanghai Para Software Co Ltd
Priority to CN201910932572.6A priority Critical patent/CN110806896B/zh
Publication of CN110806896A publication Critical patent/CN110806896A/zh
Application granted granted Critical
Publication of CN110806896B publication Critical patent/CN110806896B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

本发明提供了一种基于maven插件实现软件开发中国际化信息提取方法包括以下步骤:开发人员正常书写代码,并按规则格式书写要提取的国际化信息;开发人员对maven插件进行配置;利用配置好的maven插件对步骤1的代码进行解析;maven插件运行后逐行检查代码,将检查出的代码中包含的国际化信息输出到步骤2中配置的各配置语言文件properties中。通过本发明可以将国际化信息自动更新至多个配置语言文件properties中,无需开发人员逐一对各配置语言文件properties进行手动维护及更新,提高了对配置语言文件properties的管理效率。

Description

基于maven插件实现软件开发中国际化信息提取方法
技术领域
本发明涉及代码开发中的一种通用信息的提取方法。
背景技术
在java开发中,经常会涉及到信息国际化的问题。目前多数解决方案是在项目中引入一个国际化信息配置文件properties,例如:i18n_cn.properties,i18n_en.properties,i18n_jp.properties等。在项目的开发期与各功能的更新期,就需要维护修改这些国际化信息配置文件properties,而对所有这些国际化信息配置文件properties进行人为的修改和整理是一个繁琐的事情。
发明内容
本发明的目的是:对基于某个项目的所有国际化信息配置文件properties进行统一的自动更新管理。
为了达到上述目的,本发明的技术方案是提供了一种基于maven插件实现软件开发中国际化信息提取方法,其特征在于,包括以下步骤:
步骤1、开发人员正常书写代码,在书写代码时并按规则格式书写要提取的国际化信息;
步骤2、对maven插件进行配置,配置需要从步骤1中书写的代码中提取的国际化信息的正则格式以及该国际化信息需要输出的各配置语言文件properties;
步骤3、创建与每个配置语言文件properties相对应的缓存与map映射集合;
步骤4、调用maven插件对步骤1书写的代码进行解析,解析后获得代码中所包含的各国际化信息的键一key1及与键一key1相当对应的值一value1,值一value1中包含有具体的国际化信息,键一key1用于对国际化信息进行标识;
步骤5、maven插件利用步骤2配置的正则格式与步骤4获得的键一key1相匹配,若匹配成功,则进入步骤6,若匹配失败,则进入步骤9;
步骤6、基于键一key1去检测步骤3创建的每个map映射集合中是否存在相对应的键二key2,若当前map映射集合中存在相对应的键二key2,并且在其他某个映射集合中不存在相对应的键二key2,则将当前map映射集合中与键二key2相对应的值二value2取出,值二value2中包含有当前map映射集合中已经存储的具体的国际化信息;
步骤7、调用翻译引擎服务,将值二value2的具体内容翻译为不存在相对应的键二key2的其他某个映射集合相对应的国际化语言,并将翻译后的国际化语言作为不存在相对应的键二key2的其他某个映射集合的值二value2插入其中;
步骤8、重复步骤6及步骤7,直至遍历所有map映射集合并遍历所有匹配到的键一key1,进入步骤11;
步骤9、将值一value1用占位标记符替换,并将键一key1及替换后的值一value1写入任意一个map映射集合中;
步骤10、开发人员对步骤9中的map映射集合进行处理,将占位标记符用步骤4中所述值一value1对应的国际化信息翻译为当前map映射集合所对应的国际化语言后插入当前map映射集合,返回步骤6;
步骤11、将所有的map映射集合写入相对应的缓存中,并将各缓存写入相对应的配置语言文件properties中。
通过本发明可以将国际化信息自动更新至多个配置语言文件properties中,无需开发人员逐一对各配置语言文件properties进行手动维护及更新,提高了对配置语言文件properties的管理效率。
附图说明
图1为本发明的总体流程图;
图2为本发明中maven插件的内部处理流程。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
如图1所示,本发明提供的一种基于maven插件实现软件开发中国际化信息提取方法包括以下步骤:
步骤1、开发人员正常书写代码,并按规则格式书写要提取的国际化信息;
步骤2、开发人员对maven插件进行配置,配置maven插件要提取的国际化信息的正则格式以及该国际化信息需要输出的各配置语言文件properties;
步骤3、开发人员利用配置好的maven插件对步骤1的代码进行解析;
步骤4、maven插件运行后逐行检查代码,将检查出的代码中包含的国际化信息输出到步骤2中配置的各配置语言文件properties中。在输出时,maven插件检测步骤2中配置的配置语言文件properties是否存在需要写入的国际化信息,如果存在,则不写入,否则在配置语言文件properties中写入该国际化信息。
如图2所示,所述的步骤4具体包括以下步骤:
步骤401、maven插件获取到配置的各配置语言文件properties后创建与每个配置语言文件properties相对应的缓存与map映射集合,各map映射集合中包括键二key2及与键二key2相对应的值二value2,通过键二key2标识各map映射集合中已存储的各国际化信息,值二value2包含具体的国际化信息;
步骤402、maven插件获得代码中所包含的各国际化信息的键一key1及与键一key1相当对应的值一value1,值一value1中包含有具体的国际化信息,键一key1用于对国际化信息进行标识;
步骤403、maven插件利用步骤2配置的正则格式与步骤402获得的键一key1相匹配,若匹配成功,则进入步骤404,若匹配失败,则进入步骤407;
步骤404、基于键一key1去检测步骤401创建的每个map映射集合中是否存在相对应的键二key2,若当前map映射集合中存在相对应的键二key2,并且在其他某个映射集合中不存在相对应的键二key2,则将当前map映射集合中与键二key2相对应的值二value2取出,值二value2中包含有当前map映射集合中已经存储的具体的国际化信息;
步骤405、调用翻译引擎服务,将值二value2的具体内容翻译为不存在相对应的键二key2的其他某个映射集合相对应的国际化语言,并将翻译后的国际化语言作为不存在相对应的键二key2的其他某个映射集合的值二value2插入其中;
步骤406、重复步骤404及步骤405,直至遍历所有map映射集合并遍历所有匹配到的键一key1,进入步骤409;
步骤407、将值一value1用占位标记符替换,并将键一key1及替换后的值一value1写入任意一个map映射集合中;
步骤408、开发人员对步骤407中的map映射集合进行处理,将占位标记符用步骤4中所述值一value1对应的国际化信息翻译为当前map映射集合所对应的国际化语言后插入当前map映射集合,返回步骤404;
步骤409、将所有的map映射集合写入相对应的缓存中,并将各缓存写入相对应的配置语言文件properties中。

Claims (1)

1.一种基于maven插件实现软件开发中国际化信息提取方法,其特征在于,包括以下步骤:
步骤1、开发人员正常书写代码,在书写代码时并按规则格式书写要提取的国际化信息;
步骤2、对maven插件进行配置,配置需要从步骤1中书写的代码中提取的国际化信息的正则格式以及该国际化信息需要输出的各配置语言文件properties;
步骤3、创建与每个配置语言文件properties相对应的缓存与map映射集合;
步骤4、调用maven插件对步骤1书写的代码进行解析,解析后获得代码中所包含的各国际化信息的键一key1及与键一key1相当对应的值一value1,值一value1中包含有具体的国际化信息,键一key1用于对国际化信息进行标识;
步骤5、maven插件利用步骤2配置的正则格式与步骤4获得的键一key1相匹配,若匹配成功,则进入步骤6,若匹配失败,则进入步骤9;
步骤6、基于键一key1去检测步骤3创建的每个map映射集合中是否存在相对应的键二key2,若当前map映射集合中存在相对应的键二key2,并且在其他某个映射集合中不存在相对应的键二key2,则将当前map映射集合中与键二key2相对应的值二value2取出,值二value2中包含有当前map映射集合中已经存储的具体的国际化信息;
步骤7、调用翻译引擎服务,将值二value2的具体内容翻译为不存在相对应的键二key2的其他某个映射集合相对应的国际化语言,并将翻译后的国际化语言作为不存在相对应的键二key2的其他某个映射集合的值二value2插入其中;
步骤8、重复步骤6及步骤7,直至遍历所有map映射集合并遍历所有匹配到的键一key1,进入步骤11;
步骤9、将值一value1用占位标记符替换,并将键一key1及替换后的值一value1写入任意一个map映射集合中;
步骤10、开发人员对步骤9中的map映射集合进行处理,将占位标记符用步骤4中所述值一value1对应的国际化信息翻译为当前map映射集合所对应的国际化语言后插入当前map映射集合,返回步骤6;
步骤11、将所有的map映射集合写入相对应的缓存中,并将各缓存写入相对应的配置语言文件properties中。
CN201910932572.6A 2019-09-29 2019-09-29 基于maven扩展插件实现软件开发中国际化信息提取方法 Active CN110806896B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910932572.6A CN110806896B (zh) 2019-09-29 2019-09-29 基于maven扩展插件实现软件开发中国际化信息提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910932572.6A CN110806896B (zh) 2019-09-29 2019-09-29 基于maven扩展插件实现软件开发中国际化信息提取方法

Publications (2)

Publication Number Publication Date
CN110806896A true CN110806896A (zh) 2020-02-18
CN110806896B CN110806896B (zh) 2020-11-13

Family

ID=69488028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910932572.6A Active CN110806896B (zh) 2019-09-29 2019-09-29 基于maven扩展插件实现软件开发中国际化信息提取方法

Country Status (1)

Country Link
CN (1) CN110806896B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361286A (zh) * 2020-03-06 2021-09-07 北京沃东天骏信息技术有限公司 信息提示方法和装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185342B1 (en) * 2001-07-24 2007-02-27 Oracle International Corporation Distributed service aggregation and composition
CN101667118A (zh) * 2008-09-02 2010-03-10 华为技术有限公司 多语言版本的开发、替换方法及装置
CN103617046A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种扫描和提取目标系统源代码中待翻译的资源的方法和装置
CN103902261A (zh) * 2012-12-25 2014-07-02 北京慧点科技股份有限公司 一种处理软件资源的方法及装置
US9348456B2 (en) * 2013-06-27 2016-05-24 Korea Advanced Institute Of Science And Technology Determination of bezel area on touch screen
CN106775914A (zh) * 2016-12-27 2017-05-31 竞技世界(北京)网络技术有限公司 一种自动生成键值的代码国际化方法及装置
CN109508211A (zh) * 2017-09-13 2019-03-22 阿里巴巴集团控股有限公司 一种多语言配置方法、装置、系统及电子设备
CN109814839A (zh) * 2018-12-12 2019-05-28 平安科技(深圳)有限公司 国际化信息生成方法、装置及计算机可读存储介质
CN110187887A (zh) * 2019-05-24 2019-08-30 广东飞企互联科技股份有限公司 用于软件开发的自动翻译方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185342B1 (en) * 2001-07-24 2007-02-27 Oracle International Corporation Distributed service aggregation and composition
CN101667118A (zh) * 2008-09-02 2010-03-10 华为技术有限公司 多语言版本的开发、替换方法及装置
CN103902261A (zh) * 2012-12-25 2014-07-02 北京慧点科技股份有限公司 一种处理软件资源的方法及装置
US9348456B2 (en) * 2013-06-27 2016-05-24 Korea Advanced Institute Of Science And Technology Determination of bezel area on touch screen
CN103617046A (zh) * 2013-12-12 2014-03-05 用友软件股份有限公司 一种扫描和提取目标系统源代码中待翻译的资源的方法和装置
CN106775914A (zh) * 2016-12-27 2017-05-31 竞技世界(北京)网络技术有限公司 一种自动生成键值的代码国际化方法及装置
CN109508211A (zh) * 2017-09-13 2019-03-22 阿里巴巴集团控股有限公司 一种多语言配置方法、装置、系统及电子设备
CN109814839A (zh) * 2018-12-12 2019-05-28 平安科技(深圳)有限公司 国际化信息生成方法、装置及计算机可读存储介质
CN110187887A (zh) * 2019-05-24 2019-08-30 广东飞企互联科技股份有限公司 用于软件开发的自动翻译方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361286A (zh) * 2020-03-06 2021-09-07 北京沃东天骏信息技术有限公司 信息提示方法和装置

Also Published As

Publication number Publication date
CN110806896B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN108491199B (zh) 一种自动生成接口的方法及终端
US20160357519A1 (en) Natural Language Engine for Coding and Debugging
CN106843840B (zh) 一种基于相似度分析的源代码版本演化注释复用方法
CN108711443B (zh) 电子病历的文本数据解析方法和装置
CN112394942B (zh) 基于云计算的分布式软件开发编译方法及软件开发平台
CN107346284B (zh) 一种应用程序的检测方法及检测装置
US9182953B2 (en) Hybrid dynamic code compiling device, method, and service system thereof
CN108388454B (zh) 动态提供兼容js脚本内容的方法、装置和终端设备
CN111061643B (zh) Sdk集群的兼容性检测方法、装置、电子设备及存储介质
WO2020206840A1 (zh) 代码翻译方法、装置、计算机设备和存储介质
US8813046B2 (en) System and method for internationalization encoding
KR20080008969A (ko) 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템
CN103176807A (zh) 网页应用执行的提速方法及系统
US10678572B2 (en) Framework for automated globalization enablement on development operations
CN111881094B (zh) 日志中关键信息提取方法、装置、终端及存储介质
CN110806896B (zh) 基于maven扩展插件实现软件开发中国际化信息提取方法
JP2021002326A (ja) ソフトウェアプログラムにおける静的分析違反の修復パターンの精緻化
CN110134397A (zh) 代码片段翻译方法、装置、计算机设备和存储介质
CN114398673A (zh) 应用程序的合规检测方法、装置、存储介质与电子设备
CN111240790A (zh) 一种应用的多语言适配方法、装置、客户端和存储介质
US8819645B2 (en) Application analysis device
CN113760291A (zh) 日志输出的方法和装置
CN107451050B (zh) 函数获取方法和装置、服务器
CN106855842B (zh) 一种基于正则表达式的程序静态分析方法
CN111338956A (zh) 一种自动化的压测方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant