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