Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/06/2012, 08:44
franjgg
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 4
funcion para traduccion automatica no traduce el texto completo

Hola amigos,

Vereis tengo esta funcion que traduce un texto del español al ingles:

Código PHP:
<?  
/***
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
*/
translate("función – y cogulla para preservar la identidad de los participantes y retomando el color del hábito de la cofradía de San Francisco) situándose a los pies de la Cruz en la que está suspendido diferentes el horario de verano y otro el de invierno que conlleva los cambios de hora se realiza para mejorar el aprovechamiento de la luz solar de forma que se consumía menos electricidad El cambio de horario permite adaptar las actividades humanas al ciclo de luz solar, de forma que se dependa en menor medida de la electricidad Los detalles difieren dependiendo del país y sufren modificaciones de vez en cuando La existencia de dos horarios diferentes, el horario de verano y otro el""es""en");
  
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_handleCURLOPT_URL$url);
    
curl_setopt($curl_handleCURLOPT_CONNECTTIMEOUT0);
    
curl_setopt($curl_handleCURLOPT_RETURNTRANSFER1);
    
curl_setopt($curl_handleCURLOPT_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_handleCURLOPT_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);
        
$cadena $buffer;
        global 
$traduccion;
        list(
$digito_control$traduccion) = explode('"'$cadena);
        
        }

    
$buffer utf8_decode($buffer);
    
$buffer str_replace("\\n"""$buffer);
    return 
$buffer;    

}



        echo 
$traduccion.'<br /><br />';
    
?>

Y funciona, la cosa es que no termina de traducir el texto completo siempre se corta cerca del caracter numero 300 algunas veces mas y otras menos, y tambien parece que se corta en los puntos, por que quitandolos continua, pero inlcuso sin puntos se contar llegando al caracter numero 300 +/-

A ver si alguien sabe que le puede estar pasando.

Un saludo y mil gracias