CN110806896A - 基于maven插件实现软件开发中国际化信息提取方法 - Google Patents
基于maven插件实现软件开发中国际化信息提取方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000000605 extraction Methods 0.000 title claims abstract description 5
- 238000013507 mapping Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种基于maven插件实现软件开发中国际化信息提取方法包括以下步骤:开发人员正常书写代码,并按规则格式书写要提取的国际化信息;开发人员对maven插件进行配置;利用配置好的maven插件对步骤1的代码进行解析;maven插件运行后逐行检查代码,将检查出的代码中包含的国际化信息输出到步骤2中配置的各配置语言文件properties中。通过本发明可以将国际化信息自动更新至多个配置语言文件properties中,无需开发人员逐一对各配置语言文件properties进行手动维护及更新,提高了对配置语言文件properties的管理效率。
Description
技术领域
本发明涉及代码开发中的一种通用信息的提取方法。
背景技术
在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中。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113361286A (zh) * | 2020-03-06 | 2021-09-07 | 北京沃东天骏信息技术有限公司 | 信息提示方法和装置 |
Citations (9)
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 | 广东飞企互联科技股份有限公司 | 用于软件开发的自动翻译方法及*** |
-
2019
- 2019-09-29 CN CN201910932572.6A patent/CN110806896B/zh active Active
Patent Citations (9)
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)
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) | 一种自动生成接口的方法及终端 | |
CN107368593B (zh) | 数据导入方法、装置及服务器 | |
US20160357519A1 (en) | Natural Language Engine for Coding and Debugging | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
CN106843840B (zh) | 一种基于相似度分析的源代码版本演化注释复用方法 | |
CN111061643B (zh) | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 | |
CN108711443B (zh) | 电子病历的文本数据解析方法和装置 | |
CN108388454B (zh) | 动态提供兼容js脚本内容的方法、装置和终端设备 | |
CN107346284B (zh) | 一种应用程序的检测方法及检测装置 | |
WO2020206840A1 (zh) | 代码翻译方法、装置、计算机设备和存储介质 | |
US20150143348A1 (en) | Hybrid dynamic code compiling device, method, and service system thereof | |
US8813046B2 (en) | System and method for internationalization encoding | |
KR20080008969A (ko) | 무선 펌웨어 업데이트 개발 환경에서의 변경 로깅을수행하기 위한 방법 및시스템 | |
CN103176807A (zh) | 网页应用执行的提速方法及*** | |
CN111881094B (zh) | 日志中关键信息提取方法、装置、终端及存储介质 | |
CN110134397A (zh) | 代码片段翻译方法、装置、计算机设备和存储介质 | |
US10521253B2 (en) | Framework for automated globalization enablement on development operations | |
CN110806896B (zh) | 基于maven扩展插件实现软件开发中国际化信息提取方法 | |
JP2021002326A (ja) | ソフトウェアプログラムにおける静的分析違反の修復パターンの精緻化 | |
CN114398673A (zh) | 应用程序的合规检测方法、装置、存储介质与电子设备 | |
CN111240790A (zh) | 一种应用的多语言适配方法、装置、客户端和存储介质 | |
US8819645B2 (en) | Application analysis device | |
CN115658030A (zh) | 代码处理方法、装置和电子设备 | |
CN115150483A (zh) | 一种网络数据包解析方法、***及可读存储介质 | |
CN113760291A (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 |