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);



{ 3 comments… read them below or add one }
Hola, muy interesante el código, sin embargo al probarlo, me arroja el siguiente error:
unexpected ‘&’ en $traduc = $json->responseData;
¿alguna sugerencia?
Saludos.
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
Muchas gracias por la colaboración!