Translate Toolkit & Pootle

Tools to help you make your software local

User Tools

The (completed) Great Pootle Migration

Pootle 1 was ported to Django and released as Pootle 2. This page is only kept for historical reasons.

This page is outdated. There is a specific page for listing outstanding tasks and enhancements for the future in the Django-based Pootle.

What's been done so far

  • Conversion of the SQLAlchemy models to Django models
  • Basic admin interface for languages
  • Basic admin interface for projects
  • Basic admin interface for users / profiles
  • Basic URL dispatching handing of to old Pootle code
  • We use Django sessions
  • Locale middleware so that l10n works for at least for the old Pootle code (kid templates)
  • LDAP functionality (bug 674)

What still needs to be done

In order to see a Django-based Pootle fully working in a feature-parity fashion with Pootle 1.2, there are still some things that need to be addressed.

This will result in Pootle 1.3, and the remaining tasks will be bugs that block the main tracking bug (bug 672).

Store the stats in Pootle's database

Modify the StatsDB class in the translate toolkit so that it can be initialized with a connection object. Then initialize the StatsDB objects used by Pootle with the connection object obtained from Django.

This is tracked in bug 711.


Thanks to Gasper Zejn, we have authentication working in Pootle!

We still need to think of how we'll port passwords from old Pootle installations, since the old system uses an MD5 scheme, where Django has its own SHA1 scheme.

Perhaps an MD5 can be stored when porting from an old Pootle installation, and as soon as the user logs in, Django will use the supplied password to overwrite the MD5-encoded password with a SHA1-encoded password.

UI issues

There are some UI issues related to the rendering of RTL languages and the styling of terminology and TM matches needs to be reviewed.

Concrete issues are listed in the mozootle's developer page, but might be more.

This is tracked in bug 675.

Getting started


Please see installation_1.3beta.

Running Pootle

Now, while in your Pootle directory, simply execute:


You should be able to access the server at port 8080.

Development aids

The super cool admin interface

Django's automagically generated admin interface is invaluable and available under the URL django_admin/ of your Pootle server.