|

|  How to Implement Microsoft Translator Text API in Java

How to Implement Microsoft Translator Text API in Java

October 31, 2024

Discover step-by-step instructions to integrate Microsoft Translator Text API in Java. Enhance your app with seamless language translation capabilities.

How to Implement Microsoft Translator Text API in Java

 

Initializing the Project

 

  • Set up your Java development environment by ensuring you have JDK and an IDE such as IntelliJ IDEA or Eclipse installed.
  •  

  • Create a new Java project where you will implement the Microsoft Translator API.

 

Add Dependency

 

  • To facilitate HTTP requests, you can use a library like Apache HttpClient or OkHttp. Here, we'll use Apache HttpClient. Add the dependency to your `pom.xml` if you are using Maven.

 

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.13</version>
</dependency>

 

Obtain an Access Token

 

  • Utilize the API key obtained during Azure account setup to generate an authentication token. This token grants access to the Translator API services.

 

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class TranslatorAuth {
    private static final String subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
    private static final String endpoint = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken";

    public static String getAuthToken() throws Exception {
        HttpPost post = new HttpPost(endpoint);
        post.setHeader("Ocp-Apim-Subscription-Key", subscriptionKey);

        try (CloseableHttpClient client = HttpClients.createDefault()) {
            HttpResponse response = client.execute(post);
            return EntityUtils.toString(response.getEntity());
        }
    }
}

 

Translate Text

 

  • Use the authentication token to make requests to the translation service. Below is an example function to translate text using the Microsoft Translator Text API.

 

import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;

public class TextTranslator {
    private static final String endpoint = "https://api.cognitive.microsofttranslator.com/";
    private static final String path = "/translate?api-version=3.0";
    
    public static String translate(String text, String from, String to) throws Exception {
        String authToken = TranslatorAuth.getAuthToken();
        String params = "&from=" + from + "&to=" + to;
        
        URIBuilder builder = new URIBuilder(endpoint + path + params);

        HttpPost post = new HttpPost(builder.build());
        post.setHeader("Content-Type", "application/json");
        post.setHeader("Authorization", "Bearer " + authToken);

        JSONArray body = new JSONArray();
        body.put(new JSONObject().put("Text", text));
        StringEntity entity = new StringEntity(body.toString());
        post.setEntity(entity);

        try (CloseableHttpClient client = HttpClients.createDefault()) {
            HttpResponse response = client.execute(post);
            String jsonResponse = EntityUtils.toString(response.getEntity());
            return jsonResponse;
        }
    }
}

 

Error Handling

 

  • Proper error handling is crucial for robust applications. Implement try-catch blocks to handle potential exceptions such as network issues or invalid responses.

 

public static void main(String[] args) {
    try {
        String translatedText = TextTranslator.translate("Hello, world!", "en", "fr");
        System.out.println(translatedText);
    } catch (Exception e) {
        e.printStackTrace(); // Log the exception for debugging purposes
    }
}

 

Executing the Program

 

  • Compile and run the Java program to see the translated text output. Ensure API endpoint and keys are correctly configured.

 

javac TextTranslator.java
java TextTranslator