Script: Traduce textos desde la linea de comandos mediante Google Translate Ajax API

Excelente!. Un script muy simple pero que nos permitira si queremos utilizar traducción instantaneo en nuestros pequeños programas de bash. Basicamente se hace uso de «curl» para hacer una petición HTTP con los parametros adecuados y se analiza la respuesta recibida, los parametros son el idioma «origen», el idioma «destino» y el string que queremos traducir.

Código:

#!/usr/bin/env bash
#  gtranslate.sh
#  Translate using Google Translate Ajax API:
#  http://ajax.googleapis.com/ajax/services/language/translate?v=1.0 \
#  &langpair=en|es&q=hello+world
#  More Info: http://code.google.com/apis/ajaxlanguage/documentation/
#  ksaver (at identi.ca), March 2010.
#  Licence: Public Domain Code.

progname=$(basename $0)

if [ -z "$3" ]
then
	echo -e "Usage:   $progname lang1 lang2 'string of words to translate...'"
	echo -e "Example: $progname en es 'Hello World!'\n"
	exit
fi

FROM="$1"
TO="$2"

# Google Translate Ajax API Url 
TRANSURL='http://ajax.googleapis.com/ajax/services/language/translate?v=1.0'
LANGPAIR="$FROM|$TO"
shift 2

# Parse string to translate, change ' ' to '+'
# STRING: String to translate.
STRING="$@"
PSTRING=$(echo "$STRING" |tr ' ' '+')

# Get translation
RESPONSE=$(/usr/bin/env curl -s -A Mozilla \
		$TRANSURL'&langpair='$LANGPAIR'&q='$PSTRING)

echo -n "$progname> "
# Parse and clean response, to show only translation.
echo "$RESPONSE" |cut -d ':' -f 3 |cut -d '}' -f 1

14 Respuestas to “Script: Traduce textos desde la linea de comandos mediante Google Translate Ajax API”


  1. 1 Gobi septiembre 26, 2010 a las 6:05 pm

    ¿Es posible hace todo eso en una interfaz BONITA Y CÓMODA?

  2. 3 linus torbalds septiembre 26, 2010 a las 8:30 pm

    Brillante!…. el script no el comentario de gobi…

  3. 4 piponazo septiembre 26, 2010 a las 8:59 pm

    xDDD muy buenos los comentarios.

    El script da gusto gusto ejecutarlo. Adiós a tener que abrir un explorador para hacer traducciones rápidas :D.

  4. 5 asdf septiembre 26, 2010 a las 9:14 pm

    Hola! Para aportar:

    siempre antes de un superlativo va «the»

    The best movie.
    The worst day.

    saludos

  5. 7 Wagner septiembre 26, 2010 a las 9:45 pm

    mmmm, muy interesante.

    cada vez, mas maravillado con linux jajaja, y su consola de vida.

  6. 9 soymicmic septiembre 27, 2010 a las 4:43 am

    Muy buenos los filtros!

  7. 10 maestrolinux septiembre 27, 2010 a las 4:27 pm

    la idea seria hacerlo sin internet ..!

  8. 11 mgonnet3 septiembre 30, 2010 a las 12:19 am

    33 RESPONSE=$(/usr/bin/env curl -s -A Mozilla \
    34 $TRANSURL’&langpair=’$LANGPAIR’&q=’$PSTRING)

    Me ayudas a entender esas dos lineas? y tambien que es $@ que no me acuerdo?

    • 12 superpiwi septiembre 30, 2010 a las 9:10 am

      $@ son todos los parametros separados, si $1 es el primero, $2 el segundo, $@ los auna.

      las lineas anteriores usan «curl» para conectarse a una pagina HTML haciendo una peticion y recuperar la respuesta HTML (en formato ajax en esta ocasión) para guardarla en la variable RESPONSE.
      es como si te conectaras a una pagina y guardaras la respuesta del servidor. luego a donde te conectas es la propia pagina de google translate pasandole el lenguaje y la cadena que quieres traducir. variables LANGPAIR y PSTRING.


  1. 1 Script: Traduce textos desde la linea de comandos mediante Google Translate Ajax API | Ayuda Linux Trackback en septiembre 26, 2010 a las 7:10 pm
  2. 2 Script: Traduce textos desde la linea de comandos mediante Google Translate Ajax API | Command Line Trackback en septiembre 27, 2010 a las 7:55 pm

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s







¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map

Archivos

septiembre 2010
L M X J V S D
 12345
6789101112
13141516171819
20212223242526
27282930  

Blog Stats

  • 31.296.630 hits

A %d blogueros les gusta esto: