亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于AOP的動態(tài)數(shù)據(jù)翻譯框架

        2023-11-02 01:49:32
        鐵路通信信號工程技術(shù) 2023年10期
        關(guān)鍵詞:內(nèi)容語言

        張 舒

        (北京全路通信信號研究設(shè)計院集團有限公司,北京 100070)

        1 動態(tài)數(shù)據(jù)翻譯概況

        目前越來越多的項目有了國際化需求,國際化主要是指根據(jù)語言選擇,顯示符合不同國家閱讀習慣的頁面和數(shù)據(jù)。國際化功能不僅需要將前臺界面固定使用的文本元素進行翻譯,對于程序動態(tài)產(chǎn)生的數(shù)據(jù)也需要進行翻譯展示。針對固定文本信息的翻譯,可以使用通用的i18n組件,根據(jù)用戶當前選擇語言類型,從語言配置文件中提取相應(yīng)的內(nèi)容。后臺數(shù)據(jù)的翻譯功能,目前主流方案主要有以下兩種。

        使用翻譯網(wǎng)站提供的在線翻譯api。這種方式不需要自備翻譯數(shù)據(jù)集,方便靈活。但是當需要前后臺交互并涉及到業(yè)務(wù)邏輯時,雖然可以將前臺輸入內(nèi)容進行反向翻譯統(tǒng)一成同一種語言內(nèi)容,但是無法保證傳遞給邏輯業(yè)務(wù)數(shù)據(jù)內(nèi)容的唯一可識別性。因此該方法僅適用于只展示動態(tài)數(shù)據(jù),不對動態(tài)數(shù)據(jù)進行業(yè)務(wù)邏輯的情況。此外,正常網(wǎng)絡(luò)訪問也是使用此方法的必備條件。

        構(gòu)建數(shù)據(jù)字典,包括鍵值及對應(yīng)的翻譯語言內(nèi)容。前后臺交互及后臺業(yè)務(wù)使用鍵值,前臺顯示時使用翻譯內(nèi)容。此方案完美解決了輸入內(nèi)容唯一可識別的需求,但是需要將待翻譯的字段擴展為鍵值和翻譯內(nèi)容兩個字段。這種方式要在程序設(shè)計時就考慮進去,如果是在業(yè)務(wù)開發(fā)完成或部分完成后增加,需要重新梳理并修改前后臺數(shù)據(jù)結(jié)構(gòu),增大了開發(fā)工作量。

        基于以上情況,因此需要設(shè)計一種易于配置并且具有高可復(fù)用性的框架實現(xiàn)動態(tài)數(shù)據(jù)翻譯工作。

        2 翻譯框架設(shè)計

        2.1 總體設(shè)計

        動態(tài)數(shù)據(jù)翻譯框架設(shè)計如圖1所示。

        圖1 翻譯框架設(shè)計Fig.1 Translation framework design

        此框架設(shè)計遵循分層原則,劃分不同層的功能職責。其中Aspect用于對請求的參數(shù)及返回值攔截,調(diào)用翻譯服務(wù)進行字段翻譯更新數(shù)據(jù)內(nèi)容;Service層(服務(wù)層)提供翻譯服務(wù),承擔該框架的主要業(yè)務(wù);Dao層(數(shù)據(jù)訪問層)實現(xiàn)數(shù)據(jù)持久化功能,與數(shù)據(jù)源交互??蚣軆?nèi)默認設(shè)置翻譯服務(wù)包括中文、英文,如需擴展語言類型,使用時需要填寫在配置文件中并更新數(shù)據(jù)庫結(jié)構(gòu)及內(nèi)容。此功能是通過使用Cglib動態(tài)擴展java類及其接口實現(xiàn)。應(yīng)用此框架,后臺接收到請求后的運行時序如下。

        1)解析請求的語言類型;

        2)具有入?yún)⒎g標簽的方法進行入?yún)⒔Y(jié)構(gòu)掃描,國際化功能處理成統(tǒng)一可識別鍵值;

        3)核心業(yè)務(wù)邏輯處理;

        受胎率用SPSS19.0統(tǒng)計軟件進行卡方檢驗,精子活率和精子頂體完整率用單因素方差分析,結(jié)果用“平均值±標準差”表示。P<0. 05表示差異顯著,P>0. 05表示差異不顯著。

        4)具有返回值翻譯標簽的方法進行返回值結(jié)構(gòu)掃描,國際化功能處理成翻譯后的內(nèi)容;

        5)返回替換翻譯值后的響應(yīng)內(nèi)容。

        應(yīng)用此方案,基于動態(tài)數(shù)據(jù)翻譯的請求http請求過程如圖2所示,對于B/S架構(gòu)的前臺而言,僅需在http請求頭中增加語言類型屬性。

        圖2 http請求過程Fig.2 HTTP request process

        此方案的優(yōu)點如下。

        1)對于已存在的項目進行國際化功能添加時,不會變動原有數(shù)據(jù)結(jié)構(gòu),與業(yè)務(wù)解耦。

        2)使用注解標注需要翻譯的接口、翻譯類型(正向翻譯/反向翻譯)以及待翻譯字段,使用AOP進行請求攔截和翻譯織入,可以縮減代碼,控制開發(fā)成本。

        3)對于需要增擴翻譯的語言種類和語言內(nèi)容,可以動態(tài)擴展字典表并進行文件配置,無需增添代碼。

        動態(tài)數(shù)據(jù)翻譯框架與已有程序的結(jié)構(gòu)兼容情況如圖3所示。

        圖3 翻譯框架兼容Fig.3 Compatibility of translation framework

        2.2 具體實現(xiàn)

        動態(tài)數(shù)據(jù)翻譯框架搭建步驟如下。

        1) 建立數(shù)據(jù)表,內(nèi)容包括鍵值、需要翻譯的語言類型,比如中文、英文。其中鍵值是標記翻譯內(nèi)容的唯一后臺通用語言,用于在后臺服務(wù)中進行數(shù)據(jù)交換和數(shù)據(jù)存儲。

        2) 翻譯字典查詢業(yè)務(wù),提供正向翻譯和反向翻譯功能。正向翻譯是指輸入鍵值和語言種類,返回對應(yīng)的語言內(nèi)容;反向翻譯是指輸入翻譯內(nèi)容和語言種類,返回唯一鍵值。語言種類包括中文、英文、以及自定義的語言類型。對于后者,程序讀取配置文件并通過Cglib自動進行裝配,讀取數(shù)據(jù)源數(shù)據(jù)提供對應(yīng)的翻譯功能。

        3)自定義注解TranslateRequest,Translate Response和Translate。其中TranslateRequest標記需要對入?yún)⑦M行反向翻譯的接口,Translate Response標記需要對返回值進行翻譯的接口,Translate標記結(jié)構(gòu)體中需要參與翻譯的字段。

        4)AOP切面級別攔截接口的請求和返回值。對于請求進行攔截,根據(jù)請求頭所帶語言類型,將語言內(nèi)容反向翻譯為唯一鍵值,在服務(wù)中進行數(shù)據(jù)交換;對于接口返回值進行攔截,根據(jù)請求頭所帶語言類型,將返回內(nèi)容中的唯一鍵值進行翻譯,替換成翻譯內(nèi)容作為接口調(diào)用的響應(yīng)內(nèi)容。

        2.3 框架使用方法

        1)前臺在http請求頭增加Language字段,標記當前前臺選擇語言類型,作為后臺接口輸入?yún)?shù)反向翻譯以及輸出參數(shù)翻譯的標準。

        2)數(shù)據(jù)庫中添加翻譯字典。

        3)并不是所有的接口和參數(shù)都有翻譯需求,因此只為有翻譯需求的接口和字段添加注解。在需要對入?yún)⑦M行反向翻譯的接口進行TranslateRequest標記,在需要對返回值進行翻譯的接口進行TranslateResponse標記,結(jié)構(gòu)體中需要參與翻譯的字段進行Translate標記。這樣操作可以最大化減少不必要的翻譯工作。

        4)如果需要增擴翻譯語言類型,需要在application.yml文件中以json的key-value格式寫入dict字段。如:dict: "{id-ID: 'C_ID'}",其中key是前后臺交互的語言類型,value是對應(yīng)的數(shù)據(jù)庫列名。

        2.4 參考用例及測試

        需要正向翻譯的方法及返回值結(jié)構(gòu)如圖4所示。

        圖4 參考用例代碼Fig.4 Code of reference use case

        外部調(diào)用該接口,根據(jù)請求頭Language字段值不同,返回內(nèi)容不同,測試結(jié)果如圖5所示。

        圖5 翻譯測試結(jié)果Fig.5 Translation test results

        3 結(jié)束語

        本文設(shè)計了一種動態(tài)數(shù)據(jù)翻譯框架,可以應(yīng)用于有翻譯需求的軟件開發(fā),尤其適用于增量式開發(fā)和有前后臺交互需求的情況。借助AOP技術(shù)實現(xiàn)國際化翻譯工作與核心業(yè)務(wù)的分離,使用注解方式提高框架的易用性和可復(fù)用性。通過使用本框架,可以有效提高系統(tǒng)的開發(fā)效率,降低人力和時間成本。該方案已經(jīng)應(yīng)用于海外鐵路的信息化產(chǎn)品中并且使用效果良好,希望本框架可以為更多具有多語言動態(tài)數(shù)據(jù)翻譯需求的項目提供服務(wù)或設(shè)計思路。

        猜你喜歡
        內(nèi)容語言
        內(nèi)容回顧溫故知新
        內(nèi)容回顧 溫故知新
        內(nèi)容回顧溫故知新
        語言是刀
        文苑(2020年4期)2020-05-30 12:35:30
        讓語言描寫搖曳多姿
        多向度交往對語言磨蝕的補正之道
        累積動態(tài)分析下的同聲傳譯語言壓縮
        主要內(nèi)容
        臺聲(2016年2期)2016-09-16 01:06:53
        我有我語言
        論語言的“得體”
        語文知識(2014年10期)2014-02-28 22:00:56
        亚洲一区日本一区二区| 无码国产午夜福利片在线观看| 亚洲日韩欧美一区二区三区| 中文字幕有码在线视频| 91免费播放日韩一区二天天综合福利电影 | 亚洲精品无播放器在线播放| 国产在线观看黄| 国产精品成年人毛片毛片| 一二三四在线观看视频韩国| 真实国产乱子伦精品视频| 亚洲xxxx做受欧美| 国产中出视频| 手机av男人天堂免费网址| 亚洲熟女少妇精品综合| 女人张开腿让男桶喷水高潮| 成人a在线观看| 手机在线免费av网址| 日本va中文字幕亚洲久伊人| 午夜精品射精入后重之免费观看| 国产精品亚洲综合一区在线观看| 囯产精品无码一区二区三区| 92自拍视频爽啪在线观看| 成人午夜高潮a∨猛片| 麻豆精品国产精华液好用吗| 亚洲最新偷拍网站| 99re6久精品国产首页| 国产精品久久婷婷六月丁香| 国产女人精品视频国产灰线| 国产成人久久精品激情| 中文字幕无码免费久久99| 熟女少妇精品一区二区三区| 午夜精品久久久久久久99热| 无遮挡亲胸捏胸免费视频| 亚洲精品视频免费在线| 亚洲中文字幕av天堂自拍| 久久婷婷成人综合色| 四虎精品成人免费观看| 亚洲国产线茬精品成av| 新婚人妻不戴套国产精品| 人妻丝袜av中文系列先锋影音| 免费无码中文字幕A级毛片|