I'm developing a custom Bulgarian Dictionary for Kindle, in .mobi format (source code is here: https://github.com/yanosh-k/bulgarian_dictionary). I've manged to successfully create a working version, but I'm having a problem. The dictionary is case sensitive. I'm not sure if this is due to the language and the encoding or is there some setting that I've overlooked, while generating the .mobi file.
My process for generating the .mobi file is the following:
- Generate a list of the words, their meaning and inflections, that I want to be in the dictionary. The list is generated from a SQL database and is stored to a plain text file. The text file is UTF-8 encoded, having Unix line endings (LF), and the data is tab delimited in the following format:
word
Tabword id
Tabhtml formatted word meaning
Tabcomma separated list of inflections
. Each line in the file represents a word. The latest version of the file can be found here: https://github.com/yanosh-k/bulgarian_dictionary/blob/master/bulgarian_dictionary.txt (27.1 MB). - Generate an OPF file. This is done using a customized version of the tab2opf python script (my version is here: https://github.com/yanosh-k/bulgarian_dictionary/blob/master/convertors/tab2opf.py, and the original: https://github.com/apeyser/tab2opf). The latest version of the file can be found here: https://github.com/yanosh-k/bulgarian_dictionary/tree/master/opf.
- Use
kindlegen
to convert the .opf file to .mobi file. (Amazon took off the official version from their website, so I use a copy from the Internet Archive: https://archive.org/details/kindlegen2.9) - After the .mobi file is generated, it can be directly uploaded to a Kindle device and used.
This works great but when I try to select a word, while reading a book on my Kindle, it does not recognize words that start with a capital letter, or words that all capitalized.
For example the word старик
would be recognized by the dictionary, but when the first letter is capitalized, like so Старик
, it says that no such word was found.
Is this an intended behavior? Should I include all versions of capitalization in the inflected list? And is there a way to make it case-insensitive?
The information that I've used, to derive the whole process comes from here: