Main menu

The Export API offers more than just JSON responses. You can output your translations to a wealth of file types and language pack formats.

For help with specific translation file formats, see the general help section for your platform.

File extensions

The following language pack formats can be exported by specifying the relevant file extension:

  • .pot .po .mo — Gettext PO, POT and binary MO
  • .xlf .xliff — Localization Interchange File Format
  • .tmx — Translation Memory eXchange
  • .tbx — TBX TermBase eXchange
  • .csv — Comma separated values
  • .tsv — Tab separated values
  • .html — Simple HTML table
  • .strings .xcstrings — iOS/Xcode Localizable strings
  • .stringsdict — iOS/Xcode plural rules
  • .plist .bplist — Apple property list XML and binary formats
  • .properties — Java properties file
  • .ts — An XML format for Qt Framework
  • .res .txt — ICU Resource Bundles (binary and source)
  • .resx — ResX for .NET framework

The following extensions are used for multiple formats, but have a default:

Alternative styles

The format parameter can be used to export a more specific style of some of the formats above.

JSON formats

In addition to the default JSON format, you can specify ARB, Chrome, Jed and i18next language pack formats as follows:

/api/export/locale/{locale}.arb
/api/export/locale/{locale}.json?format=jed
/api/export/locale/{locale}.json?format=chrome
/api/export/locale/{locale}.json?format=i18next4

Legacy i18next versions are also supported: use format=i18next3 for v3 plurals or format=i18next for older output.

The multi format is a multi-language version of the default (generic) JSON output. Compare the following:

/api/export/all.json
/api/export/locale/{locale}.json

Note that ?format=multi is implied for export/all, but needs specifying when importing.

YAML formats

Several YAML formats are available — Simple (default), Symfony and Rails. The default format is flat, and only exports a single locale.

The Rails format is specifically for Ruby on Rails and follows the conventions of the i18n module. It supports multiple locales in the same file, and you can also specify a top level namespace key.

/api/export/locale/{locale}.yml?format=symfony
/api/export/locale/{locale}.yml?format=rails
/api/export/locale/{locale}.yml?format=rails&yaml-prefix=app

XML formats

The default for the .xml extension is Android format. Specify java to produce Java properties XML and tizen to produce Tizen formatted XML.

/api/export/locale/{locale}.xml?format=java
/api/export/locale/{locale}.xml?format=tizen

Other XML formats have their own specific file extensions, such as .tmx .xlf .resx .plist .ts

XLIFF formats

The default for .xlf and .xliff is XLIFF 1.2. Use format=xlf2 for XLIFF 2.0, format=symfony for Symfony-flavoured XLIFF, or format=angular for Angular i18n XLIFF.

/api/export/locale/{locale}.xlf?format=xlf2
/api/export/locale/{locale}.xlf?format=symfony
/api/export/locale/{locale}.xlf?format=angular

iOS/Xcode localization files

In addition to the strings, xcstrings and stringsdict extensions, you can export an Xcode-specific XLIFF file suitable for Xcode's "Import Localizations" feature:

/api/export/locale/{locale}.xliff?format=xcode

PHP language packs

The default PHP format is Zend (for legacy reasons) and is a simple array. Specify Symfony or CodeIgniter or output simple constant or ini definitions.

/api/export/locale/{locale}.phps?format=symfony
/api/export/locale/{locale}.phps?format=codeigniter
/api/export/locale/{locale}.phps?format=constants
/api/export/locale/{locale}.ini

Note that the .phps extension is used to indicate source code output, but you can use .php if you prefer.