Foros del Web » Programando para Internet » PHP »

funcion para traduccion automatica no traduce el texto completo

Estas en el tema de funcion para traduccion automatica no traduce el texto completo en el foro de PHP en Foros del Web. 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 ( ...
  #1 (permalink)  
Antiguo 25/06/2012, 09:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 12 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
  #2 (permalink)  
Antiguo 25/06/2012, 11:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: funcion para traduccion automatica no traduce el texto completo

a nadie se le ocurre nada?
  #3 (permalink)  
Antiguo 25/06/2012, 15:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: funcion para traduccion automatica no traduce el texto completo

podria ser algo de la codificacion?
  #4 (permalink)  
Antiguo 06/07/2012, 20:14
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 14 años, 9 meses
Puntos: 11
Respuesta: funcion para traduccion automatica no traduce el texto completo

mmm sino te funciona hasta ahora lo que yo haria seria lo siguiente:


$n=round(numero de caracteres de la cadena/300);

$total="";
for(i=1 hasta $n)
{
$total=$total.translate($primeros 300 caracteres, "es", "en");
}

Etiquetas: completo, funcion, traduccion, variables, automatico
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:22.