How to use Google Translate API in my Java application?

后端 未结 5 901
攒了一身酷
攒了一身酷 2020-11-27 12:58

If I pass a string (either in English or Arabic) as an input to the Google Translate API, it should translate it into the corresponding other language and give the translate

相关标签:
5条回答
  • 2020-11-27 13:19

    You can use Google Translate API v2 Java. It has a core module that you can call from your Java code and also a command line interface module.

    0 讨论(0)
  • 2020-11-27 13:23

    Use java-google-translate-text-to-speech instead of Google Translate API v2 Java.

    About java-google-translate-text-to-speech

    Api unofficial with the main features of Google Translate in Java.

    Easy to use!

    It also provide text to speech api. If you want to translate the text "Hello!" in Romanian just write:

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

    It's free!

    As @r0ast3d correctly said:

    Important: Google Translate API v2 is now available as a paid service. The courtesy limit for existing Translate API v2 projects created prior to August 24, 2011 will be reduced to zero on December 1, 2011. In addition, the number of requests your application can make per day will be limited.

    This is correct: just see the official page:

    Google Translate API is available as a paid service. See the Pricing and FAQ pages for details.

    BUT, java-google-translate-text-to-speech is FREE!

    Example!

    I've created a sample application that demonstrates that this works. Try it here: https://github.com/IonicaBizau/text-to-speech

    0 讨论(0)
  • 2020-11-27 13:24

    I’m tired of looking for free translators and the best option for me was Selenium (more precisely selenide and webdrivermanager) and 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 讨论(0)
  • 2020-11-27 13:31

    You can use google script which has FREE translate API. All you need is a common google account and do these THREE EASY STEPS.
    1) Create new script with such code on 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) Click Publish -> Deploy as webapp -> Who has access to the app: Anyone even anonymous -> Deploy. And then copy your web app url, you will need it for calling translate API.

    3) Use this java code for testing your 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();
        }
    
    }
    

    As it is free, there are QUATA LIMITS: https://docs.google.com/macros/dashboard

    0 讨论(0)
  • 2020-11-27 13:41

    Generate your own API key here. Check out the documentation here.

    You may need to set up a billing account when you try to enable the Google Cloud Translation API in your account.

    Below is a quick start example which translates two English strings to 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());
            }
        }
    }
    

    Required maven dependencies for the code snippet:

    <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>
    
    0 讨论(0)
提交回复
热议问题