2015-10-29 20 views
14

Non ci sono esempi su come utilizzare la libreria Cliente API di Google Traduttore per java.Come si effettua una richiesta di traduzione con la libreria client API di Google Translate v2 per java?

In questa pagina di Google suggeriscono di esempi per le loro API di ricerca, ma non c'è uno solo per Google Translate API: https://github.com/google/google-api-java-client-samples

dato che non ho trovato alcun esempio per Google Translate API non ho alcun indizio su come usare la loro libreria java ufficiale.

Desidero fare una semplice richiesta di traduzione di un testo (ad esempio Hello World dall'inglese allo spagnolo) con la libreria ufficiale creata da Google: https://developers.google.com/api-client-library/java/apis/translate/v2 ma non sono disponibili documentazione o esempi per il pubblico.

Qualcuno ha informazioni su come utilizzare la libreria client dell'API di Google Translate in java, ho già cercato su google e non ho avuto fortuna.

Ho già incluso tutti i vasi per il mio progetto, ma non so quali classi devo utilizzare o quali oggetti creano un'istanza per eseguire una traduzione da una lingua all'altra. Non ne ho idea. Ho solo bisogno di un semplice frammento di codice come negli archivi di esempi per altre API di Google.

+0

Qual è il suo requisito esattamente? Non mi è chiaro molto. –

+0

Ho modificato la domanda in modo che tutti possano capire qual è il mio problema. –

risposta

14

Ecco un esempio funzionante.

È necessario disporre della propria chiave di app generata per la propria app (avvio here) poiché l'API di traduzione non è più disponibile pubblicamente.

Per le opzioni su cosa passare in Translate.Builder(), vedere here.

import java.util.Arrays; 

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 TranslateMe { 


    public static void main(String[] args) { 

     try {   
      // See comments on 
      // https://developers.google.com/resources/api-libraries/documentation/translate/v2/java/latest/ 
      // on options to set 
      Translate t = new Translate.Builder(
        com.google.api.client.googleapis.javanet.GoogleNetHttpTransport.newTrustedTransport() 
        , com.google.api.client.json.gson.GsonFactory.getDefaultInstance(), null)         
        //Need to update this to your App-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"); 
      //Set your API-Key from https://console.developers.google.com/ 
      list.setKey("you-need-your-own-api-key"); 
      TranslationsListResponse response = list.execute(); 
      for(TranslationsResource tr : response.getTranslations()) { 
       System.out.println(tr.getTranslatedText()); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+1

Proprio quello di cui avevo bisogno, grazie amico! –

+1

Imposterò anche la proprietà 'referer' per eseguire con successo test di integrazione dal tuo PC, qualcosa del tipo: "list.getRequestHeaders(). Set ('referer', 'www.myautorizedsite.com');" –

5

di riferimento: Translate API Client Libraries

modello:

// 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.builder().apiKey("YOUR_API_KEY").build().service(); 

    // 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.translatedText()); 
    } 
} 


Maven:

<dependency> 
    <groupId>com.google.cloud</groupId> 
    <artifactId>google-cloud-translate</artifactId> 
    <version>0.4.0</version> 
</dependency> 
+0

TranslateOptions.builder(). ApiKey() è deprecato. Qual è il nuovo metodo per raggiungerlo? – nanosoft

+0

usa 'new builder' invece di' builder' @nanosoft – grant

+0

@grant: Vuoi dire: TranslateOptions.new builder(). ApiKey ("GOOGLE_API_KEY"). Build(). Service(); dà errore TranslateOptions non può essere risolto in una variabile-> che è strano TranslateOptions può essere importato – nanosoft