如何在我的Java应用程序中使用Google Translate API?

如果我传递一个字符串(英语或阿拉伯语)作为Google Translate API的输入,它应该将其翻译成相应的其他语言并将翻译后的字符串提供给我。

我在一个论坛上阅读了同样的案例,但对我来说很难实现。
我需要没有任何按钮的翻译器,如果我给出输入字符串,它应该自动转换值并给出输出。

你能救吗?

使用java-google-translate-text-to-speech代替Google Translate API v2 Java 。

关于java-google-translate-text-to-speech

Api非官方的,具有谷歌谷歌翻译的主要特点。

使用方便!

它还提供文本到语音api。 如果你想翻译文本“你好!” 在罗马尼亚语中写道:

Translator translate = Translator.getInstance(); String text = translate.translate("Hello!", Language.ENGLISH, Language.ROMANIAN); System.out.println(text); // "Bună ziua!" 

免费!

正如@ r0ast3d正确地说:

重要提示:Google Translate API v2现已作为付费服务提供。 2011年8月24日之前创建的现有Translate API v2项目的礼貌限制将在2011年12月1日减少到零。此外,您的应用程序每天可以提出的请求数量将受到限制。

这是正确的:只需看官方页面 :

Google Translate API可作为付费服务使用。 有关详细信息,请参阅定价和常见问题页

但是 , java-google-translate-text-to-speech是免费的!

例!

我已经创建了一个示例应用程序来演示这是否有效。 在这里试试: https : //github.com/IonicaBizau/text-to-speech

您可以使用具有免费 翻译API的 谷歌脚本 。 您只需要一个常见的谷歌帐户,并做这三个简单的步骤
1)在谷歌脚本上使用此类代码创建新脚本 :

 var mock = { parameter:{ q:'hello', source:'en', target:'fr' } }; function doGet(e) { e = e || mock; var sourceText = '' if (e.parameter.q){ sourceText = e.parameter.q; } var sourceLang = ''; if (e.parameter.source){ sourceLang = e.parameter.source; } var targetLang = 'en'; if (e.parameter.target){ targetLang = e.parameter.target; } var translatedText = LanguageApp.translate(sourceText, sourceLang, targetLang, {contentType: 'html'}); return ContentService.createTextOutput(translatedText).setMimeType(ContentService.MimeType.JSON); } 

2)单击发布 – >部署为webapp – >谁有权访问该应用程序: 任何人甚至匿名 – >部署。 然后复制您的网络应用程序url,您将需要它来调用翻译API。
谷歌脚本部署

3)使用此java代码测试您的API:

 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class Translator { public static void main(String[] args) throws IOException { String text = "Hello world!"; //Translated text: Hallo Welt! System.out.println("Translated text: " + translate("en", "de", text)); } private static String translate(String langFrom, String langTo, String text) throws IOException { // INSERT YOU URL HERE String urlStr = "https://your.google.script.url" + "?q=" + URLEncoder.encode(text, "UTF-8") + "&target=" + langTo + "&source=" + langFrom; URL url = new URL(urlStr); StringBuilder response = new StringBuilder(); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestProperty("User-Agent", "Mozilla/5.0"); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); return response.toString(); } } 

由于它是免费的,因此有QUATA LIMITS : https : //docs.google.com/macros/dashboard

在此处生成您自己的API密钥。 在这里查看文档。

当您尝试在帐户中启用Google Cloud Translation API ,可能需要设置结算帐户。

下面是一个快速入门示例,它将两个English字符串翻译为Spanish

 import java.io.IOException; import java.security.GeneralSecurityException; import java.util.Arrays; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.translate.Translate; import com.google.api.services.translate.model.TranslationsListResponse; import com.google.api.services.translate.model.TranslationsResource; public class QuickstartSample { public static void main(String[] arguments) throws IOException, GeneralSecurityException { Translate t = new Translate.Builder( GoogleNetHttpTransport.newTrustedTransport() , GsonFactory.getDefaultInstance(), null) // Set your application name .setApplicationName("Stackoverflow-Example") .build(); Translate.Translations.List list = t.new Translations().list( Arrays.asList( // Pass in list of strings to be translated "Hello World", "How to use Google Translate from Java"), // Target language "ES"); // TODO: Set your API-Key from https://console.developers.google.com/ list.setKey("your-api-key"); TranslationsListResponse response = list.execute(); for (TranslationsResource translationsResource : response.getTranslations()) { System.out.println(translationsResource.getTranslatedText()); } } } 

代码段所需的maven依赖项:

  com.google.cloud google-cloud-translate LATEST   com.google.http-client google-http-client-gson LATEST  

您可以使用Google Translate API v2 Java 。 它有一个核心模块,您可以从Java代码和命令行界面模块调用它。