Como-traducir-textos-en-LinuxCómo traducir textos en Linux

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.

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:

anadir-atajo-de-tecladoañ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 | desdelinux

¿Quién está en línea?

Hay 47080 invitados y ningún miembro en línea