Есть английское слово. Для него нужно получить перевод через 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-ключа не обязательно. Пробовал делать запрос без ключа - результат такой же.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В моём navigationDrawer есть некий список, по которому я перехожу в активитиСейчас решил сделать так, чтоб при переходе в активность, меня сразу перебрасывало...
Create a container that encapsulates an array of String, and that only adds Strings and gets Strings, so that there are no casting issues during useIf the internal array isn’t big enough for the next add, your container should automatically resize it