站長資訊網
        最全最豐富的資訊網站

        翻譯接口的使用及其優化

        ?

        本文給大家提供一個免費的翻譯接口,有空時可以試試還是很秀的哈!

        ?

        前言

        項目中必要的數據是需要寫語言包的,就像那種幾百年不變的數據,但是有一類數據就是在項目的運行的過程中就在一直變化。

        對于這樣的數據我們寫成語言包顯然是不合適的,所以我們就需要借助翻譯接口來實現我們的需求了。

        一、翻譯接口簡單介紹

        先看一張圖吧!看一下這個翻譯接口在我們的項目中如何運用。

        翻譯接口的使用及其優化
        在這里插入圖片描述

        這個接口總共有4個參數,分別為a、f、t、w。

        這四個參數分別的意思為,a是固定的值就是fy。

        f指的是翻譯的語種。

        t指的是需要翻譯成我們需要的語種。

        w指的是需要翻譯的數據。

        二、項目實戰

        項目需求就是把左邊的框出來的在切換語言后跟隨這語言變動。翻譯接口的使用及其優化首先說明一下,在上邊的這些文字不是手動寫上去的,html文件也是不存在的。是在數據庫注釋里邊配置的。

        下圖就是我們的數據庫創建。翻譯接口的使用及其優化為什么這么創建,這樣創建有什么好處,我就不提了,每個團隊都有自己的想法哈!

        接著我們來到正題

        使用的代碼也就這點,接口地址就是上邊postman里邊的地址,后邊只需要傳輸一個需要翻譯的數據即可。

        本文實現的數據就是上圖左側的文字,也就是我們從數據庫中把注釋讀出來然后根據一定的規則把這個名字就直接作為添加或者修改時的列即可。

        那么就只需要把這個注釋直接給追加到翻譯接口后邊即可。翻譯接口的使用及其優化給你提供一個php發起curl請求的代碼

        public function translateRequest($url, $data=array()){

        $ch = curl_init();//初始化
        //curl_setopt();//設置
        //設置
        curl_setopt($ch,CURLOPT_URL,$url); //需要獲取的 URL 地址
        curl_setopt($ch,CURLOPT_HEADER,0); //啟用時會將頭文件的信息作為數據流輸出, 此處禁止輸出頭信息
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //獲取的信息以字符串返回,而不是直接輸出
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30); //連接超時時間
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

        //避免https 的ssl驗證
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSLVERSION, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        if($data){
        curl_setopt($ch, CURLOPT_POST, 1); //post請求
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//post參數
        }

        //執行
        $data = curl_exec($ch);//執行 不輸出 內容返回給它
        //判斷是否請求成功

        if(curl_errno($ch)){//錯誤碼
        echo 'curl error: '.curl_error($ch);//錯誤信息
        }

        $response = curl_getinfo($ch);

        switch($response['http_code']){
        case 200:
        return $data;
        break;
        default:
        exit('程序異常');
        }

        curl_close($ch);//關閉
        }

        經過測試后看看效果,效果是實現了,但是你們可以私下試試哈!翻譯一組數據時速度還行,但是翻譯幾個數據時就有點慢了。

        添加頁面打開的時間大概需要3-5S,這肯定是不可以的,所以我們需要想一個辦法來解決這個問題。翻譯接口的使用及其優化

        三、優化翻譯速度

        在第二步中,咔咔做到最后是發現翻譯的速度是有點慢的,碰到字段多的更是慢的離譜。于是咔咔就想了一個辦法。

        這些數據是之前是一個一個翻譯出來的,那么我們是不是也可以一次性給翻譯出來,然后我們在來自己組裝數據。翻譯接口的使用及其優化

        帶著這個想法我們開始實施。

        這幾行代碼最終實現的就是把所有的字段注釋放在一起,并且用“,”隔開翻譯接口的使用及其優化打印出來的數據可以看一下,out字段就是翻譯出來的數據,其實想都不用想一次翻譯肯定比6次翻譯速度快。

        然后拿著這組數據在轉化成數組在重新組裝到原數據里就ok了。翻譯接口的使用及其優化這里有個小問題,可以一起關注一下。中文打印出來的是原始數據里邊的,英文是數據經過處理的。

        很明顯可以看到返回的英文結果跟原始數據對不上。翻譯接口的使用及其優化這里的處理也是比較簡單,如果你有更好的方案評論區見

        處理方式在獲取數據庫字段中文注釋之前把對應的索引保存到$needkey

        然后重新定義一個變量fanal,讓fanal的索引等于needkey的v,而對應的值就是result[needkey的k]

        翻譯接口的使用及其優化

        四、總結

        這樣一個翻譯接口的使用就完成了,項目截圖就不給大家展示了哈!

        把多次翻譯改為一次翻譯,提升翻譯速度,畢竟是請求別人的東西,肯定沒有我們自己重組數據快。

        ?

        堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在諾大互聯網中咔咔的文章能帶給你一絲絲幫助。

        ?

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲色精品vr一区二区三区| 精品乱码久久久久久久| 亚洲精品线路一在线观看| 国产精品久久毛片完整版| 亚洲精品亚洲人成在线观看下载| 91精品国产91久久久久久蜜臀| 精品久久久久久久无码| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 精品综合久久久久久88小说| 国产亚洲精品国产| 久久精品午夜一区二区福利| 亚洲国产精品一区二区第四页| 成人精品一区二区三区在线观看| laowang在线精品视频| 乱色精品无码一区二区国产盗| 亚洲国产精品专区在线观看| 久久精品国产精品亚洲人人| 国产成人无码精品久久久免费| 精品九九久久国内精品| 91精品国产综合久久婷婷| 精品国产v无码大片在线观看| 亚洲AV日韩精品久久久久久| 亚洲精品视频久久久| 国内精品欧美久久精品| 国产精品小视频免费无限app| 亚洲一区精品中文字幕| 久久久久久久99精品免费观看| 成人国产精品免费视频| 成人国内精品久久久久一区| 岛国精品一区免费视频在线观看| 国产欧美日韩精品a在线观看| 精品熟女少妇a∨免费久久| 亚洲国产精品无码久久一区二区| 中文字幕久久精品| 午夜精品射精入后重之免费观看 | 国产精品无码a∨精品| 精品国产精品国产偷麻豆| 欧美精品videosse精子| 人妻少妇精品中文字幕AV| 久久亚洲中文字幕精品有坂深雪| 久久九九精品99国产精品|