Есть английское слово. Для него нужно получить перевод через Google переводчик. Например имеем слово "home" отправляем запрос - получаем "дом".
Вроде нашел примеры на Google Cloud Translation API Documentation. И для html запроса и с использованием библиотек, но ни то ни другое не работает, а понять почему не хватает знаний английского.
Помогите пожалуйста составить правильный запрос или хотя бы подскажите ключевые моменты.
Далее описание того что пробовал делать:
Вот это делал для Яндекс переводчика. Для Гугла почему то не работает, хотя структура запроса вроде такая же.
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class GetTranslate {
public static void main(String args[]) throws IOException {
GetTranslate translate = new GetTranslate();
String temp = translate.getHTML("home");
System.out.println(temp);
}
public String getHTML(String word) {
URL url;
HttpURLConnection conn;
BufferedReader rd;
String line;
String result = "";
try {
url = new URL("https://dictionary.yandex.net/api/v1/dicservice/lookup" +
"?key=мой_ключ" +
"&lang=en-ru" +
"&text=" + word);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = rd.readLine()) != null) {
result += line;
}
rd.close();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
Еще нашел вот такой шаблон в репозитории Гугла. Но у меня почему-то не хотят подключаться зависимости, ну и код соответственно не работает, возможно именно из-за этого. Импорты отмечены серым цветом.
// [START translate_quickstart]
// Imports the Google Cloud client library
import com.google.cloud.translate.Translate;
import com.google.cloud.translate.Translate.TranslateOption;
import com.google.cloud.translate.TranslateOptions;
import com.google.cloud.translate.Translation;
public class QuickstartSample {
public static void main(String... args) throws Exception {
// Instantiates a client
Translate translate = TranslateOptions.getDefaultInstance().getService();
// The text to translate
String text = "Hello, world!";
// Translates some text into Russian
Translation translation =
translate.translate(
text,
TranslateOption.sourceLanguage("en"),
TranslateOption.targetLanguage("ru"));
System.out.printf("Text: %s%n", text);
System.out.printf("Translation: %s%n", translation.getTranslatedText());
}
}
// [END translate_quickstart]
Программирую на java. Для работы использую Intellij IDEA (комьюнити версия).
Уточнения: При отправке такого запроса (пример из документации Гугл)
https://translation.googleapis.com/language/translate/v2?key=YOUR_API_KEY&source=en&target=de&q=Hello%20world&q=My%20name%20is%20Jeff
Возвращает ошибку 403. Если отправить его прямо из строки браузера, то даже дает подробности - истек лимит запросов. Для отправки использовал свежесозданный API-ключ.
Так же, установил Google Cloud SDK и прошел авторизацию через сервисный ключ (который скачивается при создании). Вроде написано, что при подобной авторизации использование API-ключа не обязательно. Пробовал делать запрос без ключа - результат такой же.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости