Development of calibre

Instructions for setting up a development environment are available at: ?http://calibre.kovidgoyal.net/user_manual/develop.html

Translations

calibre has support for translating its user interface. You can see the list of languages for which translations exist ?here. If the translations for your language are incomplete, you can contribute the translations using a simple web-based interface. To do so first register/Log in at ?Launchpad, then click on your language in ?this page. You can filter the results to show only untranslated strings, and contribute translations for them.
It is more comfortable to ?download the PO files and edit the PO file you want to update. Click on the corresponding language ?here and upload the PO file as "User upload". You have to be logged in to upload files.

If you want to add support for a new language, add a comment to #283 and I'll add it to Launchpad.

Translations FAQ

  • What to do with the & symbols?
    • The & symbols denote a keyboard shortcut. So for example the string "&Title" means that the corresponding GUI element can be accessed with the keyboard shortcut "Alt+t" (this only works on windows/linux). SO in your translation leave the & symbol before the same letter if possible, or some other suitable letter.
  • What to do with the "%A_Word" characters?
    • The % character and a word to the right of it (no space between the percentage sign and the word), denotes a word that will be replaced by the code. So when encountering this symbol and a word right next to it (example: %default) then don't change it. Keep it in the translated sentence.
  • How do I test my translations?
    • First you need to download a .po file for your language from ?here. You can test your .po file by running calibre from the command line from the directory in which the .po file resides. This is only tested in Linux. On windows also it should work. On OSX, since you can't launch the GUI from the commandline, try putting the .po file in your home directory.

Documentation

The documentation for calibre is in the form of a User Manual. The User Manual is automatically generated from txt files in the ?Sphinx documentation format. The source files are located at ?manual. You can add to the documentation and submit patches for inclusion.

Videos

Instructions for making demo video on linux, using the utility recordmydesktop. Recording is done with the command

recordmydesktop -windowid $(xwininfo | awk '/Window id:/ {print $4}') -device hw:1,0 -delay 2 --overwrite  -o out.ogv --full-shots

Click on the window to record and recording will start in 2 secs. hw:1,0 is the sound recording alsa device (obtained using arecord -l). The video file out.ogv is in theora format. It can be converted to MPEG4 and FLV as shown below. For avi:

mencoder out.ogv -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac faac -o out.avi
mencoder out.ogv -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac faac -o out.avi

For Flash video

mencoder out.ogv -o out.flv -of lavf -ovc lavc -oac mp3lame -lavcopts vcodec=flv:vbitrate=250:autoaspect:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:precmp=2:cmp=2:subcmp=2:preme=2:turbo  -srate 22050 -af lavcresample=22050

You can add -vf scale=320:240 for standard flash video resolution.

Contributors

calibre is an open source app that uses a large number of other open source apps and is developed on Linux, an open source platform, as such, it has benefited from a the work of large numbers of people, some of whom are listed below. I've tried to be as exhaustive as possible, but, if I have forgotten your contribution, please let me know.

Contributors of code/bug fixes

In no particular order:

  • llasram: For epub2lrf, lit2oeb, oeb2mobi and various improvements in the html2lrf code
  • Roger Critchlow: For the initial implementation of lrs2lrf
  • John Schember: For the new calibre device driver framework, various GUI enhancements and several input and output format plugins
  • Anatoly Shipitsin: For fb2lrf and fb2-meta
  • Ori Avtalion for various bug fixes
  • Tijmen Ruizendaal for the Be Book driver
  • Gregory Riker: For MOBI indexing
  • Igor Skochinsky (for various bits of reverse engineering without which calibre would never have gotten off the ground)

Graphics

  • diaboNL for the reader icon
  • Caleb Avery for the logo
  • The Oxygen project for various icons

Recipe writers

Too many people have contributed recipes to list here, but their contributions are a big part of calibre.

Other projects whose code/libraries calibre uses/links against

  • Python
  • Qt
  • PyQt
  • rtf2xml
  • pdftohtml
  • pdftoxml
  • feedparser
  • pylrs
  • BeautifulSoup
  • py2exe
  • py2app
  • mechanize
  • pictureflow
  • lxml
  • Hyphenator
  • sqlite
  • chardet
  • pypdf
  • imagemagick
  • Python Imaging Library
  • Sphinx
  • NSIS

Translators

The list of translators is available at ?https://translations.edge.launchpad.net/+groups/calibre

Last, but not least I'd like to thank the folks at ?http://mobileread.com for creating a wonderful community for us e-book afficionados to gather round.

Attachments