[M1 Mac, Big Sur 11.6.8, Ventura 13.0]
“かなキー2回押しで日本語変換”と同等の機能をAppleScriptで実装しました。cmd + opt + zに割り当てています。ただしアルファベットの前に別種の文字があるとそれらを消してしまう仕様になっています。
このスクリプトはBig Surでは動きますが、残念ながらVenturaでは誤動作します。おそらくMontereyでもNGだと思います。
Venturaで”display dialog”コマンド(C言語におけるprintf)を使いAppleScriptの挙動をApple純正・非純正アプリにて検証してみましたが、スクリプトエディタのような純正アプリでもクリップボードへのコピーができない時がありとても不安定です。再現性がないというのは致命的です。
もはやスクリプト言語として開発環境が破綻しているようにも思えるので、AppleScriptとは距離を置くことにしました。JavaScript for Automation(JXA)についてはこれから試してみます。
それにしてもAppleScriptユーザーが率先してこのような状況を発信すべきだと思うのですが、ネットを見渡した限りほぼ皆無というのが実に不思議です。
use AppleScript version "2.5" -- (10.12) or later
use framework "Foundation"
use scripting additions
property NSString : a reference to current application's NSString
property NSStringTransformLatinToHiragana : a reference to current application's NSStringTransformLatinToHiragana
selectString()
set latin to the clipboard
set hiragana to alphabetToHiragana(latin)
set the clipboard to hiragana
pasteString()
henkan()
on selectString()
tell current application
tell application "System Events"
keystroke "ac" using {command down}
end tell
end tell
end selectString
on pasteString()
tell current application
tell application "System Events"
keystroke "v" using {command down}
end tell
end tell
end pasteString
on alphabetToHiragana(aStr)
set aString to NSString's stringWithString:aStr
return (aString's stringByApplyingTransform:(NSStringTransformLatinToHiragana) |reverse|:false) as string
end alphabetToHiragana
on henkan()
tell current application
tell application "System Events"
keystroke "a" using {command down}
key code 104
key code 104
end tell
end tell
end henkan