此文(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)平台的(de)賬号,成為(<↕wèi)開(kāi)發者,平台會(huì)分(fēn)配一(yī)個±≤(gè)APPID。然後進行(xíng)開(kāi)發者∑&認證(如(rú)僅需标準版可(kě)跳(tiào)過),₽$♠接著(zhe)開(kāi)通(tōng)通δ♦(tōng)用(yòng)翻譯API服務,最後編寫實現(xΩ↓↑≤iàn)接口的(de)方法。百度翻譯技(jì)♣♥ε術(shù)文(wén)檔提供了(le)Demo代碼,可(kě)以參照≤∞(zhào),大(dà)概的(de)邏輯是(shì)先編寫簽名算(s♥✘Ω©uà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ú):{₩ ★220;from”: “zh”, “tδ ≤↓o”: “en”,”trans_res≥γ™$ult”: [{“src”: “₹≥中國(guó)”, R₽π 20;dst”: “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号