As a language instructor and author of language learning textbooks, I’ve always found the Kindle’s built-in dictionary a great tool to make reading foreign language texts more fluid and frictionless. Whether it’s on your Kindle ereader, on your iPhone or iPad Kindle app, or Kindle Android app (see links for detailed instructions), custom dictionaries can be easily integrated, so that all you need to do is tap on unknown words to get an immediate translation.

What has been missing from this list so far is an option to get the same feature on desktop computers, i.e. when reading Kindle books on your PC or Mac.

Cloud Reader: Not Enough Dictionaries, No Copy & Paste

no-cloud-kindle-dictionaryWhile trying to get Kindle PC to accept custom dictionaries ultimately proved futile, I started looking into another way to accomplish this with Kindle Cloud Reader. In case you’re not familiar with it, Cloud Reader is a web-app that allows you to read Kindle books directly from your browser. Also Cloud Reader offers a handful of pre-installed dictionaries, but unfortunately there is no discernible way to install more dictionaries. Even purchased dictionaries from the Kindle store don’t show up here.

Furthermore, Kindle Cloud Reader doesn’t allow copying of text, which is probably to prevent piracy, but also it prevents readers from looking up and translating words or using third-party browser extensions for further study, such as flashcards, etc.

The Kindle Cloud Reader Bookmarklet

So is Kindle Cloud Reader also a dead-end street if you’re trying to “click & translate” words from your Kindle books? Turns out, binarycrafts from Romania have found a way to circumvent Kindle Cloud reader’s blocking of text copying by use of a simple bookmarklet.

I’ve adapted their code for language learning purposes (specifically German learning), so that after activating the bookmarklet you get two different options for sending selected text to either dict.cc or Google Translate.

activating this bookmarklet will add two buttons

activating this bookmarklet will add two buttons

How does it work?

UPDATE: Thanks to motiko, there’s also now a Chrome Extension based on this code.

    1. Drag this bookmarklet to you bookmark bar (or copy this code and paste it into a new bookmark URL)

+ Kindle Translator

    1. Go to read.amazon.com

 

    1. Click on the bookmarklet. You’ll get a popup confirmation upon successful launch.

 

    1. Click on words to translate either via dict.cc or Google Translate

 

Obviously this is just a hack until Amazon will (hopefully) add the use of custom dictionaries to their PC, Mac or Cloud reader application. But until then it’s certainly a way to get quick translations. Let me know in the comments what you think.

How To Add Support For More Languages

In the above example, the bookmarklet only works for German-English, but what if you want to translate other languages? No problem. Here’s how you can modify the code to match your personal needs. First of all, open the code in a text editor and look for the following section:

if (r) {
var newW = window.open('http://pocket.dict.cc/?s=' + r, 'dict.cc' , "height=400,width=448,location=0,menubar=0,scrollbars=1,toolbar=0");
}
});
$('#ACRExtensions_copyC', kDoc).click(function (evt) {
if (r) {
var newW = window.open('https://translate.google.com/?hl=en#auto/en/' + r, 'Google Translate' , "height=400,width=776,location=0,menubar=0,scrollbars=1,toolbar=0");
}
});

The parts I highlighted in red are where the magic happens. As you can see, the code uses two URLs to do the dictionary queries: http://pocket.dict.cc/?s= and https://translate.google.com/?hl=en#auto/en/.

Now, let’s say I don’t want the German-English dictionary from dict.cc, but Spanish-German. First of all, let’s go to dict.cc or the mobile-friendly pocket.dict.cc. After selecting the correct dictionary, in our case “Deutsch Spanisch”, enter a word and take a close look at your browser’s address bar. For example, after typing in the word “esperanza”, you’ll see the following in the address bar: http://esde.pocket.dict.cc/?s=esperanza

Now we simply have to copy this URL, remove the example word, and we’re left with the following http://esde.pocket.dict.cc/?s=, which you can simply paste over the part of the above code where it says http://pocket.dict.cc/?s=.

The same we can do with the Google Translate URL. Go to Google Translate, type in something, select your language pair and click translate. For example, when I type in “bonjour”, select French on the left side and Hebrew on the right, my address bar says: https://translate.google.com/#fr/iw/bonjour

Again, all you have to do now is delete the example word and paste the string https://translate.google.com/#fr/iw/ over the part in the code where it says https://translate.google.com/?hl=en#auto/en/.

By the way, you could this with almost any dictionary you find online, not just Google Translate or dict.cc. For example, an example query URL for Spanish-Spanish from oxforddictionaries.com would look like this: http://www.oxforddictionaries.com/definition/spanish/esperanza, the German Duden dictionary builds its queries like this: http://www.duden.de/suchen/dudenonline/Selbstversuch and so on and so forth. Just remove the example word and replace the highlighted parts in the above code with these new strings.

When you’re done, copy all of your code, edit the existing bookmarklet and paste it in the URL field, or just create a new bookmark and paste it in the URL field there.

Special thanks to Peter Cole's Bookmarklet Creator.