Braindump

Emacsからgoogle-translateを使う (2021年度版)

July 26, 2021
emacs

2021/07 現在における google-translate.el の設定と使い方をまとめる.

環境 #

  • macOS 11.4
  • Emacs 28.0.50
  • google-translate.el ver. 0.12.0

設定 #

以下に leaf.el を用いた設定を示す. leaf.el については こちらの記事 を参照されたい.

(leaf google-translate
  :ensure t
  :require t
  :bind ("C-c t" . google-translate-smooth-translate)
  :custom
  (google-translate-translation-directions-alist . '(("en" . "ja")
                                                     ("ja" . "en")))
  :config
  (defun google-translate--search-tkk ()
    "Search TKK." (list 430675 2721866130)))

ポイントは requiredefun の2箇所.これらを追加しないと翻訳実行時に Search failed: ",tkk:'" と怒られる.公式に依ると google-translate-backend-methodcurlwget を指定してみてくれと 書いてある が,私の環境ではエラー解消に寄与しなかった.その他の backend も設定できるようだが,調査が面倒だったので こちら の issue を参考に設定した.

その他の設定は 公式 github に書かれているとおりキーバインドと翻訳の組を設定するだけ.ちなみに,選択リージョンに対する翻訳のコマンドは以下2種類が用意されている.

  • google-translate-at-point

    コマンド実行時に source と target をそれぞれ選択する.固定の組 (例えば en/ja) でしか翻訳しない場合は google-translate-default-source-language / google-translate-default-target-language それぞれに en / ja を設定することで, google-translate-at-point / google-translate-at-point-reverse の各コマンドで双方向の翻訳ができる.ただし,設定可能な言語組は一つのみ.

  • google-translate-smooth-translate

    コマンド実行時に google-translate-translation-directions-alist に設定した言語組から選択する.こちらは翻訳方向は固定である一方,いくつでも翻訳方向を設定可能.翻訳コマンドは一つだけ.

私は後者の google-translate-smooth-translate を使用している.翻訳方向の切り替えに別コマンドを使うのではなく規定の方向を選択するという挙動が気に入っている (覚えるコマンドが増えるのはつらい).

使い方 #

リージョンを選択して翻訳コマンド google-translate-smooth-translate (C-c t) を実行.

/images/2021-07-translate-execution.png

minibuffer に翻訳方向が表示される.良ければ Enter, 変えたければ C-n or C-p で翻訳方向を変更する.翻訳方向は前回の実行結果が保存されているため,翻訳方向が常に同じであれば機械的に Enter を押すだけで良い.翻訳の組は前述の google-translate-translation-directions-alist で設定する.

設定が正しく行われていれば以下のように翻訳結果が表示される.カーソルが持っていかれず実行地点に残るのが地味に嬉しい.

/images/2021-07-translate-result.png