Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

The reason is trivial: I am a fan of the "Word of the Day" screen saver and I would like to add dictionaries for languages other than English and Japanese (these are the two that I can select now in screen saver options).

How can I do it?

share|improve this question
    
Any luck? It seems to make absolutely no sense at all that only English and Japanese dictionaries can be selected but I've found no way around it. –  Xiang Ji Apr 16 at 10:13
    
Seems like a half-assed project/easter egg abandoned after OS X 10.8. –  Xiang Ji Apr 16 at 10:20

3 Answers 3

If you have 10.8, you can enable French, German, Simplified Chinese, and Spanish dictionaries from the preferences of Dictionary.app:

They don't seem to be shown as choices for the Word of the Day screensaver though:

I also tried restarting after enabling the dictionaries.

share|improve this answer
1  
Yes they don't appear in the screensaver, exactly. –  scrrr Jun 27 '13 at 12:08
    
Thank you for this post! –  Vinozio Sep 2 '14 at 7:19
    
Japanese works though! Thanks! :D –  Eric Muyser Oct 16 '14 at 18:27
    
No idea why this post got so many upvotes- Didn't solve the question at all :( –  Xiang Ji Apr 16 at 10:14

On a rather obscure comment thread, someone explained where you might find the word list that Apple uses to power the screensaver. It is at /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. The file looks like this:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

It is a list of tab-separated entries. On the right you have the word, and on the left, what looks like an ID. But what's it an ID for, and how would you be able to find it for another word not already on the list?

As you might expect, the ID refers to an entry in Apple's default dictionary, the "New Oxford American Dictionary". (That's what "NOAD" stands for in the word-list path above.)

How to find the IDs for other words?

A fellow named Joseph Gentle, in a series of blog posts, shows how to get at the data underlying Apple's dictionaries. In his "Apple dictionaries, part 2" post, he points to code that unpacks the relevant binary file (stored in /Library/Dictionaries) into XML. Using the dedict.c and strip.c files found here, and following Gentle's example, I used the following bash commands to get at the NOAD's XML (these commands are run from the directory where you downloaded the dedict.c and strip.c files):

clang dedict.c -Wall -lz -o dedict
clang strip.c -Wall -lz -o strip
./dedict "New Oxford American Dictionary" | ./strip > dict.xml

When I head-ed the first few lines of the dict.xml file, I saw something promising, with entries that looked like this:

<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="m_en_us1219333" d:title="abode" class="entry">

Notice that id param... it's an identifier that looks exactly like the one in the screensaver word list!

I wrote the following Ruby script to parse the XML, and then, using my own word list, create a new screensaver file that maps my own words to their IDs in the dictionary:

raw = File.open("./dict.xml").read
my_words = File.open("./word_list.csv").readlines.map { |line| line.split(',')[1] }

word_id_map = {}

raw.scan(/<d:entry .*? id="(.*?)" d:title="(.*?)" class="entry">/).each do |entry|
   word_id_map[entry[1]] = entry[0]
end

my_words.each do |word|
  if id = word_id_map[word]
    puts [id, word].join('  ')
  end
end

When I replaced the original screensaver file with this new one, it worked. You can now have a "Word of the Day" screensaver that gives definitions for the words you choose.

share|improve this answer

This should solve your problem: http://www.makeuseof.com/tag/easily-expanding-apple-dictionary-–-mac-only/

share|improve this answer

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

    
See Lauri's comment. It doesn't work with the screensaver. –  scrrr Jun 27 '13 at 12:08
    
While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. –  grgarside Apr 4 at 11:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.