此文(wén)為(wèi)上(shàng)篇文(wén)字的(de✘↔)後續《網站(zhàn)多(duō)語言實現(xiàn)↔™∑技(jì)術(shù)細節之一(yī)》。
編寫第三方的(de)翻譯接口實現(xiàn),我們以百度翻譯為(wèi)例,首先需要(yào)注冊λ∑♥百度開(kāi)放(fàng)平台的(d→₽e)賬号,成為(wèi)開(kāi)發者,平台會(huì)分(fēn)配一(yī)個(gè)APP™™≈ID。然後進行(xíng)開(kāi)發者認證(如(rú)僅需标準版可(kě)跳(tiàoδλ)過),接著(zhe)開(kāi)通(tōng)通(tōng)用∏↔&≤(yòng)翻譯API服務,最後編寫實現(xiàn)接口的(de)方法。百度翻譯技(jì♣$β)術(shù)文(wén)檔提供了(le)Demo代碼,可(kě)以參照(€ zhào),大(dà)概的(de)邏輯是σ≠≈(shì)先編寫簽名算(suàn)法,然↔✔<後編寫調用(yòng)接口方法,這(zhè)個(≥γ↓gè)方法參數(shù)裡(lǐ)含簽名和(hé)你(nǐ)要(yào)進行(xíng)£λ§翻譯的(de)內(nèi)容,以及平台分εγ(fēn)配的(de)APPID,最終生(shēng)成一(yī)個(gè)url,>★★然後通(tōng)過您的(de)開(kāi)發語言中的(de)執行(xíng)url方法去"★®§(qù)獲取內(nèi)容。內(nèi) ελ容獲取之後就(jiù)可(kě)以解析了(le),接口返回內(nèi)容一(yī)Ω<般都(dōu)是(shì)json格式,如(rú):{“from≤¥221;: “zh”, &#• ←8220;to”: “γδ;en”,”trans_result̶δ♥ 1;: [{“src”: R↑↑≤20;中國(guó)”, “dst”: ̶™<¥0;China”}] }。
獲取翻譯內(nèi)容之後我們還(hái)需要(yào)進一(yī)步處理(lǐ)☆α≠,我們在做(zuò)軟件(jiàn)開(kāi)發時(shí)候的(de)做(zuò)₩∞↑≈法是(shì)将該翻譯內(nèi)容以json方式存入緩存文(wén)件(jiàn)中,這(≈"♦'zhè)個(gè)緩存文(wén)件(jiàn)就(jiù)是(sh ≥ì)我們自(zì)動生(shēng)成的(de)語言包,針對(duì)不(bù)同∞←↓的(de)語言,我們隻需按照(zhào)對(γλ©€duì)應的(de)語言縮寫,如(rú):en.json文(wén)件(jiàn)命名即✘÷™可(kě),這(zhè)麽做(zuò)的βφ(de)目的(de),下(xià)次頁面再加載的(de)時(∞π∞shí)候不(bù)用(yòng)再調用(yòng)翻譯接口,因為(wèi)翻譯接口都(dōu)×λ是(shì)有(yǒu)調用(yòng)數(shù)量限制(zhì)姕的(de),超過時(shí)需要(yào)付費(fèi),并且執行(xíng)返回結果需要(yào£®)時(shí)間(jiān),如(rú)果頁面要(yào)翻譯的(de)內(nèi)容較♣↔δ∞多(duō),會(huì)有(yǒu)很(hěn) ←大(dà)延遲。我們完全可(kě)以預先将翻譯的(de)內(nèi)容準備" ≥£好(hǎo),這(zhè)樣用(yòng)戶在訪問✘δ(wèn)頁面的(de)時(shí)候,加♣€♠€載都(dōu)是(shì)秒(miǎo)開(kāi)的(de),用↕$★(yòng)戶體(tǐ)驗做(zuò)到(dào)最佳。★×<✘
通(tōng)過了(le)上(shàng)面的(de)執行(xíng)之後,要(&→≈γyào)翻譯的(de)內(nèi)容都(dōu)會(huì)被翻譯,有☆₽₩ (yǒu)了(le)翻譯好(hǎo)的(de)語言包文(wén)件(jiàn),頁面再↕←"顯示就(jiù)很(hěn)easy了(le)→㱩,其實上(shàng)面我們已經介紹了(le)方法,就(jiù)是(shì)✘α$我們在收集頁面待翻譯的(de)字符串的(de)ε≈函數(shù)。
至此我們就(jiù)實現(xiàn)了(le)網站(zhàn)的(de✘§∞)多(duō)語言,這(zhè)個(gè)方案在我們的(de)軟件(jiàn)項目外(wài)包、ERP軟件(jiàn)開(kāi)發和(hé)SCRM軟件(jiàn)開(kāi)發等很(hěn)多(duō)項目中都(dōu)有(yǒu)實$ ♦§際應用(yòng),分(fēn)享給大(dà)家(jiā)。
蘇公網安備 32059002004131号