本發(fā)明涉及通信領域,尤其涉及一種界面(UI)字符串篩選方法及系統(tǒng)。
背景技術:
目前,機頂盒軟件開發(fā)分為全功能的預言開發(fā),以及產(chǎn)品開發(fā)兩個階段。預言開發(fā)階段的軟件大而全,產(chǎn)品開發(fā)階段的軟件簡而精。在支持多語言的機頂盒產(chǎn)品開發(fā)階段,需要把實際使用到的UI(界面)字符串由大量的UI字符串中篩選出來用于翻譯,精準查找實際使用的UI字符串非常繁瑣耗時。
通常,機頂盒軟件開發(fā)會把所有可能會用到的UI字符串做成一個index(索引)列表,然后由人工根據(jù)index去做查找,人工在海量的代碼中根據(jù)index一個一個的篩選確認,并且還需注意宏控制問題,這樣的查找的結果完全依賴于人工,費時且容易出錯。
技術實現(xiàn)要素:
有鑒于此,有必要針對上述UI字符串篩選由人工來完成,費時且容易出錯的問題,提供一種界面字符串篩選方法及系統(tǒng)。
本發(fā)明提供的一種界面字符串篩選方法,包括如下步驟:
S10:在機頂盒程序開發(fā)過程中,在UI層程序中對要實際使用的UI字符串所在程序進行宏開關標記;
S20:將UI層程序輸入編譯器進行預編譯,對UI層程序進行篩選,將標記的UI字符串所在程序篩選出來,并生成M個預編譯文件;
S30:對M個預編譯文件進行一一查找,將不含有索引列表文件名的預編譯文件移除,全部移除后獲取剩下N個預編譯文件;
S40:對于索引列表中的每個索引關鍵詞,均在N個預編譯文件中進行查找,若在N個預編譯文件中查找結果次數(shù)大于N,則獲取該索引關鍵詞對應UI字符串進行保留,將所有索引關鍵詞查找完畢后,將最終保留的所有UI字符串作為結果輸出。
在其中的一個實施方式中,所述步驟S20還包括:檢測UI層程序存儲位置,若存儲在外部U盤中,則將UI層程序先緩存到機頂盒內(nèi)存中再進行預編譯。
在其中的一個實施方式中,所述步驟S40還包括:將N個預編譯文件拼接成一個大文件。
本發(fā)明提供的一種界面字符串篩選系統(tǒng),包括:
標記模塊,在機頂盒程序開發(fā)過程中,在UI層程序中對要實際使用的UI字符串所在程序進行宏開關標記;
預編譯處理模塊,將UI層程序輸入編譯器進行預編譯,對UI層程序進行篩選,將標記的UI字符串所在程序篩選出來,并生成M個預編譯文件;
預編譯文件篩選模塊,對M個預編譯文件進行一一查找,將不含有索引列表文件名的預編譯文件移除,全部移除后獲取剩下N個預編譯文件;
UI字符串獲取模塊,對于索引列表中的每個索引關鍵詞,均在N個預編譯文件中進行查找,若在N個預編譯文件中查找結果次數(shù)大于N,則獲取該索引關鍵詞對應UI字符串進行保留,將所有索引關鍵詞查找完畢后,將最終保留的所有UI字符串作為結果輸出。
在其中的一個實施方式中,所述預編譯處理模塊檢測UI層程序存儲位置,若存儲在外部U盤中,則將UI層程序先緩存到機頂盒內(nèi)存中再進行預編譯。
在其中的一個實施方式中,所述UI字符串獲取模塊將N個預編譯文件拼接成一個大文件。
本發(fā)明界面字符串篩選方法及系統(tǒng),利用編譯器的預編譯功能,對進行宏開關標記的UI字符串所在程序進行預編譯篩選,對UI層程序進行精簡,然后通過查找索引列表文件名對所有預編譯文件進行二次篩選,在篩選剩余的N個預編譯文件中查找每個檢索關鍵詞,若查找結果大于N則獲取該UI字符串,最終將所有獲取的UI字符串作為篩選結果輸出完成篩選,篩選過程無需人工操作,均自動進行,從而大大節(jié)約了人工成本,大大提高效率且不容易出錯。
附圖說明
圖1是一個實施例中的界面字符串篩選方法的流程圖;
圖2是一個實施例中的界面字符串篩選系統(tǒng)的結構圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
機頂盒軟件開發(fā)過程中,會用到編譯器進行程序的編譯工作,而編譯器都具備有預編譯功能,預編譯功能可以對源程序進行篩選操作,將標記或者定義好的實際使用的程序篩選出來,精簡源程序的大小,本發(fā)明利用已有的編譯器,及編譯器自帶的預編譯功能對UI字符串進行篩選,快速獲取實際使用的UI字符串。
如圖1是一個實施例中的界面字符串篩選方法的流程圖,該方法包括如下步驟:
S10:在機頂盒程序開發(fā)過程中,在UI層程序中對要實際使用的UI字符串所在程序進行宏開關標記。
機頂盒軟件程序開發(fā)過程中,對于實際使用或者需要的程序(或文件)可以進行宏開關標記,通過宏開關可以設定是否需要,這樣經(jīng)過編譯器預編譯之后就可以將宏開關標記的程序篩選出來,從而對大的程序進行精簡,減少編譯器的處理量和開發(fā)的工作量。在該實施例中,由于UI字符串都在UI層各個程序或者文件中,故在UI層程序中對要實際使用的UI字符串所在程序進行標記,以方便后續(xù)進行預編譯篩選。
S20:將UI層程序輸入編譯器進行預編譯,對UI層程序進行篩選,將標記的UI字符串所在程序篩選出來,并生成M個預編譯文件。
標記后將UI層程序輸入編譯器進行預編譯,預編譯會根據(jù)能夠識別的標記將帶有標記的程序篩選出來,這樣就大大精簡了UI層程序。根據(jù)UI層程序文件的數(shù)量M預編譯生成M個預編譯文件,即預編譯之后生成預編譯文件的數(shù)目M與UI層初始文件數(shù)目相同。
在進行預編譯時,UI層程序存儲在緩存或者U盤中,如果存儲在U盤中在進行預編譯時會影響編譯的效率,故該步驟還包括:檢測UI層程序存儲位置,若存儲在外部U盤中,則將UI層程序先緩存到機頂盒內(nèi)存中再進行預編譯。
S30:對M個預編譯文件進行一一查找,將不含有索引列表文件名的預編譯文件移除,全部移除后獲取剩下N個預編譯文件。
由于所有要實際使用的UI字符串都做成一個索引列表,索引列表中含有多個索引關鍵字,每個索引關鍵字對應索引一個UI字符串。在UI層程序的每個文件中,如果該文件中含有實際要使用到的UI字符串,則該文件中會含有索引列表文件名,以便進行引用,而如果不含有實際要使用到的UI字符串則不含有索引列表文件名。預編譯之后,預編譯文件中如果含有索引列表文件名則說明該預編譯文件中含有要實際使用到的UI字符串,則該預編譯文件要保留;如果不含有索引列表文件名則說明該預編譯文件中不含有要實際使用到的UI字符串,則該預編譯文件要移除,以減少預編譯文件的數(shù)目,全部移除后獲取剩下的N個預編譯文件,從而進一步的進行精簡。
S40:對于索引列表中的每個索引關鍵詞,均在N個預編譯文件中進行查找,若在N個預編譯文件中查找結果次數(shù)大于N,則獲取該索引關鍵詞對應UI字符串進行保留,將所有索引關鍵詞查找完畢后,將最終保留的所有UI字符串作為結果輸出。
在預編譯之后,編譯器會將索引列表中所有的索引關鍵詞添加到每個預編譯文件中,這樣對于N個預編譯文件,則每個索引關鍵詞至少出現(xiàn)N次,由于每個索引關鍵詞還對應索引一個UI字符串,如果UI字符串是實際使用到的,則索引關鍵詞能查找到對應的UI字符串,這樣查找結果次數(shù)大于N,故通過對每個索引關鍵詞的查找,如果查找結果大于N,則說明該索引關鍵詞對應UI字符串是要實際使用的,需要保留,再將所有索引關鍵詞查找完畢后,將最終保留的所有UI字符串作為結果輸出,即篩選完畢。
對于N個預編譯文件,每個索引關鍵詞,編譯器均需要啟動N次,這樣編譯器啟動次數(shù)太多會大量耗時,為減少編譯器啟動的次數(shù),該步驟還包括:將N個預編譯文件拼接成一個大文件。這樣對于每個索引關鍵詞,編譯器只需要啟動一次即可,大大減少編譯器啟動次數(shù)。
該界面字符串篩選方法,利用編譯器的預編譯功能,對進行宏開關標記的UI字符串所在程序進行預編譯篩選,對UI層程序進行精簡,然后通過查找索引列表文件名對所有預編譯文件進行二次篩選,在篩選剩余的N個預編譯文件中查找每個檢索關鍵詞,若查找結果大于N則獲取該UI字符串,最終將所有獲取的UI字符串作為篩選結果輸出完成篩選,篩選過程無需人工操作,均自動進行,從而大大節(jié)約了人工成本,大大提高效率且不容易出錯。
同時,本發(fā)明還提供一種界面字符串篩選系統(tǒng),如圖2所示,該系統(tǒng)包括:
標記模塊100,在機頂盒程序開發(fā)過程中,在UI層程序中對要實際使用的UI字符串所在程序進行宏開關標記。
機頂盒軟件程序開發(fā)過程中,對于實際使用或者需要的程序(或文件)可以進行宏開關標記,通過宏開關可以設定是否需要,這樣經(jīng)過編譯器預編譯之后就可以將宏開關標記的程序篩選出來,從而對大的程序進行精簡,減少編譯器的處理量和開發(fā)的工作量。在該實施例中,由于UI字符串都在UI層各個程序或者文件中,故標記模塊100在UI層程序中對要實際使用的UI字符串所在程序進行標記,以方便后續(xù)進行預編譯篩選。
預編譯處理模塊200,將UI層程序輸入編譯器進行預編譯,對UI層程序進行篩選,將標記的UI字符串所在程序篩選出來,并生成M個預編譯文件。
標記后預編譯處理模塊200將UI層程序輸入編譯器進行預編譯,預編譯會根據(jù)能夠識別的標記將帶有標記的程序篩選出來,這樣就大大精簡了UI層程序。預編譯處理模塊200根據(jù)UI層程序文件的數(shù)量M預編譯生成M個預編譯文件,即預編譯之后生成預編譯文件的數(shù)目M與UI層初始文件數(shù)目相同。
在進行預編譯時,UI層程序存儲在緩存或者U盤中,如果存儲在U盤中在進行預編譯時會影響編譯的效率,預編譯處理模塊200檢測UI層程序存儲位置,若存儲在外部U盤中,則將UI層程序先緩存到機頂盒內(nèi)存中再進行預編譯。
預編譯文件篩選模塊300,對M個預編譯文件進行一一查找,將不含有索引列表文件名的預編譯文件移除,全部移除后獲取剩下N個預編譯文件。
由于所有要實際使用的UI字符串都做成一個索引列表,索引列表中含有多個索引關鍵字,每個索引關鍵字對應索引一個UI字符串。在UI層程序的每個文件中,如果該文件中含有實際要使用到的UI字符串,則該文件中會含有索引列表文件名,以便進行引用,而如果不含有實際要使用到的UI字符串則不含有索引列表文件名。預編譯之后,預編譯文件中如果含有索引列表文件名則說明該預編譯文件中含有要實際使用到的UI字符串,則該預編譯文件要保留;如果不含有索引列表文件名則說明該預編譯文件中不含有要實際使用到的UI字符串,則該預編譯文件要移除,以減少預編譯文件的數(shù)目,全部移除后獲取剩下的N個預編譯文件,從而進一步的進行精簡。
UI字符串獲取模塊400,對于索引列表中的每個索引關鍵詞,均在N個預編譯文件中進行查找,若在N個預編譯文件中查找結果次數(shù)大于N,則獲取該索引關鍵詞對應UI字符串進行保留,將所有索引關鍵詞查找完畢后,將最終保留的所有UI字符串作為結果輸出。
在預編譯之后,編譯器會將索引列表中所有的索引關鍵詞添加到每個預編譯文件中,這樣對于N個預編譯文件,則每個索引關鍵詞至少出現(xiàn)N次,由于每個索引關鍵詞還對應索引一個UI字符串,如果UI字符串是實際使用到的,則索引關鍵詞能查找到對應的UI字符串,這樣查找結果次數(shù)大于N,故UI字符串獲取模塊400通過對每個索引關鍵詞的查找,如果查找結果大于N,則說明該索引關鍵詞對應UI字符串是要實際使用的,需要保留,再將所有索引關鍵詞查找完畢后,將最終保留的所有UI字符串作為結果輸出,即篩選完畢。
對于N個預編譯文件,每個索引關鍵詞,編譯器均需要啟動N次,這樣編譯器啟動次數(shù)太多會大量耗時,為減少編譯器啟動的次數(shù),UI字符串獲取模塊400將N個預編譯文件拼接成一個大文件。這樣對于每個索引關鍵詞,編譯器只需要啟動一次即可,大大減少編譯器啟動次數(shù)。
該界面字符串篩選系統(tǒng),利用編譯器的預編譯功能,預編譯處理模塊200對進行宏開關標記的UI字符串所在程序進行預編譯篩選,對UI層程序進行精簡,然后預編譯文件篩選模塊300通過查找索引列表文件名對所有預編譯文件進行二次篩選,UI字符串獲取模塊400在篩選剩余的N個預編譯文件中查找每個檢索關鍵詞,若查找結果大于N則獲取該UI字符串,最終將所有獲取的UI字符串作為篩選結果輸出完成篩選,篩選過程無需人工操作,均自動進行,從而大大節(jié)約了人工成本,大大提高效率且不容易出錯。
本發(fā)明界面字符串篩選方法及系統(tǒng),利用編譯器的預編譯功能,對進行宏開關標記的UI字符串所在程序進行預編譯篩選,對UI層程序進行精簡,然后通過查找索引列表文件名對所有預編譯文件進行二次篩選,在篩選剩余的N個預編譯文件中查找每個檢索關鍵詞,若查找結果大于N則獲取該UI字符串,最終將所有獲取的UI字符串作為篩選結果輸出完成篩選,篩選過程無需人工操作,均自動進行,從而大大節(jié)約了人工成本,大大提高效率且不容易出錯。
以上僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。