Traduciendo desde la linea de comandos con deepl-translator

DeepL es un servicio de traducción online que está dando bastante que hablar últimamente. Mas allá de ser un sistema automatizado al estilo de Google Translate, Facebook o Microsoft Translator, los responsables del proyecto han optado por un método más sutil, en el que se interpreta mejor el contexto de las oraciones, produciendo un resultado más humano.

Para ello utilizan un técnica basada en redes neuronales convolucionales (frente a las redes neuronales recurrentes que utiliza por ej. Google) que se ejecuta en un superordenador. A todo eso ayuda, el que esté conectado con la base de datos de Linguee.

Actualmente Deepl soporta los idiomas inglés, francés, español, italiano, holandés, polaco y alemán . Es una fase inicial y se espera que en el futuro se añadan más idiomas. Ello no ha impedido que ya surjan algunos programas interesantes a su alrededor.

Es el caso de deepl-translator, una utilidad que nos trae esas capacidades de traducción a nuestra terminal.

Publicado bajo licencia libre MIT y escrito en lenguaje de programación JavaScript.  Deepl-translator se puede instalar en cualquier distribución GNU/Linux mediante yarn, un –relativamente nuevo– gestor de paquetes para dicho lenguaje.

En Arch Linux y derivadas (Antergos, Manjaro) nos lo encontramos en los repositorios oficiales:

sudo pacman -S yarn

Resto de distribuciones podéis seguir las instrucciones que facilita su página web.

Ya contamos con yarn en nuestro sistema. Ahora toca instalar deepl-translator:

yarn global add deepl-translator-cli

Todavía nos queda un paso más. La primera vez que lancé el programa es como si no hubiera instalado nada. Me faltaba establecer la ruta de los binarios, para que se puedan ejecutar de forma global.

Así que añadí esto, al archivo oculto de configuración de Bash (.bashrc):

# ruta para yarn

export PATH="$PATH:`yarn global bin`"

Ahora ya podemos empezar. Si queremos saber a que idioma nos enfrentamos, podemos ejecutar la opción ‘detect‘:

deepl detect 'ci vuole tutta una vita per imparare a vivere'  
Italian (IT)

Esa era fácil. Toca ponernos a traducir. Podemos ver las opciones que tenemos respecto a “translate” en la ayuda del programa, en especial el código asociado a cada idioma (EN, DE, FR, ES, IT, NL, PL, auto):

deepl translate -h

Y ahora que ya tenemos una idea, traducimos la frase anterior, a ver que nos quería decir el viejo Séneca. En castellano sería:

deepl translate -t 'ES' 'ci vuole tutta una vita per imparare a vivere'

Se necesita toda una vida para aprender a vivir

Parece bastante exacto. Para aquellos que prefieran utilizar Google, Bing o Yandex, recordad que existe una opción similar –incluso más completa a nivel de funciones, ya que por ej. permite traducir páginas web–, llamada Translate Shell, igualmente diseñada para su uso en la terminal.

4 thoughts on “Traduciendo desde la linea de comandos con deepl-translator”

  1. Daniel says:

    Interesante, pero mucho jaleo de terminal. Saludos.

    1. nachojuncal says:

      Si le puedes añadir alias al comando, es útil. O simplemente un pequeño script para sacar la entrada y salida de forma gráfica sin meter todo el chorizo.
      Lo que no me gusta es que use un gestor de paquetes propio, dentro del gestor de paquetes de cada distro, pero la idea la veo interesante.

  2. tannhausser says:

    Es un software muy reciente. A ver si alguien se anima a empaquetarlo en las principales distros y ya no hace falta tirar de yarn.

    Un saludo 🙂

    1. Diego says:

      Yarn es un gestor de paquetes para node. Podéis usar el clásico npm también, aunque yarn es mucho mejor (es mucho más rápido y tiene “modo avión”). Estos gestores de paquetes están orientados al desarrollo, no para el usuario final. Además si consultais el repositorio de npm (de donde también bebe yarn), lo que os encontraréis es que la gran mayoría de los paquetes son librerías para el desarrollo con node, no programas completos.

Deja un comentario