• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      設(shè)備故障監(jiān)測診斷平臺多語言技術(shù)研究

      2012-03-17 07:20:28陳容紅江志農(nóng)
      電子設(shè)計工程 2012年11期
      關(guān)鍵詞:主程序字符串語種

      陳 京,陳容紅,江志農(nóng)

      (1.北京化工大學(xué) 診斷與自愈工程研究中心,北京 100029;2.北京電子科技職業(yè)學(xué)院 自動化工程學(xué)院,北京 100176)

      隨著時代進步、國際化接軌,軟件多語言版本的需求日益增強,設(shè)備故障監(jiān)測診斷平臺也同樣如此[1]。同時由于嵌入式環(huán)境的特殊性,各方面資源都受到一定限制,因此它對多語言技術(shù)具有一定的特殊需求。基于Json的多語言實現(xiàn)技術(shù)相對于傳統(tǒng)方案在速度、空間利用方面有所提高,同時利于拓展與修改,能滿足嵌入式多語言的需求,同時通過開發(fā)資源管理工具對多語言資源進行管理,釋放了開發(fā)人員的精力,使其能更集中于核心業(yè)務(wù)之中。目前該技術(shù)已應(yīng)用于大型故障監(jiān)測診斷平臺與手持式巡檢儀中。

      1 多語言技術(shù)現(xiàn)狀及其缺陷

      目前的程序多語言技術(shù)通過資源文件狀態(tài)大致可以分為以下3種:

      1)資源內(nèi)嵌式多語言技術(shù);

      2)資源文件二進制化;

      3)資源文件文本化。

      傳統(tǒng)的多語言程序多使用內(nèi)嵌式多語言化技術(shù)。即將多種語言所需要使用的資源硬編碼到程序代碼中,程序啟動時通過某個參數(shù)來確定使用將哪一種資源展現(xiàn)給用戶。

      內(nèi)嵌式多語言技術(shù)具有資源加載速度快,占用資源較少的優(yōu)點。但由于資源定義于程序當(dāng)中,一旦資源發(fā)生變動,便需要重新編譯整個項目文件。這會大幅降低軟件開發(fā)進程,無法滿足當(dāng)前日益增快的軟件迭代速度要求[2]。

      基于這一點,較新的多語言實現(xiàn)技術(shù)將多語言資源從程序中提取出來,作為單獨的資源文件存在,即資源文件二進制化。這時的資源文件通常體現(xiàn)為Dll的形式。這種形式的資源文件同樣具有資源加載快、占用空間小的優(yōu)點,同時由于資源文件與主程序相分離,資源方面的改動不會影響到主程序。但這種多語言化技術(shù)的資源仍存在資源變動難的問題,資源每次更新后仍需開發(fā)人員進行編譯發(fā)布,這種多語言實現(xiàn)技術(shù)通常是通過定義VC的純資源Dll并提供相應(yīng)的管理接口來實現(xiàn)[3-4]。

      目前最新的多語言技術(shù)則屬于資源文件文本化。即將資源文件完全與主程序剝離開來,以文本文件的形式存在,主程序通過中間的管理類來與資源文件進行交互,無法直接對資源文件進行讀取。這種方法相對于前兩種方法來說修改靈活,使用方便并且易于拓展和升級,但由于文本實現(xiàn)機制的不同,往往各種方式的性能、空間占用率等方面都存在很大差別。目前比較通用的是使用Xm l文件來對資源文件進行存儲。

      Xm l(extensiblemarkup language)是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,可以用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進行定義的源語言。

      基于Xml的實現(xiàn)方案將字符串與對應(yīng)的ID定義與Xml文件中,應(yīng)用程序通過解析Xm l文件中的信息來獲取相應(yīng)的字符串[5]。其大致思路與本文相同,但Xm l在效率上存在一定問題。Xml文件中存在很多用于解析的附加信息,而一般程序中的字符串量都很大。這些附加信息導(dǎo)致Xml資源文件變得臃腫,占用額外的空間并影響程序的解析速率。

      2 Json多語言技術(shù)

      2.1 Json交換格式

      Json(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition-December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C,C++, C#,Java, JavaScript, Perl, Python 等)。 這些特 性 使Json成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。

      Json中的對象通??梢苑譃閮煞N類型:鍵/值對與值的有序列表。鍵/值對在Json中的表達方式為:{“Key”:Value}。相對于更加直觀的表達式Key=Value,這種表達方式占有更多的空間,但當(dāng)文件中存在很多鍵值對時,這種表達方式更易于理解,可讀性更強,而且相對與Xml來說,它可以用更小的空間來體現(xiàn)相當(dāng)?shù)暮x[6]。

      2.2 多語言方案

      Json多語言技術(shù)是屬于資源文件文本化的一種多語言技術(shù)。因此程序與文本化資源之間需要一個接口來對資源進行讀取、切換語種等操作。這個接口需要將資源的變化與主程序隔離開來。使得修改資源文件時,主程序不會受到影響。同時,這個接口還需要具有良好的拓展性,便于添加新的語種文件。

      基于此,可以采用將可用語種與相關(guān)資源路徑都定義于Json配置文件中,而將存取接口定義與資源管理Dll中的方案。資源管理Dll中所必須的接口有:獲取默認語種,設(shè)置默認語種,獲取多語言資源,設(shè)置多語言資源等。程序獲取多語言資源時,只需要與資源管理Dll交互,而不用關(guān)心當(dāng)前的語種、資源文件的種類、路徑等信息。

      而需要拓展時只需在配置文件中添加相關(guān)語種定義及對應(yīng)資源即可。程序中與語言種類相關(guān)的資源通常有字符串、圖片、語音等,因此,配置文件一般內(nèi)容如表1所示。

      程序通過接口讀取配置文件中的默認語種種類,并尋找對應(yīng)資源路徑,來初始化程序的界面顯示。同時程序獲取所有可用語種,并向用戶提供相應(yīng)選項來達到實時切換語種的目的。

      表1 配置字段Tab.1 Config fields

      對于需要使用的資源,程序中定義的是資源的一個ID,程序通過這個ID與當(dāng)前語種的資源路徑名來獲取對應(yīng)的語種資源。相對與圖片、語音等資源,字符串的資源定義最為直接,他只需在Json文件中存儲與ID相對應(yīng)的字符串資源,主程序就能通過解析Json文件得到所需的字符串。字符串資源文件所需字段如下:

      1)字符串ID:與主程序中定義的字符串ID相對應(yīng)。

      2)字符串值:主程序所想要展現(xiàn)給用戶的最終字符串。不同語種統(tǒng)一ID對應(yīng)的值表達的意義應(yīng)相同。體現(xiàn)在Json文件中則是如下格式:

      圖片資源與語音資源相對復(fù)雜,因為文本文件中無法直接存儲對應(yīng)的語種資源。本文采取的解決方案時鍵值所對應(yīng)的是資源所在的路徑。其資源定義字段為:

      1)資源ID:和字符串類型一樣,與主程序中定義的ID保持一致。

      2)資源路徑:主程序展現(xiàn)給用戶的最終圖片或語音文件的路徑。

      體現(xiàn)在Json文件中,其格式如下:

      2.3 資源庫維護程序

      盡管Json文件定義清晰,利于理解,但仍然不是很貼切自然語言的使用方式,這對資源的維護帶來了一定的困難。

      專門制作一款用于維護資源庫的輔助工具,按照預(yù)先定義好的協(xié)議將資源信息寫入Json文件中。這樣可以便利的添加與刪除資源,使非開發(fā)人員也能熟練的對資源文件進行操作,減小開發(fā)量。

      輔助工具可以使用與主程序相同的接口庫對資源文件進行存取,而不必進行特意的開發(fā)。在界面展示上,輔助工具可以借助已有的表格工具,將Json內(nèi)容轉(zhuǎn)換為csv格式,通過Excel進行顯示,方便快捷。

      3 對比與實現(xiàn)

      3.1 方案比較

      由于資源文件內(nèi)嵌式多語言技術(shù)與資源文件二進制化多語言技術(shù)均難以對需求的變更進行及時的響應(yīng),同時其拓展性也有很大的限制,本文未將其進行對比。本文進行對比的是同為資源文本化的Xml多語言化技術(shù)。

      在一個程序中多語言資源最主要的部分就是字符串,因此本文主要針對字符串存取的3個方面對其進行的測試比較。

      測試字符串均為 “TestString”,測試結(jié)果分別如表2、表3、表 4所示。

      表2 字符串讀取速度Tab.2 Reading tim e

      表3 字符串寫入速度Tab.3 W riting tim e

      表4 資源文件占用空間大小Tab.4 File size

      由測試結(jié)果可知,在存取速度上,Json多語言技術(shù)是Xml多語言技術(shù)的2.3倍左右,而Json文件的大小則為Xm l文件的1/2左右。Json多語言技術(shù)相對于Xm l技術(shù)來說具有很明顯的優(yōu)勢,更符合嵌入式開發(fā)各種條件都受到限制的環(huán)境。

      3.2 實現(xiàn)效果

      通過實現(xiàn)WinCE系統(tǒng)下的手持式巡檢系統(tǒng)的多語言化,證明了該方案的可行性。

      實現(xiàn)效果圖如圖1、圖2所示。

      4 結(jié) 論

      圖1 中文主界面Fig.1 Chinese interface

      圖2 英文主界面Fig.2 English interface

      國家交流日益頻繁,多語言技術(shù)發(fā)展難以避免。本文針對嵌入式軟件平臺的特殊性提出的基于Json的多語言實現(xiàn)技術(shù)。經(jīng)過與傳統(tǒng)方案的對比,具有切實的可行性與操作性。同時開發(fā)對資源文件進行維護的拓展工具的維護方法,可以減小開發(fā)人員任務(wù)量,使其能專注于核心業(yè)務(wù),具有實用性。

      [1]宋秋貴,岳峰,石正海,等.一種應(yīng)用于Unicode設(shè)計多語言實時切換應(yīng)用程序的解決方案 [J].電腦開發(fā)與應(yīng)用,2006,19(3):53-55.

      SONGQiu-gui,YUE Feng,SHIIZheng-hai,etal.Solution for designing multilanguage real-time switchover application program with unicode[J].Computer Development& Applications,2006,19(3):53-55.

      [2]翼斌.Windows平臺下應(yīng)用軟件多語言支持 [J].計算機工程,2004,30(1):163-164.

      JIBin.Applicationmulti-lingual supporton windows platform[J].Computer Engineering,2004,30(1):163-164.

      [3]唐勇,李秀龍,陳晶,等.多語言用戶界面的研究與實現(xiàn)[J].計算機應(yīng)用研究,2002,4(1):112-113.

      TANG Yong,LIXiu-long,CHEN Jing,et al.The study of the technology of multi-language user interface[J].Application Research of Computers,2002,4(1):112-113.

      [4]蔣衍君.電力監(jiān)控軟件多語言支持 [J].電力自動化設(shè)備,2008(3):91-95 JIANG Yan-jun.Multi-language support of power SCADA software[J].Electric Power Automation Equipment,2008(3):91-95.

      [5]王鋒,魏曉麗,江開耀.基于XML的C#多語言界面實現(xiàn)[J].計算機工程與設(shè)計,2008,29(15):4073-4074.WANG Feng,WEIXiao-li,JIANG Kai-yao.Implemention of multi-language interface on C#based on XML[J].Computer Engineering and Design,2008,29(15):4073-4074.

      [6]高靜,段會川.JSON的數(shù)據(jù)傳輸效率研究[J].計算機工程與設(shè)計,2011,23(7):2267-2270.

      GAO Jing,DUAN Hui-chuan.Research on data transmission efficiency of JSON[J].Computer Engineering and Design,2011,23(7):2267-2270.

      猜你喜歡
      主程序字符串語種
      《波斯語課》:兩個人的小語種
      時代郵刊(2021年8期)2021-07-21 07:52:44
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      電控冰箱軟件模塊化設(shè)計
      日用電器(2019年12期)2019-02-26 01:53:06
      “一帶一路”背景下我國的外語語種規(guī)劃
      時光倒流 換回PotPlayer老圖標(biāo)
      一種新的基于對稱性的字符串相似性處理算法
      依據(jù)字符串匹配的中文分詞模型研究
      未經(jīng)授權(quán)的第三方軟件侵權(quán)問題研究
      ——以“騰訊與360之爭”為視角*
      一種針對Java中字符串的內(nèi)存管理方案
      走出報考小語種專業(yè)的兩大誤區(qū)
      鹿邑县| 西贡区| 晋江市| 罗田县| 聂拉木县| 韶关市| 桂平市| 曲水县| 云林县| 新疆| 马山县| 西乡县| 博客| 黄平县| 团风县| 宁陕县| 裕民县| 邢台县| 林西县| 微博| 花垣县| 浦城县| 肥西县| 德清县| 呼和浩特市| 行唐县| 定边县| 孝感市| 阿尔山市| 竹北市| 会昌县| 三穗县| 吴旗县| 巴东县| 土默特左旗| 离岛区| 滨州市| 册亨县| 天峻县| 凤阳县| 黔西|