Как использовать Google Translate API в моем приложении Java? - PullRequest
24 голосов
/ 16 ноября 2011

Если я передам строку (на английском или арабском языке) в качестве ввода для Google Translate API , он должен перевести ее на соответствующий другой язык и передать переведенную строкумне.

Я прочитал тот же случай на форуме, но это было очень трудно реализовать для меня.
Мне нужен переводчик без каких-либо кнопок, и если я дам строку ввода, он должен автоматически перевести значение и датьвывод.

Можете ли вы помочь?

Ответы [ 4 ]

23 голосов
/ 01 мая 2013

Использование java-google-translate-text-to-speech вместо Google Translate API 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:

Важно: Google Translate API v2 теперь доступен как платныйоказание услуг.Лимит вежливости для существующих проектов Translate API v2, созданных до 24 августа 2011 года, будет уменьшен до нуля 1 декабря 2011 года. Кроме того, количество запросов, которые может подать ваше приложение в день, будет ограничено.

Это правильно: просто посмотрите официальную страницу :

Google Translate API доступен как платная услуга.Подробнее см. На страницах с ценами и часто задаваемыми вопросами.

НО , java-google-translate-text-to-speech БЕСПЛАТНО!

Пример!

Я создал пример приложения, которое демонстрирует, что это работает.Попробуйте здесь: https://github.com/IonicaBizau/text-to-speech

12 голосов
/ 09 января 2018

Вы можете использовать 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

7 голосов
/ 08 декабря 2016

Создайте свой собственный ключ 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>
3 голосов
/ 30 ноября 2011

Вы можете использовать Google Translate API v2 Java .Он имеет основной модуль, который вы можете вызывать из кода Java, а также модуль интерфейса командной строки.

...