谷歌翻译API(付费)与谷歌翻译API(免费)?

Ana*_*oly 5 google-api google-translate google-translation-api

我需要为我的应用提供翻译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请求,您将自己看到它.

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

Jav*_*lar 5

当然它是免费的,您可以实现它(我在下面提供了一个示例)。但是,请勿使用它,因为一段时间后 Google 可以检测到可疑流量 \xe2\x80\x93 不幸的是,这发生在我身上 - 所以你会收到一条错误消息。我不确定在他们检测到您的活动之前您可以使用它多长时间,因此我给您的建议是使用“免费服务”广泛测试您的应用程序,如果您发现一些问题,也许您应该购买该服务或寻找另一个API。https://api.mymemory.translated.net是一个免费但有限的替代方案。

\n\n

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

\n\n\n\n
func translate(str: String, lang1: String, lang2: String) {\n\n    let escapedStr = str.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)\n    let lastPart = lang1 + "&tl=" + lang2 + "&dt=t&dt=t&q=" + escapedStr!\n    let urlStr: String = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" + lastPart\n    let url = URL(string: urlStr)\n\n    let task = URLSession.shared.downloadTask(with: url!) { localURL, urlResponse, error in\n        if let localURL = localURL {\n            if let string = try? String(contentsOf: localURL) {\n                let index = string.firstIndex(of: "\\"")\n                let index2 = string.index(after: index!)\n                let subst = string.substring(from: index2)\n                let indexf = subst.firstIndex(of: "\\"")\n                let result = subst.substring(to: indexf!)\n                DispatchQueue.main.async {\n                    if flag1country != flag2country {\n                        self.texto.text = result\n                    }\n                }\n            }\n        }\n    }\n    task.resume()\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n