Tengo una aplicación de Google Translate creada con Fluid App. Quiero traducir cualquier seleccionado texto con este mi aplicación Google Translate Fluid .
Entonces, para este propósito, ¿cómo puedo crear un servicio con Automator/AppleScript?
Tengo una aplicación de Google Translate creada con Fluid App. Quiero traducir cualquier seleccionado texto con este mi aplicación Google Translate Fluid .
Entonces, para este propósito, ¿cómo puedo crear un servicio con Automator/AppleScript?
Aquí está el código AppleScript que utilizo en una acción Run AppleScript, en un flujo de trabajo de Automator Service junto con mi Google Translate Fluid App, que se llama Google Translate.
Cree un flujo de trabajo de Servicio de Automator con la configuración como se muestra en la imagen de abajo, mientras que la sustitución del código de AppleScript por defecto con el código de AppleScript que se encuentra debajo de la imagen de Automator. Ten en cuenta que lo he guardado como Traducir con Google Translate y esto es lo que se muestra en el menú Servicios y en el menú contextual cuando he seleccionado el texto que quiero traducir.
Código AppleScript:
on run {input, parameters}
set textToTranslate to item 1 of input as string
set windowName to "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: Mi Translate con Google Translate Automator Service intenta utilizar JavaScript para cambiar el valor del área de texto de origen, ya que esto es IMO un método mejor que literalmente programáticamente pegar el texto para traducir al área de texto de origen, sin embargo, si no puede, a continuación, copia el texto seleccionado en el portapapeles y luego lo pega en el área de texto de origen. Antes de pegar, a través de la pulsación programática de V, se utiliza JavaScript para borrar el área de texto de origen y establecer el foco en ella, por lo que la pasta se producirá como se pretende en la ubicación correcta.
El uso de do shell script "open -a " ...
es necesario porque una Fluid App con Preferencias por defecto, una creada con Fluido , por defecto cuando se abre desde la interfaz de usuario de MacOS muestra su página de inicio. Sin embargo, cuando se abre mediante programación a través de AppleScript, caso de ejemplo, tell application "Google Translate" to activate
sólo aparece el Dock Tile, no hay browser window
Es decir, no se muestra ninguna página de inicio. Esta es en parte la razón por la que originalmente lo codifiqué como lo hice. Sin embargo, desde tu comentario, he descubierto que si abro mediante programación a través de AppleScript usando do shell script "open -a " ...
se abre con una ventana del navegador, no sólo con el Dock Tile y como tal se pudo recodificar el Servicio de manera diferente porque el uso de do shell script "open -a " ...
también haría que la ventana de minimización volviera a aparecer sin necesidad de tener en cuenta eso con una codificación adicional.
Esperemos que el nuevo código elimine la aparición de dos pestañas de Google Translate cuando se parte de un estado cerrado. (Aunque dependiendo de los tiempos, puede ocurrir ocasionalmente).
Muchas gracias :) Ya funciona. Pero estoy usando este Google Translate Fluid App en la barra de estado de MacOS y si llamo a este servicio se abre en una nueva pestaña en la aplicación fluida ( este es el screencast ). ¿Hay alguna forma de abrir Google Translate en la ventana/pestaña actual?
@fatihturan, he recodificado el Servicio para, con suerte, solucionar el problema de la doble pestaña. Por favor, utiliza el nuevo código y lee la información adicional presentada en los dos últimos párrafos de mi respuesta.
No ha cambiado el comportamiento de Fluid App; así que sigue abriendo una nueva pestaña en lugar de la actual. Pero he arreglado este problema con esta configuración .
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.