¿Cómo cambiar el idioma de ortografía en OS X con AppleScript?

A menudo necesito cambiar el idioma de ortografía en OS X de inglés a turco y viceversa, ¿cómo puedo hacerlo con un AppleScript?

Nota: ya he leído esta pregunta, pero allí, la respuesta sugiere usar Automático por idioma, que no funciona correctamente, por lo que necesito hacer estos cambios específicos.

Estoy usando una MacBook Air de mediados de 2015 con OS X El Capitan 10.11.6.

Actualicé la respuesta con información sobre cómo usarla como una aplicación AppleScript y también cómo usarla como un servicio de automatización con atajos de teclado.

Respuestas (1)

El código AppleScript , a continuación, emplea UI Scripting y debido a que se trata de un menú emergente , las preferencias del sistema se harán visibles ( ) durante el proceso. Si no hubiera estado involucrado un menú emergente , esto podría haberse hecho sin hacerlo visible.activate

Dicho esto, técnicamente todavía se puede hacer sin que la ventana principal sea visible, pero entonces todo lo que verá es el menú emergente parpadear por un momento en la pantalla. Como esto podría ser más molesto, preguntarse qué acaba de aparecer en la pantalla, mostrar toda la ventana de Preferencias del sistema probablemente sea menos molesto. Puedes ver la diferencia y probarlo comentando activate, por ejemplo -- activate, y elige cuál prefieres.

El código AppleScript hace lo siguiente:

  • Abre Preferencias del sistema para: Teclado > Texto
  • Cambió el idioma en el menú emergente Ortografía: basado en lo siguiente:
    • Si se establece en Automático por idioma , lo cambia a inglés de EE.UU.
    • Si se establece en inglés de EE. UU. , lo cambia a Türkçe .
    • Si se establece en Türkçe , lo cambia a inglés de EE.UU.
  • Cierra Preferencias del Sistema .

Esencialmente, una vez que no está configurado en Automático por idioma , alterna entre inglés de EE. UU . y Türkçe . cada vez que se ejecuta.

Puede guardar esto como una aplicación AppleScript , colocarlo en el Dock y luego, cada vez que haga clic en él, alternará entre los dos idiomas. (Una vez que se establece por primera vez en uno de los idiomas).

Nota: guardó una aplicación AppleScript , deberá agregarla a Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad , agregando la aplicación a la lista Permitir que las aplicaciones a continuación controlen su computadora .

Esto también podría convertirse en un servicio de Automator , donde se podría asignar un atajo de teclado . (Consulte las instrucciones al final de esta respuesta).

Nota: El siguiente código AppleScript se probó en OS X El Capitan 10.11.6 y es posible que deba modificarse para usarlo con otras versiones de OS X/macOS .

Código AppleScript :

tell application "System Preferences"
    activate
    reveal anchor "Text" of pane id "com.apple.preference.keyboard"
    delay 0.5
    tell application "System Events"
        tell pop up button 3 of tab group 1 of window 1 of application process "System Preferences"
            if (value) is "U.S. English" then
                click
                click menu item "Türkçe" of menu 1
            else if (value) is "Türkçe" then
                click
                click menu item "U.S. English" of menu 1
            else if (value) is "Automatic by Language" then
                click
                click menu item "U.S. English" of menu 1
            end if
        end tell
    end tell
    quit
end tell

Nota: Debido a que las secuencias de comandos de la interfaz de usuario a veces pueden depender de la sincronización de las cosas, es posible que se deba ajustar el valor del delay comando o que se deban agregar delay comandos adicionales si es necesario cuando se ejecuta en su sistema. Realice esos cambios según corresponda.

Además, si desea que siempre cambie entre los dos idiomas, ya que ya lo ha configurado en uno u otro en circunstancias normales, puede eliminar las siguientes líneas de código del if bloque de instrucciones en el script :

else if (value) is "Automatic by Language" then
    click
    click menu item "U.S. English" of menu 1

Para usar este código AppleScript como un servicio de Automator , haga lo siguiente:

  • En Automator , seleccione: Archivo > Nuevo > Servicio
  • Conjunto: el servicio no recibe ninguna entrada en ninguna aplicación
  • Agregue una acción Ejecutar AppleScript .
    • Elimine las líneas que contienen (* Your script goes here *)y return input.
    • Pegue el código AppleScript dentro del controlador .on run
  • Guarde el Servicio de Automator , dándole un nombre apropiado, por ejemplo: Alternar idioma de ortografía

En Preferencias del sistema > Teclado > Atajos > Servicios > (Nombre que le diste al servicio) , puedes agregar el atajo de teclado para activar este servicio.