# Changelog

These are the critical changes that have happened in Pootle and may affect your server. Also be aware of the important changes in the Translate Toolkit as many of these also affect Pootle.

If you are upgrading Pootle, you might want to see some tips to ensure your upgrade goes smoothly

## Version 2.5.1

Not released yet. Planned release date late November 2013

- The minimum required Python version is now 2.6.x. While Django 1.4.x supports Python 2.5, Python 2.5 is itself no longer supported by the Python Foundation neither by several third party apps, and supporting it requires an increasing number of ad-hoc patches on Pootle, so support for Python 2.5 on Pootle has been dropped.
- The minimum required Django version is 1.4.x.
- The database schema upgrade procedure has been redefined, and the updatedb management command has been phased out in favor of South’s own migrate command. Post schema upgrade actions have been moved to the upgrade command. For detailed instructions, read the upgrading section of the documentation.
- The setup management command was added to hide the complexities in the initialization or upgrading of the DB when either upgrading or installing Pootle. Please read the upgrading and installation sections of the documentation.
- css/custom/custom.css is now served as part of the common bundle.
- The quality check for spell checking has been globally disabled. It wasn’t properly advertised nor documented, and it didn’t perform well enough to be considered useful.
- Pootle now supports tags that can be added to translation projects or individual files, and supports filtering translation projects by their tags.
- Pootle now supports goals that can be applied to files. It is possible to apply goals globally in a given project. Goals allow managers to provide a simple way to prioritize work and keep track of the translation progress in a group of files.
- Pootle allows custom scripts to be exposed in the Actions menu for a project.

## Version 2.5.0

Major release, released on May 18th 2013.

