| |
Membre enregistré 445 messages Popularité : +6 (6 votes) |
|
Posté le 26 novembre 2022 - 10:40 |
Bonjour,
j'ai la clé google, j'ai aussi une clé DEEPL, comment la mettre dans Windev, SVP ? ça permet de traduire les textes des champs ,boutons et autre Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 26 novembre 2022 - 14:42 |
Salut Raplh,
Je ne savais pas que l'on pouvais mettre une clé DEEPL !
J'ai essayé d'ajouté l'api fournie par DEEPL, mais sans résultat Trop nul dans le domaine des appels API. Malgré le lien d'aide pour utiliser cette api, je cale !
https://www.deepl.com/docs-api
Bon courage. Christian
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 445 messages Popularité : +6 (6 votes) |
|
Posté le 26 novembre 2022 - 15:34 |
Bonsoir C'est PCSOFT qui doit donner le format A bientôt |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 13 décembre 2022 - 17:50 |
Bonsoir à tous,
Après consultation ST ( je passerai le détail de la réponse ) , et recherche de mon côté, je n'arrive pas à coder l'appel.
J'ai codé cela :
reqhttpenvoi est un httpRequête reqhttpreponse est un httpRéponse
reqhttpenvoi..URL = "https://api-free.deepl.com/v2/translate" reqhttpenvoi.Entête["ContentType"] = "application/x-www-form-urlencoded" reqhttpenvoi.Entête["Authorization"] = "DeepL-Auth-Key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" reqhttpenvoi.Entête["Host"] = "api-free.deepl.com" reqhttpenvoi.Entête["Content-Length"] = 37 reqhttpenvoi.Entête["User-Agent"] = "YourApp/1.2.3" reqhttpenvoi.Entête["target_lang"] = "DE" reqhttpenvoi.Entête["text"] = "Hello world!"
reqhttpreponse = HTTPEnvoie(reqhttpenvoi)
SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) SINON Trace("Type de réponse") Trace(reqhttpreponse..ContentType) Trace("Réponse") Trace(reqhttpreponse..Contenu) FIN
Dans l'aide de l'appel DeepL il préconise ce format :
POST /v2/translate HTTP/2 Host: api-free.deepl.com Authorization: DeepL-Auth-Key 3d9xxxxxxxx User-Agent: YourApp/1.2.3 Content-Length: 37 Content-Type: application/x-www-form-urlencoded text=Hello%2C%20world!&target_lang=DE
J'ai sûrement "cafouillé" quelque part mais j'ai systèmatiquement un retour 400 avec message erreur : Type de réponse application/json Réponse {"message":"Parameter 'text' not specified."}
Si une âme charitable et compétente en la matière pouvait m'aider
Bonne fin de soirée et bon dev à tous ...
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 844 messages Popularité : +40 (42 votes) |
|
Posté le 13 décembre 2022 - 18:28 |
Bonjour, votre exemple utilise GET et non POST comme dans leur exemple.
curl -X POST "https://api-free.deepl.com/v2/translate" \N -H "Autorisation : DeepL-Auth-Key [yourAuthKey]". \ -d "text=Hello%2C%20world ! \ -d 'target_lang=DE
Rubén |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 13 décembre 2022 - 21:14 |
Bonsoir Rubén,
Merci pour ton retour. Comme je le disais plus haut, c'est un univers que je ne maitrise pas du tout. Je tatonne, cherche, mais ne trouve pas.
Si j'osais demander, tu coderais comment au vu de leur exemple ?
Vais continuer à pousser mes recherches qui me serviront pour la suite.
Bonne soirée et encore merci pour ton retour
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 844 messages Popularité : +40 (42 votes) |
|
Posté le 13 décembre 2022 - 22:06 |
Bonjour, essayez ceci. Sans le DeepL-Auth-Key je ne peux pas vous en dire plus.
reqhttpenvoi est un httpRequête reqhttpreponse est un httpRéponse reqhttpenvoi.Méthode = httpPost reqhttpenvoi.URL = "https://api-free.deepl.com/v2/translate"
reqhttpenvoi.Entête["Authorization"] = "DeepL-Auth-Key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
reqhttpenvoi.Entête["target_lang"] = "DE" reqhttpenvoi.Entête["text"] = "Hello world!"
reqhttpreponse = HTTPEnvoie(reqhttpenvoi)
SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) SINON Trace("Type de réponse") Trace(reqhttpreponse.CodeEtat) Trace(reqhttpreponse.DescriptionCodeEtat) Trace("--------------------------------------") Trace(reqhttpreponse.ContentType) Trace("Réponse") Trace(reqhttpreponse.Contenu) FIN
Rubén |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 13 décembre 2022 - 22:19 |
Merci encore Rubén
Le DeepL-Auth-Key est une clé donnée lors de l'enregistrement et pour utilisation. J'obtient tjrs la réponse ci-dessous.
Type de réponse 400 -------------------------------------- application/json Réponse {"message":"Parameter 'text' not specified."}
MAlheureusement je n'ai pas eu le soutient du "S_T" sans la commande de la V27 ou v28
Je vais finir par botter en touche malgré ma pugnacité.
Demain sera un autre jour...
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 844 messages Popularité : +40 (42 votes) |
|
Posté le 13 décembre 2022 - 22:39 |
Rebonjour. Dans l'exemple, les espaces sont codés. Essayez la traduction de 0123456789 pour voir si vous obtenez la même erreur. Si vous n'obtenez pas la même erreur, essayez avec
reqhttpenvoi.Entête["text"] = URLEncode("Hello world !")
Pour transmettre le texte à l'API
Selon les instructions, le texte doit être UTF-8.
"Text to be translated. Only UTF-8-encoded plain text is supported. The parameter may be specified multiple times and translations are returned in the same order as they are requested. Each of the parameter values may contain multiple sentences."
Essayez aussi
reqhttpenvoi.Entête["text"] = ChaîneVersUTF8("Hello world !")
RubénMessage modifié, 13 décembre 2022 - 22:45 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 14 décembre 2022 - 08:53 |
Bonjour Rubèn,
Malheureusement, tjrs même erreur 400 avec même message
J'ai envoyé un mail au SAV deepL hier, et la réponse est rapide : Ce reporter à l'aide, ne font pas de sav avec language prog Windev.
Normal, au vu des différents Softs, mais bon !
Je me donne encore cette matinée, après trop de temps perdu et non facturé ...
Merci pour ttes tes soluces que tu m'as données, même si cela n'a rien changé, c'est sympa.
Christian
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 57 messages Popularité : +9 (11 votes) |
|
Posté le 14 décembre 2022 - 09:39 |
Bonjour,
La recherche des ressources pratiques trouve un exemple dans la LST 129 :
Exemple de la LST n°129 : WD QuickTranslate L'exemple WD QuickTranslate est un exemple WINDEV et WINDEV Mobile et illustre l'usage du composant interne Traduction livré avec celui-ci.
Pour ne pas réinventer la roue !
-- A+ Dev-OC |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 14 décembre 2022 - 09:46 |
Bonjour DEV-OC,
Merci.
Me suis arrêté à la LST 121, sur clé usb
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 14 décembre 2022 - 10:07 |
Fait suer de reprendre un abt LST 1 an pour un composant d'une LST
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 672 messages Popularité : +222 (260 votes) |
|
Posté le 14 décembre 2022 - 10:29 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 844 messages Popularité : +40 (42 votes) |
|
Posté le 14 décembre 2022 - 12:51 |
Bonjour, c'est pourquoi dans ma réponse tous les champs qui ne sont pas nécessaires sont commentés. Je suppose que vous avez utilisé mon code dans vos tests.
Rubén |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 14 décembre 2022 - 13:35 |
Oui bien sûr Rubèn ...
Merci à tout les deux pour m'avoir apporté des possibilités.
Vais voir avec le client si je peux répercuter ( englober ) le surcout si investissement dans cette LST En espérant que le composant réponde à mes besoins
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 179 messages Popularité : +17 (17 votes) |
|
Posté le 22 décembre 2022 - 10:06 |
Bonjour Christian,
je ne sais pas si vous y êtes parvenus, il manquait juste le "text" qui n'était pas au bon endroit, il faut le mettre comme paramètre directement dans l'URL.
Voici un code fonctionnel (avec évidemment la clé DeepL à modifier et la chaine à fermer)
ELangue est une Enumération indetermine = "" allemand = "DE" anglais = "EN" français = "FR" italien = "IT" FIN
sCleAPIDeepl est une chaîne = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:fx" sTexteATraduire est une chaîne = "Windev c'est bien ! ET ce test, ça permet de tester les caractères spéciaux ET les accents. ;)" eLangueCible est une ELangue = italien eLangueOrigine est une ELangue = indetermine cMyRequest est un httpRequête cMyRequest.URL = "https: cMyRequest.Méthode = httpPost cMyRequest..Entête["Authorization"] = "DeepL-Auth-Key "+SansEspace(sCleAPIDeepl)
cMyResponse est un httpRéponse = RESTEnvoie(cMyRequest) SI ErreurDétectée ALORS Erreur(ErreurInfo(errComplet)) SINON FIN
jJSON est un JSON = cMyResponse.Contenu
vJSON est un Variant = JSONVersVariant(jJSON) sTexteTraduit est une chaîne = vJSON.translations[1].text eLangueOrigine = EnumérationDepuisValeur(ELangue,vJSON.translations[1].detected_source_language,indetermine) sTraduction est une chaîne = "Texte traduit du "+eLangueVersTexte(eLangueOrigine)+" vers "+eLangueVersTexte(eLangueCible)+RC+RC+sTexteATraduire+RC+RC+sTexteTraduit
Info(sTraduction)
PROCEDURE INTERNE eLangueVersTexte(eLang est un ELangue) : chaîne SELON eLang CAS allemand RENVOYER "allemand" CAS anglais RENVOYER "anglais" CAS français RENVOYER "français" CAS italien RENVOYER "italien" FIN RENVOYER "<indeterminé>" FIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 877 messages Popularité : +39 (51 votes) |
|
Posté le 23 décembre 2022 - 11:23 |
Merci Jérôme,
Je suis passé par une autre solution, mais il me semble que dans mon cas , ton code fera mieux l'affaire. Je vais l'implanter et le tester
Merci et bonnes fêtes
-- Christian - kick71 |
| |
| |
| | | |
|
| | |
| |
Posté le 18 septembre 2023 - 13:13 |
Bonjour Jérôme, Bravo pour votre code de l'api deepl. comment puis-je vous contacter? cordialement hubert@de-buren.ch |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 59 messages Popularité : +15 (15 votes) |
|
Posté le 10 mai 2024 - 22:44 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 291 messages Popularité : +24 (28 votes) |
|
Posté le 12 mai 2024 - 09:07 |
Merci Jérôme |
| |
| |
| | | |
|
| | |
| |
Posté le 28 mai 2024 - 16:57 |
Merci !!!! C'est juste parfait !!! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
Posté le 21 juin 2024 - 09:06 |
Merci à Jérôme et aux autres participants de ce forum pour les codes fournis. Grace à cette aide précieuse, pas de soucis pour traduire un texte avec des balises HTML simples (de type paragraphe <p>) Par contre, la traduction renvoie un texte tronqué lors de l'envoi de texte contenant des guillemets (quotation marks en EN), comme dans le texte suivant : <p>Texte à traduire avec <span style="font-weight: bold;">des balises</span> complémentaires</p> La traduction s'arrête au premier guillemet rencontré Je souhaiterais savoir s'il y a un moyen d'envoyer du texte html comportant des guillemets à Deepl (en dehors de l'envoi d'un fichier physique) pour avoir la traduction en retour. Merci d'avance pour votre aide |
| |
| |
| | | |
|
| | |
| |
Posté le 10 septembre 2024 - 11:04 |
J'ai posé la question à Deepl et au support technique PCSOFT ce matin, afin de savoir d'où venait ce problème (que nous rencontrons également dans les demandes de traduction de texte HTML avec Webdev).
Il est intéressant de noter que la traduction fonctionne dés lors que la balise <span> (avec les guillemets) n'est pas utilisée.
Par exemple : <strong>Texte à traduire</strong> sera traduit alors que <span style="font-weight: bold;">Texte à traduire</span> (généré par le composant graphique Webdev de saisie de texte HTML) ne le sera pas...
Cela dit, le problème ne vient peut-être pas de ces guillemets :
Si vous envoyez ce texte : <span style=""font-weight: bold"">Texte à traduire</span>
Il revient bel et bien traduit et au bon format HTML.
J'ai juste supprimé le point-virgule après le bold.
Note : Les doubles guillemets viennent du fait que cette chaîne est construite dans le code.
A creuser...
Note : je ne vois pas vraiment l'intérêt d'utiliser la balise <span> alors même qu'aucun style CSS n'est utilisé, ce qui est, sauf erreur de ma part, l'objet de cette balise |
| |
| |
| | | |
|
| | |
| |
Posté le 10 septembre 2024 - 11:24 |
Trouvé une solution qui semble fonctionner : supprimer tous les ";" ajoutés par Webdev dans le texte HTML. Dans Webdev, se fait avec Remplace(chaineATraduire, ";", "") |
| |
| |
| | | |
|
| | |