•  cahya untoreh

MTR: pirang-pirang terjemahan

bungkus layanan terjemahan kanggo panggunaan internal

Nalika nerbitake situs web, sampeyan bisa uga pengin nawakake terjemahan sing beda. Sawetara wong ora seneng karo panjarwa otomatis, aku mikir yen terjemahan otomatis wis cukup, lan luwih apik tinimbang apa-apa, lan penerjemah otomatis saya suwe saya maju kanthi kemajuan NLP lan ML.

Layanan terjemahan umum yaiku google, bing, yandex. Iki nawakake undakan gratis sing pengin diwenehake kanggo panggunaan pribadi. Uga ana wong liya sing kurang dikenal layanan terjemahan , lan sawetara wong mati nalika nulis ...

Teks cache

Yen pengin cache terjemahan, kita kudu mbagi teks sing dijaluk dadi senar sing luwih cilik supaya cukup cilik kanggo menehi klik kanggo panjaluk mbesuk. Ing dagang-dagang yaiku terjemahan ukara sing luwih cilik ora duwe konteks, sing nyuda kualitas terjemahan.

Kepiye cara mbagi teks sing mlebu supaya bisa mbentuk maneh teks sing asli saka teks sing dijarwakake cukup trik.. utawa hack. Kita pengin golek senar sing cukup aneh supaya layanan terjemahan ora bisa ditinggalake kayadene ing output. Aku wis nemokake variasi saka watak paragrap kanggo makarya asring-asring

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

Ingglue senar digunakake kanggo nggabungake kabeh senar (dipisahake karo panjaluk asli) dadi siji siji badan kanggo panjaluk terjemahan hulu sing dikirim menyang e. g. google IngsplitGlue nanging digunakake kanggo mbagi maneh terjemahan sing ditampa menyang senar sing bakal cache. Kita waca ing kene manawa pamisahan senar ora mung migunani kanggo cache, nanging kanggo nyuda jumlah panjaluk, amarga yen panjaluk hilir nindakake akeh pitakon cilik, kita nggunakake mesin kanggo nggabungake panjaluk nganti ukuran muatan maksimum sing diidini dening layanan hulu.

Antarmuka

Supaya bisa ndhukung macem-macem layanan transparan Aku nulis antarmuka sing mapan ing api iki

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

Dadi layanan sing bakal operasional kudu menehi fungsi nerjemahake, cara nerjemahake panjaluk, lan nyedhiyakake dhaptar basa sing didhukung. Kanthi dhaptar basa sing didhukung, kita bisa nggawe matriks supaya bisa ngerti pirang-pirang layanan sing ndhukung pasangan basa tartamtu, kanggo ngrampungake pasangan basa kita ngowahi perwakilan sing dikembalikan dening layanan dadi umumiso639-1.

Nggawe conto terjemahan uga ngidini ngatur pilihan panjaluk sing digunakake deningGuzzle Kayata klien supaya kita bisa nggunakake proxy kanggo nindakake panjaluk. Layanan kasebut yaiku cache sawise digawe kaping pisanan, iki migunani amarga sawetara layanan kudu ngasilake sawetara token awal, lan kita ora pengin ngasilake maneh saben-saben.

Versi Go

Aku uga nulis a versi ing golang. Versi PHP bakal digunakake kanthi ngimpor ing proyek PHP, dene versi go dianggo minangka layanan mandiri (mikro). Versi go luwih akeh banget amarga mbutuhake pamriksa jinis sing ketat lan amarga kita ndhukung pitakon pirang-pirang senar sekaligus, kita kudu mbabarake api sing bisa digunakake kanthi kombinasi input sing beda-beda, lan kekurangan generik go nggawe implementasine banget nglarani, nanging ditawakake pangolahan bebarengan, lan umume luwih cepet.

Masukan reresik

Ditambah karo terjemahan, aku uga nggawe layanan kanggo ngresiki html . Kita menehi dhaptar putih sawetara tag html lan mbuwang sisane. Kita uga mbusak tandha baca duplikat kaya atribut html sing ora dingerteni, lan mbungkus tautan menyang tag jangkar sing pas.

Tuan rumah:

Kesimpulan

Saiki, aku mikir bakal nggunakake solusi sing ditawakake dhewe, disedhiyakake dening joshua utawa argos, amarga ora ngarahake terjemahan sing paling apik, aku pengin menehi terjemahan sing bisa diwaca kanggo situs web, supaya bisa dilayari tanpa gesekan.

Tag Pos: