Google Translate API(付费)与 Google Translate API(免费)?

Posted

技术标签:

【中文标题】Google Translate API(付费)与 Google Translate API(免费)?【英文标题】:Google Translate API (paid) vs Google Translate API (free)? 【发布时间】:2017-08-26 14:01:36 【问题描述】:

我的应用需要翻译 API 服务,并选择了 Google Translate API,这需要花钱并需要针对 Google API 进行身份验证。但是在搜索过程中,我发现这个链接看起来可以免费获得,并且可以免费做我需要的事情:

https://translate.google.so/translate_a/t?client=any_client_id_works&sl=auto&tl=ru&q=wrapper&tbb=1&ie=UTF-8&oe=UTF-8

尝试发出GET 请求,您会自己看到。

那么,我的问题是上述这些服务有什么区别,我是否有权使用第二个服务?

【问题讨论】:

看起来您提供的链接来自 Google Translate(免费的多语言机器翻译服务)[en.wikipedia.org/wiki/Google_Translate],而不是 Cloud Translation API(提供简单的编程接口,用于将任意字符串翻译成任何支持的语言使用最先进的神经机器翻译)[cloud.google.com/translate/] 实际上这是您要比较的两种不同的服务。 来自索马里的 Google 有什么特别之处? @Anatoly 上面提到的免费翻译 API 其实并不是免费的。经过一些快速和重复的使用后,它将导致 503。 【参考方案1】:

当然它是免费的,您可以实现它(我在下面提供了一个示例)。但是,不要使用它,因为一段时间后谷歌可以检测到可疑流量——很遗憾,它发生在我身上——所以你会收到一条错误消息。我不确定在他们检测到您的活动之前您可以使用它多长时间,所以我对您的建议是使用“免费服务”广泛测试您的应用程序,如果您发现一些问题,也许您应该购买该服务或寻找其他服务API。 https://api.mymemory.translated.net 是一个免费但有限的选择。

ios Swift 4 中,您可以使用以下函数实现免费服务:

func translate(str: String, lang1: String, lang2: String) 

    let escapedStr = str.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
    let lastPart = lang1 + "&tl=" + lang2 + "&dt=t&dt=t&q=" + escapedStr!
    let urlStr: String = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" + lastPart
    let url = URL(string: urlStr)

    let task = URLSession.shared.downloadTask(with: url!)  localURL, urlResponse, error in
        if let localURL = localURL 
            if let string = try? String(contentsOf: localURL) 
                let index = string.firstIndex(of: "\"")
                let index2 = string.index(after: index!)
                let subst = string.substring(from: index2)
                let indexf = subst.firstIndex(of: "\"")
                let result = subst.substring(to: indexf!)
                DispatchQueue.main.async 
                    if flag1country != flag2country 
                        self.texto.text = result
                    
                
            
        
    
    task.resume()

(也许这不是最好的实现,但它确实有效)。

【讨论】:

它是在 iOS 应用中实现的。我在没有电脑的情况下测试应用程序,所以我不确定。但是,我的应用程序在短时间内发出了太多请求,或多或少 7 个请求/秒。大约五分钟后,应用程序消失了。尽管如此,我会继续测试,然后我会告知我的发现。错误信息——相当长——基本上说我在短时间内做了几个请求。然而,根据他们的使用条款,谷歌似乎不允许这种服务使用。 看来你可以通过慢慢使用API​​来避免检测,但不确定这样是否合法。【参考方案2】:

看起来您提供的链接来自 Google Translate(不是 API,而是免费的多语言机器翻译服务)而不是 Cloud Translation API,它提供了一个简单的编程接口,用于使用 state- 将任意字符串翻译成任何支持的语言 -最先进的神经机器翻译;所以他们不是你想的那样。

【讨论】:

感谢您的回复?但是我可以使用这个免费服务吗?我可以在哪里阅读更多关于它的信息? 我刚刚看到 Chrome 应用商店中的一些 Chrome 扩展使用了这项服务。 您好,您可以在en.wikipedia.org/wiki/Google_Translate 和support.google.com/translate/?hl=en#topic=7011755 阅读有关谷歌翻译的更多详细信息;您绝对可以使用这项免费服务。

以上是关于Google Translate API(付费)与 Google Translate API(免费)?的主要内容,如果未能解决你的问题,请参考以下文章

Python Google Translate API

python google_api_translate.py

从 Google Translate API 获取多种变体

使用 Google Translate API 翻译 PDF 文件

这可以在android中使用google translate api吗?

如何使用 Google Translate-API 翻译 JS 中的整个页面文本内容