Cómo traducir textos en Linux usando atajo de teclado y las notificaciones

Hace tiempo que tengo problemas con la traducción de Google Chrome en Linux, he logrado mejorarla con algunas modificaciones, pero esto no me termina de gustar del todo. Es por ello, que he tratado de conseguir alguna alternativa que me permita traducir palabras o algunos textos que desconozco.

Para solucionar este problema, vamos a enseñarles a cómo traducir textos en Linux usando atajos de teclado y las notificaciones, para ello voy a utilizar una guía de Andrew (Alin Andrei) que va genial y espero les sirva de mucho. La guía está conformada por varios script realizados por Andrew y la corrección de un script que data del 2012 que se usó como base.

Este método nos permite traducir cualquier texto que se pueda seleccionar (textos en páginas web, pdf, txt, aplicaciones, entre otros), por lo que sus usos pueden ser muchos.

Cómo traducir textos en Linux

Cómo traducir textos en Linux

Ventajas y Desventajas de esta solución

Entre las ventajas de este método podemos destacar:

  • Permite la traducción de cualquier texto que se pueda seleccionar (pDF, páginas web, revistas, libreoffice, textos en app entre otros.
  • Permite traducir textos de manera rápida, gracias al uso de los atajos de teclado.
  • Permite visualizar las traducciones desde las notificaciones del sistema.
  • Permite la traducción desde diversos idiomas de origen.
  • Se puede parametrizar el idioma de destino.
  • Es ideal para traducir palabras y frases pequeñas.
  • Es de fácil instalación y configuración.

Las principales desventajas de este método son:

  • No puede realizar traducciones a páginas web enteras.
  • Si Google no puede determinar el idioma de origen, devolverá un error y, por lo tanto, no traducirá el texto.
  • Para que este método funcione se necesita una conexión a internet.

Configurando el script para traducir textos en Linux

Para  poder configurar y ejecutar el script para traducir textos seleccionados usando atajo de teclado y las notificaciones debemos seguir los siguientes pasos:

  • Instalar las dependencias necesarias, en primer lugar instalar libnotify-bin (para enviar notificaciones de escritorio), wget (para recuperar la traducción de Google) y XSEL (que se utiliza para obtener el texto resaltado en ese momento). En Ubuntu y derivados puedes instalarlo usando el siguiente comando:
sudo apt-get install libnotify-bin wget xsel
  • Copiar el siguiente código en la consola:
#!/usr/bin/env bash
notify-send --icon=info "$(xsel -o)" "$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(xsel -o | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"

y luego crear un archivo llamado «notitrans» (Puedes llamarlo como quieras, para este caso se llamará cómo el autor original lo llamó), el cuál va a contener el código anterior.

Si deseas traducir a un idioma distinto del español debes reemplazar «tl=es» con el lenguaje de tu preferencia por ejemplo  «tl=ru» para Ruso, «tl=fr» para Francés, etc.

  • Debemos darle permiso de ejecución al archivo creado con el siguiente comando:
chmod +x ~/notitrans
  • Añadimos el script a nuestro $PATH con el siguiente comando
sudo mv ~/notitrans /usr/local/bin/
  • Ya nuestro script está listo, ahora tenemos que hacer que se active cuando usamos  un atajo de teclado, para ello debemos crear un acceso personalizado.

Para Cinnamon, GNOME y Unity, puedes crear un atajo de teclado personalizado accediendo a  Configuración del Sistema > Teclado > Atajos de Teclado > Atajos Personalizados, donde debemos pulsar sobre añadir atajo personalizado. Donde ingresamos el nombre del atajo, en mi caso le coloque translate y en la Orden colocamos «notitrans» o el nombre que le hayamos  puesto a nuestro script:

añadir atajo de teclado

añadir atajo de teclado

Variaciones del script para traducir textos en Linux

Es muy fácil modificar el script para adaptarlo mejor a sus necesidades. A continuación encontrará un par de variaciones que ha creado  Andrew. Para usar estos script, simplemente siga los mismos pasos que anteriormente (incluyendo cambiar «es» al idioma en el que desea traducir el texto), pero no copie el código de script anterior sino que utilice el que corresponda:

Visualizando la traducción con Zenity

traducir texto en Linux

Para poder visualizar nuestra traducción en Zenity debemos seguir los siguientes pasos:

  • Instalar Zenity en su sistema. En Ubuntu y derivados puedes instalarlo con el siguiente comando:
sudo apt-get install zenity
  • Realizar todos los pasos del  script original, pero utilizar el  siguiente código
#!/usr/bin/env bash
text="$(xsel -o)"
translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
echo -e "Original text:" "$text"'\n' > /tmp/notitrans
echo "Translation:" "$translate" >> /tmp/notitrans
zenity --text-info --title="Translation" --filename=/tmp/notitrans

Visualizando la traducción en las notificaciones y copiando automáticamente en nuestro clipboard

Para tener una variación donde se muestra la traducción por las notificaciones del sistema y automáticamente también se copie en nuestro clipboard debemos hacer los siguientes pasos:

  • Instalar xclip en su sistema. En Ubuntu y derivados puedes hacerlo usando el siguiente comando:
sudo apt-get install xclip
  • Realizar todos los pasos del  script original, pero utilizar el  siguiente código
#!/usr/bin/env bash
text="$(xsel -o)"
translate="$(wget -U "Mozilla/5.0" -qO - "http://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=$(echo $text | sed "s/[\"'<>]//g")" | sed "s/,,,0]],,.*//g" | awk -F'"' '{print $2, $6}')"
echo "$translate" | xclip -selection clipboard
notify-send --icon=info "$text" "$translate"

Ya culminando, espero este artículo le permita poder hacer traducciones de palabras o textos que deseen, de igual manera si alguno de ustedes tiene alguna duda o modificación del script, no dude en dejar sus comentarios.

Fuente: Webupd8


6 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   r dijo

    Muchísimas gracias por el script; es muy útil, y muchísimas gracias por la traducción y el artículo porque estos son de verdad los verdaderos artículos que lo hacen crecer en conocimientos respecto al campo GNU Linux.

    Le sugiero por favor más traducciones y más artículos…

    Saludos y que tengan buen día.

  2.   Manuel dijo

    Excelente + 5, gracias! Una correción: «Copiar el siguiente código en la consola:», no es en la consola sino en el archivo de texto creado.

  3.   Kuajunote dijo

    Grandísimo aporte, me ha venido muy bien. Me gustaría aclarar una duda ¿es posible hacer que el texto a traducir se más grande? Es decir, con Zenity selecciono un párrafo y no me lo traduce todo, sólo un par de frases, con el sistema de notificaciones propio de Ubuntu me traduce sólo la primera frase. ¿Hay forma de ampliarlo?

    Un saludo y muchas gracias de antemano.

  4.   Miller Silva dijo

    Muy buen aporte!

  5.   Oscar Cruz dijo

    Lo que estaba buscando!
    Bueno, realmente no, buscaba una forma de hacerlo solo en documentos de okular (con algún tipo de complemento), ya que suelo trabajar con muchos PDF’s. Pero ésto me ayuda a traducir palabra mas allá de okular. Es un excelente aporte

    Te agradezco!!!

  6.   Ersantil dijo

    Excelente es poco. Gracias