AWS Translate es un servicio de traducción de textos que utiliza tecnologías de aprendizaje automático avanzadas para proporcionar una traducción de calidad a petición. Se puede usar para traducir documentos de texto no estructurado o crear aplicaciones que funcionen en varios idiomas. Todo esto se basa en redes neurales entrenadas para la traducción de idiomas. De este modo, se puede traducir un texto de un idioma de origen a un idioma de destino.

Hay un montón de lenguajes disponibles. Aquí podéis encontrarlos todos con sus correspondientes códigos:

https://docs.aws.amazon.com/es_es/translate/latest/dg/what-is-languages.html

No obstante, no todos los idiomas incluyen todas las funcionalidades. Hay unos pocos lenguajes de destino en los que no se pueden enmascarar blasfemias, como el hindi o el vietnamita, y sólo en 6 de todos los idiomas se puede establecer el nivel deseado de formalidad.

Amazon Translate incluye también una capa gratuita que permite la traducción de hasta 2 millones de caracteres al mes durante 12 meses. En este enlace también se encuentran todos los precios:

https://aws.amazon.com/es/translate/pricing/

Tras esta introducción sobre AWS Translate y sus características, comenzamos con el código.

Creamos un proyecto MVC. Lo primero que debemos hacer es instalar los Nugets necesarios para acceder al servicio de traducción de Amazon, los cuales son AWSSDK.Core y AWSSDK.Translate.

En este ejemplo, todo el código se ubicará en el controlador. Hay una vista Index que muestra un formulario, y su post recoge los datos introducidos y traduce el texto, pero el código se puede implementar fácilmente donde lo necesites.

Controlador:

using Amazon.Runtime;
using Amazon.Runtime.CredentialManagement;
using Amazon.Translate;
using Amazon.Translate.Model;
using AWSTranslatePost.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace AWSTranslatePost.Controllers
{
    public class AWSTranslateController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public async Task<IActionResult> Index(string texto, string lenguaje)
        {
            if (texto == null || lenguaje == null)
            {
                ViewBag.Mensaje = "Rellene todos los campos.";
            }
            else
            {
                using(IAmazonTranslate client = new AmazonTranslateClient())
                {
                    TranslateTextRequest request = new TranslateTextRequest()
                    {
                        SourceLanguageCode = "auto",
                        TargetLanguageCode = lenguaje,
                        Text = texto
                    };
                    TranslateTextResponse resultado = await client.TranslateTextAsync(request);
                    if (resultado.HttpStatusCode != System.Net.HttpStatusCode.OK)
                    {
                        ViewBag.Mensaje = "Se ha producido un error en la traducción.";
                    }
                    else
                    {
                        ViewBag.Traduccion = resultado.TranslatedText;
                    }
                }
            }
            return View();
        }
    }
}

Vista:

<h1>AWS Translate</h1>

<h3 style="color:firebrick">@ViewBag.Mensaje</h3>

<form method="post" style="margin-bottom: 50px">
    <div class="form-group">
        <label>Lenguaje:</label>
        <input type="text" name="lenguaje" class="form-control" />
    </div>
    <div class="form-group">
        <label>Texto:</label>
        <textarea name="texto" class="form-control" rows="4"></textarea>
    </div>
    <button type="submit" class="btn btn-info">Traducir</button>
</form>

<label>Traducción:</label>
<textarea name="texto" class="form-control" rows="4">@ViewBag.Traduccion</textarea>

Así de sencillo es utilizar AWS Translate y con su amplio repertorio de lenguajes puedes traducir los textos que quieras a un montón de idiomas. Y no solamente textos, puedes llegar a traducir hasta documentos o páginas enteras.

En caso de que quieras saber más acerca de Amazon Translate, te dejo el link a la documentación oficial:

https://docs.aws.amazon.com/es_es/translate/latest/dg/translate-dg.pdf

Autor: María del Mar Carrión García
Curso: Desarrollo Web Full Stack + MultiCloud + Multiplataforma
Centro: Tajamar
Año académico: 2021-2022
Código: https://github.com/MariMar9/AWSTranslatePost.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.