Je réponds à ce poste, à la demande d'Andrea sur la façon d'insérer le traducteur de Google dans votre site. Il ya plusieurs façons de profiter des services de traduction automatique disponibles à partir de Google et au-delà. Nous pouvons utiliser des plugins écrits par d'autres, un simple script JavaScript de Google lui-même ou d'apprentissage mixte pour utiliser l'API, c'est à dire un ensemble de fonctions appelables - comme nous le verrons - de diverses manières.
Plugins
Je ne m'attarderai pas sur cette solution, car je pense n'est pas vraiment pertinent pour la demande d'Andrew , si j'ai bien compris. Par ailleurs, il est essentiellement une solution valable uniquement pour le blog et de ne pas utiliser personnalisées et génériques. Je ne peux que rappeler aux utilisateurs de WordPress , Global Translator , peut-être les plugins les plus simples, pratiques et populaires de ce type.
Script de pré par Google
La meilleure façon de traduire votre site ou votre blog est d'ajouter un script simple JavaScript fournis par Google. Il suffit d'aller sur le site translate.google.com onglet et cliquez sur «Outils». Depuis cette page vous pouvez prédéfinir les fonctions de la traduction ou laissez la valeur par défaut. Le script est très simple:
1 |
et comme un résultat que nous obtenons:

