Translate Toolkit 2.4.0

Released on 24 June 2019

This release contains improvements and bug fixes.


Formats and Converters

  • PO
    • Allow unicode in PO headers (issue 3896).
    • Improve finding out newline format for a file.
    • Strip UTF-8 BOM from input (issue 1640).
    • Adjustments on how output is indented (issue 3424).
  • Properties
    • Do not fail when parsing empty file.
  • Android resources
    • Multiple adjustments so output is closer to Android Studio’s.
  • YAML
    • Switched to ruamel.yaml to simplify codebase and support YAML 1.2.
    • Added support for Ruby plurals.
    • Fixed handling dict in list (issue 3895).
    • Fixed parsing of empty YAML file.
  • JSON
    • Fixed serialization of JSON arrays.
    • Placeholders are now kept in WebExtension dialect round trip conversion.
  • RESX
    • Several improvements on formatting to align with Visual Studio’s output.
  • TS
    • Improved tags indentation.
    • Added support for new vanished type.
  • Flat XML
    • Added support for this new format including flatxml2po and po2flatxml converters (issue 3776).
  • CSV
    • No longer hardcode escape character (issue 3246).
    • Rewrote default dialect to make it more flexible.
  • web2py
    • Updated converters code.
  • Subtitles
    • Initialize duration on subtitle unit __init__.


  • Tmserver: Fixed execution of unit API on Python 3.


  • Updated plural definitions to CLDR 35.0.
  • Removed trailing semicolon in Romanian plural definition.


  • Allow any character for Python mapping keys in PythonFormattingPlaceable.

API changes

  • Altered storage code to have a consistent API for removenotes.
  • Removed dependency on diff-match-patch.
  • Removed embedded CherryPy wsgi server.
  • Removed deprecated has_key implementation.


  • Dropped no longer supported Python 3.3 and Python 3.4.
  • Minor docs improvements.
  • Updated requirements.
  • Added and updated tests.


This release was made possible by the following people:

Michal Čihař, Leandro Regueiro, Vinyl Darkscratch, Vitaly Novichkov, Stuart Prescott, Alex Tomkins, Darío Hereñú, BhaaL.

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