Emacs查词典: 第三部分 Google Dictionary & Translation
Google Dictionary
Google Dictionary是个很不错的服务,但Google没有以API形式提供这个服务,而且我也没看到使用unofficial API的Emacs扩展。
不过你还是可以以web的方式来查这个词典:
(defun google-dictionary (word fromlang tolang)
(browse-url (format
"http://www.google.com/dictionary?aq=f&langpair=%s|%s&q=%s&hl=en"
fromlang
tolang
(url-hexify-string word))))
(defun google-dictionary-word (word)
(interactive (list (let* ( (default-entry (thing-at-point 'word))
(input (read-string (format "Google Dictionary(%s): "
(if (string= default-entry "")
""
(format " (default `%s')" default-entry))))) )
(if (string= input "")
(if (string= default-entry "")
(error "No arg given")
default-entry)
input))))
(google-dictionary word "en" "zh-CN"))
而且如果你装了w3m的话,这个网页还可以显示在Emacs界面内: 将上面的browse-url改成w3m-browse-url就可以了。
Google Translate
严格来说,Google Translate只有不同语言间的翻译功能,不提供详细解释,而不限于单词(可支持整句、全文翻译)不算词典。但很多时候我们不就是想简单地看一下翻译结果?
Google Translate对外提供了AJAX API(不过很快又要关闭了),所以就有人写了扩展google-translator.el
基本用法:
(gt-translate "Hello world!" "en" "ru") ;; "Привет мир!"
而且google-translator.el 提供了(调用Google API)自动判断语言的能力, 并且提供了一个list来存放原语言/目标语言的自动判断表,于是可以这样调用:
;; (setq gt-guess-language-table ;; (list 'en 'ru ;; 'ru 'en ;; 'uk 'en)) (gt-inteligent-translate "Guess what i mean") ;; "Угадайте, что я имею в виду"

浙公网安备 33010602011771号