Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 10/01/2013, à 02:50

Ph3nix_

Accent - Envoyer une requète à google Traduction avec curl

Bonsoir,

J'essaye désespérément d'envoyer une requête à google traduction avec curl avec la commande suivante:

translate() {
curl -s -A "Mozilla" "http://translate.google.com.br/translate_a/t?client=t&text=$1&hl=pt-BR&sl=${2:-"fr"}&tl=${3:-"en"}&multires=1&ssel=0&tsel=0&sc=1" | awk -F'"' '{print $2}' | iconv --from-code=ISO-8859-1 --to-code=UTF-8
}

Le résultat retourné est correct lorsque la chaîne passé en paramètre ($1) ne contient pas d'accent (exemple: translate "bonjour" fr en), en revanche lorsque la chaîne contient des accents le résultat retourné est incohérent.
J'ai bien essayer d'encoder la chaîne en URI  en perl puis l'inséré dans le lien mais cela ne fonctionne pas.

Merci de votre aide,


Hiroshima 45 / Chernobyl 86 / Windows '95

Hors ligne

#2 Le 10/01/2013, à 13:10

shoot76

Re : Accent - Envoyer une requète à google Traduction avec curl

Regarde avec ceci si ça fonctionne :
. urlencode($1)


~ La mort d'une personne est une tragédie, celle d'un million c'est des statistiques. [J. Staline]

Hors ligne

#3 Le 10/01/2013, à 20:25

Ph3nix_

Re : Accent - Envoyer une requète à google Traduction avec curl

Non ça ne fonctionne pas..

Je donne quelques retour:
0 - Sans encodage et sans accent (Bon résultat)
Retour:

translate "vol"
[[["flight","vol","",""]],[["substantivo",["flight","theft","flying","robbery","stealing","steal","larceny","thievery","plunder","piracy","lift","stealthiness"],[["flight",["vol","fuite","envol","vole","essor","aviation"],[1],0.37955719],["theft",["vol"],[7],0.066995822],["flying",["vol","aviation","prospectus"],[1],0.023517746],["robbery",["vol","brigandage","pillage"],[3],0.0062315823],["stealing",["vol"],[7],0.0038391664],["steal",["vol"],[5],0.0010172778],["larceny",["vol","larcin"],[7],0.00028693638],["thievery",["vol"],[7],0.00024542969],["plunder",["pillage","butin","vol"],[2],3.5914301e-05],["piracy",["piraterie","piratage","contrefaon","pillage","vol"],[4],6.0489551e-06],["lift",["ascenseur","assistance","cric","aide","cargaison","vol"],[6],5.7150078e-07],["stealthiness",["caractre furtif","manire furtive","secret","vol"],[9],5.3687529e-07]]]],"fr",,[["flight",[5],1,0,973,0,1,0]],[["vol",4,,,""],["vol",5,[["flight",973,1,0],["theft",23,1,0],["flying",1,1,0],["robbery",1,1,0],["flights",0,1,0]],[[0,3]],"vol"]],,,[["fr"]],8]

1 - Sans encoder avec accent
Retour:

translate "épée"
[[["  p  e","épée","",""]],,"fr",,[[" ",[5],1,0,764,0,2,0],["p ",[6],1,0,527,2,4,0],["e",[7],1,0,804,4,5,0]],[[" ",5,[[" ",764,1,0]],[[0,2]],"épée"],["p ",6,[["p ",527,1,0]],[[2,5]],""],["e",7,[["e",804,1,0],["th",0,1,0],["an",0,1,0],["email",0,1,0]],[[5,6]],""]],,,[["fr"]],1]

(Le résultat n'est pas bon même en le ré-encodant en utf8)

2 - En encodant avec --data-urlencode "text=$1" (option de curl)
Cmd:

translate() {
	curl -s -A "Mozilla" --data "client=t" --data-urlencode "text=$1" --data "hl=pt-BR&sl=${2:-"fr"}&tl=${3:-"en"}&multires=1&ssel=0&tsel=0&sc=1" "http://translate.google.com.br/translate_a/t"
}

Retour:

translate "épée"
[[["  p  e","épée","",""]],,"fr",,[[" ",[5],1,0,764,0,2,0],["p ",[6],1,0,527,2,4,0],["e",[7],1,0,804,4,5,0]],[[" ",5,[[" ",764,1,0]],[[0,2]],"épée"],["p ",6,[["p ",527,1,0]],[[2,5]],""],["e",7,[["e",804,1,0],["th",0,1,0],["an",0,1,0],["email",0,1,0]],[[5,6]],""]],,,[["fr"]],1]

3 - En ré-encodant avec urlencode:
Cmd:

translate3() {
	curl -s -A "Mozilla" "http://translate.google.com.br/translate_a/t?client=t&text=`urlencode -m "$1"`&hl=pt-BR&sl=${2:-"fr"}&tl=${3:-"en"}&multires=1&ssel=0&tsel=0&sc=1"
}

Retour:

translate "épée"
[[["       e p","ÿÿpÿÿe","",""]],,"fr",,[[" ",[5],1,1,984,0,2,0],[" ",[6],0,1,970,2,4,0],[" ",[7],0,1,968,4,6,0],["",[8],0,1,993,6,7,0],["e",[9],0,0,602,7,8,0],["p",[10],1,0,603,8,9,0]],[[" ",5,[[" ",984,1,1]],[[0,2]],"ÿÿpÿÿe"],[" ",6,[[" ",970,0,1]],[[2,4]],""],[" ",7,[[" ",968,0,1]],[[7,9]],""],["",8,[["",993,0,1]],[[6,7]],""],["e",9,[["e",602,0,0],["email",3,0,0],["th",1,0,0],["an",0,0,0]],[[9,10]],""],["p",10,[["p",603,1,0]],[[4,6]],""]],,,[["fr"]],2]

(C'est encore pire)

Dernière modification par Ph3nix_ (Le 10/01/2013, à 20:27)


Hiroshima 45 / Chernobyl 86 / Windows '95

Hors ligne

#4 Le 10/01/2013, à 20:44

shoot76

Re : Accent - Envoyer une requète à google Traduction avec curl

J'avoue ne pas savoir hmm

J'ai vérifié la norme ISO que tu utilise, c'est la bonne, pareille pour l'encodage. Va falloir attendre plus expérimenté que moi j'en ai bien peur


~ La mort d'une personne est une tragédie, celle d'un million c'est des statistiques. [J. Staline]

Hors ligne

#5 Le 10/01/2013, à 21:20

Ph3nix_

Re : Accent - Envoyer une requète à google Traduction avec curl

J'ai trouvé, avec wget ça fonctionne:

translate() {
	wget -U "Mozilla/5.0" -qO - "http://translate.google.com/translate_a/t?client=t&text=$1&sl=${2:-"fr"}&tl=${3:-"en"}" | sed 's/\[\[\[\"//' | cut -d \" -f 1
}

Hiroshima 45 / Chernobyl 86 / Windows '95

Hors ligne

Haut de page ↑