Como utilizar Amazon Translate

Como ya podrás adivinar por el nombre, Amazon Translate es un servicio de traducción automática neuronal que ofrece traducción de idiomas rentable, personalizable, de alta calidad y rápida.

Y para poder utilizar este servicio de AWS sigue los siguiente pasos:

Lo primero de todo, para empezar, Necesitamos instalar la versión 2.2 del runtime de visual studio. Para ello, buscamos en Windows “visual studio installer”, En la segunda pestaña donde pone “componentes individuales” buscamos 2.2 y nos aparecerá “Runtime de .NET Core 2.2(sin soporte)”. Clickamos en el checkbox y instalamos, si ya lo tenias no hace falta que lo hagas como entenderas.

Una vez se haya instalado,Crearemos un proyecto en visual studio, en mi caso es un proyecto de consola, pero podéis implementarlo donde lo vayáis a necesitar.

Después, necesitaremos los siguientes nugets

AWSSDK.Extensions.NETCore.Setup

AWSSDK.Translate

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.Json

Microsoft.NETCore.App

Y ya habiendo importado los nuget necesarios, vamos a ver la parte importante.

En mi codigo, dentro del main solicito al usuario por consola que introduzca texto en ingles para traducir al español.

Aquí abajo te pongo el codigo necesario. Todo esto lo tengo metido dentro de la clase Program en un proyecto de consola, pero tu lo puedes integran donde lo necesites.

Método Main

static void Main(string[] args) {
    Console.Write("Texto en Inglés a traducir: ");
    string EnglishText = Console.ReadLine();
    EnglishText = EnglishText.Trim();
    var awsOptions = BuildAwsOptions();
    var service = new TranslateService(awsOptions.CreateServiceClient < IAmazonTranslate > ());

    // simple translation
    var translateTask = service.TranslateText(EnglishText, "en", "es");
    translateTask.Wait();
    var result = translateTask.Result;
    var translatedText = result.TranslatedText;
    //Console.WriteLine("Source: {0}", EnglishText);
    Console.WriteLine();
    Console.WriteLine("Translation: {0}", translatedText);
    Console.WriteLine();

}

Propiedad AWSOptions
private static AWSOptions BuildAwsOptions() {
    var builder = new ConfigurationBuilder()
        .SetBasePath(Environment.CurrentDirectory)
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .Build();
    return builder.GetAWSOptions();
}

Clase TranslateService
public class TranslateService {
    private IAmazonTranslate translate;
    public TranslateService(IAmazonTranslate translate) {
        this.translate = translate;
    }

    public async Task < TranslateTextResponse > TranslateText(string text, string sourceLanguage, string targetLanguage) {
        return await this.TranslateText(text, sourceLanguage, targetLanguage, null);
    }

    public async Task < TranslateTextResponse > TranslateText(string text, string sourceLanguage, string targetLanguage, List < string > terminologies) {
        var request = new TranslateTextRequest {
            SourceLanguageCode = sourceLanguage,
                TargetLanguageCode = targetLanguage,
                TerminologyNames = terminologies,
                Text = text
        };

        return await this.translate.TranslateTextAsync(request);
    }
}

Y esto seria todo el codigo necesario para poder desplegar la aplicación. Recuerda que te dejo abajo en enlace a GitHub de la aplicación para que no tengas que copiarlo de aquí si lo prefieres

Nada mas, espero que tengas tu aplicacion ya funcionando. Hasta aqui el tutorial, si tienes alguna duda dejala en los comentarios. Me despido, programador. ¡Hasta la proxima!


Autor: Sergio Arribas Sánchez

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma

Centro: Tajamar

Año académico: 2020-2021

Código / recursos utilizados / Otros datos de interés:
https://github.com/Sergio-ASdev/AWS_Translate.git

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.