•  untoreh-light

MTR: maraming mga pagsasalin

pambalot ng mga serbisyo sa pagsasalin para sa panloob na paggamit

Kapag naglathala ng isang website baka gusto mong mag-alok ng iba't ibang mga pagsasalin. Ang ilang mga tao ay hindi gusto ng mga awtomatikong tagasalin, sa palagay ko ang isang awtomatikong pagsasalin ay sapat na mabuti, at mas mahusay kaysa sa wala, at ang mga awtomatikong tagasalin ay naging mas mahusay sa pag-usad sa NLP at ML.

Ang mga karaniwang serbisyo sa pagsasalin ay ang google, bing, yandex. Nag-aalok ang mga ito ng isang libreng baitang na nais naming balutin para sa aming sariling personal na paggamit. Mayroon ding iba pang hindi gaanong kilala mga serbisyo sa pagsalin , at ang ilan sa kanila ay nagsasara sa oras ng pagsulat ...

Text ng pag-cache

Kung nais naming mag-cache ng mga pagsasalin, kailangan naming hatiin ang hiniling na teksto sa mas maliit na mga string na maliit na sapat upang makapagbigay ng mga hit para sa mga posibleng kahilingan sa hinaharap. Ang pagpapalitan ay ang pagsasalin ng mas maliit na mga pangungusap ay may mas kaunting konteksto, na nagpapababa ng kalidad ng pagsasalin.

Paano namin pinaghihiwalay ang papasok na teksto na maaari nating muling itayo ang orihinal mula sa naisalin na teksto ay isang trick..o isang hack. Nais naming makahanap ng isang string na kakaiba na iniiwan ito ng serbisyo sa pagsasalin tulad nito sa output nito. Natagpuan ko ang mga pagkakaiba-iba ng character na talata upang gumana ng halos lahat ng oras

$this->misc['glue'] = ' ; ¶ ; ';
$this->misc['splitGlue'] = '/\s?;\s?¶\s?;?\s?/';

Angglue string ay ginagamit upang concatenate lahat ang mga string (nahihiwalay mula sa orihinal na kahilingan) sa isa nag-iisang pangkat para sa kahilingan sa agos ng pagsasalin na ipinadadala namin sa hal. google AngsplitGlue ay sa halip ay ginagamit upang hatiin muli ang natanggap na pagsasalin sa mga string na aming mai-cache. Nakikita natin dito na ang paghihiwalay ng mga string ay hindi lamang kapaki-pakinabang para sa pag-cache, ngunit sa bawasan ang bilang ng mga kahilingan, dahil kung sakaling ang aming kahilingan sa ibaba ng agos ay gumaganap ng maraming maliliit na mga query, ginagamit namin ang aming makinarya upang pagsamahin ang mga kahilingan hanggang sa maximum na laki ng kargamento na pinapayagan ng upstream na serbisyo.

Ang interface

Upang suportahan ang maraming mga serbisyo malinaw Sumulat ako ng isang interface na naayos sa api na ito

function__construct(
    Mtr &$mtr,
    Client &$gz,
    TextReq &$txtrq,
    LanguageCode &$ld);
functiontranslate($source, $target, $input);
functiongenReq(array$params);
functionpreReq(array &$input);
functiongetLangs();

Kaya't ang isang serbisyo upang maging pagpapatakbo ay dapat mag-alok ng isang pag-andar sa pagsasalin, kung paano isalin ang mga kahilingan, at ibigay ang listahan ng mga sinusuportahang wika. Sa listahan ng mga sinusuportahang wika maaari kaming lumikha ng isang matrix na alam namin kung gaano karaming mga serbisyo ang sumusuporta sa isang tukoy na mga pares ng wika, para sa pag-parse ng pares ng wika binago namin ang representasyon na ibinalik ng serbisyo sa isang pangkaraniwaniso639-1.

Pinapayagan din ng paglikha ng halimbawa ng pagsasalin na i-configure ang mga pagpipilian sa mga kahilingan na ginamit ngGuzzle halimbawa ng client tulad ng maaari naming halimbawa gumamit ng mga proxy upang maisagawa ang mga kahilingan. Ang mga serbisyo ay naka-cache pagkatapos mabuo sa unang pagkakataon, kapaki-pakinabang ito dahil ang ilang mga serbisyo ay nangangailangan upang makabuo ng ilang mga paunang token, at hindi namin nais na muling buhayin ang mga ito sa tuwing.

Ang Go bersyon

Sumulat din ako a bersyon sa golang. Ang bersyon na PHP ay gagamitin sa pamamagitan ng pag-import nito sa iyong proyekto sa PHP, samantalang ang bersyon ng go ay gumagana bilang isang standalone (micro) na serbisyo. Ang bersyon ng go ay higit na masasalita dahil nangangailangan ito ng mahigpit na pag-check ng uri at dahil sinusuportahan namin ang pagtatanong ng maraming mga string nang sabay-sabay, kailangan naming ilantad ang api na gumagana sa iba't ibang mga kumbinasyon ng pag-input, at ang mga kakulangan ng go generics ay napakasakit ng pagpapatupad, ngunit inalok ito kasabay na pagproseso, at mas mabilis sa pangkalahatan.

Mga input ng paglilinis

Kaisa ng pagsasalin ay nagtayo din ako ng isang serbisyo linisin ang html . Nag-whitelist kami ng ilang mga html tag at itinapon ang iba pa. Inaalis din namin ang tulad ng duplicate na bantas at hindi kilalang mga katangian ng html, at ibabalot ang mga link sa tamang mga anchor tag.

Self-host:

Konklusyon

Sa panahon ngayon sa palagay ko ay gagamit lamang ako ng isang solusyon sa sarili na naka-host, na ibinigay ng alinman sa joshua o mga argos, dahil hindi ko hangarin ang pinakamahusay na pagsasalin, nais kong mag-alok ng isang nababasa na pagsasalin para sa isang website, na maaari itong mai-navigate nang walang alitan.

Mag-post ng Mga Tag: