AutoHotkey は、スクリプトを書いてキーボードの操作を便利にカスタマイズしよう、というようなことを目的にしているツールです。既にいろいろなところで取り上げられているので、概要や設定方法などについては以下を参考にしてください。
・AutoHotKeyを使ってみよう|翻訳者の引き出し (honyaku-hikidashi.net)
・AutoHotkeyを導入して、翻訳作業の効率を上げる | Koujou Blog
・AutoHotkeyのつぼの記事一覧 | つぼログ。 | シーブレインスタッフによる技術情報ブログ (c-brains.jp)
検索すると他にもたくさん情報が見つかりますが、私のこの記事では細かいことはすっ飛ばして、現在私が使っているごくごく簡単なスクリプトをそのままお見せしたいと思います。本当にかなり適当なスクリプトなので、もし改善案などありましたらぜひご連絡ください。
Phrase (Memsource) の訳語検索
最近、Memsource から名前が変わった Phrase は、全体的にとてもシンプルなのが特徴ですが、シンプルなだけに設定やオプションが少なく、少し使いにくく感じることもあります。その 1 つが訳語検索です。
訳語検索はショートカット キー Ctrl+k で実行できます。ただし、カーソルが原文側にあるときは原文を検索、訳文側にあるときは訳文を検索するという動作になっていて、これを変更することはできません。翻訳作業中、カーソルは編集をしている訳文側にたいていあるので、カーソルが訳文側にある状態で原文を検索するという操作が最も多くなりますが、これをキーボードだけで行おうとするとなかなか面倒です。
日英翻訳 (ja → en) をしている場合、訳文 (en) 側にカーソルがある状態で Ctrl+k を押すと、上記のように、選択していた語句を訳文 (en) から検索します。(この UI の [原文:] と [訳文:] は、あくまでどこを検索しているかを表しています。翻訳作業自体の原文と訳文ではありません。)
この状態で、原文 (ja) を検索したい場合は、入力フィールドの横にある [<->] をクリックして、再度 [検索] ボタンを押す必要があります。この [<->] を操作するショートカット キーが Phrase には用意されていないので、AutoHotkey の登場となります。
AutoHotkey で行っている操作は、以下のとおりです。
1. タブを 2 回押して、フォーカスを入力フィールドから [<->] に移動
2. スペースを押して、[<->] をクリックしたことにする
3. Shift+タブを押して、フォーカスを [<->] から [検索] ボタンに移動
4. スペースを押して、[検索] ボタンをクリックしたことにする
スクリプトは、こんな感じです。
SendInput, {Tab 2} ;タブ 2 回
SendInput, {Space} ;スペース
SendInput, +{Tab} ;Shift+タブ
SendInput, {Space} ;スペース
Return
スクリプトは、いたって単純です。私はこれを Ctrl+Alt+k に割り当てています。普通に Ctrl+k を押して訳語検索をした後、Ctrl+Alt+k を押すと、原文と訳文を入れ替えて再度検索ができます。
「キーボード操作じゃなくて、マウスでクリックすればいいんじゃない?」というご指摘はあるかと思いますが、私はマウスを使うと肩がこるので、できるだけキーボードを使いたいのです。ちなみに、Trados と memoQ はもう少し簡単に検索対象を切り替えられます (訳語検索の詳しい方法については、また別記事で取り上げたいと思います)。
URL の言語指定を切り替える
ウェブサイトで英語ページと日本語ページを切り替えたいことはよくあると思います。多言語対応のサイトなら、一般的に URL 内の特定の文字を変換することで切り替えられます。
言語指定に使われることが多い文字列は「en-us」や「ja-jp」ですが、 これは各サイトによって異なります。すみません、私はその辺りはすべて手動対応で、必要になったものをその都度追加しています。そのため、下記のように、スクリプトが else if でどんどん長くなっていきます (が、ひとまず動いているので OK としています)。
Send, ^c
ClipWait 1
Sleep, 300
keyword = %clipboard%
; E to J
if InStr(keyword, "en-us") <> 0
{
StringReplace, keyword, keyword, en-us, ja-jp, All
}
else if InStr(keyword, "hl=en") <> 0
{
StringReplace, keyword, keyword, hl=en, hl=ja, All
}
; J to E
else if InStr(keyword, "ja-jp") <> 0
{
StringReplace, keyword, keyword, ja-jp, en-us, All
}
else if InStr(keyword, "hl=ja") <> 0
{
StringReplace, keyword, keyword, hl=ja, hl=en, All
}
Clipboard := keyword
Sleep, 300
Send, ^v
Return
キーに割り当てるスクリプトを変更する
AutoHotkey の定番の使い方として、括弧で文字を囲む、読点とカンマを置換するといった操作がありますが、日英と英日の両方向で作業をする場合、全角半角の区別や、読点とカンマのどちらからどちらに置換するのかなどを考えると、わりと面倒なことになります。また、英日の単方向だとしてもスタイルガイドによって括弧が半角だったり全角だったりするので、作業のたびに切り替えが必要になります。
私は、同じショートカット キーに対して両方のスクリプトを書いておき、特定の作業を始めるときに、スタイルガイドを確認しながら、コメントを使ってどちらかのスクリプトを有効にするようにしています。
;Hotkey, vk1D & 8, InParentheses_HAN
Hotkey, vk1D & 8, InParentheses_ZEN
;Hotkey, vk1D & [, InSquare_HAN
Hotkey, vk1D & [, InSquare_ZEN
;Hotkey, ^!w, Replace_Ten
Hotkey, ^!w, Replace_Comma
この記事を書きながら考えてみたら、読点とカンマは、いちいち切り替えなくても自動処理できそうな気もしてきました。それは、今後の課題としたいと思います。
今回は以上です。AutoHotkey が初めてという方にはよくわからない内容だったかもしれません (すみません)。ただ、AutoHotkey は、少し時間をかけても習得して使ってみる価値があると思います。ぜひ挑戦してみてください。スクリプトはその辺からのコピペでもわりとちゃんと動きます。大丈夫です。