# Translate Toolkit 2.1.0

Released on 17 March 2017

This release contains many improvements and bug fixes.

## Major changes

- Fixed RomanianChecker checks.

- Added an iOS checker style.

- Changed plural equations for Slovenian, Persian, Kazakh and Kyrgyz.

- Several fixes in formats and tools.

## Detailed changes

### Python 3 support

- Python 3.6 is now supported.

### Requirements

- Updated and pinned requirements.

- Now recommended requirements pulls required requirements.

### Formats and Converters

- All formats

  - locationindex now uses first duplicate unit in case of several units having the same location in order to keep duplicate entries in some formats when converting from PO format.

- PO

  - Only add duplicate unit if msgcxt is unique, in order to be able to convert monolingual formats with duplicate entries to PO.

- Properties

  - Added support for Joomla dialect.

- ts

  - Set the right context on the units.

- YAML

  - Fixed parsing of unicode values in lists.

- HTML

  - Use character offset in line for unit location in order to keep parsing repeated strings in different units.

- txt

  - Use line number on unit location to keep parsing repeated strings in different units.

### Filters and Checks

- Fixed RomanianChecker checks.

- Added an iOS checker style to detect iOS variables styles such as `%@` and `$(VAR)`.

### Tools

- posegment no longer outputs duplicate headers,

### Languages

- Changed plural equations for Slovenian, Persian, Kazakh and Kyrgyz.

### API changes

- Changed management of Xapian locks to prevent database corruption.

### General

- Python 3 fixes

- Removed unused code

…and loads of general code cleanups and of course many many bugfixes.

## Contributors

This release was made possible by the following people:

Dwayne Bailey, Leandro Regueiro, Michal Čihař, Ryan Northey, Friedel Wolff, Olly Betts, Claude Paroz.

And to all our bug finders and testers, a Very BIG Thank You.