;-- TIME_STAMP 2020-07-29 13:56:30 Opt('MustDeclareVars', 1) #cs Liste zu maskierender Zeichen Zeichen Ascii DeepL-Zeichen ' ' 32 '%20' '#' 35 '%23' '$' 36 '%24' '%' 37 '%25' '&' 38 '%26' '+' 43 '%2B' ',' 44 '%2C' '/' 47 '%5C%2F' ':' 58 '%3A' ';' 59 '%3B' '=' 61 '%3D' '?' 63 '%3F' '[' 91 '%5B' '\' 92 '%5C%5C' ']' 93 '%5D' '^' 94 '%5E' '`' 96 '%60' '{' 123 '%7B' '|' 124 '%5C%7C' '}' 125 '%7D' #ce #cs Verfügbare Sprachen de Deutsch en Englisch fr Französisch sp Spanisch pt Portugiesisch it Italienisch nl Niederländisch pl Polnisch ru Russisch ja Japanisch zh Chinesisch #ce Global $LangFrom = "en" Global $LangTo = "de" Global $sConvert = _DeepL_Convert(ClipGet()) Global $sCmd = "https://www.deepl.com/translator#" Switch $CMDLINE[0] Case 0 ; Standard: EN-->>DE ; nichts Case 1 If $CMDLINE[1] = "switch" Then ; Wechsel zwischen From/To, aber Standardsprachen bleiben $LangFrom = "de" $LangTo = "en" ElseIf StringLeft($CMDLINE[1], 2) = "to" Then ; From bleibt EN, nur To wird gesetzt $LangTo = StringTrimLeft($CMDLINE[1], 3) ; Param übergeben als: "to_" & Language Else ; anderer Parameter für "From" übergeben, "To" bleibt "DE" $LangFrom = $CMDLINE[1] EndIf Case 2 ; sowohl From als auch To erhalten andere Sprache zugewiesen $LangFrom = $CMDLINE[1] $LangTo = $CMDLINE[2] EndSwitch ; sicher gehen, dass Sprachkürzel als Kleinbuchstaben verwendet werden $LangFrom = StringLower($LangFrom) $LangTo = StringLower($LangTo) ; Befehl zum Aufruf der Website bilden $sCmd &= StringFormat("%s/%s/%s", $LangFrom, $LangTo, $sConvert) ; Seitenaufruf ShellExecute($sCmd) Func _DeepL_Convert($s) ; Annehmen, dass $s UTF8 ist und in ANSI wandeln (falls $s ASCII/ANSI ist, schadet es nicht) Local $sAnsi = BinaryToString(StringToBinary($s, 4), 1) Local $aData = StringSplit($sAnsi, "") Local $sRet = '', $asc For $i = 1 To $aData[0] $asc = Asc($aData[$i]) Switch $asc Case 32, 35 To 38, 43, 44, 58, 59, 61, 63, 91, 93, 94, 96, 123, 125 $sRet &= '%' & Hex($asc,2) Case 47, 92, 124 $sRet &= '%5C%' & Hex($asc,2) Case Else $sRet &= $aData[$i] EndSwitch Next ; wieder von ANSI in UTF8 wandeln Return BinaryToString(StringToBinary($sRet, 1), 4) EndFunc