|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| traduire les codes uft 8 d'une requête Api |
| Débuté par Michel FOURNIER, 29 oct. 2025 07:07 - 5 réponses |
| |
| | | |
|
| |
Membre enregistré 1 message |
|
| Posté le 29 octobre 2025 - 07:07 |
Bonjour, j'ai fait un logiciel qui aide à l'apprentissage du vocabulaire. j'envoie une requête api sur le site mymemory; par exmple : https://api.mymemory.translated.net/get…=" + "the tree is hidden in the forest" + "&langpair=en|fr
je reçois en réponse (extrait) : {"responseData":{"translatedText":"\" \"l'arbre est cach\u00e9 dans la for\u00eat\"
Comment obtenir la traduction définitive et dès réception (suppression des codes pour le "é" de "caché" et pour le "ê" de "forêt" "l'arbre et caché dans la forêt" sans passer par le laborieux système de conversion code par code.
Voici mon code:
sUrl est une chaîne sReponse est une chaîne UNICODE=SAI_Texte_anglais sUrl = "https://api.mymemory.translated.net/get…=" + SAI_Texte_anglais + "&langpair=en|fr"
// Envoyer la requête (GET par défaut) HTTPRequête(sUrl)
sReponse= UTF8ToString(HTTPDonneRésultat(), charsetAnsi) //UTF8VersChaîne(sTexteTraduit, alphabetCourant) SAI_Texte_natal = ExtraitChaîne(sReponse,6,"""",DepuisDébut)
merci de votre retour, Bonne programmation Michel |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 496 messages |
|
| Posté le 29 octobre 2025 - 09:44 |
Bonjour,
La solution à votre problème est de ne pas passer par une chaîne puis un ExtraitChaîne() très peu adapté pour le futur, mais par le type JSON ou les fonctions JSONVersVariant qui font cette conversion directement pour vous.
jRéponse est un JSON = HTTPDonneRésultat() SAI_Texte_natal = jRéponse.responseData.translatedText
vRéponse est un Variant = JSONVersVariant(HTTPDonneRésultat()) SAI_Texte_natal = vRéponse.responseData.translatedText
Enfin, il serait idéal de remplacer l'usage de HTTPRequête() et HTTPDonneRésultat() par les types httpRequête et httpRéponse, avec la fonction Envoie() qui va avec. Le résultat se récupère en inspectant la propriété ..Contenu de la variable httpRéponse. |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 octobre 2025 - 12:59 |
bchanudet a écrit :
Bonjour, La solution à votre problème est de ne pas passer par une chaîne puis un ExtraitChaîne() très peu adapté pour le futur, mais par le type JSON ou les fonctions JSONVersVariant qui font cette conversion directement pour vous. jRéponse est un JSON = HTTPDonneRésultat() SAI_Texte_natal = jRéponse.responseData.translatedText
vRéponse est un Variant = JSONVersVariant(HTTPDonneRésultat()) SAI_Texte_natal = vRéponse.responseData.translatedText Enfin, il serait idéal de remplacer l'usage de HTTPRequête() et HTTPDonneRésultat() par les types httpRequête et httpRéponse, avec la fonction Envoie() qui va avec. Le résultat se récupère en inspectant la propriété ..Contenu de la variable httpRéponse.
===================================================================
Merci pour cette réponse. je n'ai jamais utilisé Json.
voici mes lignes de programme : cMaRequête est un httpRequête cMaRéponse est un httpRéponse cMaRequête.URL = "https://api.mymemory.translated.net/get…=" + "the tree is hidden in the forest" + "&langpair=en|fr" cMaRéponse = HTTPEnvoie(cMaRequête.URL)
SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) SINON Info(cMaRéponse.Contenu) FIN
jRéponse est un JSON = HTTPDonneRésultat() SAI_Texte2 = jRéponse.responseData.translatedText // ou (au cas où le type JSON ne soit pas disponible) vRéponse est un Variant = JSONVersVariant(HTTPDonneRésultat()) SAI_Texte2 = vRéponse.responseData.translatedText
Constat : A la premiere ligne : "SAI_Texte2 = jRéponse.responseData.translatedText " - j'ai une erreur : ( le variant n'est pas un objet) - Le contenu de l'info ne contient rien de concret
Merci de votre concours Michel |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 297 messages |
|
| Posté le 29 octobre 2025 - 16:39 |
Bonjour, Si on avait du code balisé, on pourrait peut être t'aider. Là c'est comme si on n'avait pas de code et ls gens ne lisent même pas.
-- Il y a peut être plus simple, mais, ça tourne Quand tout a échoué, utilise l'option RTFM |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 20 messages |
|
| Posté le 29 octobre 2025 - 17:24 |
Hello En passant par un objet JSON (en ayant traqué la structure de la réponse) , la conversion est automatique
leretour est un JSON
SI httpRequête("https://api.mymemory.translated.net/get?q=the%20tree%20is%20hidden%20in%20the%20forest&langpair=en|fr") ALORS leretour=HTTPDonneRésultat() POUR TOUT uneReponse de leretour.matches Trace(uneReponse.translation) FIN FIN
Bon dev. |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 octobre 2025 - 12:44 |
Samir BOUCHETIBAT a écrit :
Hello En passant par un objet JSON (en ayant traqué la structure de la réponse) , la conversion est automatique leretour est un JSON
SI httpRequête("https://api.mymemory.translated.net/get?q=the%20tree%20is%20hidden%20in%20the%20forest&langpair=en|fr") ALORS leretour=HTTPDonneRésultat() POUR TOUT uneReponse de leretour.matches Trace(uneReponse.translation) FIN FIN Bon dev.
Bonjour, merci beaucoup ça fonctionne parfaitement bon dev michel |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|