Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Hotkey für Umschaltung des Wörterbuchs

Hotkey für Umschaltung des Wörterbuchs

Gilderoy Lockhart18.01.0711:39
Hallo,

da ich regelmäßig englische wie deutsche Texte verfasse, muss ich andauernd die Wörterbücher in der Rechtschreibung umschalten. Da ich teilweise ASpell-Wörterbücher verwende (für LaTeX) hilft mir "Multilingual" nicht weiter.
Nun ist es sehr aufwendig, immer über "Rechtsklick - Rechtschreibung > Rechtschreibung, Wörterbuchauswahl, Klick" (oder +: ...) das passende Wörterbuch auszuwählen, zumal ich nur zwischen zwei Büchern hin- und herwechsle.

Gibt es die Möglichkeit, die Umschaltung mittels Hotkeys zu bewerkstelligen. Also etwa +mod+E = Englisch, +mod+D = Deutsch?
Kann man dazu einen Tastaturkurzbefehl auswählen? Nur wie wähle ich dann die Sprache aus? Oder mittels AppleScript? Oder muss man ein Tool installieren?
0

Kommentare

sonorman
sonorman18.01.0711:42
Vielleicht mit Automator?
0
Gilderoy Lockhart18.01.0711:48
Das Problem ist, dass die Auswahl des Wörterbuchs in beliebigen Programmen erfolgen soll. Außerdem finde ich im Automator nichts zu Rechtschreibung oder Wörterbüchern... Aber ich kenne mich da auch nicht aus.
0
sonorman
sonorman18.01.0711:54
Ich kenne mich leider auch nicht mit Automator aus. War nur so'ne idee.

Es gibt allerdings eine ganze Reihe von Programmen, die Tastaturkommandos und auch Mausaktionen als Makro aufzeichnen können. Schau doch mal, ob Du hier vielleicht etwas findest. @@
0
Gilderoy Lockhart18.01.0713:18
OK, ich habe ein AppleScript gefunden ( ), aber leider funktioniert es bei mir nicht (auch nicht, wenn ich auf Englisch umschalte). Probleme wie diese sind es, warum ich AppleScript nicht mag.
Hat jemand einen Tip oder noch eine andere Idee?
0
Gilderoy Lockhart18.01.0713:28
Das Problem scheint zu sein -- und daran scheitern alle Tools -- dass die Umschaltung des Wörterbuchs wohl nur über das Dialogfenster vorgesehen ist. Daher gibt es keine direkten Aufrufe für AppleScript o.ä., so dass weder Automator noch andere Shortcut-Tools Zugriff auf diese Funktionalität haben.
0
sonorman
sonorman18.01.0713:32
Aber was ist mit den Tools, die auch Mausaktionen aufzeichnen können? So könntest Du zumindest Deine manuelle Vorgehensweise mit einem Tastendruck erledigen lassen.
0
Gilderoy Lockhart18.01.0713:50
Ich habe mal "Keyborad & Mouse Recorder" getestet -- das funktioniert überhaupt nicht. Das Teil erkennt noch nicht einmal CTRL-Klick. Abgesehen davon werden die Mausbewegungen gespeichert (etwa 409;355;Up;Up;Up;Up;Up;-1). Vollkommen unbrauchbar für meine Zwecke, leider.
0
sonorman
sonorman18.01.0714:20
Schade
Vielleicht weiss ja noch jemand anderes Rat.
0
_mäuschen
_mäuschen18.01.0714:21

Im Script steht:
--change to option given in menu
--change to be as given in your language



property lang_one : "Deutsch" --"English" --change to option given in menu
property lang_two : "English" --"British English" --change to option given in menu
property name_of_spelling_window : "Rechtschreibung" --"Spelling" --change to be as given in your language
property name_of_menu : 1 --"OtherViews" --change to be as given in your language
property error_message : "Spell options not available!"
--error message displayed when an application has no spelling option for the current window

set app_name to my get_front_app()
tell application app_name to activate
tell application "System Events"
tell process app_name
keystroke ":" using {command down, shift down}
delay 0.5 --need to adjust for your machine
if exists (window name_of_spelling_window) then
tell window name_of_spelling_window
tell group 1
tell pop up button 1
set current_lang to value as string
click
tell menu name_of_menu
if current_lang = lang_one then
click menu item lang_two
else
click menu item lang_one
end if
end tell
end tell
end tell
click (the first button whose subrole is "AXCloseButton")
end tell
else
display dialog error_message & " " & current_lang with icon stop
end if
end tell
end tell

on get_front_app()
tell application "System Events"
keystroke "h" using command down
delay 0.5 --need to adjust for your machine
set appname to name of (first process whose frontmost is true) as string
end tell
return appname
end get_front_app


Ein paar weitere Anpassungen und Du könntest die gewünschten Tastenkürzel verwenden

0
rofl
rofl18.01.0714:30
Also mit dem Program "PrefSetter" finde ich unter NSGlobalDomain einen Eintrag zum SpellChecker, aber wie der gesichert wird sehe ich gerade nicht.

