it-swarm.com.de

Google Translate API (kostenpflichtig) vs Google Translate API (kostenlos)?

Ich benötige den Übersetzungs-API-Service für meine App und habe Google Übersetzer-API ausgewählt. Dies kostet Geld und erfordert eine Authentifizierung gegenüber der Google-API. Aber während der Suche habe ich diesen Link gefunden, der frei verfügbar aussieht und das macht, was ich brauche, ohne Kosten:

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

Versuchen Sie, eine GET-Anforderung zu erstellen, und Sie werden es selbst sehen.

Meine Frage ist also, was ist der Unterschied zwischen diesen oben genannten Diensten und bin ich berechtigt, den zweiten zu nutzen?

5
Anatoly

Natürlich ist es kostenlos und Sie können es implementieren (ich habe ein Beispiel unten eingefügt). VERWENDEN SIE ES jedoch NICHT, da Google nach einiger Zeit verdächtigen Datenverkehr aufspüren kann - das ist mir leider passiert -, und Sie erhalten eine Fehlermeldung. Ich bin nicht sicher, wie lange Sie es verwenden können, bis Ihre Aktivität erkannt wird. Ich empfehle Ihnen, Ihre App ausführlich mit dem "kostenlosen Service" zu testen. Wenn Sie Probleme sehen, sollten Sie den Service kaufen oder nach einem anderen suchen API. https://api.mymemory.translated.net ist eine kostenlose, aber begrenzte Alternative. 

In iOS Swift 4 können Sie den kostenlosen Dienst mithilfe der folgenden Funktion implementieren:

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

(Vielleicht ist dies nicht die beste Implementierung, aber es funktioniert).

2
Javier Aguilar

Es sieht so aus, als ob der Link von Google Translate (nicht einer API, sondern einem kostenlosen mehrsprachigen Maschinenübersetzungsdienst) anstelle von Cloud Translation API stammt, die eine einfache programmatische Schnittstelle zum Übersetzen einer beliebigen Zeichenfolge in eine unterstützte bietet Sprache mit modernster neuraler maschineller Übersetzung; Sie sind also nicht so, wie Sie denken.

1
JL-HN