Cuando estamos desarrollando un sitio multiidioma, a veces, nos sería de lo más útil que el propio PHP nos hiciera una traducción de algunos contenidos, para guardarlos o para mostrarlos directamente.
En cualquier caso hoy os presento esta función que tenia por aquí hace unos meses, y que la verdad es bastante funcional cuando realizamos algún parseo.
/***
Hay que pasarle las siguientes variables:
$content -> String a traducir
$ini -> idioma desde el que queremos traducir
$fin -> idioma al que queremos que nos traduzca
*/
function translate($content, $ini, $fin){
$buff = "";
$ini = strtolower($ini);
$fin = strtolower($fin);
$url = "http://translate.google.com/translate_a/t?client=t&text=".urlencode($content)."&sl=".$ini."&tl=".$fin."";
$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);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)');
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded;charset=UTF-8"));
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer))
{
$buffer = '';
}
else
{
$buffer = substr(trim($buffer), 1, -1);
}
$buffer = utf8_decode($buffer);
$buffer = str_replace("\\n", "", $buffer);
return $buffer;
}
//[ Ejemplo ]//
echo translate("Mi perro se llama Pedro", "es", "en");
Es necesario tener las librerías de CURL instaladas en nuestro servidor, así como tenerlas enlazadas con PHP.
Espero que os sirva
Hola, primero gracias por el codigo, lo he probado pero no funciona me devuelve Hola que tal, puede ser que el codigo ya sea viejo??, un saludo y muchas graciasa
Vaya también el ejemplo ejemplo es malo, porqué google no parece capaz de traducir ‘Hola que tal’. Sin embargo si pruebas que con algo como ‘Mi perro se llama Pedro’ entonces funciona correctamente
En seguida corregiré el post
Un Saludo