Edict

From WikEmacs
Revision as of 04:13, 31 March 2012 by Xophist (talk | contribs) (→‎Modifications: added note about edict-default-coding-system)
Jump to navigation Jump to search

The elisp package edict.el is an instance of Lookup. It is often referred to simply as edict, which is confusing because it is associated with Edict, the Japanese dictionary. The lisp package can work with other dictionaries.

edict.el allows searching a local dictionary (e.g. Edict, Kanjidic) for character at point or a region. Search results are displayed in an Emacs buffer.

Usage

  • M-x edict-search-english (prompts for word to search for)
  • M-x edict-search-kanji (first highlight a character or sequence)

Package availability

Linux

There are SUSE Linux RPMs for both edict.el and EDICT (the Japanese-English dictionary). Note that you can create your own dictionary, or use other dictionaries.

To find the RPMs:Search for edict

  • edict-emacs-0.9.8-972.2 edict.el, an Emacs Front-end for EDICT
  • edict-20060807-136.2 The Japanese Dictionary Files for Jim Breen's EDICT Project

Windows XP

The Suse RPMs can also be used on Windows XP. Use 7-Zip on the RPM, and then the enclosed cpio archive. It will create a usr/share/emacs/site-lisp/edict hierarchy, but you can move the edict folder or just its contents to anywhere, then add to load-path.

Modifications

Add to .emacs:

; set a variable edictdir to location of edict.el and the other package elisp files
(add-to-list 'load-path edictdir)
; variable edict-dictionaries points to your dictionaries. It is in suse-start.el
(load "suse-start")

The elisp files are in package edict-emacs-xxx.rpm. It is not necessary to get the edict-xxx.rpm which contains dictionaries, but suse-start.el notes that:

;; the following dictionaries should be available when you
;; have installed edict.rpm:
(setq edict-dictionaries
      (list
       "/usr/share/edict/4jwords"
       "/usr/share/edict/aviation"
       "/usr/share/edict/classical"
       "/usr/share/edict/compdic"
       "/usr/share/edict/compverb"
       "/usr/share/edict/concrete"
       "/usr/share/edict/edict"
       "/usr/share/edict/edicth"
       "/usr/share/edict/enamdict"
       "/usr/share/edict/findic"
       "/usr/share/edict/geodic"
       "/usr/share/edict/j_places"
       "/usr/share/edict/jddict.v02"
       (cons "/usr/share/edict/kanjd212"  'euc-jp)
       "/usr/share/edict/kanjidic"
       "/usr/share/edict/lingdic"
       "/usr/share/edict/mktdic"
       "/usr/share/edict/pandpdic"
       ))

I prefer to define dictionary variables in .emacs before loading suse-start. That way I never have to find suse-start.el again, just change the dictionary variable in .emacs. So a possible modification in suse-start.el is:

(setq edict-dictionaries
      (list kanjidict foodict bardict))

By default:

  • edict-search-english is on M-+
  • edict-search-kanji is on M-_

but these can be set with:

(global-set-key (kbd "C-c j") 'edict-search-english)
(global-set-key (kbd "C-c k") 'edict-search-kanji)

If you are using edict (the Japanese dictionary, not edict.el), you might need to change the value of edict-default-coding-system. It was utf-8 by default, and I had to set it to euc-jp in edict.el:

(defvar edict-default-coding-system 'euc-jp
  "Default coding system for reading dictionary files.
On SuSE Linux >= 9.0, EDICT is distributed as an 'utf-8 encoded file.
For SuSE Linux <= 8.2 or other Linux like systems, 'euc-jp may be used
for EDICT. For Windows systems 'shift_jis is may be preferable.")

If you see blocks for missing glyphs, try another font. This worked for the edict file included in edict-20060807-136.2.rpm:

M-x set-default-font
font: -outline-HAN NOM A-normal-normal-normal-*-*-*-*-*-p-*-jisx0208-sjis

External Links

Find RPMs by name
Search for edict
Monash dictionary project
Jim Breem's Japanese dictionaries