# Converters

Converters change many different formats to PO and back again. Sometimes only one direction is supported, or conversion is done using non-PO formats. The converters follow a general pattern of usage, understanding that will make the converters much easier to use and understand.

- moz2po – Mozilla .properties and .dtd converter. Works with Firefox and Thunderbird

- oo2po – OpenOffice.org SDF converter (Also works as `oo2xliff`).

- odf2xliff – Convert OpenDocument (ODF) documents to XLIFF and vice-versa.

- prop2po – Java property file (.properties) converter

- php2po – PHP localisable string arrays converter.

- sub2po – Converter for various subtitle files

- txt2po – Plain text to PO converter

- po2wordfast – Wordfast Translation Memory converter

- po2tmx – TMX (Translation Memory Exchange) converter

- pot2po – initialise PO Template files for translation

- csv2po – Comma Separated Value (CSV) converter. Useful for doing translations using a spreadsheet.

- csv2tbx – Create TBX (TermBase eXchange) files from Comma Separated Value (CSV) files

- html2po – HTML converter

- flatxml2po – Flat XML converter

- ical2po – iCalendar file converter

- ini2po – Windows INI file converter

- json2po – JSON file converter

- web2py2po – web2py translation to PO converter

- rc2po – Windows Resource .rc (C++ Resource Compiler) converter

- resx2po – .Net Resource (.resx) file converter

- symb2po – Symbian-style translation to PO converter

- tiki2po – TikiWiki language.php converter

- ts2po – Qt Linguist .ts converter

- xliff2po – XLIFF (XML Localisation Interchange File Format) converter

- yaml2po – YAML (Yet Another Markup Language) converter

# Tools

The PO tools allow you to manipulate and work with PO files

## Quality Assurance

These tools are especially useful for measuring and improving translation quality.

- poconflicts – extract messages that have conflicting translation

- pofilter – filter PO files to find common errors using a number of tests

- pogrep – find strings in your PO files

- pomerge – merge file extracted using pofilter back into the original files

- porestructure – restructures PO files according to poconflict directives

- junitmsgfmt – run msgfmt and provide JUnit type output for use in continuous integration systems like Hudson and Jenkins

## Other tools

- tmserver – a Translation Memory server, can be queried over HTTP using JSON

- poterminology – extracts potential terminology from your translation files

- pocount – Count words and strings in PO, XLIFF and other types of translatable files

- podebug – Add debug strings to messages

- posegment – Break a PO or XLIFF files into sentence segments, useful for creating a segmented translation memory

- pocompile – create an MO (Machine Object) file from a PO or XLIFF file

- poswap – uses a translation of another language that you would rather use than English as source language

- poclean – produces a clean file from an unclean file (Trados/Wordfast) by stripping out the tw4win indicators

- pretranslate – fill any missing translations from translation memory via fuzzy matching.

- Levenshtein distance – edit distance algorithms for translation memory matching

# Scripts

The scripts are for working with and manipulating PO files. Unlike the `tools` which are written in Python, the scripts are written in `bash`. Some of them are packaged since version 1.0 of the Toolkit, but you might need to download them from version control and do a manual installation .

- moz-l10n-builder – Create Mozilla XPIs and rebuild Windows installers from existing translations

- Mozilla L10n Scripts – Build Mozilla products Firefox and Thunderbird

- phase – Helps manage a project divided into phases of work, including sending, checking, etc

- pocompendium – Creates various types of PO compendium (i.e. combines many PO files into a single PO file)

- pocommentclean – Remove all translator comments from a PO file

- pomigrate2 – Migrate older PO files to new POT files

- popuretext – Extracts all the source text from a directory of POT files

- poreencode – Converts PO files to a new character encoding

- posplit – Split a PO file into translate, untranslated and fuzzy files