[Nook Touch General] nmyshkin:
I've never seen much written about using the Kindle app that runs on the NST/G. When I was looking into how the supposedly available dictionaries could be obtained (for free) I stumbled on an old post from @myself11 regarding custom dictionaries and how to get the app to recognize them.

So...this post is NOT about creating custom dictionaries in mobi format. I glanced at a bit of that while working up this information and it's a black hole. You have to be grateful for the people who have what it takes to get there and have shared their work.

The Kindle app supports 6 single-language dictionaries, 7 if you count the UK English variant. The two English dictionaries (The New American Oxford and the Oxford English) seem to be region blocked. If you are in the US and you try to look up a word you are invited to download a dictionary which turns out to be The New American. I'm guessing that if you are outside the US (or at least in the UK?) you will get the Oxford English instead. If you are in the US and you obtain a copy of the Oxford English (search: Kindle Oxford English Internet Archive) the app will not recognize it.

To obtain one of the other dictionaries, all you have to do is be reading a book in one of those languages, try to look up a word, and you will be invited to download a dictionary. The app can tell from the book meta info what the language is. Such a dictionary can coexist with another dictionary in /sdcard/kindle as long as the file names are different and the input language is not the same for both. The app will choose the appropriate dictionary based on the language of the book.

The dictionary file names are:

English (US) B003ODIZL6_EBOK.prc (41 MB)

English (UK) B003WUYRGI_EBOK.prc (46 MB)

French B005F12G6U_EBOK.prc (26 MB)

German B003YL4LVQ_EBOK.prc (20 MB)

Italian B005F3XOMI_EBOK.prc (22 MB)

Spanish B005F12G7O_EBOK.prc (28 MB)

Portuguese B005EOCESI_EBOK.prc (13 MB)

Why do these matter? If you make or find a

translation

dictionary with one of these as the input language, the file name (and meta info) must match or the dictionary will not be recognized. It will appear as a book, but it won't work with the look-up function. This means you may potentially need a way to manage two dictionaries (or more!) with the same file name and meta info.

If you find or create a custom dictionary that uses some

other

language as input, then you can use the file name and meta info for the English dictionary for your region. At least that has worked for me. This will even work for the two English dictionaries. If you are in the US and want to also have or use instead the Oxford English dictionary, you can rename it B003ODIZL6_EBOK.prc and change the meta info to the same and it will work.

Before I go into juggling dictionaries let's take a moment to talk about the elephant in the room: dictionary look up in the Kindle app is SLOOOOOOOW. Kinda. If you look at the dictionary sizes above you can see that the English dictionaries are ridiculously outsized compared to the others. If you're a real dictionary buff this may be a good thing for you, and they are good dictionaries. But if you're a casual reader of modern stuff and there is a word now and then you want to check, maybe you could get along with something smaller? It would load much faster. WordNet dictionaries for the Kindle are pretty nice. The English one is 14 MB. I'm not saying it knows every word in the language or that you'll like the format, but it may be worth a look. You can only get up to get so many cups of tea while waiting for a definition...

[the baby elephant in the room is the tiny size of the dictionary citation print; this I have fixed in my recent re-MOD of the Kindle app]

There are other potential sources for smaller dictionaries, both single language and translation. Pocket Oxford dictionaries in mobi format of various sorts are relatively easy to find if you search a little. There is also a github site which offers just about any language combination you might imagine in StarDict, mobi,and TSV format. These are all extracted from Wiktionary. The sizes vary, of course. Some may be quite small. And, unfortunately they all go from some language to English, never from English to some other language. You can get an estimate of the word count by downloading the TSV (tab-separated-value) and open it with a text editor that can count lines (like Notepad++). For example, the German to English is about 25 MB with about 70,000 words.

Adapting existing mobi format dictionaries

OK, but how can you actually use these dictionaries on your NST/G? You need a tool called MobiMetaEditor. This is a Java executable which allows you to inspect and edit the meta information in a mobi (or prc) file. I've attached a copy below in the zip.

Here is what it looks like if you open the New American English dictionary that is the default download in the US:

View attachment 6080626If, for example, you download and want to use the Oxford English dictionary instead, you need to edit the three items shown above. The ASIN number is for the New American English and in the US it's the only filename component that will be recognized for a dictionary with the input language of English (you can inspect the language meta data with the "Language" button if you like; most dictionaries you are trying to adapt will have this information already correct).

If the three entries already exist (as they do in the Oxford English mobi file), you can just double-click on the value, delete it and type the new one. If you are working with a different source file and these entries do not exist, then you click on the "+" (add) button and find them in the list and enter the correct value.

Although the post I referenced at the beginning talked about other fields to fill in, it has not been my experience that anything other than these three is needed. In fact I have worked with files that have NO fields at all, added these three, and produced a working dictionary.

When you save the file it will have "new" attached to it. You need to rename the file, using the ASIN, followed by "_EBOK". Also, change the file extension from .mobi to .prc.

You would then move this file to /sdcard/kindle. When the app first accesses the dictionary it creates another file of the same name with the extension .mbp (some kind of index or bookmark file). If you start juggling dictionaries (see next section), always keep these two files together if you move things around.

Any dictionary that has English as the input language must use the B003ODIZL6_EBOK.prc filename and the ASIN values in the meta data must match (unless your default dictionary turns out to be the Oxford English--then you would use its ASIN instead). This includes translation dictionaries.

A dictionary that uses any of the

other

official languages for the Kindle app as the input language (German, Spanish, Italian, etc.) must use those ASIN values and filenames or it will not be recognized. This includes translation dictionaries.

What about languages that are not supported? I have adapted Turkish-English and English-Bulgarian dictionaries for other people. In both cases I used the ASIN for the default English dictionary. This is expected for the English-Bulgarian but perhaps a surprise for the Turkish-English. The Language setting in that dictionary clearly gives Turkish as the input language. Apparently that's all the app needs (along with a recognizable ASIN).

I should add that I have encountered supposed mobi dictionaries for which nothing seems to work. It pays to shop around.

Juggling dictionaries

Well, but if I now have three dictionaries with the same file name, how can I handle that? This part is easy, if a bit clunky. In sdcard/kindle create the folder "Dictionaries" as you see below:

View attachment 6080870

The app cannot see anything in /sdcard/kindle except books (mobi or prc) so it will just ignore that. Then in the Dictionaries folder add other folders for the dictionaries you wish to keep on hand:

View attachment 6080872

When you want to change a dictionary, just move the two files in the /sdcard/kindle folder to a storage folder in Dictionaries, and move from storage the two files for the dictionary you want to use. Note that this sort of thing is only needed if you have dictionaries with the same file name/meta info. Otherwise multiple dictionaries can stay in /sdcard/kindle and the app will pick whichever is appropriate for a given book based on the language. I could make an app to do all this as I did for the stock reader, but I suspect the interest in such a thing would be minimal.