Как использовать API Google Translate в моем приложении Java?
Если я передаю строку (на английском или арабском языке) в качестве входного сигнала API Google Translate, он должен перевести его на соответствующий другой язык и передать мне переведенную строку.
Я читал один и тот же случай на форуме, но для меня было очень сложно реализовать.
Мне нужен переводчик без каких-либо кнопок, и если я дам входную строку, он должен автоматически перевести значение и дать результат.
Вы можете помочь?
Ответы
Ответ 1
Используйте java-google-translate-text-to-speech вместо API Google Translate v2 Java.
О java-google-translate-text-to-speech
Api неофициальный с основными функциями Google Translate на Java.
Прост в использовании!
Он также предоставляет текст в речь api. Если вы хотите перевести текст "Привет!" на румынском просто напишите:
Translator translate = Translator.getInstance();
String text = translate.translate("Hello!", Language.ENGLISH, Language.ROMANIAN);
System.out.println(text); // "Bună ziua!"
Это бесплатно!
Как правильно сказал @r0ast3d:
Важно: API Google Translate v2 теперь доступен как платная услуга. Предел вежливости для существующих проектов API перевода API, созданных до 24 августа 2011 года, будет уменьшен до нуля 1 декабря 2011 года. Кроме того, количество запросов, которое может подать ваше приложение в день, будет ограничено.
Это правильно: просто посмотрите официальную страницу:
API Google Translate доступен как платная услуга. Подробные сведения см. В разделе "Цены и часто задаваемые вопросы".
НО, java-google-translate-text-to-speech БЕСПЛАТНО!
Пример!
Я создал пример приложения, демонстрирующий, что это работает. Попробуйте здесь: https://github.com/IonicaBizau/text-to-speech
Ответ 2
Вы можете использовать Google-скрипт с БЕСПЛАТНЫМ API-интерфейсомдля перевода. Все, что вам нужно, это обычная учетная запись Google, и выполните эти три простых шага.
1) Создайте новый скрипт с таким кодом на google script:
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) Нажмите Опубликовать → Развернуть как веб-приложение → Кто имеет доступ к приложению: Любой, даже анонимный пользователь → Развернуть. А затем скопируйте URL-адрес вашего веб-приложения, он понадобится вам для вызова API перевода.
![google script deploy]()
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();
}
}
Поскольку это бесплатно, есть КВАНТОВЫЕ ОГРАНИЧЕНИЯ: https://docs.google.com/macros/dashboard
Ответ 3
Создайте свой собственный ключ 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 для фрагмента кода:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-translate</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-gson</artifactId>
<version>LATEST</version>
</dependency>
Ответ 4
Вы можете использовать Google Translate API v2 Java. Он имеет базовый модуль, который вы можете вызывать из вашего Java-кода, а также модуль интерфейса командной строки.
Ответ 5
Я устал искать бесплатных переводчиков, и лучший вариант для меня - Selenium (точнее, selenide и webdrivermanager) и https://translate.google.com
import io.github.bonigarcia.wdm.ChromeDriverManager;
import com.codeborne.selenide.Configuration;
import io.github.bonigarcia.wdm.DriverManagerType;
import static com.codeborne.selenide.Selenide.*;
public class Main {
public static void main(String[] args) throws IOException, ParseException {
ChromeDriverManager.getInstance(DriverManagerType.CHROME).version("76.0.3809.126").setup();
Configuration.startMaximized = true;
open("https://translate.google.com/?hl=ru#view=home&op=translate&sl=en&tl=ru");
String[] strings = /some strings to translate
for (String data: strings) {
$x("//textarea[@id='source']").clear();
$x("//textarea[@id='source']").sendKeys(data);
String translation = $x("//span[@class='tlid-translation translation']").getText();
}
}
}