Подключение переводчика 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);
    }
   }); 
 } 

Удачных подключений!

3 2 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии