Aktuelle Zeit: 16.10.2018 01:26

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Deepl.com - Automatisierte Übersetzung (Windows)
BeitragVerfasst: 06.01.2018 13:47 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Hier noch eine lesbarere curl-Variante

Nun ist aber gut.
Code:
Structure _JSON_OBJ4_
   num_symbols.i
   totalLogProb.i
   score.i
   postprocessed_sentence.s
EndStructure

Structure _JSON_OBJ3_
   timeAfterPreprocessing.i
   timeReceivedFromEndpoint.i
   List beams._JSON_OBJ4_()
   total_time_endpoint.i
   timeSentToEndpoint.i
EndStructure

Structure _JSON_OBJ2_
   source_lang.s
   target_lang.s
   List translations._JSON_OBJ3_()
   ource_lang_is_confident.i
EndStructure

Structure _JSON_OBJ_
   jsonrpc.s
   id.i
   result._JSON_OBJ2_
EndStructure


Structure _JSON_SEND4_
   List user_preferred_langs.s()
   source_lang_user_selected.s
   target_lang.s
EndStructure

Structure _JSON_SEND3_
   kind.s
   raw_en_sentence.s
EndStructure

Structure _JSON_SEND2_
   List jobs._JSON_SEND3_()
   lang._JSON_SEND4_
   priority.i
EndStructure

Structure _JSON_SEND_
   jsonprc.s
   method.s
   params._JSON_SEND2_
   id.i
EndStructure

Procedure.s Translate(Sentence$, FromLang$, ToLang$)
   Protected Program, s.s, Result.s
   Protected CurlOptions.s
   Protected R._JSON_OBJ_, SE._JSON_SEND_
   
   Sentence$   = ReplaceString(Sentence$, #LF$, #ESC$)

   AddElement(SE\params\jobs())
   SE\jsonprc                               = "2.0"
   SE\method                                = "LMT_handle_jobs"
   SE\Params\jobs()\kind                    = "default"
   SE\params\jobs()\raw_en_sentence         = Sentence$
   SE\params\lang\source_lang_user_selected = FromLang$
   SE\params\lang\target_lang               = ToLang$
   SE\params\priority                       = -1
   SE\id                                    = 15
   AddElement(SE\params\lang\user_preferred_langs()) : SE\params\lang\user_preferred_langs() = "DE"
   AddElement(SE\params\lang\user_preferred_langs()) : SE\params\lang\user_preferred_langs() = "EN"
   
   If CreateJSON(0)
    InsertJSONStructure(JSONValue(0), @SE, _JSON_SEND_)
    CurlOptions = ComposeJSON(0)
    CurlOptions = ReplaceString(CurlOptions, #DQUOTE$, "\" + #DQUOTE$)
    FreeJSON(0)
   EndIf

   Program = RunProgram(GetPathPart(ProgramFilename()) + "curl.exe", "-X POST --insecure -ss -d " + #DQUOTE$ + CurlOptions + #DQUOTE$ + " https://www.deepl.com/jsonrpc", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
   If Program
      While ProgramRunning(Program)
         If AvailableProgramOutput(Program)
            s = ReadProgramString(Program)
            If ParseJSON(0, s)
               ExtractJSONStructure(JSONValue(0), @R, _JSON_OBJ_)
               FreeJSON(0)
               If FirstElement(R\result\translations()) And FirstElement(R\result\translations()\beams())
                  Result = R\result\translations()\beams()\postprocessed_sentence
               EndIf
            EndIf
            Break
         EndIf
      Wend
      CloseProgram(Program)
   EndIf
   
   Result = ReplaceString(Result, #ESC$, #LF$)
   
   
   ProcedureReturn Result
EndProcedure

CompilerIf #PB_Compiler_IsMainFile
   Debug Translate("pretty world", "EN", "DE")
CompilerEndIf



@tft:
Mit dieser "Fehlerbeschreibung" kann dir sicherlich niemand helfen.

Eine Idee hätte ich:
Solange Du den Source nicht gespeichert hast (weil du es ja nur testen wolltest), wird PB die exe im TEMP-Verzeichnis anlegen und dort natürlich die curl.exe nicht finden.

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Deepl.com - Automatisierte Übersetzung (Windows)
BeitragVerfasst: 06.01.2018 18:09 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Wenn du die PowerShell-Version verwenden möchtest, dann musst du folgendes machen:
  1. Erstelle eine neue Datei im ps1-Format. Z.B. test.ps1
  2. Kopiere den ersten Code und füge diesen in die von dir erstellte ps1-Datei ein.
  3. Kopiere den zweiten Code und füge diesen in den PB-Editor ein.
  4. Die Zeichenkette "PSFile$" musst du anpassen. Füge dort den Pfad zur ps1-Datei ein.

Dann sollte es schon funktonieren. Vorausgesetzt deine Firewall lässt die Internetverbindung zu.
Da du Windows 10 hast, sollte PowerShell bei dir vorinstalliert sein.

Wenn du die curl-Variante verwenden möchtest, musst du nur das curl-Programm herunterladen und den Pfad zum curl-Programm in die Zeichenkette "Curl$" einfügen.

_________________
BildBildBildBildBild
Bild | EnableExplicit ist kostenlos und vermeidet Fehler | Gib Goto keine Chance | Schneller als die Telekom erlaubt | Avira? Nein Danke
WinAPI forever | Bei Problemen bitte Beispielcode posten | Mit Adblock werbefrei, schneller und sicherer surfen | brain.exe ist der beste Schutz | Userlibrary ohne Source = NoGo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Deepl.com - Automatisierte Übersetzung (Windows)
BeitragVerfasst: 06.01.2018 20:42 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Für powershell ist das aber nicht so trivial.
Anfangs ging bei mir auch nichts, weil Windows alle powershell scripte erst mal auf "restricted" gestellt hatte.
Ich musste da erst rumfummeln, bevor es gezuckt hatte.

Siehe z.B. hier:
https://docs.microsoft.com/en-us/powers ... rshell-5.1

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Deepl.com - Automatisierte Übersetzung (Windows)
BeitragVerfasst: 06.01.2018 20:47 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Achso, stimmt. Das musste ich anfangs auch machen, aber leider beim Posten vergessen, als ich den Code fertig hatte.

_________________
BildBildBildBildBild
Bild | EnableExplicit ist kostenlos und vermeidet Fehler | Gib Goto keine Chance | Schneller als die Telekom erlaubt | Avira? Nein Danke
WinAPI forever | Bei Problemen bitte Beispielcode posten | Mit Adblock werbefrei, schneller und sicherer surfen | brain.exe ist der beste Schutz | Userlibrary ohne Source = NoGo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Deepl.com - Automatisierte Übersetzung (Windows)
BeitragVerfasst: 03.03.2018 22:55 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Mit meiner eben veröffentlichten DLL-Datei ist es nun auch ohne PowerShell möglich: viewtopic.php?f=11&t=30663

_________________
BildBildBildBildBild
Bild | EnableExplicit ist kostenlos und vermeidet Fehler | Gib Goto keine Chance | Schneller als die Telekom erlaubt | Avira? Nein Danke
WinAPI forever | Bei Problemen bitte Beispielcode posten | Mit Adblock werbefrei, schneller und sicherer surfen | brain.exe ist der beste Schutz | Userlibrary ohne Source = NoGo


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye