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") ;; "Угадайте, что я имею в виду"