System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及人機界面和嵌入式系統,具體為一種嵌入式設備的多語言動態切換系統及方法。
技術介紹
1、隨著國內發電企業海外業務的拓展,國產繼電保護裝置(以下簡稱設備)的海外銷售范圍也在逐年擴張;為了適應這一趨勢同時也為了給世界各地的工程師們提供良好的使用體驗,為設備的人機交互界面(human?machine?interface,hmi)提供多語言支持是十分必要的。目前行業內的工程師普遍采用的方案是外掛語言包,例如cn102109958、cn101441567、cn103793236等,甚至前兩者均采用了xml作為文件格式,區別在于對于語言包中字符的索引形式和存儲方法。
2、cn101441567采用的是根據字符id遍歷xml得所有子節點獲取當前所需要的字符,該方案在實際生產過程中會占用過多的cpu資源,舉個例子,如果當前頁面所需要的字符在最后一個子節點,那索引程序將遍歷所有節點后方可得到想要的字符,這過程產生的運算時長將是比較可觀的;cn102109958在此基礎上作出了改進,將所有字符分模塊存儲,這樣遍歷xml節點的時候似乎可以節約cpu時間和資源,但實際情況是同一個hmi程序中會在不同的頁面使用相同的字符,比如說常見“確認”“返回”。
3、另外,目前所查到的專利在存儲語言包方面,均選擇了按語言種類分文件夾分文件保存,這種方案不僅需要核對當前設備所需要的語言數量,還要檢查各個目錄下語言包的種類數量是否對應,增加了設備的維護成本;而最關鍵的是對于語言包損壞的情況,上述專利均未提及相應的規避方案。
技術實現思路
1、鑒于上述存在的問題,提出了本專利技術。
2、因此,本專利技術解決的技術問題是:針對嵌入式設備多語言支持方案中存在的索引時間長、資源重復占用、維護難度大以及缺乏自愈能力等問題,提供一種高效、低資源占用、易于維護且具備自愈能力的多語言動態切換系統。
3、為解決上述技術問題,本專利技術提供如下技術方案:一種嵌入式設備的多語言動態切換系統,其包括如下步驟,
4、字符提取模塊、字典生成模塊以及字符獲取模塊。
5、所述字符提取模塊用于統計提取hmi程序源碼中的字符剔除重復項。
6、所述字典生成模塊獨立于hmi程序運行,在國產繼電保護裝置啟動后將字典輸出至指定位置。
7、所述字符獲取模塊內置于hmi程序中,在hmi啟動后提取字典中的字符寫入內存空間,當頁面生成時僅需根據字符序號提取對應位置的字符,無需檢索。
8、本專利技術的另外一個目的是提供一種嵌入式設備的多語言動態切換方法,其能通過提取hmi程序中的字符、生成字典并利用字符編號進行快速索引,解決了現有多語言支持方案中索引時間長、資源重復占用、維護難度大以及缺乏對語言包損壞的自愈能力的問題。
9、為解決上述技術問題,本專利技術提供如下技術方案:一種嵌入式設備的多語言動態切換方法,包括:
10、通過字符提取模塊,遍歷hmi程序中的源碼提取所有字符串。
11、剔除重復項對字符串進行編號,輸出數據庫文件和替換數組。
12、利用替換數組將編號重新代入源碼文件,替換對應位置的字符串。
13、將完成翻譯的數據庫文件輸出為c語言源碼編入字典生成模塊項目,生成可執行文件,待裝置啟動后將字典文件輸出至hmi運行目錄。
14、hmi程序啟動后將字典按區塊分別讀入不同的字典數組,待頁面發送請求提取字典數組中對應位置的字符串。
15、作為本專利技術所述的一種嵌入式設備的多語言動態切換方法的一種優選方案,其中:所述提取所有字符串包括,根據項目類型獲取cmakelists.txt、vcproj、pro項目文件中源文件的文件路徑,將文件路徑加入讀取文件的列表,按順序逐行讀取文件內容,將雙引號、單引號以及tr()函數內的內容按長度進行以字符串位置信息和字符串本身的格式保存至原始數組,按長度保存,即獲取到字符串后計算字符串長度,采用二分法比較原始數組中已有的字符串長度,選擇正確的位置插入原始數組。
16、作為本專利技術所述的一種嵌入式設備的多語言動態切換方法的一種優選方案,其中:所述輸出數據庫文件和替換數組包括,對原始數組進行比較操作,即每一個字符串都需要與其之前的字符串進行比較,檢查是否存在包含或相等的情況,若相等則共享一個序號,若包含則切割字符串,相等的字符串共享序號,剩余的部分繼續進行比較操作,直至沒有相等的字符串后,剩余的字符串獲得新的序號,以序號-字符串的形式保存至mdb標準數據庫文件,并將原始數組中的字符串替換為{序號1,序號2...}同時保存至用于替換源碼字符串的替換數組。
17、作為本專利技術所述的一種嵌入式設備的多語言動態切換方法的一種優選方案,其中:所述替換對應位置的字符串包括,遍歷hmi源碼,將源碼中對應位置的字符串替換為函數char*getchar。
18、作為本專利技術所述的一種嵌入式設備的多語言動態切換方法的一種優選方案,其中:所述生成可執行文件包括,給每一行添加雙引號復制進字典生成程序中的輸出函數,編譯對應項目輸出可執行文件。
19、作為本專利技術所述的一種嵌入式設備的多語言動態切換方法的一種優選方案,其中:所述輸出至hmi運行目錄包括,待國產繼電保護裝置啟動后,字典生成程序通過輸出函數將字典寫入hmi執行目錄。
20、作為本專利技術所述的一種嵌入式設備的多語言動態切換方法的一種優選方案,其中:所述提取字典數組中對應位置的字符串包括,hmi分塊將字典文件讀入字符數組,分塊標準為100個字符串元素為一組,讀入所有字符串元素后,hmi程序生成頁面時通過getchar函數以及全局語言變量從字符數組獲取對應語種的字符串完成多語言動態切換。
21、一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現如上所述一種嵌入式設備的多語言動態切換方法的步驟。
22、一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現如上所述一種嵌入式設備的多語言動態切換方法的步驟。
23、本專利技術的有益效果:1)本專利采用了用序號替換源碼中字符串的方法,解決了切換語言時需要再次檢索語言包的問題,減少了嵌入式裝置cpu資源的占用以及提高了程序的靈活性;
24、2)本專利的字典模塊,獨立于hmi程序運行,在裝置啟動后將字典輸出至指定位置,保證了極端情況下的自愈能力,提高程序的健壯度;
25、3)得益于1)允許開發人員統計整個hmi程序所包含的字符串內容,從而剔除冗余項,降低開發成本減少資源占用;
26、4)本專利的字典文件采用了最簡單明了的文件格式,所有的字符信息均在一份字典文件中,降低了維護成本。
27、由此可見,與現有本文檔來自技高網...
【技術保護點】
1.一種嵌入式設備的多語言動態切換系統,其特征在于,包括:
2.如權利要求1所述的一種嵌入式設備的多語言動態切換方法,其特征在于,包括:
3.如權利要求2所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述提取所有字符串包括,根據項目類型獲取CMakeLists.txt、vcproj、pro項目文件中源文件的文件路徑,將文件路徑加入讀取文件的列表,按順序逐行讀取文件內容,將雙引號、單引號以及tr()函數內的內容按長度進行以字符串位置信息和字符串本身的格式保存至原始數組,按長度保存,即獲取到字符串后計算字符串長度,采用二分法比較原始數組中已有的字符串長度,選擇正確的位置插入原始數組。
4.如權利要求3所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述輸出數據庫文件和替換數組包括,對原始數組進行比較操作,即每一個字符串都需要與其之前的字符串進行比較,檢查是否存在包含或相等的情況,若相等則共享一個序號,若包含則切割字符串,相等的字符串共享序號,剩余的部分繼續進行比較操作,直至沒有相等的字符串后,剩余的字符串獲得新的序號,以序號-字符串的
5.如權利要求4所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述替換對應位置的字符串包括,遍歷HMI源碼,將源碼中對應位置的字符串替換為函數char*Getchar。
6.如權利要求5所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述生成可執行文件包括,給每一行添加雙引號復制進字典生成程序中的輸出函數,編譯對應項目輸出可執行文件。
7.如權利要求6所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述輸出至HMI運行目錄包括,待國產繼電保護裝置啟動后,字典生成程序通過輸出函數將字典寫入HMI執行目錄。
8.如權利要求7所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述提取字典數組中對應位置的字符串包括,HMI分塊將字典文件讀入字符數組,分塊標準為100個字符串元素為一組,讀入所有字符串元素后,HMI程序生成頁面時通過Getchar函數以及全局語言變量從字符數組獲取對應語種的字符串完成多語言動態切換。
9.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求2至8中任一項所述的一種嵌入式設備的多語言動態切換方法的步驟。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求2至8中任一項所述一種嵌入式設備的多語言動態切換方法的步驟。
...【技術特征摘要】
1.一種嵌入式設備的多語言動態切換系統,其特征在于,包括:
2.如權利要求1所述的一種嵌入式設備的多語言動態切換方法,其特征在于,包括:
3.如權利要求2所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述提取所有字符串包括,根據項目類型獲取cmakelists.txt、vcproj、pro項目文件中源文件的文件路徑,將文件路徑加入讀取文件的列表,按順序逐行讀取文件內容,將雙引號、單引號以及tr()函數內的內容按長度進行以字符串位置信息和字符串本身的格式保存至原始數組,按長度保存,即獲取到字符串后計算字符串長度,采用二分法比較原始數組中已有的字符串長度,選擇正確的位置插入原始數組。
4.如權利要求3所述的一種嵌入式設備的多語言動態切換方法,其特征在于:所述輸出數據庫文件和替換數組包括,對原始數組進行比較操作,即每一個字符串都需要與其之前的字符串進行比較,檢查是否存在包含或相等的情況,若相等則共享一個序號,若包含則切割字符串,相等的字符串共享序號,剩余的部分繼續進行比較操作,直至沒有相等的字符串后,剩余的字符串獲得新的序號,以序號-字符串的形式保存至mdb標準數據庫文件,并將原始數組中的字符串替換為{序號1,序號2...}同時保存至用于替換源碼字符串的替換數組。
5.如權利要求4所述的一種嵌入式設備的多語言動態切換方法,其...
【專利技術屬性】
技術研發人員:趙佳佳,余志遠,路浩,
申請(專利權)人:南京國電南自維美德自動化有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。