CN104536769A - 一种国际化文档实现方法 - Google Patents
一种国际化文档实现方法 Download PDFInfo
- Publication number
- CN104536769A CN104536769A CN201510022222.8A CN201510022222A CN104536769A CN 104536769 A CN104536769 A CN 104536769A CN 201510022222 A CN201510022222 A CN 201510022222A CN 104536769 A CN104536769 A CN 104536769A
- Authority
- CN
- China
- Prior art keywords
- file
- module
- annotation
- coupling
- translation
- 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.)
- Pending
Links
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种国际化文档实现方法,该方法主要通过文件加载模块、命名解析模块、文本分析模块以及注释翻译模块实现;首先通过I/O与反射机制加载项目文件,分析每个文件中的解析对象,为每个文件创建一个解析语法树,分别对解析对象进行细化处理;针对没有注释的解析对象根据其类型动态选择命名解析模块进行分词拼句,再选择本地资源库、常用词缓存列表、词典翻译数据接口进行翻译,最后更新到指定代码文件中并格式化结构;针对已有注释的描述进行文本分析模块分析,最后调用词典翻译数据接口进行翻译,最后更新到指定代码中。本发明具有方便、易用、高效快捷的特点,对开发者自身的产品进行规范化、格式化。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种国际化文档实现方法。
背景技术
随着计算机技术的快速发展,越来越多的技术、框架、软件产品被人知道、了解、熟悉,想要熟悉一种技术、一个框架、一种产品需要查找很多资料,攻克很多难关,甚至有时需要分析源代码去了解其原理,而有时候会面临无资料可查,更甚者连代码都没有开源。对于这种情况,很多人都会希望能够通过现有的可运行文件生成一份可读文档。
Jalopy是为Java编程语言提供的一个源代码格式化/美化/漂亮的开源项目,它旨在提供一个功能完整的,而且是免费的可以取代著名的Jindent的产品。并为Ant, Eclipse, IDEA, JBuilder, JDeveloper, jEdit, NetBeans提供了插件。而扩展开发同样支持插件使用。
发明内容
本发明的技术任务是提供一种国际化文档实现方法。
本发明的技术任务是按以下方式实现的,该方法主要通过文件加载模块、命名解析模块、文本分析模块以及注释翻译模块实现;
该方法步骤如下:
首先通过I/O与反射机制加载项目文件,分析每个文件中的解析对象,为每个文件创建一个解析语法树,分别对类、属性、方法、代码块、构造方法、主函数识别分类为解析对象,再进行细化处理;针对没有注释的解析对象根据其类型动态选择命名解析模块进行分词拼句,再选择本地资源库、常用词缓存列表、词典翻译数据接口进行翻译,最后更新到指定代码文件中并格式化结构;针对已有注释的描述进行文本分析模块分析,最后调用词典翻译数据接口进行翻译,最后更新到指定代码中。
所述的文件加载模块:可以选择项目、目录、文件管理要操作的对象,对于未提供源码的插件文件可以通过反编译得到源文件再进行操作。
所述的命名解析模块采用方法包括:“驼峰式匹配”、“‘_’连接式匹配”、“指定前缀匹配”、“指定前后缀匹配”、 “缩写简化匹配”、“正则表达式匹配”;
驼峰式匹配:适用于匹配类名、属性名、方法的命名规范;
‘_’连接式匹配:匹配常量定义和部分习惯用‘_’命名的属性名、方法名;
指定前后缀匹配:适用于规范化接口、抽象类、实现类;
缩写简化匹配:适用于基于专有名词缩写形式的命名;
正则表达式匹配:根据实际情况定义正则表达式进行匹配分词。
所述的文本分析模块:分析统计源程序中已存在的注释内容,识别有特殊含义、无需翻译的文本内容,主要包括:标签识别、注解识别、示例代码识别、特殊字符处理、原生类型识别;
标签识别:识别源程序中doc文档中标签定义,标签语句不翻译;
注解识别:识别注释中注解的定义;
示例代码识别:识别注释中的示例程序片段;
特殊字符处理:根据需要指定处理注释中的字符;
原生类型识别:识别开发类库类型和其它定义类型,类型文本不翻译。
所述的注释翻译模块:将文档注释翻译为配置的语言描述,其中数据映射包括:本地资源库、缓存列表存储模块、词典翻译数据接口模块;
本地资源库:存储通用、常用、含义明确唯一的资源映射;
缓存列表存储模块:内存中缓存较高被访问的词义映射;
词典翻译数据接口模块:调用第三方词典翻译数据接口,进行文本翻译。
本发明的一种国际化文档实现方法和现有技术相比,具有方便、易用、高效快捷的特点,可以帮助更多的开发者更容易的了解别人的产品,还可以对开发者自身的产品进行规范化、格式化。
附图说明
附图1为一种国际化文档实现方法的系统拓扑图。
附图2为一种国际化文档实现方法的流程示意图。
具体实施方式
实施例1:
该方法主要通过文件加载模块、命名解析模块、文本分析模块以及注释翻译模块实现;
该方法步骤如下:
首先通过I/O与反射机制加载项目文件,分析每个文件中的解析对象,为每个文件创建一个解析语法树,分别对类、属性、方法、代码块、构造方法、主函数识别分类为解析对象,再进行细化处理;针对没有注释的解析对象根据其类型动态选择命名解析模块进行分词拼句,再选择本地资源库、常用词缓存列表、词典翻译数据接口进行翻译,最后更新到指定代码文件中并格式化结构;针对已有注释的描述进行文本分析模块分析,最后调用词典翻译数据接口进行翻译,最后更新到指定代码中。
所述的文件加载模块:可以选择项目、目录、文件管理要操作的对象,对于未提供源码的插件文件可以通过反编译得到源文件再进行操作。
所述的命名解析模块采用方法包括:“驼峰式匹配”、“‘_’连接式匹配”、“指定前缀匹配”、“指定前后缀匹配”、 “缩写简化匹配”、“正则表达式匹配”;
驼峰式匹配:适用于匹配类名、属性名、方法的命名规范,形如XxxXxx或xxxXxx格式的命名规范;
‘_’连接式匹配:匹配常量定义和部分习惯用‘_’命名的属性名、方法名;
指定前后缀匹配:适用于规范化接口、抽象类、实现类,如接口命名以‘I’前缀,抽象类以‘Abstract’前缀,实现类以‘Impl’后缀等;
缩写简化匹配:适用于基于专有名词缩写形式的命名,设计为本地资源库的匹配,对于某些代表明确含义且翻译软件无法工作的情况;
正则表达式匹配:根据实际情况定义正则表达式进行匹配分词。
所述的文本分析模块:分析统计源程序中已存在的注释内容,识别有特殊含义、无需翻译的文本内容,主要包括:标签识别、注解识别、示例代码识别、特殊字符处理、原生类型识别;
标签识别:识别源程序中doc文档中标签定义,标签语句不翻译,如段落标签<p>,连接标签<a>等HTML标签;
注解识别:识别注释中注解的定义,如作者定义author、版本定义version等;
示例代码识别:识别注释中的示例程序片段;
特殊字符处理:根据需要指定处理注释中的字符;
原生类型识别:识别开发类库类型和其它定义类型,类型文本不翻译,如com.company.ClassDefine。
所述的注释翻译模块:将文档注释翻译为配置的语言描述,其中数据映射包括:本地资源库、缓存列表存储模块、词典翻译数据接口模块;
本地资源库:存储通用、常用、含义明确唯一的资源映射;
缓存列表存储模块:内存中缓存较高被访问的词义映射;在一个文件或一个目录中,某些词语被反复用到,对于命中率高的词在执行期间缓存可以大大提高工作效率。每个文件为一个单元,在多线程环境下,缓存列表会进行高并发的读写操作。
词典翻译数据接口模块:调用第三方词典翻译数据接口,进行文本翻译,例如有道、金山等。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
Claims (5)
1.一种国际化文档实现方法,其特征在于,该方法主要通过文件加载模块、命名解析模块、文本分析模块以及注释翻译模块实现;
该方法步骤如下:
首先通过I/O与反射机制加载项目文件,分析每个文件中的解析对象,为每个文件创建一个解析语法树,分别对类、属性、方法、代码块、构造方法、主函数识别分类为解析对象,再进行细化处理;针对没有注释的解析对象根据其类型动态选择命名解析模块进行分词拼句,再选择本地资源库、常用词缓存列表、词典翻译数据接口进行翻译,最后更新到指定代码文件中并格式化结构;针对已有注释的描述进行文本分析模块分析,最后调用词典翻译数据接口进行翻译,最后更新到指定代码中。
2. 根据权利要求1所述的一种国际化文档实现方法,其特征在于,所述的文件加载模块:可以选择项目、目录、文件管理要操作的对象,对于未提供源码的插件文件可以通过反编译得到源文件再进行操作。
3.根据权利要求1所述的一种国际化文档实现方法,其特征在于,所述的命名解析模块采用方法包括:“驼峰式匹配”、“‘_’连接式匹配”、“指定前缀匹配”、“指定前后缀匹配”、 “缩写简化匹配”、“正则表达式匹配”;
驼峰式匹配:适用于匹配类名、属性名、方法的命名规范;
‘_’连接式匹配:匹配常量定义和部分习惯用‘_’命名的属性名、方法名;
指定前后缀匹配:适用于规范化接口、抽象类、实现类;
缩写简化匹配:适用于基于专有名词缩写形式的命名;
正则表达式匹配:根据实际情况定义正则表达式进行匹配分词。
4.根据权利要求1所述的一种国际化文档实现方法,其特征在于,所述的文本分析模块:分析统计源程序中已存在的注释内容,识别有特殊含义、无需翻译的文本内容,主要包括:标签识别、注解识别、示例代码识别、特殊字符处理、原生类型识别;
标签识别:识别源程序中doc文档中标签定义,标签语句不翻译;
注解识别:识别注释中注解的定义;
示例代码识别:识别注释中的示例程序片段;
特殊字符处理:根据需要指定处理注释中的字符;
原生类型识别:识别开发类库类型和其它定义类型,类型文本不翻译。
5.根据权利要求1所述的一种国际化文档实现方法,其特征在于,所述的注释翻译模块:将文档注释翻译为配置的语言描述,其中数据映射包括:本地资源库、缓存列表存储模块、词典翻译数据接口模块;
本地资源库:存储通用、常用、含义明确唯一的资源映射;
缓存列表存储模块:内存中缓存较高被访问的词义映射;
词典翻译数据接口模块:调用第三方词典翻译数据接口,进行文本翻译。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510022222.8A CN104536769A (zh) | 2015-01-16 | 2015-01-16 | 一种国际化文档实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510022222.8A CN104536769A (zh) | 2015-01-16 | 2015-01-16 | 一种国际化文档实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104536769A true CN104536769A (zh) | 2015-04-22 |
Family
ID=52852301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510022222.8A Pending CN104536769A (zh) | 2015-01-16 | 2015-01-16 | 一种国际化文档实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536769A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682242A (zh) * | 2017-02-20 | 2017-05-17 | 山东浪潮商用系统有限公司 | 一种海外项目自定义国际化标签和日期数字的格式化方法 |
CN107273138A (zh) * | 2017-07-04 | 2017-10-20 | 杭州铜板街互联网金融信息服务有限公司 | 基于Android业务模块间交互的解耦方法和系统 |
CN109542412A (zh) * | 2018-10-16 | 2019-03-29 | 平安普惠企业管理有限公司 | 接口信息生成方法、装置、计算机设备和存储介质 |
CN111651221A (zh) * | 2020-07-14 | 2020-09-11 | 迈普通信技术股份有限公司 | 注解国际化方法及装置、存储介质及电子设备 |
CN113760821A (zh) * | 2020-06-22 | 2021-12-07 | 北京京东乾石科技有限公司 | 一种文件转换的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1368693A (zh) * | 2001-02-07 | 2002-09-11 | 友邦软件技术有限公司 | 用于全球化软件的方法和设备 |
US8032822B1 (en) * | 2006-07-28 | 2011-10-04 | Intuit Inc. | Method and system for explaining dependencies on a document |
CN103336760A (zh) * | 2013-07-11 | 2013-10-02 | 北京信息科技大学 | 一种基于逆向工程自动生成软件文档的方法及装置 |
-
2015
- 2015-01-16 CN CN201510022222.8A patent/CN104536769A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1368693A (zh) * | 2001-02-07 | 2002-09-11 | 友邦软件技术有限公司 | 用于全球化软件的方法和设备 |
US8032822B1 (en) * | 2006-07-28 | 2011-10-04 | Intuit Inc. | Method and system for explaining dependencies on a document |
CN103336760A (zh) * | 2013-07-11 | 2013-10-02 | 北京信息科技大学 | 一种基于逆向工程自动生成软件文档的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682242A (zh) * | 2017-02-20 | 2017-05-17 | 山东浪潮商用系统有限公司 | 一种海外项目自定义国际化标签和日期数字的格式化方法 |
CN107273138A (zh) * | 2017-07-04 | 2017-10-20 | 杭州铜板街互联网金融信息服务有限公司 | 基于Android业务模块间交互的解耦方法和系统 |
CN109542412A (zh) * | 2018-10-16 | 2019-03-29 | 平安普惠企业管理有限公司 | 接口信息生成方法、装置、计算机设备和存储介质 |
CN113760821A (zh) * | 2020-06-22 | 2021-12-07 | 北京京东乾石科技有限公司 | 一种文件转换的方法及装置 |
CN111651221A (zh) * | 2020-07-14 | 2020-09-11 | 迈普通信技术股份有限公司 | 注解国际化方法及装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7634720B2 (en) | System and method for providing context to an input method | |
US8051410B2 (en) | Apparatus for migration and conversion of software code from any source platform to any target platform | |
US20180136914A1 (en) | Programming Language with Extensions using a Strict Meta-Model | |
US10698664B2 (en) | API mashup generation | |
JP2017215999A (ja) | 変換コンテンツ・アウェア・データー・ソース管理 | |
TWI590082B (zh) | 應用程式的共享分散式詞庫 | |
CN106843840B (zh) | 一种基于相似度分析的源代码版本演化注释复用方法 | |
CN104536769A (zh) | 一种国际化文档实现方法 | |
US20200410170A1 (en) | Method and system for translating natural language policy to logical access control policy | |
US10592220B2 (en) | Metadata-driven binding of converted source code to original source code | |
US20070050707A1 (en) | Enablement of multiple schema management and versioning for application-specific xml parsers | |
US20100251227A1 (en) | Binary resource format and compiler | |
CN111831384B (zh) | 语言切换方法和装置、设备及存储介质 | |
CN113139390A (zh) | 一种应用于代码字符串的语言转换方法和装置 | |
CN103176807A (zh) | 网页应用执行的提速方法及系统 | |
CN112540862A (zh) | 一种接口文档数据生成方法、装置、设备及存储介质 | |
CN114153459A (zh) | 接口文档生成方法及装置 | |
Rueter et al. | Synchronized Mediawiki based analyzer dictionary development | |
US7827537B2 (en) | Searching computer programs that use different semantics | |
WO2023078053A1 (zh) | 一种代码生成方法、装置、计算机设备及存储介质 | |
US20120254833A1 (en) | Software layout processing in localization | |
CN114443041A (zh) | 抽象语法树的解析方法及计算机程序产品 | |
CN112395843A (zh) | 一种基于php代码的业务处理方法、装置及设备和介质 | |
Juričić | Detecting source code similarity using low-level languages | |
WO2021259290A1 (zh) | 存储过程转换方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150422 |