Getting involved with calibre

The secret of calibre's success is its vibrant user community. Users have contributed code and become developers, translations to make calibre available in different languages, graphics to improve its look and feel and of course thousands of bug reports to help make it the robust piece of software it is today. An incomplete list of contributors to calibre is available here.

Joining the calibre community

To talk with fellow calibre users and keep abreast of the latest developments in calibre-world, you can use several tools:

Creating a calibre plugin

calibre has a comprehensive plugin interface, that allows the creation of plugins that can do just about anything. For many examples, see the calibre Plugins forum. A tutorial on getting started with plugin development, is available.

Contributing translations to calibre

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/missing, you can contribute the translations using a simple web-based interface. To do so first create an account in Transifex, then click on your language in this page. Click on the "Join Team" button. Once you have been approved, simply click on the language you want to translate here and use the "Translate Now" button to contribute your translations.

Alternatively you can download the PO file to do your translations offline by using the "Download for translation" link instead of the Translate Now button. You can edit the PO file using your favorite translation software and when you are done, upload the file by clicking the "Upload file" link (which is just below the Download for translation link).

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), don't change it. Keep it as is in the translated sentence. Similarly for sequences like %s or %d, leave them as is. Finally, sequences like %(some_word)s should also be left unchanged.
  • What to do with {word} constructs?
    These are placeholders and must not be translated. They will be replaced with actual content by the code.
  • What to do with date strings like dd MMM yyy?
    These must be left untranslated.
  • What to do with the special markup when translating the User Manual?
    The User Manual is written in ReSTructured Text. You will see many constructs like :guilabel:`Some text`. Here the :guilabel:`` part is markup, like HTML tags. You should only translate the text within the backticks. Particular care must be taken with links, of the following forms:
    • :ref:`some text` Here nothing must be translated.
    • :ref:`Some text <link-location>` Here only "Some text" must be translated.
    • :doc:`generated/en/something` Should be replaced by :doc:`generated/your_language_code/something`. For example :doc:`generated/en/cli-index` becomes :doc:`generated/de/cli-index` in German.
  • 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 setting the environment variable CALIBRE_TEST_TRANSLATION to the path of the downloaded .po file. Then run calibre as normal. Currently, it is not possible to test the User Manual translations.

Becoming a calibre developer

Get the source:

git clone git://

Or if you dont want to wait for the full version history to download, you can get only the source code:

curl -L | tar xvJ

Instructions for getting calibre to run using your source checkout, as well as some info about how the calibre code is organized is in the User Manual.

If you come up with a cool idea and a patch for implementing it, let us know about it and more than likely it will be in the next weekly calibre release. A great place to ask for tips on calibre hacking is the calibre Development forum where lots of calibre developers hang out.