Skip to content


Traducir textos en PHP usando la API de Google Translate

Cómo he comentado anteriormente, estoy realizando un experimento SEO para uno de mis sitios.

La primera de las acciones era crear una herramienta que me agragara juegos flash al sitio web diariamente para generar contenido regularmente y así fidelizar al usuario, ganar en enlaces internos y páginas indexadas.

Y aprovechando que el sitio en cuestión lo tengo disponible en juegos gratis (español), jeux gratuit (francés) y free games (inglés) he añadido una funcionalidad a dicha herramienta para que los textos descriptivos de cada juego los traduzca y así pueda añadir el juego a los otros sitios.

Para traducir dichos textos online con PHP he usado la API de Google translate, os propongo aquí el código que he usado por si a alguien le sirve de ayuda:

/* definimos la URL de la API de Google Translate y metemos en la variable el texto a traducir */
$url = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q='.urlencode($text).'&langpair=es|en';
// iniciamos y configuramos curl_init();
		$curl_handle = curl_init();
		curl_setopt($curl_handle,CURLOPT_URL, $url);		     curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
		curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
		$code = curl_exec($curl_handle);
		curl_close($curl_handle);
 
// la api nos devuelve los resultados en forma de objeto stdClass
// recuperamos los datos y voilà!
 
		$json = json_decode($code);
		$traduc = $json->responseData;
		$text = $traduc->translatedText;
   	        $traduccion = utf8_decode($text);
Comparte

Posted in Google.

Tagged with , , , , .

Posts relacionados


3 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Pepe says

    Hola, muy interesante el código, sin embargo al probarlo, me arroja el siguiente error:

    unexpected ‘&’ en $traduc = $json->responseData;

    ¿alguna sugerencia?

    Saludos.

  2. Pepe says

    Con algunas modificaciones logré que funcionara en php4:

    function translate($text,$destLang = ‘en’,$srcLang = ‘es’) {

    $text = urlencode($text);
    $destLang = urlencode( $destLang );
    $srcLang = urlencode( $srcLang );

    $trans = @file_get_contents( “http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q={$text}&langpair={$srcLang}|{$destLang}” );

    $translate = explode(’translatedText”:”‘,$trans);
    $translate = explode(’”},’,$translate[1]);

    echo $translate[0];
    }

    Saludos

  3. manelgarcia says

    Muchas gracias por la colaboración!



Some HTML is OK

or, reply to this post via trackback.