我们可以在没有谷歌密钥的情况下使用google-translate吗?

时间:2011-05-15 22:49:01

标签: web-services internationalization google-translate

我在几个网站(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的电话都必须提供有效的密钥(用户的密钥)。

但是从上面的示例代码中没有给出密钥并且它有效!证明:http://juzcode.com/translate.php?s=en&d=es&q=Hello%20World

关于这个问题,我有3个问题:

1)这怎么可能? (我不是很懂文字)

2)Google强加的限制是每个Google密钥100k个字符。该示例不使用密钥。所以基本上我可以无限制地使用它?

3)是否违反了http://code.google.com/apis/language/translate/terms.html? (我试过读它,真的!但我不是律师,我只是想确定)

1 个答案:

答案 0 :(得分:1)

  

1)这怎么可能? (我不是   非常PHP文字)

REST API是基于AJAX的调用,而不是基于自动服务器的API。

  

2)Google施加的限制为100k   每个Google键的字符数。这个例子   不使用钥匙。所以基本上我都有   无限制使用?

     

3)是否违反   http://code.google.com/apis/language/translate/terms.html   ? (我试过读它,真的!但是   我不是律师,我只想成为   肯定)

你不想那样做,因为:

  

必须使用Google Translate API   用户生成的翻译。   任何自动或批量查询   严格禁止。

使用PHP中的curl被视为自动请求。请改用Rest API。你需要一把钥匙。