【问题标题】:We can use google-translate without a Google-key?我们可以在没有 Google-key 的情况下使用 google-translate 吗?
【发布时间】:2011-05-15 22:49:01
【问题描述】:

我在几个网站 (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) 这怎么可能? (我不是很懂php)

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

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

【问题讨论】:

    标签: web-services internationalization google-translate


    【解决方案1】:

    1) 这怎么可能? (我不是 非常懂php)

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

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

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

    你不想这样做,因为:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-05
      • 2012-11-29
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 2021-08-09
      • 2021-10-18
      相关资源
      最近更新 更多