- The minimum required Django version is 1.3.
- Static files are now handled by the `django.contrib.staticfiles` module. This means you will need to run the `pootle collectstatic` command on production and serve the pootle/assets/ directory from your webserver at /assets/. If you are upgrading from a previous version, you will need to replace the occurrences of static with assets within your web server configuration.
- Static files are bundled into assets by using django-assets.
- Several features from translation projects have been merged into the Overview tab, including quality check failures and directory- and file-level actions. As a consequence the Review tab has been dropped and the Translate tab serves solely to display the actual translation editor.
- Settings have been migrated from localsettings.py into settings/*.conf files. Your customizations now go in a separate configuration file (or in settings/90-local.conf if running from a repository clone).
- A new setting, `VCS_DIRECTORY` has been added, and VCS repositories are located in that directory, separate from the translation files used for editing and upload/download. The files in the VCS directory should never have any uncommitted changes in them, except during commit operations themselves.
- The `PootleServer` script has been phased out in favor of a `pootle` runner script.
- If you will be using Pootle with Django 1.3, you have to keep the timezone on `UTC`, unless you are using PostgreSQL. Users of PostgreSQL or Django 1.4 or later are free to set the time zone as they prefer. Also make sure to use the minimum required South version when performing database upgrades.
- The `update_from_templates` management command has been renamed to update_against_templates.

## Version 2.1.6

Bugfix release, released on April 13th 2011.

- This is the first version that is compatible with Django 1.2.5 and Django 1.3.
- You also need Translate Toolkit 1.9.0 to be able to use these newer versions of Django.

## Version 2.1.1

Bugfix release, released on September 3rd 2010.

- The default cache backend is now a database backend. Memcached is still the preferred cache backend, but consider using the database cache if you are using the local memory backend and can’t use memcached.
- You can perform a database migration away from SQLite.

## Version 2.1

Released on August 17th 2010.

- Pootle no longer depends on statsdb and SQLite.
- Files on disk are only synced with the database on download or commit. The old behaviour can be restored at the cost of performance. A `manage.py` command can sync to files on the command line.
- The database is now much larger. This should have no negative impact on performance, but we strongly suggest using MySQL or PostgreSQL for the best performance.
- Pootle 2.1 will upgrade the database automatically from Pootle 2.0 installations. You need to have South installed. Install it from your distribution, or http://south.aeracode.org/ or with `easy_install South` (the upgrade could take quite a while, depending on your installation size).
- Pending files are not used for suggestions any more, and will also be migrated to the database during upgrade.
- New settings are available in localsettings.py – compare your existing one to the new one.
- Pootle 1 installations can easily migrate everything excluding project permissions. We encourage administrators to configure permissions with the new permission system which is much simpler to use, since permissions on the language and project level are now supported.
- Have a look at the optimization guide to ensure your Pootle runs well.

## Version 2.0

Released on December 7th 2009.

- Pootle now uses the Django framework and data that previously was stored in flat files (projects, languages, users and permissions) is now stored in a database. Migration scripts are provided.
- Review all suggestions before migrating, and note that assignments are not yet supported in Pootle 2.0.

## Version 1.2.0

Released on October 8th 2008.

- The name of the directory for indexing databases changed from .poindex-PROJECT-LANGUAGE to .translation_index. Administrators may want to remove the old indexing directories manually.

- The enhanced search function needs all indexing databases to be regenerated, otherwise it won’t find anything. To achieve this, just remove all .translation_index directories under your projects:

      find /path/to/projects/ -type d -name ".translation_index" -exec rm -rf {} \;

- If you used testing versions of Pootle 1.2, you almost definitely need to regenerate your statistics database. Pootle might be able to do it automatically, but if not, delete ~/.translate_toolkit/stats.db.

## Version 1.0

Released on May 25th 2007.

XLIFF support
  Pootle 1.0 is the first version with support for XLIFF based projects. In the admin interface the project type can be specified as PO / XLIFF (this really just tells Pootle for which type of files it should look - it won’t convert your project for you). This property is stored in pootle.prefs in the variable `localfiletype` for each project.
Configurable logos
  You are now able to configure the logos to use in pootle.prefs. At the moment it will probably be easiest to ensure that the same image sizes are used as the standard images.
Localized language names
  Users can now feel more at home with language names being localized. This functionality is actually provided by the toolkit and your system’s iso-codes package.
Treestyle: gnu vs nongnu
  Pootle automatically detects the file layout of each project. If you want to eliminate the detection process (which can be a bit slow for big projects) or want to override the type that Pootle detected, you can specify the `treestyle` attribute for the project in pootle.prefs. Currently this can not be specified through the admin interface.

## Version 0.11

Released on March 8th 2007.

- If the user has the appropriate privileges (ovewrite right) he/she will be able to upload a file and completely overwrite the previous one. Obviously this should be done with care, but was a requested feature for people that want to entirely replace existing files on a Pootle server.
- The server administrator can now specify the default access rights (permissions) for the server. This is the rights that will be used for all projects where no other setup has been given. See pootle.prefs for some examples.
- The default rights in the default Pootle setup has changed to only allow suggesting and to not allow translation. This means that the default server setup is not configured to allow translation, and that users must be specifically assigned the translate (and optionally review) right, or alternatively, the default rights must be configured to allow translation (see the paragraph above).
- The baseurl will now be used, except for the /doc/ directory, that currently still is offered at /doc/.
- The default installation now uses English language names in preperation for future versions that will hopefully have language names translated into the user interface language. To this end the language names must be in English, and names with country codes must have the country code in simple noun form in brackets. For example Portuguese (Brazil); in other words, not Portuguese (Brazilian).

## Version 0.10

Released on August 29th 2006.

Statistics

  The statistics pages are greatly reworked. We now have a page that shows a nice table, that you can sort, with graphs of the completeness of the files. This is the default view. What is confusing is that the stats page does not work directly with editing. To get the editing features, click on the editing link in the top bar.

  The quick statistics files (pootle-projectname-zu.stats) now also store the fuzzy stats that are needed to render the statistics tables. Your previous files from 0.9 can not supply this information. Pootle 0.10 will automatically update these files, but if you (for some reason) want/need to go back to Pootle 0.9, you will have to delete these files. Not all .stats files need to be deleted, only the ones starting with pootle-projectname.

SVN and CVS committing
  You can now commit to SVN or CVS. A default commit message is added, you cannot edit this message. Your ability to commit depends on the rights you have on the checkout and since you cannot supply a password it needs to be a non-blocking method. This feature is probably not useful for a very public server unless it is managing multiple translations of your own project and you have direct control over it and CVS/SVN accounts. It will work well in a standalone situation like a Translate@thon etc, where it is a public event but the server is controled by yourself for the event and then you can simply commit changes at the end. For more information, see version control information.
Terminology
  Pootle can now aid translators with terminology. Terminology can be specified to be global per language, and can be overriden per project for each language. A project called “terminology” (with any full name) can contain any files that will be used for terminology matching. Alternatively a file with the name pootle-terminology.po can be put in the directory of the project, in which case the global one (in the terminology project) will not be used. Matching is done in real time. Note that this does not work with GNU-style projects (where all the files are in one directory and have names according to the language code).
Translation Memory
  Pootle can now aid translators by means of a translation memory. The suggestions are not generated realtime – it is done on the server by means of a commandline program (updatetm). Files with an appended .tm will be generated and read by Pootle to supply the suggestions. For more information see updatetm.