← Back to team overview

indiv-screenlets-dev team mailing list archive

About generating the translations and packaging the individual screenlets


Further on I'd like to know 2 things:
1. How are the translations generated
2. How is the project packed as deb. Automatically or do I have to do something about it to update it in the repository.


TRANSLATIONS are generated with running the ./potfiles.sh script from the project root directory (usually it works fine). It needs gettext, pygettext and diff utilities to be installed. You update source tree from Bazaar, run ./potfiles.sh and commit the changes to Bazaar again. This should update/generate the translation templates.

Potfiles.sh should create or update all the translation files according to gettext decorations found in all python files in all the individual screenlets source directories. Gettext translation templates (POT files) are generated to /src/WhateverScreenlet/po/whatever-screenlet.pot and when the file is commited/pushed into Launchpad project, Launchpad uses its Rosetta translations system to import and manage translations from Web interface at https://translations.launchpad.net/indiv-screenlets. See also http://www.screenlets.org/index.php/Documentation#Translate_to_your_language.

When importing new POT file into Launchpad, usually it takes something from 15 minutes to couple of hours to generate translation pages for the new POT. If you update a POT file and commit/push it, this should not usually take more than 15 min to be imported into Rosetta. Documentation for translations on Launcpad can be found at:


When POT file is imported, then you should preferably use Launchpad interface to deal with translations. You have option to download translation catalog (PO file) from Launchpad and edit the file and upload it again to Launchpad. You have also an option to edit translation strings directly from the web interface. This is a matter of preference, you can use both (but to avoid conflicts, not at the same time, using both at the same time will give you warnings from Launchpad).

Additionally, you can edit translation files also from the source tree of Bazaaar indiv-screenlets project, but then you have to pay attention not overwriting some other peoples changes who may be simultanously using the web interface. Editing directly from Bazaar branch may not give warnings, files are just overwritten.

Before commiting anything to Bazaar (or before making changes) it is good practise to pull in latest changes (bzr pull in source directory). This way you avoid conflicts and unnecessary merges with other developers changes.

DEBIAN packages for the project are by now automatically generated on a server of Estonian IT College which is dedicated to Estobuntu distro. Since Screenlets is its upstream project, we can use this server to generate the packages (however I cannot provide logins to the server). If no errors occur, the packages should be generated every 24h and uploaded to Launchpad Screenlets developers PPA at https://launchpad.net/~screenlets-dev/+archive/ppa. By now there is no way to debug the generation process, but if it is needed, I can forward the generation logs to mailing list or something like that.

However, you can test the correctness of your screenlet for generating Debian package with the utility included in Screenlets. This is called screenlets-debianizer and is part of Screenlets. It works the same way as screenlets-packager, but needs a lot of debuild dependencies to run, see http://www.screenlets.org/index.php/Documentation#Packaging_a_screenlet for some hints. You can also see the python source of screenlets-debianzer, if you want to adapt something or see more debug information. If screenlets-debianizer succeeds, it is highly probable that also automatic generation for Launchpad succeeds and packages will be on PPA in 24h. Since the server runs in text mode, the screenlet class must be importable without initializing GTK or X graphics (usually it is, but if there are problems, this is a good thing to look for). The same goes for some exotic modules, which need to be imported for the screenlet.

Notice that any changes to individual screenlet Debian package (whatever-screenlet Debian package) will be uploaded to Launchpad PPA only when version number of Screenlet is increased. However, screenlet packs (screenlet-pack-all, screenlet-pack-basic etc) are updated from the latest snapshot of source tree, so for upating screenlet packs increasing the version number is not needed.

There will be separate PPA for stable versions of Screenlets at:


Guido T