Google Translate API - перевод HTML документов - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь использовать Google Translate API для перевода моего блога.Доступ к API работает, я могу отправлять текст и получать соответствующий перевод, но всякий раз, когда я отправляю большие документы с HTML, я больше не получаю ответа от API.

Я использую PHP для отправки запроса с кодом ниже, и я извлекаю сообщения с моего сайта WordPress (= он только извлекает содержимое между тегами тела).

КОД PHP:

function translation ($text,$origin,$destination)
    {
        $apiKey = 'MY_API_KEY';
        $url = 'https://www.googleapis.com/language/translate/v2?key='.$apiKey.'&q='.rawurlencode($text).&source='.$origin.'&target='.$destination;
        $handle = curl_init($url);
        curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($handle);                 
        $responseDecoded = json_decode($response, true);
        curl_close($handle);
        print_r($response);
        print_r($responseDecoded);
    }

Если я передаю переменные с помощью:

$text: "hello world" 
$origin: "en"
$destination: "fr"

, я работаю без проблем.

Если я передаю текст $ с помощью html, я неполучить любой ответ от API, даже не сообщение об ошибке.Я проверил документацию и увидел это: https://cloud.google.com/translate/markup

Я попытался добавить часть тела / заголовка, но она не работает, но я надеюсь, что я не обязан добавлять это в мой код, потому что это потребуетглавное изменение на всех страницах, чтобы оно работало.

Есть ли у вас какие-либо идеи о том, как я могу сделать эту работу?

ОБНОВЛЕНИЕ: Если я использую substr вPHP, чтобы уменьшить размер $ text, я переводил его примерно до 5200 символов, выше этого я больше ничего не получаю.

Спасибо!

Лоран

1 Ответ

0 голосов
/ 19 октября 2018

В документации рекомендуется отправлять менее 5000 символов на запрос .В вашем случае вам потребуется разработать функцию, которая разбивает текст на куски размером менее 5000 символов (включая HTML-теги) и отправляет их в виде отдельных запросов.Однако следует учитывать, что существуют также ограничения в отношении символов, отправляемых за 100 секунд и запросов, отправляемых за 100 секунд .

...