# Translate Toolkit 2.3.1

Released on 06 October 2018

This release contains improvements and bug fixes.

## Changes

### Formats and Converters

- PO

  - Fixed parsing of files with mixed newlines n and r.

- Properties

  - Fixed escaping of serialized string for Joomla dialect.

  - Fixed loading of OS X strings dialect files having multiline strings.

- Android resources

  - Correctly handle escaping of question mark.

- PHP

  - Improved handling of unit name.

  - Handle [] style arrays.

  - Added support for return statement.

- YAML

  - Consistent handling of int and bool.

  - Fixed serialization of empty keys.

- JSON

  - Nested values ordering is now preserved.

- TMX

  - Avoid mentioning po2tmx in creation tool.

- RESX

  - New unit elements are now properly indented.

- INI

  - Enabled support for Python3 provided that patched iniparse library is available.

- RC

  - Altered to remove r before parsing.

### API changes

- Use backports.csv module on Python 2 to align the behavior with Python 3 and drop many hacks.

- Removed deprecated getoutput methods deprecated in version 2.0.0.

- Added new deprecations:

  - Deprecated setsource, getsource, gettarget and settarget methods in favor of source and target properties for all storage classes, except LISAunit and its subclasses since for those these methods do actually accept additional arguments so can’t just be always replaced by some property.

  - xliffunit: Deprecated get_rich_source in favor of rich_source property

- Defined for all unit classes the rich_source and rich_target properties without using methods. Since the old methods were private they were directly removed without deprecating them.

### General

- Refactored more converters to increase readability and use a common pattern which will allow to further refactor repeated code

- Code cleanups and simplification

- Updated requirements

- Tests:

  - Added plenty of tests

  - Tests cleanups and fixes

## Contributors

This release was made possible by the following people:

Leandro Regueiro, Michal Čihař, BhaaL, Mark Jansen, Stuart Prescott, David Hontecillas.

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