右Altが要らないのでGoogle翻訳ショートカットに使う

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賢すぎます…

Posted by 効率化好きな人

SaaSベンダーで導入やってるしがない仕事効率化オタクです。

コメントを残す

CAPTCHA