fonction php de traduction et page voila
8 messages
• Page 1 sur 1
- turbo
- Nouveau WRInaute

- Messages: 30
- Inscription: 25 Fév 2004
fonction php de traduction et page voila
Bonjour, je me demandais si certains d'entre vous avez deja essayé de transmettre un mot a traduire a la page de voila traduction et a recuperer sa traduction par l'intermediaire d'un scripte php.
Je souhaiterais utiliser cela sur mon site pour traduire automatiquement des commentaires.
Je vais essayer de trouver les fonctions qui vont bien.
Si quelqu'un a une idée ou un commentaire n' hésitez pas.
Je souhaiterais utiliser cela sur mon site pour traduire automatiquement des commentaires.
Je vais essayer de trouver les fonctions qui vont bien.
Si quelqu'un a une idée ou un commentaire n' hésitez pas.
-

biddybulle - WRInaute passionné

- Messages: 1619
- Inscription: 30 Mai 2005
Angsuman l'a fait pour wordpress en se basant sur babylon ou google ou choix via un plug vendu autour de 30$.
- turbo
- Nouveau WRInaute

- Messages: 30
- Inscription: 25 Fév 2004
Je viens de tester un petit morceau de script qui fonctionne pour le momeent. Sa utilise curl, faut que ce soit installé et infomaniak l'a justement.
voici le morceau:
j'ai recupere les valeur du formulaire qui sont envoyés par la methode POST. (voir le code source de la page)
systran_lp pour le sens de traduction
systran_text pour le mot a traduire'
Le formulaire lui pointe versla page http://trans.voila.fr/voila
<?php
$ch = curl_init("http://trans.voila.fr/voila");
$fp = fopen("curl.txt", "w");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'systran_id=Voila-fr&systran_lp=fr_en&systran_text=mot a traduire');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
Sa copie le contenu de la page voila traduction dans le fichier curl.txt (mettre en 777 avant)
Sa fonctionne, il rest plus qu'a explorer le dom de la page pour trouver la traduction.
Je rencontre un probleme car l'inspector dom de firefox ne trouve pas le mot traduit , j'ai l'impression qu'il est inseré dans la page par l'intermediaire du dom et non pas directement visible en clair. Est ce fait expre? Pour augmenter la difficulté?
Je poursuis mes tests, si vous savez comment recuperer le mot traduit dite le.
Je laisse un lien pour montrer ce que ça donne:
http://www.loc-europe.com/curl.php
voici le morceau:
j'ai recupere les valeur du formulaire qui sont envoyés par la methode POST. (voir le code source de la page)
systran_lp pour le sens de traduction
systran_text pour le mot a traduire'
Le formulaire lui pointe versla page http://trans.voila.fr/voila
<?php
$ch = curl_init("http://trans.voila.fr/voila");
$fp = fopen("curl.txt", "w");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'systran_id=Voila-fr&systran_lp=fr_en&systran_text=mot a traduire');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
Sa copie le contenu de la page voila traduction dans le fichier curl.txt (mettre en 777 avant)
Sa fonctionne, il rest plus qu'a explorer le dom de la page pour trouver la traduction.
Je rencontre un probleme car l'inspector dom de firefox ne trouve pas le mot traduit , j'ai l'impression qu'il est inseré dans la page par l'intermediaire du dom et non pas directement visible en clair. Est ce fait expre? Pour augmenter la difficulté?
Je poursuis mes tests, si vous savez comment recuperer le mot traduit dite le.
Je laisse un lien pour montrer ce que ça donne:
http://www.loc-europe.com/curl.php
- turbo
- Nouveau WRInaute

- Messages: 30
- Inscription: 25 Fév 2004
Il semblerait que la fonction a utiliser pour parser le fichier soit loadHTMLFile qui est dispo uniquement sur php5, elle ne fonctionne pas chez moi, je vais donc migrer en esperant que ça pose pas de probleme aux scripts existants.
youpi
youpi
- turbo
- Nouveau WRInaute