Kurzum es muss möglich sein, durch Änderung der Preferences unter Verbindung eines Skripts das per Key zu ändern. Aber genau weiss ich noch nicht wie.
0
Gilderoy Lockhart18.01.0715:47
_mäuschen: Jaja... ich habe das Skript auch schon geladen und getestet -- aber es funktioniert nicht. Bei mir funktioniert die Zeile

if exists (window name_of_spelling_window) then

nicht, obwohl ich schon mit dem "delay" gespielt habe und das Spell-Fenster geöffnet wird. Ich habe ein wenig zumgespielt -- angeblich hat der Prozess keine Fenster -- am Namen liegt es also auch nicht. Sch... AppleSkript.

Läuft das Skript bei Dir?
0
Gilderoy Lockhart18.01.0715:48
rofl: Die Prefs habe ich mir auch schon angesehen, allerdings den Eintrag nicht gefunden.
0
_mäuschen
_mäuschen18.01.0715:51

Vielleicht war's zu wenig deutlich

property lang_one : "Deutsch" --"English"
property lang_two : "English" --"British English"
property name_of_spelling_window : "Rechtschreibung" --"Spelling"
property name_of_menu : 1 --"OtherViews"


Die Sprache der Rechtschreibprüfung wird getoggelt.

Den Script als Programm speichern und
in den Home/Library/Scripts Ordner legen

Eine Maustaste (falls vorhanden) mit diesem Script-Programm belegen oder
über das AppleScript Menu in der Menu Bar aufrufen oder
mit einem 3th party tool einen neuen Tastatur-Kurzbefehle definieren,
der diese SpellingSwitcher.app aufruft.

0
Gilderoy Lockhart18.01.0717:07
_mäuschen: Das ist schon klar. Das Problem: Bei mir läuft das Skript gar nicht bis zu der Stelle, an der das Probleme bereiten könnte. Funktioniert bei Dir das Skript denn einwandfrei?

Bei mir passiert folgendes: Das Fenster "Rechtschreibung" öffnet sich und dann kommt die Fehlermeldung des Skripts ("Spell options not available"). Wenn ich im Skripteditor das Event-Protokoll ansehe, so kommt er bis zum Test, ob es ein Fenster "Rechtschreibung" gibt. Gibt es aber bei mir nicht.
Wenn ich bspw. das Skript beim Schreiben dieses Textes aufrufe, kommt folgendes Event-Protokoll:

tell application "System Events"
keystroke "h" using command down
get name of process 1 whose frontmost = true
"Safari"
end tell
tell application "Safari"
activate
end tell
tell application "System Events"
keystroke ":" using {command down, shift down}
count every window of process "Safari"
0
exists window "Rechtschreibung" of process "Safari"
false
display dialog "Spell options not available!" with icon stop
"„System Events“ hat einen Fehler erhalten: Vom Benutzer abgebrochen."

Das "count..." kommt von

repeat with x in windows
say name of x
end repeat

das ich vor dem Test zum Debuggen eingefügt habe -- angeblich hat "Safari" also keine Fenster, was ja nicht sein kann.
0
_mäuschen
_mäuschen18.01.0717:28

Hast Du denn auch in das Text-Eingabefenster von Safari geklickt?


Und, ja, bei mir läuft der Skript. Hab in auf die Maus gelegt.
Jetzt kann ich die Maus Quetschen und spelling wird geswitcht
0
_mäuschen
_mäuschen18.01.0717:37

Also bei mir kommt dies


tell application "System Events"
keystroke "h" using command down
get name of process 1 whose frontmost = true
"Safari"
end tell
tell application "Safari"
activate
end tell
tell application "System Events"
keystroke ":" using {command down, shift down}
exists window "Rechtschreibung" of process "Safari"
true
get value of pop up button 1 of group 1 of window "Rechtschreibung" of process "Safari"
"English"
click pop up button 1 of group 1 of window "Rechtschreibung" of process "Safari"
pop up button 1 of group 1 of window "Rechtschreibung" of application process "Safari"
click menu item "Deutsch" of menu 1 of pop up button 1 of group 1 of window "Rechtschreibung" of process "Safari"
menu item "Deutsch" of menu 1 of pop up button 1 of group 1 of window "Rechtschreibung" of application process "Safari"
click button 1 of window "Rechtschreibung" of process "Safari" whose subrole = "AXCloseButton"
button 1 of window "Rechtschreibung" of application process "Safari"
end tell

0
Gilderoy Lockhart19.01.0713:34
_mäuschen: Tja, keine Ahnung, warum das nicht funktioniert. Die Zeile

exists window "Rechtschreibung" of process "Safari"
true

zeigt den Unterschied. Bei mir kommt "false". Ich habe es mit diversen Konfigurationen versucht (verschiedene Programme, verschiedene Sprachen, Tippfehler gesucht...), es geht einfach nicht. Und ich verwende ja ansich das gleiche Skript wie Du... sehr seltsam. Stärkt mein Unbehagen, was AppleSkript angeht, denn da hatte ich schon ab und an solche Probleme.
0
_mäuschen
_mäuschen19.01.0713:55

