Emacs查词典: 第三部分 Google Dictionary & Translation

本文介绍如何在Emacs环境中利用Google的服务进行单词查询及翻译。通过定义简单的Elisp函数,可以直接从Emacs中访问Google Dictionary和Google Translate,实现快速查阅单词释义及短句翻译。

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值