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,