Deepl.com est très bon et est meilleur que Google Translator.
Ma WinAPI Library est disponible en quatre langues et les textes ont été traduits automatiquement avec Google Translator.
Parce que Deepl.com est bon, je traduis les textes avec Deepl.com plus tard.
Sur la page suivante il y a une solution avec PowerShell pour envoyer le texte au site web via JSON: https://psvmware.wordpress.com/2017/09/ ... owershell/
J'ai changé le code pour que vous puissiez passer les paramètres à la fonction (je suis un débutant en Powershell.):
Code : Tout sélectionner
function get-DeepLtranslation ($sentence, $fromLang, $toLang)
{
#Languages available: PL,EN,NL,ES,IT,FR
$url = "https://www.deepl.com/jsonrpc"
$call = '{"jsonrpc":"2.0","method":"LMT_handle_jobs","params":{"jobs":[{"kind":"default","raw_en_sentence":"'+$sentence+'"}],"lang":{"user_preferred_langs":["EN","PL","NL"],"source_lang_user_selected":"'+$fromLang+'","target_lang":"'+$toLang+'"},"priority":-1},"id":15}'
$bytes = [System.Text.Encoding]::ASCII.GetBytes($call)
$web = [System.Net.WebRequest]::Create($url)
$web.Method = "POST"
$web.ContentLength = $bytes.Length
$web.ContentType = "application/x-www-form-urlencoded"
$stream = $web.GetRequestStream()
$stream.Write($bytes,0,$bytes.Length)
$stream.close()
$reader = New-Object System.IO.Streamreader -ArgumentList $web.GetResponse().GetResponseStream()
$answer = ($reader.ReadToEnd()|ConvertFrom-Json).result.translations.beams | select -ExpandProperty 'postprocessed_sentence'
$reader.Close()
return $answer
}
get-DeepLtranslation -sentence $args[0] -fromLang $args[1] -toLang $args[2]
Code : Tout sélectionner
EnableExplicit
Define Program
Define PSFile$ = "C:\...\File.ps1"
Define Sentence$ = "Bonjour monde"
Define FromLang$ = "FR"
Define ToLang$ = "EN"
Program = RunProgram("cmd.exe", "/c PowerShell.exe -Command " + Chr(34) + PSFile$ + Chr(34) + " '" + Sentence$ + "' '" + FromLang$ + "' '" + ToLang$ + "'", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
If Program
While ProgramRunning(Program)
If AvailableProgramOutput(Program)
Debug ReadProgramString(Program)
;Break;Si vous voulez lire la première ligne
EndIf
Wend
CloseProgram(Program)
EndIf