1.文字列が選択されていない場合、ポインター(カーソルではないので注意)が置かれている場所の単語を取得します。
2.単語末が「ied」または「ies」の場合は、「y」に置換。例、「studied」や「studies」は「study」に置換。
3.単語末が「ed」の場合は「ed」を削除。例、「folded」は「fold」に。
4.単語末が「s」の場合は、「s」を削除。例、「approvals」は「approval」に。
Windows key+dを押すと、以上の処置を実施後にLogophileで辞書引きをします。
1単語の辞書引きの場合は、わざわざ単語を選択する必要がなく、ポインターを引きたい単語の上に置き、windows keyとdを押すだけです。
====ここからスクリプト====
;ウインドウズキー+dで以下を実行
#d::
;とりあえずクリップボードに入っているものを避難させる
Backup := ClipboardAll
sleep, 50
;クリップボードを空にする
clipboard =
sleep, 50
;選択範囲をコピー
Send,^c
sleep, 50
;選択されているかどうかの判断。選択されていなかった場合、マウスを左クリック2回で単語選択してコピー
If StrLen(clipboard)=0
{
Mouseclick,Left,,,2
Send,^c
}
;最後の1文字を取得して「半角スペースかどうか判定。
StringRight,spacecheck,clipboard,1
;半角スペースの場合は削除
If spacecheck = %A_SPACE%
{
StringLeft,clipboard1,clipboard,StrLen(clipboard)-1
clipboard := clipboard1
}
;複数形(ies)および過去形(ied)への対応
;最後の3文字を取得(iescheck)
StringRight,iescheck,clipboard,3
;最後の3文字が「ies」か「ied」を判断して、一致する場合は「y」に変更
If iescheck in ies,ied
{
StringLeft,clipboard1,clipboard,StrLen(clipboard)-3
clipboard := clipboard1 "y"
}
;過去形(ed)への対応
;最後の2文字を取得(edcheck)
StringRight,edcheck,clipboard,2
;最後の2文字が「ed」かを判断して、「ed」なら削除
If edcheck = ed
{
StringLeft,clipboard1,clipboard,StrLen(clipboard)-2
clipboard := clipboard1
}
;複数形(s)への対応
;最後の1文字を取得(scheck)
StringRight,scheck,clipboard,1
;最後の1文字が「s」かを判断して、「s」なら削除
If scheck = s
{
StringLeft,clipboard1,clipboard,StrLen(clipboard)-1
clipboard := clipboard1
}
clipwait,0.5,1
;logophileにクリップボードの内容を送る
Run,"C:\Program Files (x86)\Logophile\Logophile.exe" -s"%clipboard%" -g
Send,^v
Send, {enter}
;クリップボードを最初の内容に戻す
Clipboard := Backup
Return
====ここまでスクリプト====