Ho un'app Google Traduttore creata con l'app Fluid. Voglio tradurre qualsiasi testo selezionato con questa mia app Fluid di Google Translate .
Quindi, a questo scopo, come posso creare un servizio con Automator / AppleScript?
Ho un'app Google Traduttore creata con l'app Fluid. Voglio tradurre qualsiasi testo selezionato con questa mia app Fluid di Google Translate .
Quindi, a questo scopo, come posso creare un servizio con Automator / AppleScript?
Ecco il codice AppleScript che utilizzo in un'azione Esegui AppleScript, in un flusso di lavoro del servizio Automator in combinazione con la mia app Fluid di Google Traduttore, che è denominata Google Translate.
Crea un flusso di lavoro del servizio Automator con le impostazioni come mostrato nell'immagine sottostante, mentre sostituisci il codice AppleScript predefinito con il codice AppleScript trovato sotto l'immagine di Automator. Nota che l'ho salvato come Traduci con Google Traduttore e questo è ciò che mostra nel menu Servizi e nel menu contestuale quando ho selezionato il testo che voglio tradurre.
CodiceAppleScript:
onrun{input,parameters}settextToTranslatetoitem1ofinputasstringsetwindowNameto"Google Translate"
set targetURL to "https://translate.google.com/"
tell current application
do shell script "open -a " & quoted form of windowName
end tell
tell application "Google Translate"
repeat while (loading) of front browser window
delay 0.5
end repeat
if (get title of front window) does not contain windowName then
open location targetURL
repeat while (loading) of front browser window
delay 0.5
end repeat
end if
tell front browser window
activate
try
do JavaScript "document.getElementById('source').value = \"" & textToTranslate & "\";"
on error
set the clipboard to textToTranslate as string
delay 1
activate
do JavaScript "document.getElementById('source').value = ''; document.getElementById('source').focus();"
tell application "System Events"
keystroke "v" using command down
end tell
end try
end tell
end tell
end run
Nota: il servizio Traduttore automatico My Translate with Google Translate tenta di utilizzare JavaScript per modificare il valore dell'area di testo di origine, poiché questo è IMO un metodo migliore per incollare letteralmente il testo letteralmente per tradurre nell'area di testo di origine, tuttavia se impossibile, quindi copia il testo selezionato negli Appunti e lo incolla all'area di testo di origine. Prima di incollare, premendo programmaticamente ⌘V, viene utilizzato JavaScript per cancellare l'area di testo di origine e impostare lo stato attivo su di esso, in modo che la pasta si verifichi come previsto nella posizione corretta.
L'uso di do shell script "open -a " ...
è necessario perché un'App Fluid con Preferenze predefinite, una creata con Fluido , per impostazione predefinita quando viene aperta dall'interfaccia utente macOS mostra la sua Home Page. Tuttavia, quando viene aperto a livello di programmazione tramite AppleScript, caso esemplificativo, tell application "Google Translate" to activate
, viene visualizzata solo la tessera dock, non browser window
, cioè nessuna pagina iniziale viene visualizzata. Questo è in parte il motivo per cui l'ho originariamente codificato come ho fatto io. Tuttavia, dal tuo commento, ho scoperto che se avessi aperto a livello di programmazione tramite AppleScript utilizzando do shell script "open -a " ...
, si apre con una finestra del browser, non solo con il Dock Tile e in quanto tale è stato in grado di ricodificare il Servizio in modo diverso perché l'uso di do shell script "open -a " ...
inoltre, ripristinerebbe la finestra di minimizzazione senza la necessità di tenere conto di ciò con una codifica aggiuntiva.
Si spera che il nuovo codice eliminerà due schede di Google Traduttore che appaiono quando si inizia da uno stato chiuso. (Anche se dipende dai tempi, può occasionalmente accadere.)
Leggi altre domande sui tag applescript automator fluid.app