Google 翻译 API(付费)与 Google 翻译 API(免费)?

Google Translate API (paid) vs Google Translate API (free)?

我的应用程序需要翻译 API 服务,并选择了 Google Translate API,这会产生费用并且需要针对 Google API 进行身份验证。但是在搜索过程中,我发现了这个 link,它看起来可以免费使用并且可以免费完成我需要的事情:

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 请求,您将自己看到。

所以,我的问题是上述这些服务之间有什么区别,我是否有权使用第二种服务?

您提供的 link 看起来来自 Google Translate (not an API but a free multilingual machine translation service) instead of Cloud Translation API,它提供了一个简单的编程接口,用于使用最先进的神经机器翻译将任意字符串翻译成任何支持的语言;所以他们不是你想的那样。

当然它是免费的,你可以实现它(我在下面提供了一个例子)。但是,请不要使用它,因为一段时间后 Google 可以检测到可疑流量——不幸的是,它发生在我身上——所以你会收到一条错误消息。我不确定在他们检测到您的 activity 之前您可以使用它多久,所以我的建议是使用 "free service" 广泛测试您的应用程序,如果您发现一些问题,也许您应该购买服务或寻找另一个 API。 https://api.mymemory.translated.net 是一种免费但受限的替代方案。

在iOSSwift4中您可以使用以下功能实现免费服务:

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()
}

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