6 febrero, 2025

TRADUCIR TEXTO EN POWER APPS CON POWER AUTOMATE

Hola a todos!

Dado que se ha generado una gran expectación con las nuevas funciones que traducen texto en Excel (versión beta), me ha parecido interesante escribir algo al respecto pero en Power Apps.

Si quisiéramos crear un botón en Power Apps que tradujese el contenido de un cuadro de texto al idioma que necesitáremos, desgraciadamente no existe en Power Apps, ninguna función nativa que nos lo permita hacer. Para solventar este problema tendremos que usar Power Automate y (probablemente) suscribirnos a un servicio tipo Microsoft Translator (para obtener la clave API) o AI Builder (según la versión que tengamos de Power Apps).

En el ejemplo de hoy voy a usar AI Builder. Lo primero de todo es crear en Power Apps el diseño de nuestra App de traducción:

En el primer cuadro de texto vemos a insertar o escribir el texto a traducir y con la lisa desplegable vamos a seleccionar el idioma al que queremos traducir el texto. En el ejemplo, lo paso de español a francés.

Veamos el proceso paso a paso.

Lo primero es crear el contenido de la lista desplegable, para ello vamos a crear una colección en el evento OnStart de nuestra APP:

Aquí el código:

ClearCollect(Idiomas; 
    {Value: "en-EN"; NombreIdioma: "Inglés"};
    {Value: "es-ES"; NombreIdioma: "Español"};
    {Value: "fr-FR"; NombreIdioma: "Francés"};
    {Value: "de-DE"; NombreIdioma: "Alemán"};
    {Value: "it-IT"; NombreIdioma: "Italiano"};
    {Value: "pt-PT"; NombreIdioma: "Portugués"};
    {Value: "ru-RU"; NombreIdioma: "Ruso"};
    {Value: "zh-CN"; NombreIdioma: "Chino (Simplificado)"};
    {Value: "zh-TW"; NombreIdioma: "Chino (Tradicional)"};
    {Value: "ja-JP"; NombreIdioma: "Japonés"};
    {Value: "ko-KR"; NombreIdioma: "Coreano"};
    {Value: "ar-SA"; NombreIdioma: "Árabe"};
    {Value: "hi-IN"; NombreIdioma: "Hindi"};
    {Value: "nl-NL"; NombreIdioma: "Holandés"};
    {Value: "sv-SE"; NombreIdioma: "Sueco"};
    {Value: "no-NO"; NombreIdioma: "Noruego"};
    {Value: "fi-FI"; NombreIdioma: "Finlandés"};
    {Value: "da-DK"; NombreIdioma: "Danés"};
    {Value: "pl-PL"; NombreIdioma: "Polaco"};
    {Value: "el-GR"; NombreIdioma: "Griego"};
    {Value: "he-IL"; NombreIdioma: "Hebreo"};
    {Value: "tr-TR"; NombreIdioma: "Turco"};
    {Value: "cs-CZ"; NombreIdioma: "Checo"};
    {Value: "hu-HU"; NombreIdioma: "Húngaro"};
    {Value: "ro-RO"; NombreIdioma: "Rumano"};
    {Value: "bg-BG"; NombreIdioma: "Búlgaro"};
    {Value: "uk-UA"; NombreIdioma: "Ucraniano"};
    {Value: "vi-VN"; NombreIdioma: "Vietnamita"};
    {Value: "th-TH"; NombreIdioma: "Tailandés"};
    {Value: "ms-MY"; NombreIdioma: "Malayo"};
    {Value: "id-ID"; NombreIdioma: "Indonesio"};
    {Value: "fa-IR"; NombreIdioma: "Persa"};
    {Value: "ur-PK"; NombreIdioma: "Urdu"};
    {Value: "bn-BD"; NombreIdioma: "Bengalí"};
    {Value: "ta-IN"; NombreIdioma: "Tamil"};
    {Value: "te-IN"; NombreIdioma: "Telugu"};
    {Value: "kn-IN"; NombreIdioma: "Canarés"};
    {Value: "mr-IN"; NombreIdioma: "Maratí"};
    {Value: "gu-IN"; NombreIdioma: "Guyaratí"};
    {Value: "pa-IN"; NombreIdioma: "Panyabí"};
    {Value: "ml-IN"; NombreIdioma: "Malayalam"}
);;

Es importante generarlo de esta forma, porque el valor que vamos a pasar a Power Automate será Value y no el NombreIdioma. Eso es porque AI Buider trabaja con ese formato.

UNa vez que lo tenemos solo debemos hacer referencia a lista:

En la propiedad Items de la lista desplegable ponemos el nombre de la colección (Idiomas) y en el botón ponemos este código:

Creando así las dos variables que tenemos que pasar a Power Automate. InputTexto e InputIdioma.

El siguiente paso es crear un flujo de Power Automate (y debéis hacerlo desde Power Apps directamente). Aquí os dejo el flujo completo. Es muy sencillo y en pocos pasos lo tendréis listo.

Una vez que hemos creado el flujo, toca escribir el código que sirve para pasar los dos valores iniciales y capturar el texto de la traducción.

Por eso, en el botón, además de las dos variables creadas, añadiremos lo siguiente:

Set(InputTexto;TextInput1.Text);;
Set(InputIdioma;Dropdown1.Selected.Value);;

Set(
    MiTraduccion;
    TRADUCIRCONAIBUILDER.Run(InputTexto;InputIdioma).mitraduccion
);;

Donde MiTraducción es la variable a la que vamos a pasar el resultado de la traducción, que hemos obtenido de la respuesta de Power Automate que es «.mitraduccion».

Y el resultado es el que habéis visto… Bueno, os lo dejo en bengalí 🙂

Y esto es todo!, espero que sea de utilidad!

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies