martes, 22 de enero de 2013

traductor de google en tu consola de linux

Crear un traductor en la consola de linux, usando el traductor de Google
#!/bin/bash
# access translate.google.com from terminal

help='translate  [[] ]
if target missing, use DEFAULT_TARGET_LANG
if source missing, use auto'

# adjust to taste
DEFAULT_TARGET_LANG=en

if [[ $1 = -h || $1 = --help ]]
then
    echo "$help"
    exit
fi

if [[ $3 ]]; then
    source="$2"
    target="$3"
elif [[ $2 ]]; then
    source=auto
    target="$2"
else
    source=auto
    target="$DEFAULT_TARGET_LANG"
fi

result=$(curl -s -i --user-agent "" -d "sl=$source" -d "tl=$target" --data-urlencode "text=$1" http://translate.google.com)
encoding=$(awk '/Content-Type: .* charset=/ {sub(/^.*charset=["'\'']?/,""); sub(/[ "'\''].*$/,""); print}' <<<"$result")
#iconv -f $encoding <<<"$result" | awk 'BEGIN {RS="
]* id=["'\'']?result_box["'\'']?/ {sub(/^.*id=["'\'']?result_box["'\'']?(>| [^>]*>)([ \n\t]*<[^>]*>)*/,"");sub(/<.*$/,"");print}' | html2text -utf8 iconv -f $encoding <<<"$result" | awk 'BEGIN {RS="
"};/]* id=["'\'']?result_box["'\'']?/' | html2text -utf8 exit
La librería que uso para resaltar el código generaba muchos errores por eso he decidido ponerlo tal cual, espero que os funcione sin problema. Para usarlo ejecutamos
./traductor.sh Hola eu
o el clasico
./traductor.sh "Hola mundo" en

3 comentarios:

  1. Que tal amigo no se si pudieras ayudarme al ejecutar el script me da el siguiente error:

    /traductor.sh: línea 32: ]*: no se encontró la orden
    ./traductor.sh: línea 34: html2text: no se encontró la orden
    ./traductor.sh: línea 32: html2text: no se encontró la orden
    awk: línea ord.:1: BEGIN {RS="
    awk: línea ord.:1: ^ cadena sin terminar
    awk: línea ord.:1: BEGIN {RS="
    awk: línea ord.:1: ^ syntax error

    ResponderEliminar
  2. Hola que tal creo que el error es que lo copio y pego tal y como lo tienes publicado y se saltean las lineas no se si pudieras poner el script en un enlace para usarlo como lo tienes tu, saludos amigo.

    ResponderEliminar
  3. Amigo? le conozco de algo? bueno respondiendo a tu pregunta tiene instalado el paquete html2text. Este script puede que le pida dependencias de diferentes paquetes.

    Un saludo

    ResponderEliminar