Ver Mensaje Individual
  #1  
Antiguo 25-11-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Reputación: 23
rrf Va por buen camino
Wink

Hola Aposi.

Aquí te incluyo una función que elaboré para resolver el problema de las comillas dobles y de algunos otros caracteres ( ' < > =).


Código Delphi [-]
Function rt ( bb: string ) : string ;
var
  a1  : string ;
  d1, d2 : array [1..5] of String ;
  cc : integer ;
begin

      // Reemplaza caracteres especiales mal traducidos
      //-------------------------------------------------

  a1 := bb ;
  d1 [1] := '\u0026#39;' ;       d2 [1] := '''' ;   // Comilla simple: '
  d1 [2] := '\u0026gt;' ;        d2 [2] := '>' ;
  d1 [3] := '\u0026lt;' ;        d2 [3] := '<' ;
  d1 [4] := '\u003d' ;           d2 [4] := '=' ;
  d1 [5] := '\u0026quot;' ;      d2 [5] := '"' ;   // Comilla doble: "

  for cc := 1 to 5 do
    if 0 < pos ( d1 [cc], a1 )
      then a1 := StringReplace( a1, d1 [cc], d2 [cc], [ rfReplaceAll ] ) ;

  result := a1 ;

end;

En la función, se usaron Array para que fuera fácil ampliar el número de caracteres que queden mal traducidos. Están incluidos los que a mí me dieron problemas, pero seguramente deben haber muchos más; por ejemplo "¿" o "¡" posiblemente den problemas.

Para llamar a esta función, sería algo así (aa es una variable tipo string):

Código Delphi [-]
  aa := 'Texto a traducir usando Google Translator' ;
  aa := GoogleTranslate(Source, Target, aa) ;

              // Eliminar caracteres especiales mal traducidos
  aa := rt ( aa ) ;

Puedes usar solo la parte que te interese de este código y, con un par de ajustes, lo tienes resuelto.

Saludos.

Última edición por rrf fecha: 25-11-2010 a las 17:00:19.
Responder Con Cita