Translation File Converter

Convert translation files between JSON, YAML, XLIFF, Android strings.xml, iOS .strings, ARB, RESX, PO and more.

Pick the source format or let the converter detect it from the file.

Used when the source format holds one language per file. Also used as the source language for XLIFF output.

Choose the format you want to download.

JSON

A flat or nested key-value JSON file with translations for one language. It is the most common format for web and mobile apps because every language can parse it and it maps directly to the way i18n libraries look up strings.

One file per language. Format documentation

Runs in your browser. Files are not uploaded unless the tool says otherwise.

What the converter does

The converter reads your translation file with the same parsers SimpleLocalize uses for imports, turns it into a list of translation keys with their texts, and writes it back in the format you choose. It supports 19 formats: JSON, YAML, CSV, TSV, Excel, XLIFF 1.2 and 2.0, Android strings.xml, iOS .strings and .stringsdict, Xcode String Catalogs, Flutter ARB, Java .properties, gettext PO, .NET RESX, PHP arrays, Qt Linguist and browser extension messages.json.

What is preserved

  • Translation keys, including nested keys, which are flattened to dot notation or expanded back when the target format supports nesting.
  • Plural forms. Android plurals, .stringsdict variants, ARB and PO plural forms are converted through ICU message syntax, so {count, plural, one {...} other {...}} becomes the native representation of the target format.
  • Placeholders such as {name}, %s, %1$d or %@. Apple and Android formats are converted through universal placeholders, so %@ becomes %s when you go from iOS to Android.
  • Languages. Multi-language sources such as Excel, CSV or String Catalogs are split into one file per language when the target keeps one language per file.
  • Descriptions and comments when both formats can carry them, for example RESX comments or ARB metadata.

Privacy and limits

Files are sent to the SimpleLocalize API over HTTPS, converted in memory and returned immediately. Nothing is stored, and no account is needed. The converter accepts files up to 5 MB and a few requests per second per client. For larger files or automation, use the CLI with a free project: upload in one format and download in another.

Popular conversions

See the full list of format pairs or read about the JSON translation file format that most web frameworks use.

More translation tools

Manage translations with SimpleLocalize

  • Import the same file formats you just converted or checked
  • Auto-translate with DeepL, Google, OpenAI, Claude or Gemini using your own API keys
  • Free plan for small projects, no credit card required
Start for free
No credit card required5-minute setup