Windows限定ながら、どのアプリケーションからでも1発でGoogle翻訳(またはDeepL)に遷移する方法をまたまたAutoHotKey + 右Altで実現する。紹介する方法は英⇒日のみ想定しているが、逆もやれば出来ると思う。
翻訳したい英文をCtrl+Cでクリップボードにコピーして、右Alt+Tで、Google翻訳にジャンプ、という2手で目的達成。
伝統の右Alt狂シリーズです。
事前準備
Google翻訳も、DeepL翻訳もURLに文字列を渡すことで、翻訳画面にテキストがプリセットされた状態を実現できるので、これを利用する。
右Alt活用のため、キーコードを事前に変更しておく必要がある。
Autohotkeyも使うので適宜インストール。
Autohotkeyのスクリプト設定
私は英文契約書を書いたり、海外とやりとりすることが多いので、最近は専らDeepL派である。ということで、
右Alt+TならDeepL、右Alt+TT(連打)ならGoogle翻訳、となるようにスクリプトを作成した。TranslateなんでとりあえずT。
文章中に/が入っていると上手くパラメータを渡すことができないのでDeepLのときだけ追加でエスケープしている。
; Google translate from clipboard
sc159 & T::
en_text := LC_UriEncode(CLIPBOARD)
Keywait, T, U
Keywait, T, D T0.3
if (ErrorLevel) {
en_text := StrReplace(en_text, "%2F", "%5C%2F")
Run,https://www.deepl.com/translator#en/ja/%en_text% ; DeepL Translator if T is single-pressed
} else {
Run,https://translate.google.co.jp/#en/ja/%en_text% ; Google Translator if T is double-pressed
}
Return
; ------------- Methods --------------
; Reference http://goo.gl/0a0iJq
LC_UriEncode(Uri, RE="[0-9A-Za-z]") {
VarSetCapacity(Var, StrPut(Uri, "UTF-8"), 0), StrPut(Uri, &Var, "UTF-8")
While Code := NumGet(Var, A_Index - 1, "UChar")
Res .= (Chr:=Chr(Code)) ~= RE ? Chr : Format("%{:02X}", Code)
Return, Res
}
私は英語を自分で書いて、日本語に変換してレビュー、という目的でしか使わないので、日⇒英のスクリプトは作っていないが、上記URLのenとjaを入れ替えれば多分逆方向もできるんじゃないかな。(適当)
まとめ
右Alt+Tでクリップボードの値をGoogle or DeepL翻訳。
それにしてもDeepL賢すぎます…