Yo respondo con este post, a petición de Andrea sobre cómo insertar el traductor de Google en su web. Hay varias maneras de aprovechar los servicios de traducción automática disponibles en Google y más allá. Podemos utilizar plugins escritos por otros, un simple script de JavaScript de Google en sí o de aprendizaje mixto para uso de la API, es decir, un conjunto de funciones que se puede llamar - como veremos - de diversas maneras.
Plugins
No voy a detenerme en esta solución, ya que creo que no es realmente relevante para la solicitud de Andrés , si he entendido bien. Por otra parte, es esencialmente una solución válida sólo para el blog y no utilizar la costumbre y genéricos. Yo sólo puedo señalar a los usuarios de WordPress , Traductor Global , tal vez los plugins más sencillo, práctico y popular de este tipo.
Script previo por Google
La forma más fácil de traducir su sitio web o tu blog es agregar un simple script JavaScript proporcionada por Google. Sólo tienes que ir al sitio translate.google.com ficha y haga clic en 'Herramientas'. Desde esta página puedes funciones preprogramadas de la traducción o deje el valor predeterminado. El script es muy simple:
1 |
y como resultado se obtiene:

JavaScript API AJAX
El guión mezcla definitivamente deja poco espacio para la personalización! ¿Quién quiere empezar a usar herramientas de bajo nivel, le ayudará a aprovechar la API AJAX utiliza JavaScript. El API de Google en general, tales como los utilizados para crear motores de búsqueda personalizados , siga sus propios estándares y son fáciles de usar de inmediato. De hecho, cualquiera que haya usado otras API será inmediatamente cómodo. della nostra pagina HTML: La primera cosa a hacer es incluir la API con una sola línea script que se insertan en el cuerpo HEAD de nuestra página HTML:
1 |
En este punto, el sistema de traducción se carga (en parte) y no es necesario es para usarlo. Un ejemplo simple:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | < html > < cabeza > title > < título > Ejemplo de traducción automática </ título > "text/javascript" src = "http://www.google.com/jsapi" >< / script > < script de type = "text / javascript" src = "http://www.google.com/jsapi"> </ script de > "text/javascript" > < script de type = "text / javascript"> google.load ("lenguaje", "1"); / * ** @ Nombre: simpleTranslation () ** @ Descripción: dibuja el texto de 'Inglés' de 'texto' del HTML **: Y que se traduce a través de la API (función) google.language.translate () * / simpleTranslation función () { var text = document.getElementById ("text") innerHTML.; google.language.translate (texto, 'en', 'en', insertHTML); } / * ** @ Nombre: insertHTML () ** @ Descripción: [Evento] - función callback que se llama la termita **: La traducción (si tiene éxito o no). Obtenidos **: El resultado, que se inserta en la "traducción" del HTML ** @ Resultados: resultado contiene la información indicada en el resultado * / función insertHTML (resultado) { if (result.translation) { . document.getElementById ("traducción") innerHTML = result.translation; } } / / google.setOnLoadCallback (simpleTranslation); </ script de > </ cabeza > < cuerpo > "text" > Hello, World! < / div > < div id = "text"> Hola, Mundo! </ div > "translation" >< / div > < div id = "traducción"> </ div > </ cuerpo > </ html > |
Este ejemplo muestra lo fácil que es convertir una porción de texto en nuestra página. Toda la documentación al respecto está disponible en Google AJAX Language API
, ¿Dónde se pueden encontrar más ejemplos y documentación detallada de todas las clases.
En el ejemplo propuesto es un texto traducido del Inglés al italiano. También puede pedir al sistema que determine automáticamente el "lenguaje" de origen a través del uso de la función google.language.detect() :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | < html > < cabeza > title > < título > Ejemplo de la traducción automática con detección automática </ título > "text/javascript" src = "http://www.google.com/jsapi" >< / script > < script de type = "text / javascript" src = "http://www.google.com/jsapi"> </ script de > "text/javascript" > < script de type = "text / javascript"> google.load ("lenguaje", "1"); función de detección automática () { var text = document.getElementById ("text") innerHTML.; google.language.detect (texto, función (resultado) { if (! result.error result.language & &) { google.language.translate (texto, result.language, "eso" función (resultado) { var traducido = document.getElementById ("traducción"); if (result.translation) { translated.innerHTML = result.translation; } } ); } } ); } / / google.setOnLoadCallback (detección automática); </ script de > </ cabeza > < cuerpo > "text" > Hello, World! < / div > < div id = "text"> Hola, Mundo! </ div > "translation" >< / div > < div id = "traducción"> </ div > </ cuerpo > </ html > |
Este otro ejemplo es el mismo que el anterior, excepto que "texto" el elemento de texto se reconoce automáticamente y traducida al italiano! Trate de incluir otros idiomas.
Un ejemplo útil para verificar las traducciones, con un área de texto de dos a fin de insertar dinámicamente partes más importantes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | < html > < cabeza > title > < título > Ejemplo de la traducción automática con detección automática </ título > "text/javascript" src = "http://www.google.com/jsapi" >< / script > < script de type = "text / javascript" src = "http://www.google.com/jsapi"> </ script de > "text/javascript" > < script de type = "text / javascript"> google.load ("lenguaje", "1"); en2it función () { var text = document.getElementById ("Inglés") de valor.; google.language.translate (texto, 'en', 'en', función (resultado) { if (result.translation) { . document.getElementById ("Italiano") result.translation = valor; } } ); } </ script de > </ cabeza > < cuerpo > "30" rows = "10" id = "english" >< / textarea > < textarea cols = "30" rows = "10" id = "Inglés"> </ textarea > "javascript:en2it()" > Traduci < / a > < un href = "javascript: en2it ()"> Translate </ un > "30" rows = "10" id = "italian" >< / textarea > < textarea cols = "30" rows = "10" id = "italiana"> </ textarea > </ cuerpo > </ html > |
REST Interface: Flash, PHP y JAVA
Estoy divagando, tal vez, desde la solicitud inicial, pero creo que interesante y necesario para completar el argumento, estamos en ello. Mediante el uso de Protocolo REST (REST interfaz) se puede utilizar la API de Google a través de métodos GET en la URL base, siempre que:
1 | http://ajax.googleapis.com/ajax/services/search/web |
Esta técnica permite el uso de la traducción en otros idiomas y en otros ambientes, tales como Flash (ActionScript 3.0), PHP o Java.
En el caso de Flash, por ejemplo, tenemos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | HTTPService = new HTTPService ( ) ; var servicio: HTTPService HTTPService = new (); = 'http://ajax.googleapis.com/ajax/services/search/web' ; . servicio url = 'http://ajax.googleapis.com/ajax/services/search/web; v = '1.0' ; . El servicio de solicitud de v = '1 .0 '.; q = 'Paris Hilton' ; . solicitud de servicio q = 'Paris Hilton'.; ; servicio resultFormat = 'text'.; ( ResultEvent . RESULT , onServerResponse ) ; . servicio addEventListener (RESULTADO ResultEvent., onServerResponse); ( ) ; . El servicio de send (); onServerResponse ( event : ResultEvent ) : void { onServerResponse private function (evento: ResultEvent): void { try { Object = JSON . decode ( event . result as String ) ; var json: Objeto = JSON decodificar (como resultado event.. cuerdas ); / / Ahora un buen rato con los resultados ... ( ignored : Error ) { } Catch (ignorados: Error ) { } } |
La función JSON.docode() está disponible en la biblioteca as3corelib , que informó en un post anterior.
En fragmentos de código Google se puede encontrar documentación adicional.










