Seite 1 von 1

Directe Translation mit Q_Translate

Verfasst: 26.09.2020 09:44
von Velindos
Hallo Leute,
möchte einen markierten Text direkt an QTranslate aus meinen Editorgadget übergeben.

Folgende Schritte sind gelöst:
1) Text markieren mit der Maus
2) Wie gehts?

Code: Alles auswählen

Global QTranslateText$

Procedure Strg_Q_Translate(GGADGET)
    SendMessage_(GadgetID(GGADGET), #WM_CUT, #EM_SETSEL, -1)
    QTranslateText$ = GetClipboardText()
    Debug "QTranslateText$ = "+QTranslateText$
    ; >>>>>>>>>>>> Hier wie geht weiter
EndProcedure

Strg_Q_Translate(Work_E_Notiz)
Gruss ... Velindos!

Re: Directe Translation mit Q_Translate

Verfasst: 26.09.2020 14:00
von tft
jo ... interessantes Thema, da lese ich mal mit.

Gruss TFT

Re: Directe Translation mit Q_Translate

Verfasst: 01.10.2020 10:30
von juergenkulow
Hallo,

leider geht das mit Q_Translate nicht unter Linux:
Do you plan to release a version for non-Windows platforms (Linux, Unix, MacOS, Android or iPhone)?
There are no plans to port QTranslate to other platforms.
Wie kann man auf die Übersetzungsdienste von Babylon, Baidu, DeepL, Google, Microsoft,, Naver, Promt0, Yandex oder youdao direkt von Purebasic zugreifen?

Re: Directe Translation mit Q_Translate

Verfasst: 03.10.2020 15:45
von darius676
Nachdem ich dies selbst über diese Dienste lösen wollte:
Ein Account bei Google, Azure... ist notwendig. Sieht für mich so aus. Danach hast du Zugriff auf die Übersetzungs API. Dabei ist zu beachten, dass es kostenlose? und kostenpflichtige Angebote gibt. Hab mich da nicht weiter beschäftigt, da für mein Projekt kein hoher Leidensdruck diesbezüglich vorhanden ist.

Re: Directe Translation mit Q_Translate

Verfasst: 10.10.2020 09:57
von Velindos
Hallo,
schade, muss man halt damit Leben!
Danke für eure Tips!

Gruss ... Velindos

Re: Directe Translation mit Q_Translate

Verfasst: 28.10.2020 07:03
von juergenkulow
Hallo Velindos,
vielleicht hast Du etwas Freude an den Experimentprogrammen:

Code: Alles auswählen

; Ruft ein Editor Gadget auf und started dann einen Browser mit Translatorseiten .
Text$="Die Gedanken sind frei," +#LF$+"wer kann sie erraten,"+#LF$+"sie fliehen vorbei" +#LF$+
                 "wie nächtliche Schatten."+#LF$+"Kein Mensch kann sie wissen,"+#LF$+
                 "kein Jäger erschießen,"+#LF$+"es bleibet dabei:"+#LF$+"die Gedanken sind frei."
ExamineDesktops() ; Ermittle Informationen über angeschlossene Bildschirme 
Flags = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget; Fenster-Parameter
If OpenWindow(0,0,0,DesktopWidth(0),DesktopHeight(0),"Editor",Flags) ;Öffne ein Fenster 
  EditorGadget(0,0,0,DesktopWidth(0),DesktopHeight(0)) ; Erstelle ein Editor-Gadget.
  SetGadgetText(0, Text$)  ; Ändere den Inhalt auf Editor-Gadgets auf den geladenen Text. 
  Repeat ; Hauptschleife
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow ; Warte auf ALT-F4 Eingabe
  Uebersetze$=URLEncoder(GetGadgetText(0)) ; Kopiert den Inhalt des Editors als URL encodierten String.
  CloseWindow(0) 
EndIf
Browser$="firefox" ; Bite anpassen. 
RunProgram(Browser$,  "https://translate.yandex.com/?lang=de-pa&text="+Uebersetze$,"")
RunProgram(Browser$,  "https://www.bing.com/translator/?text="+Uebersetze$+"&from=de&to=pa","")
RunProgram(Browser$,"https://translate.google.com/?q="+Uebersetze$+"&sl=de&tl=pa#view=home&op=translate&sl=de&tl=pa&text="+Uebersetze$,"") 
                  ; Meldung von Google: Bevorstehende Änderungen am Verlauf
                  ; Der Übersetzungsverlauf steht bald nur noch zur Verfügung, wenn du angemeldet bist. 
                  ; Er wird dann zentral über Meine Aktivitäten verwaltet. Der bisherige Verlauf wird durch dieses Upgrade 
                  ; gelöscht. Speichere also Übersetzungen, auf die du später noch zugreifen möchtest.
Delay(15000) ; Warte 15 Sekunden
; Text: Hallo sichtbares Universum, hier ist die Erde im Orionarm.
RunProgram(Browser$,"https://translate.yandex.com/?lang=de-pa&text=Hallo%20sichtbares%20Universum,%20hier%20ist%20die%20Erde%20im%20Orionarm.","")
RunProgram(Browser$,"https://www.bing.com/translator/?text=Hallo%20sichtbares%20Universum%2C%20hier%20ist%20die%20Erde%20im%20Orionarm.&from=de&to=pa","")
RunProgram(Browser$,"https://translate.google.com/?q=Hallo%20sichtbares%20Universum%2C%20hier%20ist%20die%20Erde%20im%20Orionarm.&sl=de&tl=pa#view=home&op=translate&sl=de&tl=pa&text=Hallo%20sichtbares%20Universum%2C%20hier%20ist%20die%20Erde%20im%20Orionarm.","",#PB_Program_Wait)

; APIs für Übersetzungen mit  curl oder https mit auth_key
; https://www.deepl.com/de/docs-api/
; https://yandex.com/dev/translate/
                
; mögliche Probleme: 
; Yandex schickt schon mal: "Unfortunately, it looks like the search requests sent from your IP address 
; are automated. Please enter the code. " 

Code: Alles auswählen

; Ruft ein Editor Programm auf und started danach einen Browser. 
RunProgram("/mnt/myedit.out","","",#PB_Program_Wait) ; Bitte Pfad und Namen anpassen. 
Debug "Inhalt des Clipboards, mit Strg-V einfügen."
Debug GetClipboardText()
Browser$="firefox" ; Bite anpassen. 
RunProgram(Browser$,"https://www.deepl.com/de/translator","")
RunProgram(Browser$,"https://translate.yandex.com/","")
RunProgram(Browser$,"https://translate.google.com/?hl=de","")
RunProgram(Browser$,"https://papago.naver.com/","")
RunProgram(Browser$,"https://www.online-translator.com/?prmtlang=de","")
RunProgram(Browser$,"https://www.reverso.net/text_translation.aspx?lang=EN","")
RunProgram(Browser$,"https://www.bing.com/translator/","",#PB_Program_Wait)
; Während das Programm läuft scheint das Clipboard lokal zu sein. Nach Programmende ist das Clipboard
; für andere Programme verfügbar! Wieso ist mir nicht klar. Dies ist der Grund für zwei Programme. 

Code: Alles auswählen

; Ruft ein Editor Gadget mit Text$ auf. 
; Bitte Compiler Executable erstellen. 
Text$="Die Gedanken sind frei," +#LF$+"wer kann sie erraten,"+#LF$+"sie fliehen vorbei" +#LF$+
                 "wie nächtliche Schatten."+#LF$+"Kein Mensch kann sie wissen,"+#LF$+
                 "kein Jäger erschießen,"+#LF$+"es bleibet dabei:"+#LF$+"die Gedanken sind frei."
ExamineDesktops() ; Ermittle Informationen über angeschlossene Bildschirme 
Flags = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget; Fenster-Parameter
If OpenWindow(0,0,0,DesktopWidth(0),DesktopHeight(0),"Editor",Flags) ;Öffne ein Fenster 
  EditorGadget(0,0,0,DesktopWidth(0),DesktopHeight(0)) ; Erstelle ein Editor-Gadget.
  SetGadgetText(0, Text$)  ; Ändere den Inhalt auf Editor-Gadgets auf den geladenen Text. 
  Repeat ; Hauptschleife
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow ; Warte auf ALT-F4 Eingabe
  SetClipboardText(GetGadgetText(0)) ; Kopiert den Inhalt des Editors in das Clipboard.
  CloseWindow(0) 
EndIf

Re: Directe Translation mit Q_Translate

Verfasst: 30.10.2020 07:24
von Velindos
Hallo juergenkulow,
Danke für deine Tip´s!

Gruss ... Velindos!