# Welcome to the new Pootle 2.5.0

Released on 18 May 2013

Finally! Translate has a new baby and we’re pretty proud of her. Many changes have gone into 2.5.0 which follows on from 2.1.6 released more then two years ago. So many changes that it’s quite hard to list them all.

Why so long? Well we had the Egyptian revolution, a complete change in UI, and a load of features we wanted you to have. It took much longer to stabilise it for you to enjoy.

Pootle 2.5.0 has been in production with many users, so although it is a new official release, we’ve had many people running their production server off this code. This includes LibreOffice, Mozilla and Evernote. So you are in good company.

## Requirements

- Django 1.3 or 1.4
- Translate Toolkit >= 1.10.0
- lxml (now a runtime requirement)

## Installation and Upgrade

- Installation
- Upgrade

## Changes

These are by no means exhaustive, check the git log for more details

### User Experience

We undertook a major UI rework – we now have a clean new translation interface, and overview page.

In the editor:

- We follow a new approach when you edit translations, you will see a list of units that meet some criterion.
- Translation Memory is displayed for the current unit – results are from Translate’s public Amagama server.
- Filters are easily accessible while you translate, so you can quickly change these within the translation interface.
- Context rows are provided in the translation interface when you are filtering and these can be hidden or expanded.
- A timeline is provided for a unit. This provides a history of the changes in translation text, state changes, translator and dates of changes.
- Gravatars give credit to translators and suggesters.

In the overview page:

- The overview page allows you to drill down into certain types of units matching a translation state or with an error.
- It is now easier to see what work needs attentions, as we highlight next actions for your project.
- With editable project and language descriptions you can supply description for projects. These are editable using Markdown, reStructuredi or HTML.
- News alerts can now be sent via email to project participants.
- The overview page provides an expanded checks page that highlights all failing checks.
- Checks are classified into categories so that more urgent ones are highlighted to translators

### Version Control

- Update the whole project at once avoiding slow file by file updates
- A separate `VCS_DIRECTORY` for VCS checkout is where Pootle now does all VC related work – this ensures that we can work well with DVCS like Git.
- Detect new and removed files after a VCS update
- Management commands for VCS actions [Stuart Prescott]
- Add new files to VCS after updating from templates

### Commands

New and changed commands:

- list_languages
- list_projects
- latest_change_id
- –modified-since flag for update_stores and sync_stores
- commit_to_vcs
- update_from_vcs

### Infrastructure

- All documentation is now on Read The Docs
- We have a new website for Pootle
- We’re using Travis for Continuous Integration
- All our code is now on Github

### Other important changes

- 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).
- 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.

...and of course, loads of bugs were fixed

## Credits

The following people have made Pootle 2.5.0 possible:

Julen Ruiz Aizpuru, Friedel Wolff, Alaa Abd el Fattah, Igor Afanasyev, Dwayne Bailey, Leandro Regueiro, Claude Paroz, Chris Oelmueller, Taras Semenenko, Kevin Scannell, Christian Hitz, Thomas Kinnen, Alexander Dupuy, khagaroth, dvinella, Stuart Prescott, Roman Imankulov, Peter Bengtsson, Nagy Akos, Michael Tänzer, Gregory Oschwaldi & Andy Nicholson.