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



posted @ 2011-06-26 22:07  巴蛮子  阅读(1140)  评论(0)    收藏  举报