Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Traductor google (https://www.clubdelphi.com/foros/showthread.php?t=70501)

aposi 25-10-2010 11:45:37

Traductor google
 
Hola a todos,
Alguien sabe como poder enviar un Tedit al traductor de google y recoger el resultado?

Neftali [Germán.Estévez] 25-10-2010 12:32:06

Pues hace tiempo, Román publicó una solución completa en este hilo. No se si aun funcionará.

aposi 25-10-2010 13:38:46

no funciona, alguien sabe otra solución? aunque no sea con el traductor de google

Casimiro Noteví 25-10-2010 13:55:47

¿Y qué parte no funciona?, allí hay algunos usuarios que dicen que funciona perfectamente. ¿Habrá cambiado algo en google que ya no vale ese código?

Neftali [Germán.Estévez] 25-10-2010 16:11:32

Seguramente es por algun cambio en la página de Google; Recuerdo que funcionaba perfectamente (cuando Román lo subió), pero también es cierto que un tiempo después me sonaba haberlo probado y no funcionaba (de ahí mi comentario). En su momento no tuve tiempo para revisarlo.

movorack 25-10-2010 16:15:52

Hola,

en la página de la API de google, encuentras un ejemplo de como utilizar la api de google desde entornos que no usan javascript

Cita:

Entornos Flash y otros entornos que no utilizan JavaScript

Para los desarrolladores Flash y para aquellos desarrolladores que necesitan acceder al API AJAX de idiomas de Google desde otros entornos que no utilizan JavaScript, el API muestra una sencilla interfaz REST. En todos los casos, el método admitido es GET y el formato de respuesta es un resultado con codificación JSON con códigos de estado insertados. Para google.language.translate, está disponible el método POST. Las aplicaciones que utilizan esta interfaz deben cumplir todas las condiciones del servicio existentes. Es importante que prestes especial atención a la forma de identificarte correctamente en tus solicitudes. Las aplicaciones DEBEN incluir siempre un encabezado de referencia http válido y exacto en sus solicitudes. También te pedimos, aunque no es obligatorio, que incluyas en cada solicitud una clave de API válida. Al proporcionarnos esta clave, tu aplicación nos proporcionará un mecanismo de identificación secundario que nos resultará útil si necesitamos ponernos en contacto contigo para corregir algún problema.

La forma más fácil de aprender a utilizar esta interfaz es probarla. En la herramienta de línea de comandos curl o wget, ejecuta el siguiente comando:

Código:

curl -e http://www.my-ajax-site.com \
        'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=hello%20world&langpair=en%7Cit'

Este comando realiza una traducción (/ajax/services/language/translate), para Hello World (q=hello%20world) de inglés a italiano (langpair=en%7Cit). La respuesta tiene Content-Type configurado como text/javascript; charset=utf-8. En la respuesta que aparece a continuación, puedes ver que responseData es idéntico a las propiedades descritas en la documentación sobre los objetos de resultados.

Código:

{"responseData": {
    "translatedText":"Ciao mondo"
 },
 "responseDetails": null, "responseStatus": 200}

Además de este formato de respuesta, el protocolo también es compatible con una función de devolución de llamada de estilo JSON-P clásico que se activa al especificar el argumento callback. Cuando aparece este argumento, el objeto JSON se envía como argumento a la devolución de llamada especificada.

Código:

callbackFunction(
{"responseData": {
  "translatedText":"Ciao mondo"
 },
 "responseDetails": null, "responseStatus": 200})

Y, por último, el protocolo admite los argumentos callback y context. Cuando se especifican estos argumentos de URL, la respuesta se codifica como una llamada JavaScript directa con una firma de: callback(context, result, status, details, unused). Observa la pequeña diferencia en el siguiente comando y la siguiente respuesta.

Código:

curl -e http://www.my-ajax-site.com \
  'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=hello%20world&langpair=en%7Cit&callback=foo&context=bar'

Este comando realiza una traducción y es idéntico a la llamada anterior, PERO se ha alterado para incluir callback y context. Con estos argumentos en funcionamiento, en lugar de un objeto JSON, se devuelve una llamada JavaScript como respuesta y se incluye el objeto JSON a través del parámetro result.

Código:

foo('bar', {"translatedText":"Ciao mondo"}, 200, null)

aquí (http://code.google.com/intl/es/apis/ajaxlanguage/) la web donde encuentras la API Ajax para Idiomas de Google y aquí (http://code.google.com/intl/es/apis/...tion/#Examples) algunos ejemplos de uso.

De todos modos para usarla, tendrás que echar mano de los componentes Indy ;) la única diferencia con el ejemplo al que te remiten es la url que vas a utilizar para hacer la traducción y el tratamiento final de los datos.

Neftali [Germán.Estévez] 25-10-2010 16:44:40

Cita:

Empezado por Neftali (Mensaje 380328)
Seguramente es por algun cambio en la página de Google...

Lo he revisado, y efectívamente, basta con cambiar las variables StartTag y EndTag para que funcione perfectamente. Ya que los elementos de la página de Google no han cambiado (al menos en http://translate.google.es), sl, tl y text.

Código:

  StartTag = 'onmouseout="this.style.backgroundColor=''#fff''">';
  EndTag = '</span>';

Supongo que para hacerlo más efectivo, habría que poder configurar estos parámetros de forma ágil sin tener que recompilar, para poder adecuarse rápido a futuros cambios.

Un saludo.

movorack 25-10-2010 17:11:53

Cita:

Empezado por Neftali (Mensaje 380334)
Supongo que para hacerlo más efectivo, habría que poder configurar estos parámetros de forma ágil sin tener que recompilar, para poder adecuarse rápido a futuros cambios.

Haciendo uso de la api de google (http://code.google.com/intl/es/apis/ajaxlanguage/) aseguramos el uso de la plataforma de idiomas sin importar los cambios que tenga la herramienta en sus diferentes versiones.

aposi 25-10-2010 17:12:06

Con estos cambios funciona perfectamente. Muchas gracias

Neftali [Germán.Estévez] 25-10-2010 17:30:24

Cita:

Empezado por movorack (Mensaje 380337)
Haciendo uso de la api de google (http://code.google.com/intl/es/apis/ajaxlanguage/) aseguramos el uso de la plataforma de idiomas sin importar los cambios que tenga la herramienta en sus diferentes versiones.


Estoy de acuerdo contigo que haciendo uso de la API el programa sería más completo y robusto. En este caso trataba de completar una solución ya existente en los foros y supongo, más sencilla de utilizar para alguien que empieza o que no tiene muchos conocimientos, ya que es bastante sencilla y simple.

A cambio eso, es cierto que tiene inconvenientes como el que se describe aquí.

roman 25-10-2010 17:59:45

¡Excelente aporte movorack! Recuerdo que en su momento busque -ya se ve que sin mucho ahínco- la API que mencionas y no di con una referencia clara.

// Saludos

movorack 25-10-2010 18:17:52

Es que en estos dias estoy metido en un proyecto donde estoy usando delphi y php, conectandolos con servicios de google maps, traductor google, facebook, twitter, wikipedia, vnc, sms, ufffff

roman 26-10-2010 00:28:39

Gracias a tu apunte movorack, he actualizado el ejemplo :)

// Saludos

farute 29-06-2012 14:37:20

SAbeis si sigue siendo posible usar la API de google para traducir?, ya que por lo que veo los ejemplos han dejado de funcionar.

He leido algo de usar el traductor de microsoft pero no se bien como integrarlo en un programa:
http://theroadtodelphi.wordpress.com...2-from-delphi/

Grac ias

Neftali [Germán.Estévez] 29-06-2012 15:28:38

Sigue funcionando, es posible que haya cambiado alguna cosa y por eso no funciona.

farute 29-06-2012 15:45:58

Gracias
Y del ejemplo de Roman que es lo que ha podido cambiar?
ya que le das a traducir y no hace nada
http://www.clubdelphi.com/foros/show...0#postcount=13

no decían que la api de google para traducir la habían desactivado o limitado de algún modo?

movorack 29-06-2012 15:54:38

Cuando se entra a la página de Google Translate API, ahora se encuentra un mensaje que dice:

Cita:

Google Translate API is available as a paid service. See the pricing and FAQ pages for details.

For website translations, check out Google Website Translate Gadget
Parece que ya no se puede acceder a la API de forma gratuita como antes.

Una posibilidad es usar el servicio de traducción de Microsoft que entre otras cosas te permite utilizar SOAP.

En esta dirección (http://www.microsofttranslator.com/dev/), encuentras las diferentes opciones para su acceso y la referencia para su uso.

[OFFTOPIC]
Muy interesante esta situación, donde la API de Google pasó a ser paga y ahora esté recomendando usar la de microsoft.

Don't be evil???
[/OFFTOPIC]

Neftali [Germán.Estévez] 29-06-2012 16:02:56

Es cierto.
Me estaba fiando de una aplicación que uso para traducir y me acabo de dar cuenta de que desde la última versión utiliza el traductor de Bing, no el de Google, de ahí mi error.

En ese caso habrá que revisar la API de BING.

roman 29-06-2012 19:30:41

Cita:

Empezado por movorack (Mensaje 436361)
[OFFTOPIC]
Muy interesante esta situación, donde la API de Google pasó a ser paga y ahora esté recomendando usar la de microsoft.

Don't be evil???
[/OFFTOPIC]

Parece que la lógica, tal como la conocemos, ha terminado :D



Supongo que podría regresarse al traductor original basado en el formulario web en lugar de la API, pero se vuelve al problema primero: cada vez que le cambien algo habría que cambiar el código.

Usar BING... :eek: :confused: :mad:

En fin, quizá. No he visto la API, esperemos que no sea igual de endemoniadamete compleja que lo que acostumbra Microsoft.

// Saludos

farute 01-07-2012 18:17:14

He intentado usar la api de bing con este ejemplo usando el componente TWebCopy
http://www.tmssoftware.com/site/blog.asp?post=119
Pero no hay manera de que me funcione, la traducción me aparece en blanco.

Aplaro que he generado y añadido una Clave de API,
pero no se que es lo que falla.


La franja horaria es GMT +2. Ahora son las 08:19:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi