DeepL とうAIによる翻訳サイトが流行っていますね。Google翻訳よりも自然な訳をしてくれると話題です。使い方としてはサイトにてコピー&ペーストするだけなのですが、Emacs 使いとしては Emacs から直接翻訳したいですよね。そこで今回はその設定方法について説明します。
Emacs 前準備
今回使用するパッケージにあわせて前準備が必要です。すでに対応済みの場合はスキップしてください。
Emacs27 の入手
まず、Emacs27 以降のバージョンが必要です。Windows なら下記のものを使うのが一番はやい気がします。
64bit版 GNU Emacs 27.1 for Windows(w/ IMEパッチ
Linuxの人は自分でビルドするなり PPAP からインストールするなりしてください(ググればすぐ出てきます)。
MELPAの設定
つぎにMELPAを登録しておきます。下記のように init.el で設定しておけばよいかと思います。
(package-initialize) (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/") ("melpa" . "https://melpa.org/packages/") ("org" . "https://orgmode.org/elpa/")))
DeepL APIの認証キーの取得
Emacs から DeepL を使用するには API を利用します。APIを使うには認証キーが必要です。
まずは公式サイトにアクセスします。
DeepL
サイトの上の方に「API」と書いてあるところがあるのでそこをクリックしてください。下図の赤枠のところです。
次に、下の方に「無料で登録する」というところがあるのでそこをクリック。下図の赤枠のところです。
すると名前や住所、クレジットカード情報を聞かれます。「クレジットカードの入力は1人で複数登録するのを防ぐため(意訳)」と書いてあります。フリープランなら課金されることはないので問題ないでしょう。そのまま進め登録を完了させます。
これでAPI認証キーを取得する準備ができました。右上のほうのアカウント名をアカウント情報を表示させます。
アカウントタブのところをクリックすれば下記のようにAPI認証キーが表示されるはずです。あとでこれを入力する必要がありますのでどこかにメモしておいてください。
go-translate のインストール
Emacsパッケージの go-translate をインストールします。
MELPA からダウンロードできます。下記のコマンドでインストールできます。
M-x package-install RET go-translate RET
GUIでインストールしてもOKです。下記のような感じですね。
ちなみにパッケージのGitHubでは下記の場所です。詳細は下記から調べてみてください。
Emacs go-translate
go-translate の設定
init.el に下記のように記載すればOKです。auth-key のところのXXXXXは前述したDeepLのAPI認証キーを設定してください。これで設定は終わりです。下記の例では C-c t に翻訳機能を割り当てています。翻訳したい文章をリージョン選択してC-c t を入力すると翻訳されるはずです!
(require 'go-translate) ;; your languages pair used to translate (setq gts-translate-list '(("en" "ja") ("ja" "en"))) ;; config the default translator, it will be used by command gts-do-translate (setq gts-default-translator (gts-translator :picker ; used to pick source text, from, to. choose one. ;;(gts-noprompt-picker) ;;(gts-noprompt-picker :texter (gts-whole-buffer-texter)) (gts-prompt-picker) ;;(gts-prompt-picker :single t) ;;(gts-prompt-picker :texter (gts-current-or-selection-texter) :single t) :engines ; engines, one or more. Provide a parser to give different output. (list ;;(gts-bing-cn-engine) ;;(gts-google-engine) ;;(gts-google-rpc-engine) (gts-deepl-engine :auth-key "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX:XX" :pro nil) ;;(gts-google-engine :parser (gts-google-summary-parser)) ;;(gts-google-engine :parser (gts-google-parser)) ;;(gts-google-rpc-engine :parser (gts-google-rpc-summary-parser) :url "https://translate.google.com") ;;(gts-google-rpc-engine :parser (gts-google-rpc-parser) :url "https://translate.google.com") ) :render ; render, only one, used to consumer the output result. Install posframe yourself when use gts-posframe-xxx (gts-buffer-render) ;;(gts-posframe-pop-render) ;;(gts-posframe-pop-render :backcolor "#333333" :forecolor "#ffffff") ;;(gts-posframe-pin-render) ;;(gts-posframe-pin-render :position (cons 1200 20)) ;;(gts-posframe-pin-render :width 80 :height 25 :position (cons 1000 20) :forecolor "#ffffff" :backcolor "#111111") ;;(gts-kill-ring-render) )) ;;(setq go-translate-buffer-follow-p t) ; focus the result window ;;(setq go-translate-buffer-source-fold-p t) ; fold the source text in the result window ;;(setq go-translate-buffer-window-config ..) ; config the result window as your wish (global-set-key (kbd "C-c t") 'gts-do-translate)
C-c t で下記のようになればOKです!
ちなみにコメントアウトしている箇所を変更するとGoogle翻訳を有効にしたり、翻訳結果をキルリングに入れたりすることもできます!いろいろ試してみてください。
まとめ
今回は DeepL をEmacs から直接使う方法を紹介しました。ブラウザにコピペする手間が省けて便利だと思います!
コメント