Main menu

Exporting translations

About the Loco file exporters

There are two ways to export translations from your Loco project:


The "Developer Tools" panel in your project dashboard provides several GUIs for exporting your translations. These are in fact just front ends to the API, which is outlined below.

Export API

Exporting language packs via the REST API provides the most control and is the best way to integrate Loco into your development workflow.

See the full endpoint documentation

Supported export formats

See the list of supported export formats in the API documentation.

The list of supported file formats is constantly growing, but if you don't see yours, please tell us.

Export options

The dashboard and the API support the same options for exporting your translations. Here's an explanation of them all:


You can export a single locale, or your whole project at once depending on your target platform. It's also possible to export no locales if you need a template containing just keys and no translations.

Some file formats support multiple locales in a single file. For those that don't, Loco offers a convenient Zip archive for exporting multiple single-language files.


Specifying the fallback parameter will use an alternative locale for any missing translations. Note that a missing translation is not the same as an empty or flagged translation. Only completely "untranslated" assets will use the fallback.


If you've tagged the assets in your project, the filter parameter will let you export groups of them separately into their own files.

Because tags operate across locales, this filter will export the same subset of assets to all your target language files.

Specifying multiple tags will match any asset tagged by any of them.

Optional settings

The following options aren't required in the most common cases, but you may find them useful if you have specific export requirements.


The index parameter allows you to specify an alternative lookup key for your target file. If you leave this empty (or "Auto" in the dashboard) Loco will use the right key for the current format. For example a PO file will be indexed by "text" but Android XML resources will be indexed by "id".

Generic formats such as JSON tend to use the ID by default, but you may want to switch to "text" if your application looks up translations by the full source language string.

You can also select a locale for indexing. This implies indexing by "text" but overrides your default project locale.


The default order of exported translations is the order in which the assets were added to your project. (first in, first out)

The order parameter allows you to change this sorting. Currently only a value of "id" is supported. This will order translations alphabetically by their asset ID.


The default behaviour of all exports is to include only filtered assets that have a source language translation.

The status parameter allows you to modify this behaviour. For example, you can export only "translated" assets in a given locale, or the opposite by specifying "untranslated". This parameter also allows you to export translations with a given flag, such as "Fuzzy".

You can also specify status=all via the API to force the inclusion of every asset in your project regardless of whether it has source text.

Bear in mind that this option is primarily intended for exporting single-language files. The status of asset translations is likely to differ between locales, so the output may not make sense in certain file formats.

Missing strings?

If your export is missing some translations, here are some things to check:

Are the missing items filtered out? If you are filtering by tag, check the assets are tagged correctly. Note that plural forms are treated as separate assets in Loco, so check all forms are tagged for export, not just the singular form.

Are the missing items translated in your project's source language? Translations with no "native" text will not be exported unless you specify the status parameter. If your platform doesn't require a source translation for every string, try appending status=all to the export URL.