- Messages: 30
- Inscription: 25 Fév 2004
Je viens finallement de parvenir a faire une fonction pour traduire un texte grace a voila:
function traduction_voila($systran_lp,$mot_a_traduire)
{
//envoyer les infos post et enregistre la page dans curl.txt
$ch = curl_init("http://trans.voila.fr/voila");
$fp = fopen("curl.txt", "w");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'systran_id=Voila-fr&systran_lp='.$systran_lp.'&systran_text='.$mot_a_traduire);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
//recup du mot traduit dans le fichier curl.txt par l'intermediaire du dom (31 ieme balise td , 2 ieme balise br et noeud suivant)
$doc =@DOMDocument::loadHTMLFile("curl.txt");
$liste_td = $doc->getElementsBytagname('td')->item(31);
$mot_traduit=$liste_td->getElementsBytagname('br')->item(2)->nextSibling->nodeValue;
if ($mot_traduit!==""){return $mot_traduit;}else{return FALSE;}
}
Il est évident que pour eviter de faire du tort au service voila il ne faut pas utiliser la fonction dans chaque page d'un site mais plutot enregistrer la traduction dans votre propre bd.
function traduction_voila($systran_lp,$mot_a_traduire)
{
//envoyer les infos post et enregistre la page dans curl.txt
$ch = curl_init("http://trans.voila.fr/voila");
$fp = fopen("curl.txt", "w");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'systran_id=Voila-fr&systran_lp='.$systran_lp.'&systran_text='.$mot_a_traduire);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
//recup du mot traduit dans le fichier curl.txt par l'intermediaire du dom (31 ieme balise td , 2 ieme balise br et noeud suivant)
$doc =@DOMDocument::loadHTMLFile("curl.txt");
$liste_td = $doc->getElementsBytagname('td')->item(31);
$mot_traduit=$liste_td->getElementsBytagname('br')->item(2)->nextSibling->nodeValue;
if ($mot_traduit!==""){return $mot_traduit;}else{return FALSE;}
}
Il est évident que pour eviter de faire du tort au service voila il ne faut pas utiliser la fonction dans chaque page d'un site mais plutot enregistrer la traduction dans votre propre bd.
- turbo
- Nouveau WRInaute

- Messages: 30
- Inscription: 25 Fév 2004
Et voici la version qui n'utilise pas de fichier intermediaire:
function traduction_voila_v2($systran_lp,$mot_a_traduire)
{
$ch = curl_init();
curl_setopt ($ch,CURLOPT_FRESH_CONNECT, 1);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'systran_id=Voila-fr&systran_lp='.$systran_lp.'&systran_text='.$mot_a_traduire);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//curl_setopt ($ch, CURLOPT_REFERER, "http://www.loc-europe.com/");
//curl_setopt ($ch, CURLOPT_USERAGENT, "Curl");
curl_setopt($ch, CURLOPT_URL, "http://trans.voila.fr/voila");
$contenu=curl_exec($ch);
curl_close($ch);
//recup du mot traduit dans la variable $contenu par l'intermediaire du dom (31 ieme balise td , 2 ieme balise br et noeud suivant)
$doc = @DOMDocument::loadHTML($contenu);
$liste_td = $doc->getElementsBytagname('td')->item(31);
$mot_traduit=$liste_td->getElementsBytagname('br')->item(2)->nextSibling->nodeValue;
if ($mot_traduit!==""){return $mot_traduit;}else{return FALSE;}
}
function traduction_voila_v2($systran_lp,$mot_a_traduire)
{
$ch = curl_init();
curl_setopt ($ch,CURLOPT_FRESH_CONNECT, 1);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'systran_id=Voila-fr&systran_lp='.$systran_lp.'&systran_text='.$mot_a_traduire);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//curl_setopt ($ch, CURLOPT_REFERER, "http://www.loc-europe.com/");
//curl_setopt ($ch, CURLOPT_USERAGENT, "Curl");
curl_setopt($ch, CURLOPT_URL, "http://trans.voila.fr/voila");
$contenu=curl_exec($ch);
curl_close($ch);
//recup du mot traduit dans la variable $contenu par l'intermediaire du dom (31 ieme balise td , 2 ieme balise br et noeud suivant)
$doc = @DOMDocument::loadHTML($contenu);
$liste_td = $doc->getElementsBytagname('td')->item(31);
$mot_traduit=$liste_td->getElementsBytagname('br')->item(2)->nextSibling->nodeValue;
if ($mot_traduit!==""){return $mot_traduit;}else{return FALSE;}
}
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Consultez la description détaillée des produits ou services de Google suivants : Outils linguistiques de Google
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


