# Translate Toolkit 1.14.0-rc1

Released on 8 March 2016

This release contains many improvements and bug fixes. While it contains many general improvements, it also specifically contains needed changes and optimizations for the upcoming Pootle 2.8.0 and Virtaal releases.

It is just over 9 months since the last release and there are many improvements across the board. A number of people contributed to this release and we’ve tried to credit them wherever possible (sorry if somehow we missed you).

Note

With the shift of next version to `2.0.0b1` this can be considered to be `2.0.0b0`.

## Major changes

- Python 3 compatibility
- Translate Toolkit can now easily be installed on Windows
- Changes in storage API to expose a more standardized API

## Detailed changes

### Python 3 support

- Translate Toolkit went through a massive code cleanup looking forward Python 3 compatibility. There might be quirks that need to be fixed, so please test and report any issue you might find.

### Formats and Converters

- PO
  - Duplicate entries are now removed by default if no way to handle duplicates is specified. Note that converters still default to msgctxt.
- Properties
  - Keys can contain delimiters if they are properly wrapped (issue 3275).
  - Fix control characters escaping for utf-8 encoding.
- Android
  - Unknown locales no longer produce failures.
- JSON
  - Output now includes a trailing newline.

### Filters and Checks

- LibreOffice checker no longer checks for Python brace format (issue 3303).
- Numbers check now handles non latin numbers. Support for non latin numbers has been added for Arabic, Assamese, Bengali and Persian languages.
- Fixed issue that prevented standard checks from being used in Pootle with default settings.
- Fixed missing attribute warning displayed when using `GnomeChecker`, `LibreOfficeChecker` and `MozillaChecker` checkers.

### Tools

- posegment now correctly segments Japanese strings with half width punctuation sign (issue 3280).

### Languages

- Fixed plural form for Slovenian and Turkish.
- Added language settings for Brazilian Portuguese.

### Setup

- Fixed Inno Setup builds allowing to easily install Translate Toolkit on Windows using the `pip` installer. Commands are compiled to .exe files.

### API changes

- Added encoding handling in base `TranslationStore` class exposing a single API.
- Encoding detection in `TranslationStore` has been improved.
- Standardized UnitClass definition across `TranslationStore` subclasses.

### API deprecation

- `TxtFile.getoutput()` and `dtdfile.getoutput()` have been deprecated. Either call `bytes(<file_instance>)` or use the `file_instance.serialize()` API if you need to get the serialized store content of a `TxtFile` or `dtdfile` instance.

### General

- Misc docs cleanups.
- Added more tests.
- Legacy, deprecated and unused code cleansing:
  - Dropped code for no longer supported Python versions.
  - Removed unused code from various places across codebase.
  - The legacy `translate.search.indexing.PyLuceneIndexer1` was removed.
  - The deprecated `translate.storage.properties.find_delimiter()` was removed and replace by the `translate.storage.properties.Dialect.find_delimiter()` class method.
  - Python scripts are now available via console_scripts entry point, thus allowing to drop dummy files for exposing the scripts.

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

## Contributors

This release was made possible by the following people:

Claude Paroz, Leandro Regueiro, Michal Čihař, Dwayne Bailey, Ryan Northey, Hiroshi Miura, Melvi Ts, Jerome Leclanche, Yann Diorcet, beernarrd.

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