Come cambiare la lingua di ortografia in OS X con AppleScript?

2

Spesso ho bisogno di cambiare il linguaggio di ortografia in OS X dall'inglese al turco e viceversa, come posso farlo con un AppleScript?

Nota: ho letto questa domanda già, ma lì dentro la risposta suggerisce l'utilizzo di Automatico per lingua, che non funziona correttamente, quindi ho bisogno di apportare queste modifiche specifiche.

Utilizzo un MacBook Air di metà 2015 con OS X El Capitan 10.11.6.

    
posta onurcanbektas 04.10.2017 - 12:27
fonte

1 risposta

3

Il codice AppleScript , sotto, utilizza UI Scripting e perché è coinvolto un menu popup , Preferenze di sistema saranno rese visibili ( activate ) durante il processo. Se un menu popup non fosse stato coinvolto, ciò sarebbe stato possibile senza renderlo visibile.

Detto questo, tecnicamente può ancora essere fatto senza rendere visibile la finestra principale, ma poi tutto ciò che vedresti è il menu popup lampeggiare per un momento sullo schermo. Poiché questo potrebbe essere più di un fastidio, chiedendo che cosa appena visualizzato sullo schermo, mostrando l'intera finestra Preferenze di Sistema è probabilmente meno fastidioso. Puoi vedere la differenza e provarla commentando activate , ad es. -- activate , e scegli quale preferisci.

Il codice AppleScript è il seguente:

  • Apre Preferenze di sistema a: Tastiera > testo
  • Modificata la lingua nel Ortografia: menu popup in base a quanto segue:
    • Se impostato su Automatico per lingua , lo modifica in U.S. English .
    • Se impostato su U.S. Inglese , cambia in Türkçe .
    • Se impostato su Türkçe , lo modifica in U.S. English .
  • Chiude Preferenze di sistema .

Essenzialmente, quando non è impostato su Automatico per lingua , passa da U.S. Inglese e Türkçe . ogni volta che viene eseguito.

Puoi salvarlo come applicazione AppleScript , posizionarlo nel Dock , quindi ogni volta che viene fatto clic si alternerà tra i due le lingue. (Una volta impostato per primo in una delle lingue.)

Nota: ha salvato un'applicazione AppleScript che dovrà essere aggiunta a Preferenze di sistema > Sicurezza e amp; Privacy > Privacy > Accessibilità , aggiungendo l'app all'elenco Consenti alle app di seguito per controllare il tuo computer .

Questo potrebbe anche essere trasformato in un Automator servizio , dove potrebbe essere assegnata una scorciatoia da tastiera . (Vedi le istruzioni alla fine di questa risposta.)

Nota: il seguente codice AppleScript è stato testato in OS X El Capitan 10.11.6 e potrebbe essere necessario da rielaborare per l'uso con altre versioni di OS X / macOS .

Codice 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: poiché UI Scripting a volte può dipendere dal timing delle cose, il valore del comando delay potrebbe dover essere regolato e potrebbe essere necessario aggiungere o aggiungere delay comandi se necessario quando si esegue il sistema. Apporta le modifiche appropriate.

Inoltre, se vuoi farlo passare sempre tra le due lingue, avendo già impostato l'una o l'altra in circostanze normali, puoi rimuovere le seguenti righe di codice dalla if blocco di istruzioni nello script :

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

Per utilizzare questo codice AppleScript come servizio Automator , fai quanto segue:

  • In Automator , seleziona: File > Nuovo > servizio
  • Imposta: Il servizio non riceve input in qualsiasi applicazione
  • Aggiungi un Esegui AppleScript Azione .
    • Elimina le righe contenenti (* Your script goes here *) e return input .
    • Incolla il codice AppleScript nel on run gestore .
  • Salva il servizio di automazione , assegnandogli un nome appropriato, ad esempio Attiva / disattiva la lingua di ortografia

In Preferenze di sistema > Tastiera > Scelte rapide > Servizi > (Name You Gave The Service) , puoi aggiungere la scorciatoia da tastiera a trigger questo servizio.

    
risposta data 04.10.2017 - 15:10
fonte

Leggi altre domande sui tag