Hola,

Esta vez veremos un ejemplo de creación de un bot capaz de hablar 105 idiomas, aunque realmente hablará los idiomas soportados por telegram.

El bot se apoya de la API "Gratis" de Google Translate, no usamos el módulo de API que incluye N8N porque "nos quería hacer pasar por caja."

Al intentar probar el módulo de google translate nos encontremos con este mensaje, así que pasando...

"Cloud Translation API requiere un proyecto con una cuenta de facturación."

Empece a pensar cómo hacerlo. Recordaba que en alguna ocasión había traducido textos desde la consola en linux usando curl y me puse manos a la obra.

Al final encontré una solución más rápida y fácil de aplicar.

Para aplicarla debemos conectarnos a nuestro servidor Linux mediante SSH y ejecutar este comando.

Versión basada en NPM

wget git.io/trans -O /usr/bin/translate && chmod +x /usr/bin/translate

Versión basada en Docker

Sí has seguido la versión de instalación de docker o has usado el Instalador

Debes usar estos comandos:

wget git.io/trans -O /home/n8n/.n8n/translate && chmod +x /home/n8n/.n8n/translate && docker exec -it n8n /sbin/apk add bash gawk

docker exec -it n8n /bin/ln -s /home/n8n/.n8n/translate /usr/bin/translate

Ahora podrás usar translate para traducir textos.

Justo así:

/usr/bin/translate --brief -t es "SharingAway, is the best comunity of the world" 

Sharing Away, es la mejor comunidad del mundo

Si falla el script mirad si podéis instalar el paquete gawk

Debian / Ubuntu

apt install gawk

CentOS / Fedora

yum install gawk

Conociendo esto podemos utilizar el node Execute Command

Para que nos traduzca el output de otro node.

Imagina que tienes este Workflow.

Tenemos:

  • Trigger de telegram ( Escucha mensajes en un bot )
  • HTTP Request ( Envia palabra a una instancia de strapi.io )
  • Execute Command ( Recoge el valor que está en ingles y traduce idioma indicado )
  • Telegram 1 ( Envía una imagen )
  • Telegram ( Manda el texto en el idioma del cliente )

En este workflow partimos de que el trigger de telegram envía el idioma del cliente de telegram por eso podemos usar el editor de expresiones y seleccionar el código de idioma y por otro lado del HTTP Request extraeremos la descripción y la traduciremos en el node de Execute Command.

Importante: Para la descripción se debe poner entre comas dobles

Bot en funcionamiento:

El bot usa el idioma con el que tienes configurado el telegram, puedes probar si traduce otros idiomas configurando otro idioma en tu telegram y debería responderte en el idioma seleccionado.

Workflow: https://n8n.io/workflows/878

Podéis probar el bot desde aquí @NocodeTranslateBot

Si es vuestro primer bot revisad este tutorial

Saludos,