517 - Traduciendo desde la terminal y con Espanso
Descubre cómo utilizar un traductor en la terminal #linux utilizando #Deepl y #Espanso. Automatiza tus tareas de traducción y ahorra tiempo en tus proyectos
Hoy te traigo otro caramelito para la terminal. Una herramienta para la terminal que te permite traducir utilizando la tecnología de Deepl, una auténtica maravilla. Sin embargo, es posible que te estés preguntando, ¿quien quiere traducir en la terminal a parte de atareao?. Pues precisamente, lo que traigo es la posibilidad de combinarlo con otra herramienta como es espanso para resolver este problema, de forma que puedas utilizarlo en cualquier sitio.
Traduciendo desde la terminal y con Espanso
Sobre las aplicaciones en Linux, Windows y MacOS
Uno de los problemas con los que me he encontrado durante este tiempo que llevo desarrollando en Linux es la portabilidad. Pero no es algo exclusivo de Linux. Por supuesto, el problema, también lo encuentras si lo que quieres es exportar una aplicación desarrollada en Linux a Windows o a MacOS. ¿Como hacerlo?
En el caso de Linux, es todavía mas sangrante si cabe. Si quieres explotar al máximo alguno de los escritorios, y utilizas determinadas opciones que existen disponibles en ellos, las posibilidades de exportar esto a otros escritorios todavía es mas compleja. En particular, me refiero a los plasmoides de KDE Plasma y a las extensiones de GNOME Shell.
Así, hace algún tiempo, implementé una extensión para GNOME Shell, para realizar traducciones utilizando DeepL. Esto te lo conté en el episodio 396, que titulé No te lo igualo, te lo mejor. DeepL en Linux. El problema, es que la exportación a otros escritorios no es tan intuitiva como esperaba.
ChatGPT en la terminal
Igualmente, hace pocos episodios del podcast, en concreto en el episodio 510, titulado Espanso con ChatGPT, una combinación ganadora, te hablé como podías combinar Espanso con ChatGTP utilizando una herramienta que implementé para la terminal que ese llama dime
.
Esto me dio la idea, para hacer lo mismo pero utilizando DeepL. ¿Porque no utilizar ChatGPT?, porque es realmente lento, en comparación con DeepL, para realizar las traducciones.
Sobre DeepL, ¿porque utilizar DeepL?
Antes de entrar en los detalles de cómo crear nuestro traductor en la terminal, hablemos un poco sobre Deepl. Deepl es una poderosa herramienta de traducción que utiliza redes neuronales para proporcionar traducciones extremadamente precisas. ¿Por qué elegimos Deepl? Porque en el mundo de la programación y el desarrollo, la precisión es clave. Deepl ofrece traducciones más precisas que muchas otras alternativas, lo que lo convierte en una excelente opción para nuestras necesidades.
Sobre Espanso
Sobre Espanso ya te he hablado en otros episodios del podcast, en concreto, por ejemplo, en el episodio 254 que titulé Escribir mas con menos, Espanso. Espanso es una herramienta que nos permite automatizar tareas en la terminal mediante la creación de atajos de texto. Piénsalo como crear tus propias abreviaturas personalizadas que se expanden automáticamente en texto completo cuando las escribes. Esta es una herramienta poderosa que puede ahorrarnos mucho tiempo y esfuerzo en tareas repetitivas.
Por supuesto, que si esto lo pudiéramos combinar con una herramienta para realizar traducciones sería fantástico.
Sobre tradu
Pues esto es lo que he hecho, he implementado, mi propio traductor en la terminal. Una herramienta que está disponible como crate, y que puedes instalar utilizando el propio gestor de paquetes de Rust. Algo tan sencillo como ejecutar lo siguiente,
cargo install tradu
Una vez instalado, tienes que configurarlo, con una configuración tan sencilla como la que muestro aquí, ~/.config/tradu/tradu.yml
log_level: error
base_url: api-free.deepl.com
endpoint: v2/translate
auth_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
source_lang: ES
target_lang: EN
split_sentences: 1
preserve_formatting: false
formality: default
Aquí tienes que reemplazar el auth_key
por el que tengas configurado en DeepL, y en su caso, si quieres cambiar los idiomas de origen y destino. Aunque, esto último, tampoco es importante, porque los puedes definir directamente desde la terminal.
Así, si lo que quieres es traducir una frase, es tan sencillo como lo siguiente,
tradu -t "Soy un campeón"
Si además quieres cambiar el idioma de destino, por ejemplo al francés,
tradu -t -d "FR" "Soy un campeón"
Y si quieres traducir del francés al inglés,
tradu -t "Je suis un champion" -d "EN" -s "FR"
Esto es así, porque yo lo tengo configurado con los idiomas por defecto que ves en la configuración que he detallado anteriormente.
Combinando Espanso con Tradu
Ahora toca combinar espanso
con tradu
, básicamente utilizando el potencial que nos ofrencen los formularios. Esto lo puedes hacer de la siguiente forma. Por ejemplo, para el caso de español a inglés,
- trigger: ":traduce"
replace: "{{traduce}}"
vars:
- name: form1
type: form
params:
layout: traduce [[texto]]
fields:
texto:
multiline: true
- name: traduce
type: shell
params:
cmd: $HOME/.cargo/bin/tradu -t "{{form1.texto}}" -s "ES" -d "EN"
Y de la misma forma, si lo quisieras hacer de inglés a español, podrías utilizar lo siguiente,
- trigger: ":translate"
replace: "{{translate}}"
vars:
- name: form1
type: form
params:
layout: translate [[texto]]
fields:
texto:
multiline: true
- name: translate
type: shell
params:
cmd: $HOME/.cargo/bin/tradu -t "{{form1.texto}}" -s "EN" -d "ES"
Por supuesto, que esto es lo más básico que puedes hacer. A partir de aquí imaginación al poder. Empezando por la redacción de una carta, donde los encabezados son fijos y varía únicamente el cuerpo y mucho mas.
Conclusiones
En resumen, hemos creado una herramienta poderosa que combina la precisión de Deepl con la automatización de Espanso para proporcionarnos un traductor eficiente en nuestra terminal. Esto puede ser útil para programadores, desarrolladores y cualquiera que trabaje con texto en diferentes idiomas. Te animo a que lo pruebes y lo adaptes a tus propias necesidades.
Más información,
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.