Traduction via google (ou autre...)

Contenu du snippet

Le titre à l'avantage d'être explicite:
- comme pour la correction d'orthographe, on va extraire la source de la page chez Google et y récupérer le résultat.
La suite est plutôt simple, étant donné que le résultat est toujours au même endroit dans la source (entre les mêmes balises)

Source / Exemple :


###########   traduction.php   ###########
<?php

$form_select="
<OPTION value=en|de>Anglais >> Allemand</OPTION>
<OPTION value=en|es>Anglais >> Espagnol</OPTION>
<OPTION value=en|fr>Anglais >> Français</OPTION>
<OPTION value=en|it>Anglais >> Italien</OPTION>
<OPTION value=en|pt>Anglais >> Portugais</OPTION>
<OPTION value=en|ja>Anglais >> Japonais</OPTION>
<OPTION value=en|ko>Anglais >> Coréen</OPTION>
<OPTION value=en|zh-CN>Anglais >> Chinois</OPTION>
<OPTION value=de|en>Allemand >> Anglais</OPTION>
<OPTION value=de|fr>Allemand >> Français</OPTION>
<OPTION value=es|en>Espagnol >> Anglais</OPTION>
<OPTION value=fr|en>Français >> Anglais</OPTION>
<OPTION value=fr|de>Français >> Allemand</OPTION>
<OPTION value=it|en>Italien >> Anglais</OPTION>
<OPTION value=pt|en>Portugais >> Anglais</OPTION>
<OPTION value=ja|en>Japonais >> Anglais</OPTION>
<OPTION value=ko|en>Coréen >> Anglais</OPTION>
<OPTION value=zh-CN|en>Chinois >> Anglais</OPTION>";

### on verifie la présence des variables 
if(isset($_GET['q'])){ $q = $_GET['q']; }else{ $q =""; }
if(isset($_GET['lang'])){ $lang = $_GET['lang'];  
### on met un petit selected dans le formulaire pour la langue   
$form_select = str_replace("$lang", "$lang selected", $form_select); 
}else{ $lang=""; }

echo'<html>

<head>
<title>Traduction Via Google</title>
<style>
.texte1{ font-family: Arial; font-size: 14px; color: #cc0000;}
.texte2{ font-family: Arial; font-size: 16px; color: #000080;}
.test{ font-family: Arial; font-size: 11px; color: #000000;}
</style>
</head>

<body>
<center><a class="texte2"><b>Traduction Via Google</b>
<form method="GET" action="traduction.php">
<input type="hidden" name="a" value="traduction">
<textarea rows="4" name="q" cols="46">'.$q.'</textarea><BR><BR>De
<SELECT name=lang>
'.$form_select.'
</SELECT>
<INPUT type=submit value=Traduire onClick="this.value=\'Patientez...\';this.blur();">
</form>
<BR><BR>';

if(isset($_GET['a'])){
$q = urlencode($q);
### recherche la source chez google avec le mot à traduire: $q 
$source = implode ('', file ("http://translate.google.com/translate_t?text=$q&langpair=$lang&hl=fr&ie=UTF-8&oe=UTF-8")); 
### decoupage de $source au debut
$source = strstr($source, '<div id=result_box dir=ltr>'); 
### decoupage de $source à la fin
$fin_source = strstr($source, '</div>'); 
### supprimer $fin_source de la chaine $source 
$proposition = str_replace("$fin_source","", $source); 
$proposition = str_replace("<div id=result_box dir=ltr>","", $proposition);   
### affichage du resultat 
echo'<a class="texte1">Traduction:<BR><textarea rows="4" name="a" cols="46">'.$proposition.'</textarea></center>';
### décommentez cette ligne pour tester l'url
#echo'<br><br><a href="'.$url.'" target="_Blank" class="texte1">'.$url.'</a><br><br><a class="test">'.htmlentities($source).'</a>'; 
}
?>
</body>

</html>

Conclusion :


Maintenant, il est asse simple de proposer une traduction avec correction d'orthographe (dans la langue de recherche) si aucune traduction n'est trouvée.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (askmove)