Bekommst Du, wenn Du von Hand Shift-Apfel-: eingibst dieses Fenster?
0
_mäuschen
_mäuschen19.01.0714:13
und heisst es auch Rechtschreibung oder heisst es spelling


Und bitte, poste Deinen 'nicht funktionierenden' script

0
Gilderoy Lockhart19.01.0715:49
@ _mäuschen: Das Fenster bekomme ich angezeigt. Mein Skript entspricht dem von Dir geposteten bzw. dem Originalskript. Ich habe auch schon Englisch eingeschaltet, um das Originalskript ganz ohne Änderungen verwenden zu können. Na, wer weiss, vielleicht habe ich beim C&P was falsch gemacht, hier mein Skript:

--------------------------------------------------------------------
property lang_one : "English (ASpell)" --change to option given in menu
property lang_two : "Deutsch" --change to option given in menu
property name_of_spelling_window : "Rechtschreibung" -- "Spelling" or "Rechtschreibung" change to be as given in your language
property name_of_menu : "OtherViews" --change to be as given in your language
property error_message : "Spell options not available!"
--error message displayed when an application has no spelling option for the current window

set app_name to my get_front_app()
tell application app_name to activate
tell application "System Events"


tell process app_name
keystroke ":" using {command down, shift down}
delay 1.0 --need to adjust for your machine
--repeat with x in windows
-- say name of x
--end repeat
if exists (window name_of_spelling_window) then
tell window name_of_spelling_window
tell group 1
tell pop up button 1
set current_lang to value as string
click
tell menu name_of_menu
if current_lang = lang_one then
click menu item lang_two
else
click menu item lang_one
end if
end tell
end tell
end tell
click (the first button whose subrole is "AXCloseButton")
end tell
else
display dialog error_message with icon stop
end if
end tell
end tell

on get_front_app()
tell application "System Events"
keystroke "h" using command down
delay 0.5 --need to adjust for your machine
set appname to name of (first process whose frontmost is true) as string
end tell
return appname
end get_front_app
--------------------------------------------------------------------
0
_mäuschen
_mäuschen19.01.0716:17

Ich habe jetzt einzig und allein diese Zeile verändern müssen

property name_of_menu : "OtherViews" --change to be as given in your language

wird zu

property name_of_menu : 1


Dann läuft der Script, gibt mir bis zum Error beim Click auf, das bei mir nicht vorhandene, "English (ASpell)" Wörterbuch

-----------------------------
click menu item "English (ASpell)" of menu 1 of pop up button 1 of group 1 of window "Rechtschreibung" of process "TextEdit"
"„System Events“ hat einen Fehler erhalten: NSReceiverEvaluationScriptError: 4"
-----------------------------


Ändere ich nun "English (ASpell)" @@"English", so geht der script

-----------------------------
click menu item "English" of menu 1 of pop up button 1 of group 1 of window "Rechtschreibung" of process "TextEdit"
-----------------------------


Also ändere jetzt nur noch die Zeile mit dem name_of_menu


PS
Du hast ja ein Wörterbuch das English (ASpell) heisst?

0
_mäuschen
_mäuschen19.01.0716:36

Und hier noch der Ausdruck mit


repeat with x in windows
if x is not missing value then
say name of x as string
end if
end repeat


tell application "System Events"
keystroke ":" using {command down, shift down}
count every window of process "Safari"
5
get name of item 1 of every window of process "Safari"
"Rechtschreibung"
say "Rechtschreibung"
get name of item 2 of every window of process "Safari"
"MacTechNews.de - News Tag und Nacht"
say "MacTechNews.de - News Tag und Nacht"
get name of item 3 of every window of process "Safari"
"Suchen"
say "Suchen"
get name of item 4 of every window of process "Safari"
"Geladene Dateien"
say "Geladene Dateien"
get name of item 5 of every window of process "Safari"
"ADC Member Site"
say "ADC Member Site"
exists window "Rechtschreibung" of process "Safari"
true
get value of pop up button 1 of group 1 of window "Rechtschreibung" of process "Safari"
"Deutsch"

0
Gilderoy Lockhart19.01.0716:59
Tja.. irgendwie ist das was bei mir defekt. Bei mir hat der Prozess "Safari" (oder jeder beliebige andere) angeblich keine Fenster, wie obiges Log von mir ja zeigt. Trotzdem vielen Dank für die Hilfe, _mäuschen.

(P.S.: Ich habe schon selbst AppleScripts gebaut und kenne mich in der Programmierung allgemein eigentlich gut aus... aber hier scheint es sich um einen heisenbug zu handeln )
0
HERR MÄDER
HERR MÄDER21.03.0714:20
Hallo. Komme von diesem Thread:

Nun verstehe ich von der Materie leider nicht allzu viel.
Wenn ich jetzt aber von Deutsch nach Französisch (und umgekehrt) wechseln will, muss ich dann in diesem Skript etwas ändern?

Bin um Hilfe sehr dankbar.
0
teorema67
teorema6721.03.0714:28
„Wenn ich groß bin, geh ich auch auf die Büffel-Universität! (Ralph Wiggum)“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.