Your Pootle installation will need to be flexible enough to handle the translation load. If you want to host a lot of software e.g. multiple translations of large projects such as OpenOffice.org, Mozilla Firefox, GNOME or KDE we would recommend a minimum of:
But of course if you are simply hosting one language or a number of languages for a small localisation project then you can easily use:
This section helps you choose the versions of software that you need, the dependencies and optional software. These might be slightly different if you are installing e.g. Windows so please familiarise yourself with your target platform and installation options before downloading all the software.
For GNU/Linux users most of the required and optional dependencies are available through the operating system's package manager or through Python's standard package management command easy_install
| Package | Version | Website | Reason |
|---|---|---|---|
| Django | 1.0 or later preferable 1.1 | http://www.djangoproject.com/download/ | The web framework underpinning Pootle |
| Translate Toolkit | 1.5.0 or later | http://sourceforge.net/projects/translate/files/Translate%20Toolkit/ | Various functions |
| Python | 2.4 or later | http://www.python.org/ | Preferably 2.5 |
| sqlite* | version 3 | http://www.sqlite.org/ | database for tracking translation statistics, can also be used as Django's database |
*Note: sqlite 3 support is builtin Python 2.5, those using 2.4 will also need to install the python-sqlite2 package
| Package | Version | Website | Reason |
|---|---|---|---|
| lxml | http://pypi.python.org/pypi/lxml/2.2.3 | Xliff support and HTML sanitation and cleanup for news items | |
| Xapian* | http://xapian.org/docs/bindings/python/ | Indexing library to speed up searching | |
| PyLucene | http://pylucene.osafoundation.org/ | Indexing library to speed up searching | |
| zip | Compressing downloads of PO file bundles | ||
| iso-codes | any | http://packages.debian.org/unstable/source/iso-codes | Enables translated language and country names |
| python-levenshtein | http://sourceforge.net/project/showfiles.php?group_id=91920&package_id=260161 | Provides speed-up when updating from templates | |
| python-memcache and memcached | http://www.tummy.com/Community/software/python-memcached/ | more efficient caching | |
| MySQLdb | http://mysql-python.sourceforge.net/ | mysql support for django | |
| Apache | The world's webserver and best way to run Pootle | ||
| mysql* * | 4.1 or later | Database for storing Users, Projects and Language information | |
| Version Control Software | version_control integration |
*Note: Xapian versions before 1.0.13 are incompatible with Apache; Pootle will detect Xapian version and disable indexing when running under mod_python or mod_wsgi if needed.
* *Note: Django can use a number of database engines for it's backend database but we have only tested with MySQL and the default SQLite.
Pootle can be run directly from the checkout directory or can be installed in your system via the setup.py command.
Running from checkout is the easiet way to test Pootle, no need to install it or even configure, just change your directory to inside Pootle's directory (extracted from downloaded archive or checked out from SVN), and then execute PootleServer.
For example if you have downloaded Pootle-2.0.0.tar.bz2 you would do
tar xvf Pootle-2.0.0.tar.bz2 cd Pootle-2.0.0 ./PootleServer
By default the Pootle server will listen on the 8080 port, and can be accessed from your web browser at http://localhost:8080/
On the very first request Pootle will take a few minutes to setup a Django database under the dbs/ subdirectory and will scan all the default projects and translation files under the po directory. Finally, it will redirect to the front page.
To install Pootle just the run following command from within the Pootle directory
cd Pootle-2.0.0 ./setup.py install
To start Pootle simply run:
PootleServer
You should be able to access the server at localhost on port 8080.
If you need to run Pootle under a different port execute:
PootleServer --port=PORTNUMBER
The first time you visit a new Pootle install it will take some time to setup its database and to recalculate statistics and search indexes for the default translation projects.
By default setup.py will use the directory /var/lib/pootle for translation files, databases and other working files Pootle might use. The user running will need to have write permissions on this directory and all its descendant files and subdirectories.
To verify which version of Pootle and dependencies you have installed run:
[l10n@server]# PootleServer --version Pootle 2.0.0 Translate Toolkit 1.5.1 Django 1.1.1
If you have difficulty installing please email the translate-pootle list with details of exactly what you did and what didn’t work. If possible, please include the output of PootleServer --version.
If you've made major changes to Pootle's translation files outside of pootle (from shell or version control) some statistics will be out of date, and visits to front page might be slow while it recalculates the stats.
To avoid this you can recalculate statistics and indexes for existing translation projects. it will detect deleted and new files at all.
PootleServer --refreshstats
It might be a good idea to rerun the refreshstats command after adding new translation projects.
The easiest way to run Pootle is using PootleServer as described above, however installations with a large number of users are better off running under apache.
By default Pootle is configured to use sqlite3 for its main database, but using mysql is also a better option recommended for larger installations.
TODO: we should explain, cache, mail and auth settings here.
TODO: we should mention overriding base template and css styling here