web-dev-qa-db-ja.com

Google Translate API(有料)とGoogle Translate API(無料)?

アプリにTranslateAPIサービスが必要で、 Google Translate API を選択しました。これには費用がかかり、GoogleAPIに対する認証が必要になります。しかし、検索中に、無料で利用できるように見え、必要なことを無料で実行できるこのリンクを見つけました。

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リクエストを発行してみてください。そうすれば、自分でそれを見ることができます。

だから、私の質問は、これらの上記のサービスの違いは何ですか、そして私は2番目のサービスを使用することを許可されていますか?

6
Anatoly

もちろん無料で実装できます(以下に例を示します)。ただし、しばらくするとGoogleが疑わしいトラフィックを検出できるため、使用しないでください。悲しいことに、これは私に起こりました。エラーメッセージが表示されます。彼らがあなたの活動を検出できるまでどれくらい使用できるかわからないので、「無料サービス」でアプリを広範囲にテストすることをお勧めします。問題が発生した場合は、サービスを購入するか、別のサービスを探す必要があります。 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()
}

(おそらくこれは最良の実装ではありませんが、機能します)。

3
Javier Aguilar

あなたが提供したリンクは Cloud Translation API ではなく Google Translate (APIではなく無料の多言語機械翻訳サービス)からのものであるように見えます。これは翻訳のためのシンプルなプログラムインターフェイスを提供します最先端のニューラル機械翻訳を使用して、サポートされている言語への任意の文字列。だから彼らはあなたの考えではありません。

1
JL-HN