How do you make a request for a translation with the Google Translate v2 API Client Library for java?
Solution 1
Here's a working example.
You need to have your own App-Key generated for your app (start here) as translate API is no longer publicly available.
For options what to pass into Translate.Builder() see 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();
}
}
}
Solution 2
reference:
Translate API Client Libraries
template:
// 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>
Saruva
I’m a Full Stack web developer, I mainly use Bash, Java, PHP, Ruby and Typescript on the server side; HTML, CSS and Javascript on the client side.
Updated on June 03, 2022Comments
-
Saruva almost 2 years
There aren't examples on how to use Google Translate API Cliente library for java.
In this page Google suggest to search examples for their APIs but there is not a single one for Google Translate API: https://github.com/google/google-api-java-client-samples
Since I didn't found any example for Google Translate API I don't have any clue about how to use their official java library.
I want to make a simple request to translate a text (for example Hello World from english to spanish) with the Official library made by Google: https://developers.google.com/api-client-library/java/apis/translate/v2 but there is no documentation or examples available for the public.
Does anyone have info about how to use Google Translate API client library in java, I already googled and I had no luck at all.
I already have included all the jars to my project, but I don't know which classes I must use or which objects instantiate to make a translation from one language to another. I have no clue at all. I just need a simple snipped of code like in the examples repositories for other Google APIs.
-
Jorge P. almost 8 yearsI will set also the 'referer' property in order to do successful integration tests from your PC, something like this: "list.getRequestHeaders().set('referer', 'www.myautorizedsite.com');"
-
nanosoft over 7 yearsTranslateOptions.builder().apiKey() is deprecated. Which is the new method to achieve that?
-
grantespo over 7 yearsuse
new builder
instead ofbuilder
@nanosoft -
nanosoft about 7 years@grant: Do you mean : TranslateOptions.new builder().apiKey("GOOGLE_API_KEY").build().service(); gives error TranslateOptions cannot be resolved to a variable-> which is strange TranslateOptions can be imported
-
grantespo about 7 yearsUse this in your AsyncTask Class:
Translate translate = TranslateOptions.newBuilder().setApiKey("API_KEY").build().getService();
@nanosoft -
nanosoft about 7 years@grant - Agreed. Thanks for the full syntax and call chain.
-
Don Code about 4 yearsWhat is the maven dependency for these packages? I am not able to find a working one.