Мы можем использовать гугл-перевод без гугл-ключа? - PullRequest
0 голосов
/ 16 мая 2011

Я нашел этот код на нескольких сайтах (http://goo.gl/usUSP):

<?php
// Basic request parameters:
// s = source language
// d = destination language
// q = Text to be translated

$s = $_REQUEST['s'];
if(!$s)echo "translate.php?s=en&d=es&q=Hello%20World";
$d = $_REQUEST['d'];
$lang_pair = urlencode($s.'|'.$d);
$q = urlencode($_REQUEST['q']);

// Google's API translator URL
$url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=".$q."&langpair=".$lang_pair;

// Make sure to set CURLOPT_REFERER because Google doesn't like if you leave the referrer out
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://www.yoursite.com/translate.php");
$body = curl_exec($ch);
curl_close($ch);

$json = json_decode($body, true);
echo $json['responseData']['translatedText'];
?>

Ладно, насколько я знаю, каждый звонок, использующий API Google Translate, должен содержать действительный ключ (ключ пользователя).

Однако из приведенного выше примера кода ключ не задан, и он работает! доказать: http://juzcode.com/translate.php?s=en&d=es&q=Hello%20World.

У меня есть 3 вопроса по этой проблеме:

1) Как это вообще возможно? (Я не очень грамотный PHP)

2) Ограничение, установленное Google, составляет 100 000 символов на ключ Google. В примере не используется ключ. Так что в основном я бы имел неограниченное использование?

3) Это нарушает http://code.google.com/apis/language/translate/terms.html? (Я действительно пытался это прочитать! Но я не юрист, я просто хотел бы быть уверен)

1 Ответ

1 голос
/ 16 мая 2011

1) Как это вообще возможно?(Я не очень грамотный php)

Это REST API, предназначенный для вызовов на основе AJAX, а не автоматизированный серверный API.

2) Установлено ограничениепо гуглу это 100к символов на гугл-ключ.В примере не используется ключ.Так что в принципе у меня было бы неограниченное использование?

3) Это нарушает http://code.google.com/apis/language/translate/terms.html?(Я действительно пытался это прочитать! Но я не юрист, я просто хотел бы быть уверен)

Вы не хотите этого делать, потому что:

API Google Translate должен использоваться для пользовательских переводов.Автоматизированные или пакетные запросы любого рода строго запрещены.

с использованием curl из PHP считается автоматическим запросом.Вместо этого используйте Rest API .Вам понадобится ключ.

...