google-translate 20161206.1408(in MELPA)
Emacs interface to Google Translate.

概要

<2014-12-30 Tue>設定を大幅パワーアップ!!!!

google-translate.el は、Google翻訳APIを使って
様々な言語の翻訳を行います。

しかも高速に動作します!

英語に悩んでいる人には朗報ですね。

本設定では、英語・日本語の自動判別をしたコマンドを用意しました。

ASCII文字でのみ構成されている場合は英語とみなします。

C-c tに割り当てた M-x google-translate-enja-or-jaen は、
以下の挙動を取ります。

  • C-c t (regionあり): regionを翻訳
  • C-c t (regionなし): 現在のセンテンスを翻訳(NEW!!)
  • C-u C-c t: 入力文字列を翻訳(NEW!!)
  • (google-translate-enja-or-jaen "english string"): 英語→日本語
  • (google-translate-enja-or-jaen "日本語文字列"): 日本語→英語

もし英語・日本語以外の言語を使うならば、
google-translate-translation-directions-alist
様々な言語を設定し、 M-x google-translate-smooth-translate
直接使いましょう。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてgoogle-translateを使う方は
以下のコマンドを実行します。

M-x package-install google-translate

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name google-translate

設定 141230072954.google-translate-2.el(以下のコードと同一)

(require 'google-translate)

(defvar google-translate-english-chars "[:ascii:]’“”–"
  "これらの文字が含まれているときは英語とみなす")
(defun google-translate-enja-or-jaen (&optional string)
  "regionか、現在のセンテンスを言語自動判別でGoogle翻訳する。"
  (interactive)
  (setq string
        (cond ((stringp string) string)
              (current-prefix-arg
               (read-string "Google Translate: "))
              ((use-region-p)
               (buffer-substring (region-beginning) (region-end)))
              (t
               (save-excursion
                 (let (s)
                   (forward-char 1)
                   (backward-sentence)
                   (setq s (point))
                   (forward-sentence)
                   (buffer-substring s (point)))))))
  (let* ((asciip (string-match
                  (format "\\`[%s]+\\'" google-translate-english-chars)
                  string)))
    (run-at-time 0.1 nil 'deactivate-mark)
    (google-translate-translate
     (if asciip "en" "ja")
     (if asciip "ja" "en")
     string)))
(global-set-key (kbd "C-c t") 'google-translate-enja-or-jaen)

実行方法

$ wget http://rubikitch.com/f/141230072954.google-translate-2.el
$ emacs -Q -f package-initialize -l 141230072954.google-translate-2.el

20141207040527.png
Fig1: 翻訳!

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。