Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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)


~ Data-sientist freelance : https://skulder.fr

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


~ Data-sientist freelance : https://skulder.fr

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