Copia il testo selezionato, incolla sull'app Google Traduttore (app fluida) e traduci con l'automazione / il servizio

1

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?

    
posta fatihturan 03.04.2017 - 22:06
fonte

1 risposta

1

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.)

    
risposta data 06.04.2017 - 06:49
fonte

Leggi altre domande sui tag