Tengo una aplicación Google Translate creada con la aplicación Fluid. Quiero traducir cualquier texto seleccionado con esta mi aplicación Google Translate Fluid .
Entonces, para este propósito, ¿cómo creo un servicio con Automator / AppleScript?
Tengo una aplicación Google Translate creada con la aplicación Fluid. Quiero traducir cualquier texto seleccionado con esta mi aplicación Google Translate Fluid .
Entonces, para este propósito, ¿cómo creo un servicio con Automator / AppleScript?
Aquí está el código AppleScript que uso en una acción Ejecutar AppleScript, en un flujo de trabajo del Servicio Automator junto con mi aplicación Google Translate Fluid, que se llama Google Translate.
Cree un flujo de trabajo del Servicio Automator con la configuración que se muestra en la imagen a continuación, al mismo tiempo que reemplaza el código AppleScript predeterminado con el código AppleScript que se encuentra debajo de la imagen del Automator. Tenga en cuenta que lo guardé como Traductor con Google Translate y esto es lo que se muestra en el menú Servicios y en el menú contextual cuando seleccioné el texto que quiero traducir.
CódigoAppleScript:
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: My Translate con Google Translate Automator Service intenta usar JavaScript para cambiar el valor del área de texto de origen, ya que este es un mejor método de la OMI y luego, literalmente, pegar el texto para traducirlo al área de texto de origen, sin embargo, si no se puede, luego copia el texto seleccionado al portapapeles y luego lo pega en el área de texto de origen. Antes de pegar, presionando ⌘V mediante programación, se usa JavaScript para borrar el área de texto de origen y establecer el foco en él, por lo que la pegada se producirá en la ubicación correcta.
El uso de do shell script "open -a " ...
es necesario porque una aplicación Fluid con preferencias predeterminadas, una creada con Fluid , se abre de forma predeterminada 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, en el caso de ejemplo, tell application "Google Translate" to activate
, solo aparece el Dock Tile, no browser window
, es decir, no se muestra la página de inicio. Esto es en parte por lo que originalmente lo codifiqué como lo hice. Sin embargo, desde su comentario, descubrí que si abría programáticamente a través de AppleScript usando do shell script "open -a " ...
, se abría con una ventana del navegador, no solo el Dock Tile y, como tal, podía recodificar el Servicio de manera diferente porque el uso de do shell script "open -a " ...
También traería una copia de seguridad de ventana minimizada sin la necesidad de tener en cuenta eso con codificación adicional.
Esperamos que el nuevo código elimine la aparición de dos pestañas de Google Translate cuando se inicie desde un estado cerrado. (Aunque, dependiendo de los horarios, puede suceder ocasionalmente).
Lea otras preguntas en las etiquetas applescript automator fluid.app