Hola ... felicidades por la solución de todo el que lo hace con ...
Si me dejas hacerte una pregunta, con la esperanza de obtener respuestas lo más pronto posible ...
Estoy usando la API de este funzioncina:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TrasLang ) { función de inicialización (TrasLang) {
document. getElementById ( "text" ) . innerHTML ; var texto = documento getElementById ("text") innerHTML..;
( text , function ( result ) { google. idioma. detectar (texto, function (result) {
! result. error & amp ;& amp ; result. language ) { if (resultado de error & amp;!. & amp; resultado del lenguaje.) {
( type , result. language , TrasLang. value , google. idioma. traducir (tipo, resultado. idioma, TrasLang. valor,
result ) { función (resultado) {
document. getElementById ( "text" ) ; var = traducido del documento getElementById ("text").;
result. translation ) { if (traducción result.) {
result. translation ; traducido innerHTML = resultado de la traducción..;
}
});
}
});
}
Fui a sustituir el texto en el div con el nombre de texto y en el que pasar el idioma a traducir con una instrucción SELECT.
Oh, bueno ... todo funciona bien para los bloques de código, pero si el texto es traducir el código HTML me da error ...
Yo estaba tratando de ver si había una manera de hacer caso omiso de las etiquetas HTML pero no pudo encontrar nada, hasta que me encontré con su buen artículo!
El objetivo es traducir todo el texto que no está dentro de una etiqueta para que pueda traducir un sitio completo ... puede ayudar? gracias
@ Andrea: la solución puede ser bastante complicado. Como yo lo entiendo, mirando a la API actual proporcionado por Google, las etiquetas HTML que no se tienen en cuenta. etc… Esto es obviamente un problema muy grande en un texto con formato, que contiene negrita, cursiva o
spanetiquetas con las clases o cualquier otrasmall... etcPor desgracia, el problema es doble: la primera solución sería la de "stripping", es decir, para eliminar cualquier etiqueta html prlevato con
innerHTML, y aquí se puede usar una expresión regular en la cadena de lectura.La dificultad es más tarde. ,
span, etc… ? Es decir, una vez traducida la cadena como la etiqueta de reposicionar la educación comostrong,em,span, etc ...?Es probable que usted necesita hacer para que esta tecnología no es lo ideal. La API a través de JavaScript se usan para pequeñas partes de texto, deberías intentar usar las funciones del servidor, tales como manipulados por PHP.
Lo que yo sé, esta técnica también tiene un límite de la traducción, así como el formato. Esto significa que los "grandes" cantidades de texto no se traducen, sin embargo, independientemente de si contienen o no HTML.