“谷歌翻译”与“翻译 api”

Posted

技术标签:

【中文标题】“谷歌翻译”与“翻译 api”【英文标题】:"google translate" vs "translate api" 【发布时间】:2011-12-26 12:14:57 【问题描述】:

我听说翻译 API 会收费,但究竟是什么阻止了我们免费使用免费的 Google 翻译服务here?不然的话,免费服务有什么限制?

【问题讨论】:

我投票决定将此问题作为题外话结束,因为这是一个需要 Google 技术支持的问题。 【参考方案1】:

根据下面的链接,没有什么能阻止你。

https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=es&dt=t&q=Hello

将您的请求 content-type 设置为 application/json 并修复了奇怪的格式,我在 google 网站上抨击了一段时间后发现了 uri 模式。

我不建议用它翻译圣经,但我这周已经完成了大约 10k 字,没有问题。

如果有人找到另一个有效的 client 值,我很想知道。

【讨论】:

您还应该正确指定您的编码,否则重音会被弄乱。 &ie=UTF-8&oe=UTF-8 应该包含在您的 URL 中,并且不要忘记将 WebClient 设置为 Encoding = Encoding.UTF8 2019 年,我在不超过 100 个请求后被(暂时≈1-2h)阻塞。更改公共 IP 有效(为此我必须重新启动调制解调器)。 @MagTun 感谢您的反馈,我自己刚刚再次尝试了此方法,但在一分钟内约 100 个连续请求后被阻止。在那段时间里,一个带有 ReCaptcha 的 html 页面被返回,而不是预期的响应。在没有请求且未提交 ReCaptcha 的几分钟后,请求再次开始成功。 我问了一个问题以更好地了解不同 Google API 之间的区别,但它并没有引起很多关注:***.com/questions/57397073/… 任何人都知道如何防止谷歌不翻译字符串的一部分,我尝试使用 notranslate 类和 translate=no 但 dosent 有效。喜欢这里<p id="textField">You can translate the <span class="notranslate" translate="no" > not this part</span> this by selecting a language in the select box.</p> 【参考方案2】:

除了可访问性之外,没有什么能阻止您使用 Google 翻译网站。与尝试通过框架将 Google 翻译嵌入您的网站相比,公共 API 为您提供了更紧密的集成。

【讨论】:

那么是什么阻止我手动制作一些 HTTP 数据包并将它们从任何 C++ 应用程序发送到 Google 翻译服务器?结果将清晰地显示在一些自定义 UI 中.. 没什么,去吧。当 Google 迅速注意到一种模式并阻止您时,请不要感到惊讶。你肯定不是第一个尝试它的人。您需要问自己一个问题:您花在他们网站上的时间真的是否比使用他们的 API 所支付的 20 美元还少?除非你能在半小时内完成整个工作,否则我会说你是在缩短自己的时间。 他们如何阻止我 :D ? IP 不同,使用该服务不需要帐户.. 什么是“模式”? 数据包上的标头,首先。我可以想出一些方法来检测是否有人在滥用我的免费服务,而且我敢打赌,谷歌的人比我聪明得多。再说一次,为什么不直接付钱呢? 我尝试将谷歌翻译与公共代理一起使用,但没有成功。其他人使用相同的代理,Google 知道。【参考方案3】:
$translatedText = "प्रशांत कुमार सिंह";
$detectedSourceLanguage = "en";

$url ='https://www.google.com/inputtools/request?text='.urlencode($translatedText).'&ime=transliteration_hi_'.urlencode($detectedSourceLanguage);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_PROXYPORT,3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
$response = curl_exec($ch);
$output = json_decode($response);
$resultText = '';

if($output[0] == 'SUCCESS')
 if(isset($output[1]))
  if(isset($output[1][0]))
   if(isset($output[1][0][1]))
    $resultText = $output[1][0][1][0];
   
  
 

echo  $resultText;

【讨论】:

以上是关于“谷歌翻译”与“翻译 api”的主要内容,如果未能解决你的问题,请参考以下文章

谷歌翻译 API 中的问题

谷歌翻译 API 构造函数

如何通过谷歌翻译api在python中使用api键

如果我们在使用谷歌翻译 API 时删除“由谷歌提供支持”,是不是违反谷歌的 T&C?

使用带有 cURL 的谷歌翻译 API

谷歌翻译 API 的 Rest API 请求