Google Translate GUI ( user teadrinker )

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

garry
Posts: 3740
Joined: 22 Dec 2013, 12:50

Google Translate GUI ( user teadrinker )

Post by garry » 12 Feb 2021, 13:37

modified = 20210212
( dank BoBo habe ich das erste mal diese Funktion richtig aufgerufen )

.. und siehe Skript von BoBo "gT() - Google Translate" , betr. Beschränkung auf 5000 Zeichen :
https://www.autohotkey.com/boards/viewtopic.php?f=10&t=86797
Der 'freie/kostenlose' Zugriff mittels Google Translate API ist (AFAICS) auf 5ooo Zeichen je Anfrage beschränkt, um das ansonsten kostenpflichtige Produkt (gerade für professionelle Nutzer) schmackhafter zu machen.
Wer jetzt nicht alle Bände des Brockhaus nach Kisuaheli übersetzen möchte (und somit bei Google per default auffällig würde), kann sein Glück mit der "gT() - Google Translate"-Funktion versuchen. Good luck :)
======================================================================
teadrinker's Google Translator :
https://www.autohotkey.com/boards/viewtopic.php?p=273621#p273621
======================================================================

Google Translator mit GUI :
- select 109 Sprachen mit DropDownList ( wird in ini gespeichert , voreingestellt ist portugiesisch )
- markiere Text und denn CTRL+c , > Uebersetzung wird angezeigt ( nicht mehr als 5000 Zeichen kopieren , da kann man BoBo's Skript brauchen )
oder
- unten Text eingeben , z.B. das Haus , denn ENTER etc.. ( die Eingaben und Uebersetzung sieht man im Edit oben )
später im Logfile :

Code: Select all

das Haus=a casa
der Garten=o jardim
ich gehe jetzt Biertrinken=Vou tomar uma cerveja agora

Code: Select all

;- translator from user teadrinker / with GUI 
; https://www.autohotkey.com/boards/viewtopic.php?p=273621#p273621
;- DropDownList to select 109 languages / save in ini-file / write in logfile
;- mark text then CTRL+c  / or direct input in Edit-2
/*
modified=20210212  use #Include GoogleTranslate().ahk	
modified=20210210  added Edit-2 for direct input 
modified=20200130  translate clipboard again in other language with dropdownlist (ddl1)
modified=20200129  translate when language change (ddl1) 
modified=20191019  ( teadrinker ) edited 1 time in total. 
modified=20190422  EDIT CreateScriptObj() ( teadrinker )
created =20190419  GUI to teadrinker's GoogleTranslate()
https://cloud.google.com/translate/docs/languages
*/
;-------------------------------------------------------------------------------
#Include GoogleTranslate().ahk										; Download: https://www.autohotkey.com/boards/viewtopic.php?t=63835 by teadrinker
#NoEnv
setworkingdir,%a_scriptdir%
tl1:=""
transform,s,chr,32
Gui,1:default
Gui,1: +AlwaysOnTop  
Gui,1: -DPIScale
SS_REALSIZECONTROL := 0x40
wa:=a_screenwidth,ha:=a_screenheight,xx:=100
clipboard=
cl=
ex:=""
transform,s,chr,32
gosub,language
F1=%a_scriptdir%\myGoogleTranslate_Logfile.txt
rssini=%a_scriptdir%\translate.ini
ifnotexist,%rssini%    ;- first run
    {
    translateto=pt     ;- portuguese predefined
    IniWrite,%translateto%, %rssini% ,Lang1  ,key1
    }
Gui,1:Color,Black,Black
Gui, Font,s14 cYellow ,Lucida Console 
IniRead, tl1, %rssini%,Lang1 ,key1
;global tl1,JS
global tl1

x:=(wa*.5)/xx,W :=(wa*28)/xx,H :=(ha*10)/xx,y:=(ha*.5)/xx
Gui,add,dropdownlist, x%x% y%y% w%w% vDDL1 gddl2 ,%e5x%
;-------------------------------------------------------
W :=(wa*29)/xx , H :=(ha*78)/xx , y:=(ha*3.5)/xx
Gui,add,Edit,x%x% y%y%  w%w% h%h% vED1  -border -E0x200,
;-------------------------------------------------------
W :=(wa*29)/xx , H :=(ha*8)/xx , y:=(ha*81.6)/xx
Gui,add,Edit,x%x% y%y%  w%w% h%h% vED2 ,
;-------------------------------------------------------

W :=(wa*30)/xx , H :=(ha*92)/xx  , x:=(wa-w),y:=(ha*1)/xx
Gui, Show,x%x% y%y% w%w% h%h% ,TRANSLATE
;-------------------------------------------------------
GuiControl,1:Choose,ddl1,%tl1%
GuiControl, Focus,ED2
WinID := WinExist("A")
WinSetTitle, ahk_id %WinID%,, TRANSLATE_to_%tl1%
E0x200 = WS_EX_CLIENTEDGE
gosub,ddl2
RETURN
;--------------------------
esc::exitapp
;--------------------------
Guiclose:
cl=
clipboard=
exitapp
;------------------------------------------------------
~$enter::
Gui,submit,nohide
i++
;aa:=GoogleTranslate(ed2)
aa:=GoogleTranslate(ed2,"auto",TL1)
if (i=1)
xc:=tl1x . "`n" . ed2 . "=" . aa
else 
xc:=ed1 . "`n" . ed2 . "=" . aa
GuiControl,1:,ED1,%xc%
fileappend,%ed2%=%aa%`r`n,%f1%,utf-8
aa=
GuiControl,1:,ED2,
GuiControl, Focus,ED2
return
;------------------------------------------------------------
;----- ( Hotkey) CTRL+C Clipboardchange ---------------------
OnClipboardChange:
If (A_EventInfo=1)
 {
 Gui, Show,
 GuiControl, Focus,ED1
 ClipWait,
 if (!ErrorLevel)
  {
  cl:=clipboard
  ;aa:=GoogleTranslate(cl)
  aa:=GoogleTranslate(cl,"auto",TL1)
  GuiControl,1:,ED1,%aa%
  txnew:= RegExReplace(aa, "([.!?¿:-=] )", "$1`r`n")
  fileappend,------------------`r`n%txnew%`r`n,%f1%,utf-8
  aa=
  GuiControl, Focus,ED2
  }
 }
return
;--------------------------
;--------------------------
ddl2:
Gui,1:submit,nohide
h1:=""
h2:=""
if DDL1<>
{
StringSplit,h,ddl1,`_
if h1<>
  {
  IniWrite,%h1%, %rssini% ,Lang1  ,key1
  tl1:=h1
  WinSetTitle, ahk_id %WinID%,, TRANSLATE_to_%h2%
  gosub,translateddlchange
  tl1x:=h2
  }
}
return
;----------------------------------------
;------- translate changed language -----
translateddlchange:
Guicontrolget,ed1
if ed1<>
{
;aa:=GoogleTranslate(cl)      ;- translate clipboard again in other language
aa:=GoogleTranslate(cl,"auto",TL1)
GuiControl,1:Text,ED1,%aa%
aa=
}
return
;===================================================================================

;-- some examples to select 
;-https://cloud.google.com/translate/docs/languages
language:
e5x:=""
e5x=
(Ltrim join|
af_Afrikaans
sq_Albania
am_Amharisch
ar_Arab
hy_Armenia
az_Aserbaijan
eu_Baskisch
be_Belarus
bn_Bengal
bs_Bosnia
bg_Bulgaria
ca_Catalan
ceb_Cebuano (ISO-639-2)
zh-CN_China or zh (BCP-47)
zh-TW_China trad (BCP-47)
co_Corsica
hr_Croatia
cs_Cesko
da_Danmark
nl_Nederland
en_English
eo_Esperanto
et_Estonia
fi_Finland Suomi
fr_France
fy_Fryslan
gl_Galicia
ka_Georgia
de_German
el_Greece Elliniki
gu_Gujarati
ht_Creol Haiti
ha_Haussa
haw_Hawaii(ISO-639-2)
he_Hebräisch
iw_Hebräisch
hi_Hindi
hmn_Hmong (ISO-639-2)
hu_Hungarian Magyar
is_Iceland
ig_Igbo
id_Indonesia
ga_Irland Eire
it_Italia
ja_Japan Nippon
jv_Java
kn_Kannada
kk_Kasach
km_Khmer
rw_Kinyarwanda
ko_Korea
ku_Kurdistan
ky_Kirgisian
lo_Lao
la_Latin
lv_Lettland Latvija
lt_Litvanija Lietuva
lb_Luxemburg
mk_Mazedonia
mg_Madagascar
ms_Malaia
ml_Malayalam
mt_Malta
mi_Maori
mr_Marathi
mn_Mongolia
my_Myanmar
ne_Nepal
no_Norge
ny_Nyanja (Chichewa)
or_Odia (Oriya)
ps_Pashtun
fa_Persia
pl_Poland
pt_Portugal Brasilia
pa_Pandschabi
ro_Romania
ru_Rossija
sm_Samoa
gd_Scotia gael
sr_Serbia
st_Sesotho
sn_Shona
sd_Sindhi
si_Singhal
sk_Slovakia
sl_Slovenia
so_Somalia
es_Espana
su_Sundanesisch
sw_Swahili
sv_Sverige
tl_Tagalog (Philippines)
tg_Tadschikistan
ta_Tamil
tt_Tatar
te_Telugu
th_Thai
tr_Turkiye
tk_Turkmenistan
uk_Ukraina
ur_Urdu
ug_Uigur
uz_Uzbekistan
vi_Vietnam
cy_Wales GB
xh_Xhosa
yi_Jiddisch
yo_Yoruba
zu_Zulu
%s%
%s%
)
return
;====================== END SCRIPT ==================================================
DIE GROSSE ERLEUCHTUNG über #Include
ich hatte die Funktion im Standard Library und hat nicht funktioniert als ich #Include GoogleTranslate.ahk angegeben habe
( deswegen hatte ich es im Skript angefügt )
jetzt habe ich #Include nicht angegeben , es funktiort wenn die Funktion Googletranslate.ahk im richtigen LIB Folder ist

Code: Select all

;=========================================================================
;- A script may call a function in an external file WITHOUT having to use "#Include" . 
;- For this to work, a file of the same name as the function must exist in one of the following library directories:

;- %A_ScriptDir%\Lib\                                       ;- Local library - requires [v1.0.90+].
;- %A_MyDocuments%\AutoHotkey\Lib\                          ;- User library.
;- directory-of-the-currently-running-AutoHotkey.exe\Lib\   ;- Standard library.


;-RESUME:
;-GoogleTranslate.ahk  >> dies ist im Folder = %a_programfiles%\Autohotkey\LIB
;#Include <GoogleTranslate>     ;- <<<< dies funktioniert aber nicht nötig ( ? )
;------------------------------------------------------
run,https://www.autohotkey.com/docs/Functions.htm#lib
run,%a_programfiles%\Autohotkey\LIB
msgbox, 262208,YOUR AHK-VERSION , %a_ahkversion%
return
;==========================================================================

Return to “Skripte und Funktionen”