The web app imports and exports these formats. See Import and export files for how.
| Format | Extensions | Languages per file | Used by |
|---|---|---|---|
| JSON | .json | One | Web and mobile apps, most JavaScript i18n libraries |
| YAML | .yml, .yaml | One | Ruby on Rails and others |
| XLIFF | .xlf, .xliff | One | Translation tools, Angular |
| Gettext | .po, .pot | One | PHP, Python, many others |
| Android strings | .xml | One | Android |
| iOS strings | .strings | One | iOS and macOS |
| Apple String Catalog | .xcstrings | Several | Xcode |
| Java properties | .properties | One | Java |
| Flutter ARB | .arb | One | Flutter |
| CSV | .csv | Several | Spreadsheets |
| TSV | .tsv | Several | Spreadsheets |
| Excel | .xlsx | Several | Spreadsheets |
Good to know #
- One language per file: on export you get one file per language, delivered as a zip when you pick several. On import, the language comes from the file when it says so, and otherwise from the file name (
messages.nl.po,pt_BR.json). You can always change it before importing. - Several languages per file: spreadsheets have a
keycolumn and one column per language code. An Apple String Catalog holds all languages and the source language itself. - Source texts in the file: XLIFF, Gettext and Apple String Catalog carry the source text next to the translation. The import offers to use them as source strings.
- Nested files: nested JSON and YAML become keys with dots (
checkout.title) and are nested again on export. Entries that are not text, such as numbers and lists, are skipped and reported. - Language codes:
pt_BR,pt-brandpt-BRall mean the same language. - Plurals: An ICU message such as
{count, plural, one {# item} other {# items}}is a plain text value to every format and is imported and exported as written. Gettext plural forms are converted to an ICU plural on import. See ICU messages and placeholders.
CLI formats #
The CLI reads and writes the formats with one language per file: JSON, YAML, XLIFF, Gettext, Android strings, iOS strings, Java properties and Flutter ARB. Spreadsheets and Apple String Catalogs are handled in the web app.