[JXA] 03 ローマ字を漢字に変換 その1

JXA : JavaScript for Automation
[M1 Mac, Big Sur 11.6.8, Ventura 13.0]

JXAでアプリ上のローマ字をひらがなに変換し、さらに漢字に変換するスクリプトを書きました。

やはりAppleScriptと同様にVenturaではまともに動きませんでした。クリップボードをコントロールすることができなくなっています。

調べてみるとクリップボードへの反映にやや時間が掛かるとのことなので、もう少し検討を続けます。

function run(input, parameters) {
    var se = Application("System Events");
    se.includeStandardAdditions = true;

    se.keystroke("a", {using:"command down"});
    se.keystroke("c", {using:"command down"});

    var txt = se.theClipboard();

    lib = Library('convertlib');
    var ret = lib.romaji_to_hiragana(txt);

    se.setTheClipboardTo("");
    se.setTheClipboardTo(ret);

    se.keystroke("v", {using:"command down"});
    se.keystroke("a", {using:"command down"});

    se.keyCode(104);
    se.keyCode(104);
    // または
    // se.keystroke("r", {using:["control down", "shift down"]});
             
    return input;
}