Подключение переводчика Deepl, Часть 2
Первая часть по подключению переводчика Deepl по ссылке.
Продолжим подключение рассмотрим серверную часть запросов к API Deepl.
В обработчике request.php
, принимаем данные полученные через POST запрос, делаем небольшие проверки полученных переменных
$data = array(); $text = filter_input(INPUT_POST, 'text', FILTER_SANITIZE_STRING); $target_lang = filter_input(INPUT_POST, 'target_lang', FILTER_SANITIZE_STRING); $formality = filter_input(INPUT_POST, 'formality', FILTER_SANITIZE_STRING); $preserve_formatting = filter_input(INPUT_POST, 'preserve_formatting', FILTER_SANITIZE_STRING); $split_sentences = filter_input(INPUT_POST, 'split_sentences', FILTER_SANITIZE_STRING); if(isset($text) and !empty($text)) { $data['text'] = $_POST['text']; } if(isset($target_lang) and !empty($target_lang)) { $data['target_lang'] = $target_lang; } if(isset($formality) and !empty($formality)) { $data['formality'] = $formality; } if(isset($preserve_formatting) and !empty($preserve_formatting)) { $data['preserve_formatting'] = $preserve_formatting; } if(isset($split_sentences) and !empty($split_sentences)) { $data['split_sentences'] = $split_sentences; } require_once('Deepl.php'); $Deepl = new Deepl(); $response = $Deepl->get_translate($data);
Далее передаем полученные данные в файл Deepl.php для отправки в API Deepl. Вместо $this->DeepLAuthKey , используете Ваш ключ подключения для pro версии продукта или используйте бесплатное подключение, поменяв $url на домен: https://api-free.deepl.com.
class Deepl { public function get_translate($server_data = array()){ $url = 'https://api.deepl.com/v2/translate'; if(empty($server_data)){ return 0; } $post_data = http_build_query($server_data); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url) curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, [ 'Authorization: DeepL-Auth-Key '.$this->DeepLAuthKey ]); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_TIMEOUT, 300); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); $data = curl_exec($curl); if (curl_errno($curl)) { $error_msg = curl_error($curl); } curl_close($curl); if (isset($error_msg)) { return $error_msg; } else { return $data; } }
После запросов к Deepl API получаем данные переводов в формате JSON строки, js функция requestTranslate
см. Подключение переводчика Deepl Часть 1, принимает данные и выводит полученный результат пользователю.
if (response.translations) { var selectLang =modal.find('select#inputStateLang').val(); modal.find('textarea[data-lang="'+selectLang+'"]').val(params['text']); $.each(response.translations, function(d, t){ if(t.detected_source_language && t.text){ modal.find('textarea[data-lang="'+target_lang+'"]').val(t.text); } }); }
Удачных подключений!
Подписаться
авторизуйтесь
0 комментариев