google-translate.el(レビュー) は、
英語・日本語を自動判別してGoogle翻訳を行う設定を示しました。
しかし、regionを指定しない場合は翻訳文を入力する必要があるのが、
ちょっと手間に思えてきました。
そこで、以下の改良点を施しました。
- regionを指定しない場合は現在のセンテンスを翻訳文に
- C-u C-c tで入力文字列を翻訳文に
- 関数の引数に翻訳文を指定できるようにした
http://emacs.rubikitch.com/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
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。