# Translate Toolkit

The Translate Toolkit is a localization and translation toolkit. It provides a set of tools for working with localization file formats and files that might need localization. The toolkit also provides an API on which to develop other localization tools.
The toolkit is written in the Python programming language. It is free software originally developed and released by Translate.org.za in 2002 and is now maintained by Translate.org.za and community developers.
Translate Toolkit uses Enchant as spellchecker.

## History

The toolkit was originally developed as the mozpotools by David Fraser for Translate.org.za. Translate.org.za had focused on translating KDE which used Gettext PO files for localization. With an internal change to focus on end-user, cross-platform, OSS software, the organisation decided to localize the Mozilla Suite. This required using new tools and new formats that were not as rich as Gettext PO. Thus mozpotools was created to convert the Mozilla DTD and .properties files to Gettext PO.
Various tools were developed as needed, including pocount, a tool to count source text words to allow correct estimations for work, pogrep, to search through translations, and pofilter, to check for various quality issues.
When Translate.org.za began translating OpenOffice.org it was only natural that the Translate Toolkit would be adapted to handle the OpenOffice.org internal file format. Translating OpenOffice.org using PO files is now the default translation method.
As part of the WordForge project the work received a major boost and the toolkit was further extended to manage XLIFF files alongside PO files. Further funded development has added other features including the ability to convert Open Document Format to XLIFF and the management of placeholders (Variables, acronyms, terminology, etc.).

## Design goals

The main aim of the toolkit is to increase the quality of localisation and translation. This is achieved by firstly, focusing on good localisation formats thus the toolkit makes use of the PO and XLIFF localisation formats. This has the benefit that it stops the proliferation of localization formats and allows localizers to work with one good localization tool. For the toolkit this means building converters that can transform files to be translated into these two basic formats.
Secondly, to build tools that allow localizers to increase the general quality of their localization. These tools allow for the extraction of terminology and for checking for the consistent use of terminology. The tools allow for checking for various technical errors such as the correct use of variables.
Lastly, the toolkit provides a powerful localisation API that acts as a base on which to build other localization related tools.

## Users

Many translators use the toolkit directly, to do quality checks and to transform files for translation. Further there are and have been several indirect users of the Translate Toolkit API:
* Pootle - an online translation tool
* open-tran - providing translation memory lookup (was shut down on January 31, 2014.)
* Wordforge (old name Pootling) - an offline translation tool for Windows and Linux
* Rosetta - free translation web service offered by LaunchPad. It is used mainly by the Ubuntu community translation tool. See it in action in Launchpad Translations
* LibreOffice/Apache OpenOffice - most community localization is done through PO files produced by the toolkit
* Virtaal - a localisation and translation tool
* translatewiki.net (now discontinued due to new terms)
* Weblate - web based translation tool with tight Git integration

## Supported document formats

* Primary Localization Formats
** Gettext PO
** XLIFF (Normal and PO representations)
* Other Localization Related Formats
** TBX
** Java .properties
** Qt .ts, .qm and .qph (Qt Phrase Book)
** Gettext .mo
** OmegaT glossaries
** Haiku catkeys files
* Other Formats
** OpenDocument Format
** Plain Text
** Wiki: DokuWiki and MediaWiki syntax
** Mozilla DTD
** OpenOffice.org SDF
** PHP strings
** .NET Resource files (.resx)
** OS X strings
** Adobe Flex files
** INI file
** Windows / Wine .rc files
** iCalendar
** Symbian localization files
** Subtitles
* Translation Memory Formats
** TMX
** Wordfast TM

### OpenDocument Format support

Work was started in June 2008 to incorporate OpenDocument Format support. This work is funded by the NLnet Foundation and is a collaboration between Translate.org.za and Itaapy