google-translate は Google 翻訳する機能を提供するパッケージ。
レシピは自前で用意している
(:name google-translate
:description "Emacs interface to Google Translate"
:type github
:pkgname "atykhonov/google-translate")
そして el-get でインストール
(el-get-bundle google-translate)
どうも最新版でも壊れっぱなしのようなので https://github.com/atykhonov/google-translate/issues/52#issuecomment-727920888 にあるように関数を上書きしている。
(with-eval-after-load 'google-translate-tk
(defun google-translate--search-tkk ()
"Search TKK."
(list 430675 2721866130)))
google-translate-tk に定義されていて、それが読まれた後に上書きしないといけないので with-eval-after-load を使っている。
Google Translate は UI を defauult と smooth のどちらかから選べるようになっている。
default だと
google-translate-default-source-language
google-translate-default-target-language
を設定しておいて
M-x google-translate-at-point
M-x google-translate-at-point-reverse
という使い方をする。
smooth だと翻訳の source, target を複数設定して多言語対応ができるが、英語以外を翻訳することがないので smooth でなくていいかという感じで default を採用している。
(with-eval-after-load 'popup
(require 'google-translate-default-ui))
popup.el に依存しているのでそれが読まれた後に require しないといけなかった。というわけで with-eval-after-load で対応している。
上述の通り default UI を使うことにしたのでその変数をいくらか設定している。
(custom-set-variables
'(google-translate-default-source-language "en")
'(google-translate-default-target-language "ja")
'(google-translate-translation-to-kill-ring t)
'(google-translate-output-destination 'popup))
日本語を母国語としていて英語はからきしという人間なので当然英日変換されるように設定していてあとは変換結果の表示方法は popup でツールチップ表示するようにしている。
ツールチップの表示だけでなくそれを文書に入れたい時はツールチップが出ている時に Enter でも叩けば kill-ring に入るのでそこから yank している
google-this と同じく Google 連係機能なので キーバインド > Google 連携 でまとめて Hydra を定義している