Ver Mensaje Individual
  #7  
Antiguo 26-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ya Kipow lo analizó, yo sólo les pongo un ejemplito listo para ejecutar. La función que usa es un poco artesanal:

Código Delphi [-]
function GoogleTranslate(SourceLanguage, TargetLanguage, Text: String): String;
const
  GoogleUrl = 'http://translate.google.com.mx/translate_t';
  StartTag = '<div id=result_box dir="ltr">';
  EndTag = '</div>';

var
  IdHTTP: TIdHTTP;
  Fields: TStrings;
  Response: String;
  I: Integer;

begin
  IdHTTP := nil;
  Fields := nil;

  try
    IdHTTP := TIdHTTP.Create(nil);
    Fields := TStringList.Create;

    (* Asignar parámetros *)
    Fields.Values['sl'] := SourceLanguage;
    Fields.Values['tl'] := TargetLanguage;
    Fields.Values['text'] := Text;

    (* Invocar al traductor *)
    Response := IdHTTP.Post(GoogleUrl, Fields);

    (* Buscar el comienzo de la cadena traducida *)
    I := Pos(StartTag, Response);
    Delete(Response, 1, I + Length(StartTag) - 1);

    (* Buscar el final de la cadena traducida *)
    I := Pos(EndTag, Response);
    Response := Copy(Response, 1, I - 1);

    Result := Response;
  finally
    IdHTTP.Free;
    Fields.Free;
  end;
end;

Quizá sería más adecuado utilizar un analizador del documento HTML. De hecho probé con éste y funciona bien pero pensé que podíamos hhacerlo con sólo lo estándar.

Ya queda en ustedes generalizar la aplicación de ejemplo para que se puedan escoger los idiomas de la traducción.

// Saludos
Archivos Adjuntos
Tipo de Archivo: zip GTranslator.zip (484,6 KB, 100 visitas)
Responder Con Cita