JavaScript AJAX APIs
Le script définitivement mélangés laisse peu de place pour la personnalisation! Qui veut commencer à utiliser des outils de bas niveau, permettra de profiter de l'API AJAX utilisé par JavaScript. L'API Google en général, tels que ceux utilisés pour créer des moteurs de recherche personnalisés , suivre leurs propres normes et sont faciles à utiliser immédiatement. En effet, celui qui a utilisé d'autres API seront immédiatement à l'aise. della nostra pagina HTML: La première chose à faire est d'inclure l'API avec une seule ligne script à insérer dans le corps HEAD de notre page HTML:
1 |
À ce stade, le système de traduction est chargée (en partie) et n'ont pas besoin est de l'utiliser. Un exemple 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 > < tête > title > < title > Exemple de traduction automatique </ title > "text/javascript" src = "http://www.google.com/jsapi" >< / script > < script de type = "text / javascript" src = "http://www.google.com/jsapi"> </ scripts > "text/javascript" > < script de type = "text / javascript"> google.load ("langue", "1"); / * ** @ Name: simpleTranslation () ** @ Description: dessine le texte dans «anglais» par le «texte» HTML **: Et elle se traduit via l'API (fonctions) google.language.translate () * / Fonction simpleTranslation () { var text = document.getElementById ("texte") innerHTML.; google.language.translate (texte, 'fr', 'fr', insertHTML); } / * ** @ Name: insertHTML () ** Description @: [événement] - fonction de rappel qui est appelé le termite **: La traduction (si elle est réussie ou non). Obtenu **: Le résultat, il est inséré dans la «traduction» du HTML ** Résultat @: résultat contient les informations indiquées sur le résultat * / Fonction insertHTML (result) { if (result.translation) { . document.getElementById («traduction») innerHTML = result.translation; } } / / google.setOnLoadCallback (simpleTranslation); </ scripts > </ tête > < corps > "text" > Hello, World! < / div > < div id = "text"> Bonjour, monde! </ div > "translation" >< / div > < div id = "traduction"> </ div > </ corps > </ html > |
Cet exemple montre combien il est facile de traduire une partie du texte dans notre page. Toute la documentation à cet égard est disponible sur Google AJAX API Langue
, Où vous pouvez trouver plus d'exemples et une documentation détaillée de toutes les classes.
Dans l'exemple proposé est un texte traduit de l'anglais vers l'italien. Il est également possible de demander au système de déterminer automatiquement le «langage» la source grâce à l'utilisation de la fonction 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 > < tête > title > < title > Exemple de traduction automatique avec auto-détection </ title > "text/javascript" src = "http://www.google.com/jsapi" >< / script > < script de type = "text / javascript" src = "http://www.google.com/jsapi"> </ scripts > "text/javascript" > < script de type = "text / javascript"> google.load ("langue", "1"); fonction de détection automatique () { var text = document.getElementById ("texte") innerHTML.; google.language.detect (texte, fonction (result) { if (result.language result.error! & &) { google.language.translate (texte, result.language, "il" fonction (result) { var traduits = document.getElementById ("traduction"); if (result.translation) { translated.innerHTML = result.translation; } } ); } } ); } / / google.setOnLoadCallback (autodétection); </ scripts > </ tête > < corps > "text" > Hello, World! < / div > < div id = "text"> Bonjour, monde! </ div > "translation" >< / div > < div id = "traduction"> </ div > </ corps > </ html > |
Cette autre exemple est le même que ci-dessus, sauf que 'texte' l'élément de texte est automatiquement reconnu et traduit en italien! Essayez d'inclure d'autres langues.
Un exemple utile de vérifier les traductions, avec deux zone de texte afin d'insérer dynamiquement des portions plus 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 > < tête > title > < title > Exemple de traduction automatique avec auto-détection </ title > "text/javascript" src = "http://www.google.com/jsapi" >< / script > < script de type = "text / javascript" src = "http://www.google.com/jsapi"> </ scripts > "text/javascript" > < script de type = "text / javascript"> google.load ("langue", "1"); Fonction en2it () { var text = document.getElementById ("anglais") de valeur.; google.language.translate (texte, 'fr', 'fr', fonction (result) { if (result.translation) { . document.getElementById ("italien") result.translation = valeur; } } ); } </ scripts > </ tête > < corps > "30" rows = "10" id = "english" >< / textarea > < textarea cols = "30" rows = "10" id = "Anglais"> </ textarea > "javascript:en2it()" > Traduci < / a > < une href = "javascript: en2it ()"> Traduire </ une > "30" rows = "10" id = "italian" >< / textarea > < textarea cols = "30" rows = "10" id = "italienne"> </ textarea > </ corps > </ html > |
RESTful Interface: Flash, PHP et Java
Je m'égare, peut-être, depuis la demande initiale, mais je pense intéressant et nécessaire pour compléter l'argument, nous y sommes. Grâce à l'utilisation du protocole REST (RESTful Interface), vous pouvez utiliser l'API de Google via les méthodes GET sur l'URL de base fourni:
1 | http://ajax.googleapis.com/ajax/services/search/web |
Cette technique vous permet d'utiliser la traduction dans d'autres langues et d'autres environnements, tels que Flash (ActionScript 3.0), PHP ou Java.
Dans le cas de Flash, par exemple, nous avons:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | HTTPService = new HTTPService ( ) ; services var: HTTPService = nouvelle classe HTTPService (); = 'http://ajax.googleapis.com/ajax/services/search/web' ; . Service url = 'http://ajax.googleapis.com/ajax/services/search/web'; v = '1.0' ; . demande de service v = '1 .0 '.; q = 'Paris Hilton' ; . service de demande q = 'Paris Hilton'.; ; services resultFormat = 'text'.; ( ResultEvent . RESULT , onServerResponse ) ; . service de addEventListener (résultat ResultEvent., onServerResponse); ( ) ; . service de send (); onServerResponse ( event : ResultEvent ) : void { onServerResponse fonction privée (event: ResultEvent): void { try { Object = JSON . decode ( event . result as String ) ; var json: Objet = JSON decode (résultat que event.. cordes ); / / Maintenant, amusez-vous avec les résultats ... ( ignored : Error ) { } Catch (ignoré: Erreur ) { } } |
La fonction JSON.docode() est disponible dans la bibliothèque as3corelib , dont j'ai rendu compte dans un précédent post.
Le Code Snippets de Google vous pouvez trouver de la documentation supplémentaire.










Bonjour ... félicitations pour la solution gamme que vous avez posté ...
Si vous laissez-moi vous poser une question, en espérant obtenir des réponses dès que possible ...
J'utilise l'API avec ce funzioncina:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TrasLang ) { initialiser la fonction (TrasLang) {
document. getElementById ( "text" ) . innerHTML ; document de var texte = getElementById ("text") innerHTML..;
( text , function ( result ) { google. langue. détecter (texte, la fonction (result) {
! result. error & amp ;& amp ; result. language ) { if (résultat d'erreur & amp;!. & amp; résultat langue.) {
( type , result. language , TrasLang. value , google. langue. Traduire (type, résultat. langue, TrasLang. valeur,
result ) { fonction (result) {
document. getElementById ( "text" ) ; var = document traduit getElementById ("texte").;
result. translation ) { if (traduction result.) {
result. translation ; traduits innerHTML = résultat de la traduction..;
}
});
}
});
}
Je suis allé à remplacer le texte dans le div avec le nom de texte et où je passe la langue à traduire avec une instruction SELECT.
Eh bien ... tout fonctionne bien pour des blocs de code, mais si le texte est à traduire le code HTML me donne l'erreur ...
J'ai essayé de voir s'il y avait une façon d'ignorer les balises html, mais ne pouvait pas trouver quelque chose, jusqu'à ce que je suis tombé sur votre bel article!
L'objectif est de traduire tout le texte qui n'est pas dans une balise de sorte que vous pouvez traduire un site entier ... peut vous aider? Merci
@ Andrea: la solution peut être assez compliqué. Si je comprends bien, en regardant l'API actuels fournis par Google, les balises HTML ne sont pas pris en compte. etc… C'est évidemment un très gros problème sur un texte formaté, qui contient gras, italique ou
spantags avec des classes ou des autressmall... etcMalheureusement, le problème est double: la première solution serait de «stripping», à savoir éliminer toutes les balises html avec prlevato
innerHTML, et ici vous pouvez utiliser une expression rationnelle sur la chaîne de lecture.La difficulté est plus tard. ,
span, etc… ? C'est, une fois traduit la chaîne comme la balise repositionné l'éducation commestrong,em,span, etc ...?Probablement vous avez besoin pour vous faire de cette technologie n'est pas idéal. L'API via JavaScript sont utilisés pour des petits bouts de texte, vous devriez essayer d'utiliser les fonctions serveur, telles que manipulés par PHP.
Ce que je sais, cette technique a aussi une limite de la traduction, ainsi que le formatage. Cela signifie que «grandes» quantités de texte ne sont pas traduits, cependant, indépendamment de si oui ou non contenir du code HTML.