一種國際化文檔實現(xiàn)方法
【技術領域】
[0001]本發(fā)明涉及計算機技術領域,具體地說是一種國際化文檔實現(xiàn)方法。
【背景技術】
[0002]隨著計算機技術的快速發(fā)展,越來越多的技術、框架、軟件產品被人知道、了解、熟悉,想要熟悉一種技術、一個框架、一種產品需要查找很多資料,攻克很多難關,甚至有時需要分析源代碼去了解其原理,而有時候會面臨無資料可查,更甚者連代碼都沒有開源。對于這種情況,很多人都會希望能夠通過現(xiàn)有的可運行文件生成一份可讀文檔。
[0003]Jalopy是為Java編程語言提供的一個源代碼格式化/美化/漂亮的開源項目,它旨在提供一個功能完整的,而且是免費的可以取代著名的Jindent的產品。并為Ant,Eclipse, IDEA, JBuilder, JDeveloper, jEdit, NetBeans提供了插件。而擴展開發(fā)同樣支持插件使用。
【發(fā)明內容】
[0004]本發(fā)明的技術任務是提供一種國際化文檔實現(xiàn)方法。
[0005]本發(fā)明的技術任務是按以下方式實現(xiàn)的,該方法主要通過文件加載模塊、命名解析模塊、文本分析模塊以及注釋翻譯模塊實現(xiàn);
該方法步驟如下:
首先通過I/o與反射機制加載項目文件,分析每個文件中的解析對象,為每個文件創(chuàng)建一個解析語法樹,分別對類、屬性、方法、代碼塊、構造方法、主函數(shù)識別分類為解析對象,再進行細化處理;針對沒有注釋的解析對象根據(jù)其類型動態(tài)選擇命名解析模塊進行分詞拼句,再選擇本地資源庫、常用詞緩存列表、詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼文件中并格式化結構;針對已有注釋的描述進行文本分析模塊分析,最后調用詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼中。
[0006]所述的文件加載模塊:可以選擇項目、目錄、文件管理要操作的對象,對于未提供源碼的插件文件可以通過反編譯得到源文件再進行操作。
[0007]所述的命名解析模塊采用方法包括:“駝峰式匹配”、“ 連接式匹配”、“指定前綴匹配”、“指定前后綴匹配”、“縮寫簡化匹配”、“正則表達式匹配”;
駝峰式匹配:適用于匹配類名、屬性名、方法的命名規(guī)范;
連接式匹配:匹配常量定義和部分習慣用命名的屬性名、方法名;
指定前后綴匹配:適用于規(guī)范化接口、抽象類、實現(xiàn)類;
縮寫簡化匹配:適用于基于專有名詞縮寫形式的命名;
正則表達式匹配:根據(jù)實際情況定義正則表達式進行匹配分詞。
[0008]所述的文本分析模塊:分析統(tǒng)計源程序中已存在的注釋內容,識別有特殊含義、無需翻譯的文本內容,主要包括:標簽識別、注解識別、示例代碼識別、特殊字符處理、原生類型識別; 標簽識別:識別源程序中doc文檔中標簽定義,標簽語句不翻譯;
注解識別:識別注釋中注解的定義;
示例代碼識別:識別注釋中的示例程序片段;
特殊字符處理:根據(jù)需要指定處理注釋中的字符;
原生類型識別:識別開發(fā)類庫類型和其它定義類型,類型文本不翻譯。
[0009]所述的注釋翻譯模塊:將文檔注釋翻譯為配置的語言描述,其中數(shù)據(jù)映射包括:本地資源庫、緩存列表存儲模塊、詞典翻譯數(shù)據(jù)接口模塊;
本地資源庫:存儲通用、常用、含義明確唯一的資源映射;
緩存列表存儲模塊:內存中緩存較高被訪問的詞義映射;
詞典翻譯數(shù)據(jù)接口模塊:調用第三方詞典翻譯數(shù)據(jù)接口,進行文本翻譯。
[0010]本發(fā)明的一種國際化文檔實現(xiàn)方法和現(xiàn)有技術相比,具有方便、易用、高效快捷的特點,可以幫助更多的開發(fā)者更容易的了解別人的產品,還可以對開發(fā)者自身的產品進行規(guī)范化、格式化。
【附圖說明】
[0011]附圖1為一種國際化文檔實現(xiàn)方法的系統(tǒng)拓撲圖。
[0012]附圖2為一種國際化文檔實現(xiàn)方法的流程示意圖。
【具體實施方式】
[0013]實施例1:
該方法主要通過文件加載模塊、命名解析模塊、文本分析模塊以及注釋翻譯模塊實現(xiàn);
該方法步驟如下:
首先通過I/o與反射機制加載項目文件,分析每個文件中的解析對象,為每個文件創(chuàng)建一個解析語法樹,分別對類、屬性、方法、代碼塊、構造方法、主函數(shù)識別分類為解析對象,再進行細化處理;針對沒有注釋的解析對象根據(jù)其類型動態(tài)選擇命名解析模塊進行分詞拼句,再選擇本地資源庫、常用詞緩存列表、詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼文件中并格式化結構;針對已有注釋的描述進行文本分析模塊分析,最后調用詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼中。
[0014]所述的文件加載模塊:可以選擇項目、目錄、文件管理要操作的對象,對于未提供源碼的插件文件可以通過反編譯得到源文件再進行操作。
[0015]所述的命名解析模塊采用方法包括:“駝峰式匹配”、“ 連接式匹配”、“指定前綴匹配”、“指定前后綴匹配”、“縮寫簡化匹配”、“正則表達式匹配”;
馬它峰式匹配:適用于匹配類名、屬性名、方法的命名規(guī)范,形如XxxXxx或xxxXxx格式的命名規(guī)范;
連接式匹配:匹配常量定義和部分習慣用命名的屬性名、方法名;
指定前后綴匹配:適用于規(guī)范化接口、抽象類、實現(xiàn)類,如接口命名以‘I’前綴,抽象類以‘Abstract’前綴,實現(xiàn)類以‘Impl’后綴等;
縮寫簡化匹配:適用于基于專有名詞縮寫形式的命名,設計為本地資源庫的匹配,對于某些代表明確含義且翻譯軟件無法工作的情況;
正則表達式匹配:根據(jù)實際情況定義正則表達式進行匹配分詞。
[0016]所述的文本分析模塊:分析統(tǒng)計源程序中已存在的注釋內容,識別有特殊含義、無需翻譯的文本內容,主要包括:標簽識別、注解識別、示例代碼識別、特殊字符處理、原生類型識別;
標簽識別:識別源程序中doc文檔中標簽定義,標簽語句不翻譯,如段落標簽〈P〉,連接標簽〈a〉等HTML標簽;
注解識別:識別注釋中注解的定義,如作者定義?author、版本定義?vers1n等; 示例代碼識別:識別注釋中的示例程序片段;
特殊字符處理:根據(jù)需要指定處理注釋中的字符;
原生類型識別:識別開發(fā)類庫類型和其它定義類型,類型文本不翻譯,如com.company.ClassDefine0
[0017]所述的注釋翻譯模塊:將文檔注釋翻譯為配置的語言描述,其中數(shù)據(jù)映射包括:本地資源庫、緩存列表存儲模塊、詞典翻譯數(shù)據(jù)接口模塊;
本地資源庫:存儲通用、常用、含義明確唯一的資源映射;
緩存列表存儲模塊:內存中緩存較高被訪問的詞義映射;在一個文件或一個目錄中,某些詞語被反復用到,對于命中率高的詞在執(zhí)行期間緩存可以大大提高工作效率。每個文件為一個單元,在多線程環(huán)境下,緩存列表會進行高并發(fā)的讀寫操作。
[0018]詞典翻譯數(shù)據(jù)接口模塊:調用第三方詞典翻譯數(shù)據(jù)接口,進行文本翻譯,例如有道、金山等。
[0019]通過上面【具體實施方式】,所述技術領域的技術人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的幾種【具體實施方式】。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現(xiàn)不同的技術方案。
【主權項】
1.一種國際化文檔實現(xiàn)方法,其特征在于,該方法主要通過文件加載模塊、命名解析模塊、文本分析模塊以及注釋翻譯模塊實現(xiàn); 該方法步驟如下: 首先通過I/o與反射機制加載項目文件,分析每個文件中的解析對象,為每個文件創(chuàng)建一個解析語法樹,分別對類、屬性、方法、代碼塊、構造方法、主函數(shù)識別分類為解析對象,再進行細化處理;針對沒有注釋的解析對象根據(jù)其類型動態(tài)選擇命名解析模塊進行分詞拼句,再選擇本地資源庫、常用詞緩存列表、詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼文件中并格式化結構;針對已有注釋的描述進行文本分析模塊分析,最后調用詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼中。
2.根據(jù)權利要求1所述的一種國際化文檔實現(xiàn)方法,其特征在于,所述的文件加載模塊:可以選擇項目、目錄、文件管理要操作的對象,對于未提供源碼的插件文件可以通過反編譯得到源文件再進行操作。
3.根據(jù)權利要求1所述的一種國際化文檔實現(xiàn)方法,其特征在于,所述的命名解析模塊采用方法包括:“駝峰式匹配”連接式匹配”、“指定前綴匹配”、“指定前后綴匹配”、“縮寫簡化匹配”、“正則表達式匹配”; 駝峰式匹配:適用于匹配類名、屬性名、方法的命名規(guī)范;連接式匹配:匹配常量定義和部分習慣用命名的屬性名、方法名; 指定前后綴匹配:適用于規(guī)范化接口、抽象類、實現(xiàn)類; 縮寫簡化匹配:適用于基于專有名詞縮寫形式的命名; 正則表達式匹配:根據(jù)實際情況定義正則表達式進行匹配分詞。
4.根據(jù)權利要求1所述的一種國際化文檔實現(xiàn)方法,其特征在于,所述的文本分析模塊:分析統(tǒng)計源程序中已存在的注釋內容,識別有特殊含義、無需翻譯的文本內容,主要包括:標簽識別、注解識別、示例代碼識別、特殊字符處理、原生類型識別; 標簽識別:識別源程序中doc文檔中標簽定義,標簽語句不翻譯; 注解識別:識別注釋中注解的定義; 示例代碼識別:識別注釋中的示例程序片段; 特殊字符處理:根據(jù)需要指定處理注釋中的字符; 原生類型識別:識別開發(fā)類庫類型和其它定義類型,類型文本不翻譯。
5.根據(jù)權利要求1所述的一種國際化文檔實現(xiàn)方法,其特征在于,所述的注釋翻譯模塊:將文檔注釋翻譯為配置的語言描述,其中數(shù)據(jù)映射包括:本地資源庫、緩存列表存儲模塊、詞典翻譯數(shù)據(jù)接口模塊; 本地資源庫:存儲通用、常用、含義明確唯一的資源映射; 緩存列表存儲模塊:內存中緩存較高被訪問的詞義映射; 詞典翻譯數(shù)據(jù)接口模塊:調用第三方詞典翻譯數(shù)據(jù)接口,進行文本翻譯。
【專利摘要】本發(fā)明公開了一種國際化文檔實現(xiàn)方法,該方法主要通過文件加載模塊、命名解析模塊、文本分析模塊以及注釋翻譯模塊實現(xiàn);首先通過I/O與反射機制加載項目文件,分析每個文件中的解析對象,為每個文件創(chuàng)建一個解析語法樹,分別對解析對象進行細化處理;針對沒有注釋的解析對象根據(jù)其類型動態(tài)選擇命名解析模塊進行分詞拼句,再選擇本地資源庫、常用詞緩存列表、詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼文件中并格式化結構;針對已有注釋的描述進行文本分析模塊分析,最后調用詞典翻譯數(shù)據(jù)接口進行翻譯,最后更新到指定代碼中。本發(fā)明具有方便、易用、高效快捷的特點,對開發(fā)者自身的產品進行規(guī)范化、格式化。
【IPC分類】G06F9-44, G06F17-20
【公開號】CN104536769
【申請?zhí)枴緾N201510022222
【發(fā)明人】吳延慶, 趙孝軍, 吳保錫
【申請人】浪潮電子信息產業(yè)股份有限公司
【公開日】2015年4月22日
【申請日】2015年1月16日