本發(fā)明涉及字符串提取及合并方法,尤其涉及一種android系統(tǒng)字符串提取及合并方法。
背景技術:
隨著智能通訊終端的日益普及,采用android系統(tǒng)的智能通訊終端設備越來越走向世界各地,而對于多國語言的支持問題逐漸成為各終端廠商不可或缺的一環(huán)。在采用了android系統(tǒng)的終端設備研發(fā)過程中,對于軟件系統(tǒng)界面的各國語言文字的正確性檢查成為各個終端廠商必不可少的一項工作。
當前的手段大多是通過本地測試人員,人工的方式逐個界面進行檢查、反饋,或通過界面截圖的方式,盡可能多截取系統(tǒng)ui場景界面,或提供給當?shù)卣Z言測試人員進行檢查和反饋。而針對已存在的原始字符串文件進行正確性檢查的手段目前并沒有成熟的方案。
技術實現(xiàn)要素:
為了解決現(xiàn)有技術中的問題,本發(fā)明提供了一種android系統(tǒng)字符串提取及合并方法。
本發(fā)明提供了一種android系統(tǒng)字符串提取及合并方法,包括以下步驟:
s1、提取字符串,將系統(tǒng)源代碼中某種語言的文字全部提取到一個輸出文件中,并插入路徑關鍵字按模塊路徑加以標記;
s2、合并字符串,將輸出文件通過自動化方式按路徑關鍵字為識別標記合入系統(tǒng)源代碼。
作為本發(fā)明的進一步改進,步驟s1包括以下子步驟:
s11、針對源碼按目錄遞歸地進行字符串文件掃描,目標為路徑中包含特殊路徑標記名稱的文件夾下的語言字符串文件;
s12、掃描到字符串文件后,創(chuàng)建一個輸出文件,插入語言字符串文件所在目錄路徑元素,隨后再插入所掃描到的文件夾下的字符串文件中的全部字符串元素及值;
s13、按目錄遞歸掃描符字符串文件,直到搜索完所有滿足名稱包含特殊路徑標記的文件夾為止,處理方式按步驟s11和步驟s12進行,最后,在輸出文件中插入文件結束標記。
作為本發(fā)明的進一步改進,步驟s1還包括s14、將步驟s13執(zhí)行完之后得到的輸出文件提供給本地或當?shù)卣Z言測試人員進行語法、語義檢查,并修改此輸出文件;
步驟s2包括以下子步驟:
s21、針對修改后的輸出文件,逐行掃描,根據(jù)讀取到的路徑關鍵字,處理對應的目錄文件夾下的語言字符串文件,將該路徑關鍵字后面所跟隨的字符串內(nèi)容,替換原有字符串文件中所對應的字符串內(nèi)容,此過程遞歸執(zhí)行,直到讀取到文件結束標記。
作為本發(fā)明的進一步改進,在步驟s11中,掃描滿足條件的路徑中包含不同特殊路徑標記為名稱的文件夾時,同步判斷多種語言。
作為本發(fā)明的進一步改進,步驟s1包括以下子步驟:
s101、創(chuàng)建values-{xx}.xml文件,插入xml文件開始標記,xx代表某語言;
s102、掃描根目錄文件;
s103、文件夾下是否包含res/values-{xx}為名稱的文件夾,如果是,則進入步驟s104,如果否,則進入步驟s105;
s104、插入該文件夾下語言字符串xml文件的目錄路徑元素,再插入文件夾下的字符串xml文件中的全部字符串;
s105、繼續(xù)掃描子目錄文件夾,判斷是否已經(jīng)全部掃描,如果否,則返回步驟s103,如果是,則進入步驟s106;
s106、在values-{xx}.xml文件中插入xml文件結束標記;
s107、結束。
作為本發(fā)明的進一步改進,步驟s2包括以下子步驟:
s201、打開values-{xx}.xml文件;
s202、讀取一個元素及值;
s203、判斷是否是文件結束關鍵字,如果是,則結束,如果否,則進入下一步驟:
s204、判斷是否是路徑關鍵字元素,如果否,則進入下一步驟,如果是,則記錄路徑值為p,并進入下一步驟;
s205、在路徑p下,替換舊字符串xml文件中對應的字符串元素值為新值,返回步驟s202。
本發(fā)明的有益效果是:將系統(tǒng)中某種語言的文字全部提取到一個文件中,并插入路徑關鍵字按模塊路徑加以標記,提供給本地或當?shù)卣Z言測試人員先期進行語法、語義檢查,直接在該文件加以修正,然后再通過自動化方式按路徑關鍵字為識別標記合入系統(tǒng)源代碼,在對于軟件系統(tǒng)界面的各國語言文字的正確性檢查中,起到先期糾正語法、語義錯誤的作用,進而減少錯誤量,減少后期工作量。
附圖說明
圖1是本發(fā)明一種android系統(tǒng)字符串提取及合并方法中提取字符串的流程圖。
圖2是本發(fā)明一種android系統(tǒng)字符串提取及合并方法中合并字符串的流程圖。
具體實施方式
下面結合附圖說明及具體實施方式對本發(fā)明作進一步說明。
一種android系統(tǒng)字符串提取及合并方法,包括以下步驟:
s1、提取字符串,將系統(tǒng)源代碼中某種語言的文字全部提取到一個輸出文件中,并插入路徑關鍵字按模塊路徑加以標記;
s2、合并字符串,將輸出文件通過自動化方式按路徑關鍵字為識別標記合入系統(tǒng)源代碼。
一種android系統(tǒng)字符串提取及合并方法,包括具體以下步驟:
1.針對源碼按目錄遞歸地進行字符串文件掃描,目標為路徑中包含特殊路徑標記名稱的文件夾下的語言字符串文件。
2.掃描到字符串文件后,創(chuàng)建一個輸出文件,插入語言字符串文件所在目錄路徑元素,隨后再插入所掃描到的文件夾下的字符串文件中的全部字符串元素及值。
3.按目錄遞歸掃描符字符串文件,直到搜索完所有滿足名稱包含特殊路徑標記的文件夾為止,處理方式按步驟1和步驟2進行。最后,在輸出文件中插入文件結束標記。
將步驟3執(zhí)行完之后得到的輸出文件提供給本地或當?shù)卣Z言測試人員進行語法、語義檢查,并修改此文件。
4.針對修改后的輸出文件,逐行掃描,根據(jù)讀取到的路徑關鍵字,處理對應的目錄文件夾下的語言字符串文件,將該路徑關鍵字后面所跟隨的字符串內(nèi)容,替換原有字符串文件中所對應的字符串內(nèi)容。此過程遞歸執(zhí)行,直到讀取到文件結束標記。
5.上述過程中可以同步處理多種語言,即掃描滿足條件的路徑中包含不同特殊路徑標記為名稱的文件夾時,同步判斷多種語言,例如針對android平臺,特殊路徑標記名稱可包含res/values-ru,或res/values-es,或res/values-th,或res/values-es,或res/values-hi等等。
如圖1所示,步驟s1具體包括以下子步驟:
s101、創(chuàng)建values-{xx}.xml文件,插入xml文件開始標記,xx代表某語言;
s102、掃描根目錄文件;
s103、文件夾下是否包含res/values-{xx}為名稱的文件夾,如果是,則進入步驟s104,如果否,則進入步驟s105;
s104、插入該文件夾下語言字符串xml文件的目錄路徑元素,再插入文件夾下的字符串xml文件中的全部字符串;
s105、繼續(xù)掃描子目錄文件夾,判斷是否已經(jīng)全部掃描,如果否,則返回步驟s103,如果是,則進入步驟s106;
s106、在values-{xx}.xml文件中插入xml文件結束標記;
s107、結束。
如圖2所示,步驟s2具體包括以下子步驟:
s201、打開values-{xx}.xml文件;
s202、讀取一個元素及值;
s203、判斷是否是文件結束關鍵字,如果是,則結束,如果否,則進入下一步驟:
s204、判斷是否是路徑關鍵字元素,如果否,則進入下一步驟,如果是,則記錄路徑值為p,并進入下一步驟;
s205、在路徑p下,替換舊字符串xml文件中對應的字符串元素值為新值,返回步驟s202。
本發(fā)明提供的一種android系統(tǒng)字符串提取及合并方法的重點如下:
1.將全部源碼的字符文件提取到單獨的一個文件中;
2.提取生成的文件是xml文件,以路徑關鍵字元素區(qū)分各個文件夾字符串的路徑;
3.合并階段以路徑關鍵字為區(qū)分,將修正后的文件內(nèi)容,更新到原提取目錄文件夾下。
提供以下實施例:
1.針對android源碼按目錄遞歸地進行字符串文件掃描,即路徑中包含res/values-{xx}為名稱的文件夾(記為a)下的保存語言字符串的xml文件。其中,{xx}代表某種語言,可以取ru,es,tr等等語言碼。
2.掃描到字符串文件后,首先創(chuàng)建一個values-{xx}.xml文件,然后先插入xml文件開始標記,然后再插入語言字符串xml文件所在的目錄路徑元素(路徑關鍵字屬性及其路徑,如:
<stringname="hipad_module_name">"frameworks-base-core-res-res"</string>),隨后再插入掃描到文件夾a下的字符串xml中的全部字符串。
3.繼續(xù)按目錄遞歸掃描符字符串xml文件,直到搜索完所有滿足路徑名稱包含res/values-{xx}的文件夾為止,處理方式按步驟1和步驟2進行。最后,在values-{xx}.xml文件中插入xml文件結束標記。從而,針對xx語言的全部翻譯,生成到單獨一個values-{xx}.xml文件中。
4.將步驟3執(zhí)行完之后得到的values-{xx}.xml,提供給本地或當?shù)卣Z言測試人員進行語法、語義檢查,并修改此文件。
5.針對修改后的values-{xx}.xml文件,逐行掃描,根據(jù)讀取到的路徑關鍵字,將該路徑關鍵字之下的字符串內(nèi)容,逐行替換路徑關鍵字所代表的文件路徑下的字符串xml文件中所對應的字符串,直到遇到下一個路徑關鍵字。此過程遞歸處理,直到讀取到文件結束標記。
6.上述過程中可以同步處理多個語言,即掃描滿足條件的路徑中包含res/values-{xx}為名稱的文件夾時,同步判斷多個xx語言,路徑名稱包含res/values-ru,或res/values-es,或res/values-th,或res/values-es,或res/values-hi等等。
7.values-{xx}.xml文件輸出內(nèi)容及格式如下,以俄語為例:
其中,hipad_module_name為路徑關鍵字元素名,其對應值為其后跟隨的字符串所在的文件夾目錄路徑。上述示例展示了不同路徑下的字符串文件提取后的內(nèi)容,包含的路徑有frameworks/base/core/res/res,frameworks/base/packages/systemui/res,packages/apps/calculator/res等,分表代表系統(tǒng)級資源語言文件路徑,狀態(tài)欄語言文件路徑,計算器應用語言文件路徑等。
本發(fā)明提供的一種android系統(tǒng)字符串提取及合并方法,將系統(tǒng)中某種語言的文字全部提取到一個文件中,并插入路徑關鍵字按模塊路徑加以標記,提供給本地或當?shù)卣Z言測試人員先期進行語法、語義檢查,直接在該文件加以修正,然后再通過自動化方式按路徑關鍵字為識別標記合入系統(tǒng)源代碼,在對于軟件系統(tǒng)界面的各國語言文字的正確性檢查中,起到先期糾正語法、語義錯誤的作用,進而減少錯誤量,減少后期工作量。
以上內(nèi)容是結合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。