如何在我的Java应用程序中使用Google Translate API?
如果我将一个字符串(英语或阿拉伯语)作为输入传递给Google翻译API,它应该将其翻译成相应的其他语言,并将翻译后的字符串交给我。
我在论坛上读到了同样的案例,但对我来说很难实现。
我需要没有任何按钮的转换器,如果我给出输入字符串,它应该自动转换值并给出输出。
你能帮忙吗?
如果我将一个字符串(英语或阿拉伯语)作为输入传递给Google翻译API,它应该将其翻译成相应的其他语言,并将翻译后的字符串交给我。
我在论坛上读到了同样的案例,但对我来说很难实现。
我需要没有任何按钮的转换器,如果我给出输入字符串,它应该自动转换值并给出输出。
你能帮忙吗?
您可以使用具有免费翻译API的谷歌脚本。您所需要的只是一个通用的Google帐户,并执行以下三个简单步骤。
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) 单击“发布 ->部署为 web 应用 -> 谁有权访问应用:任何人,甚至是匿名的 ->部署。然后复制您的Web应用程序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限制:https://docs.google.com/macros/dashboard
使用java-google-translate-text-to-speech而不是Google Translate API v2 Java。
非官方的API,具有Java中Google翻译的主要功能。
它还提供文本到语音转换 API。如果你想用罗马尼亚语翻译“Hello!”,只需写下:
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