web-dev-qa-db-fra.com

Comment utiliser l'API Google Translate dans mon Java?

Si je passe une chaîne (en anglais ou en arabe) en entrée à l'API Google Translate , elle doit la traduire dans l'autre langue correspondante et donnez-moi la chaîne traduite.

J'ai lu le même cas dans un forum mais c'était très difficile à mettre en œuvre pour moi.
J'ai besoin du traducteur sans aucun bouton et si je donne la chaîne d'entrée, il devrait traduire automatiquement la valeur et donner la sortie.

Pouvez-vous m'aider?

24
user1048999

Utilisez Java-google-translate-text-to-speech au lieu de Google Translate API v2 Java .

À propos de Java-google-translate-text-to-speech

Api non officiel avec les principales fonctionnalités de Google Translate en Java.

Facile à utiliser!

Il fournit également une api de synthèse vocale. Si vous souhaitez traduire le texte "Bonjour!" en roumain il suffit d'écrire:

Translator translate = Translator.getInstance();
String text = translate.translate("Hello!", Language.ENGLISH, Language.ROMANIAN);
System.out.println(text); // "Bună ziua!" 

C'est gratuit!

Comme @ r0ast3d l'a correctement dit:

Important: Google Translate API v2 est désormais disponible en tant que service payant. La limite de courtoisie pour les projets Translate API v2 existants créés avant le 24 août 2011 sera réduite à zéro le 1er décembre 2011. En outre, le nombre de demandes que votre application peut effectuer par jour sera limité.

C'est correct: il suffit de voir la page officielle :

L'API Google Translate est disponible en tant que service payant. Voir les tarifs et FAQ pages pour plus de détails.

[~ # ~] mais [~ # ~] , Java-google-translate-text-to-speech est GRATUIT !

Exemple!

J'ai créé un exemple d'application qui démontre que cela fonctionne. Essayez-le ici: https://github.com/IonicaBizau/text-to-speech

23
Ionică Bizău

Vous pouvez utiliser google script qui a [~ # ~] gratuit [~ # ~] traduire l'API . Tout ce dont vous avez besoin est un compte Google commun et procédez comme suit TROIS ÉTAPES FACILES .
1) Créez un nouveau script avec un tel code sur 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) Cliquez sur Publier -> Déployer en tant qu'application Web -> Qui a accès à l'application: Toute personne même anonyme -> Déployer. Et puis copiez l'URL de votre application Web, vous en aurez besoin pour appeler l'API translate.
google script deploy

3) Utilisez ce code Java pour tester votre 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();
    }

}

Comme il est gratuit, il existe LIMITES DE QUATA : https://docs.google.com/macros/dashboard

14
Maksym Pecheniuk

Générez votre propre clé API ici . Consultez la documentation ici .

Vous devrez peut-être configurer un compte de facturation lorsque vous essayez d'activer le Google Cloud Translation API sur ton compte.

Voici un exemple de démarrage rapide qui traduit deux chaînes English en 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());
        }
    }
}

Dépendances maven requises pour l'extrait de code:

<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>
7
Lakshman Kambam

Vous pouvez utiliser Google Translate API v2 Java . Il dispose d'un module de base que vous pouvez appeler à partir de votre code Java et également d'un module d'interface de ligne de commande.

3
MosheElisha

Je suis fatigué de chercher des traducteurs gratuits et la meilleure option pour moi était Sélénium (plus précisément séléniure et webdrivermanager) et 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();
        }
    }
}
0
LuckyMiv