# Translation Related File Formats

These are the different storage formats for translations and files associated with translations that are supported by the toolkit. See also Standards conformance for standards conformance.

The Translate Toolkit implements a set of classes for handling translation files which allows for a uniform API which covers other issues such as quoting and escaping of text.

## Primary translation formats

- XLIFF
- Gettext PO

## Other translation formats

- CSV
- INI Files (including Inno Setup .isl dialect)
- Java Mozilla and Java properties files (also Mozilla derived properties files)
- Mozilla Mozilla DTD format
- OpenOffice.org OpenOffice.org GSI/SDF format (Also called SDF)
- PHP translation arrays
- Qt Linguist Qt .ts (both 1.0 and 1.1 supported, 1.0 has a converter)
- Symbian localization files
- Windows Windows RC files files
- Mac OSX Mac OSX strings files (also used on the iPhone) (from version 1.8)
- Adobe Adobe Flex properties files files (from version 1.8)
- Haiku Haiku catkeys (from version 1.8)
- Android string resources (supports storage, not conversion)

## Translation Memory formats

- TMX
- Wordfast Translation Memory: TM
- Trados: .txt TM (from v1.9.0 – read only)

## Glossary formats

- OmegaT glossary (from v1.5.1)
- Qt Phrase Book (.qph)
- TBX
- Universal Terminology eXchange (UTX) (from v1.9.0)

## Formats of translatable documents

- HTML
- iCalendar
- JSON
- OpenDocument – all ODF file types
- Text – plain text with blocks separated by whitespace
- Wiki – DokuWiki and MediaWiki supported
- Subtitles – various formats (v1.4)

## Machine readable formats

- Gettext Gettext .mo
- Qt Qt .qm (read-only)

## In development

## Unsupported formats

Formats that we would like to support but don’t currently support:

- Wordfast:
  - Glossary tab-delimited “source,target,comment” i.e. like OmegaT but unsure if any extension is required.
- Apple:
  - AppleGlot
  - .plist – see bug 633 and plistlib for Python
- Adobe:
  - FrameMaker’s Maker Interchange Format – MIF (See also python-gendoc, and Perl MIF module)
  - FrameMaker’s Maker Markup Language (MML)
- Microsoft
  - Word, Excel, etc (probably through usage of OpenOffice.org)
  - OOXML (at least at the text level we don’t have to deal with much of the mess inside OOXML). See also: Open XML SDK v1
  - Rich Text Format (RTF) see also pyrtf-ng
  - Open XML Paper Specification
  - .NET Resource files (.resx) – Bug 396
- XML related
  - Generic XML
  - DocBook (can be handled by KDE’s xml2pot)
  - SVG
- DITA
- PDF see spec, PDFedit
- LaTeX – see plasTeX, a Python framework for processing LaTeX documents
- unoconv – Python bindings to OpenOffice.org UNO which could allow manipulation of all formats understood by OpenOffice.org.
- Trados:
  - TTX (Reverse Engineered DTD, other discussion)
  - Multiterm XML TSV to MiltiTerm conversion script or XLST
  - .tmw
  - .txt (You can interchange using TMX) Format explanation with some examples.
- Tcl: .msg files. Good documentation
- Installers:
  - NSIS installer: Existing C++ implementation
  - WiX – MSI (Microsoft Installer) creator. Localization instructions, more notes on localisation. This is a custom XML format, another one!
- catgets/gencat: precedes gettext, looking in man packages is the best information I could find. Also LSB requires it. There is some info about the source (msgfile) format on GNU website
- Wireless Markup Language
- GlossML
- Deja Vu External View: Instructions sent to a translator, Description of external view options and process
- Mozilla’s l20n.

## Unlikely to be supported

These formats are either: too difficult to implement, undocumented, can be processed using some intermediate format or used by too few people to justify the effort. Or some combination or these issues.