Skip to content

Supported File Formats

Import your existing translations and export to any format your stack requires. Locize supports various import/export formats and different i18n framework formats.

Which format should you use?

Use the format your framework already reads. Locize imports and exports all of them, so the format in your repository and the format you hand to translators can differ.

Your stack or taskFormat
i18next, react-i18next, next-i18next and most JavaScript frameworksJSON (i18next v4)
react-intl (FormatJS) and other ICU-based librariesJSON with ICU MessageFormat
Angular built-in i18nXLIFF
iOS and macOS, Xcode 15 or laterString Catalogs (.xcstrings)
iOS and macOS, older projects.strings
AndroidAndroid Strings (strings.xml)
.NET (ASP.NET, WPF, .NET MAUI)RESX
WordPress, Python (Django), C/C++ and other gettext-based projectsGettext PO
LaravelLaravel PHP arrays
Ruby on Rails, Hugo, static site generatorsYAML
Java and Spring BootJava Properties
Projects using Mozilla FluentFluent (.ftl)
Handing work to an agency or a CAT toolXLIFF (1.2 is the safer default)
Review by non-technical people in a spreadsheetXLSX or CSV
Moving translation memory or glossaries between toolsTMX (memory) or TBX (glossary)

Import & Export Formats

Many file formats for importing existing translations and exporting to your deployment target. All formats support both import and export unless noted otherwise.

description
JSON
.json, .json5
The default format for i18next, next-intl, react-intl, and most JavaScript frameworks. Supports nested and flat structures.
description
XLIFF 1.2 / 2.x
.xliff, .xlf
XML-based standard used by professional CAT tools such as SDL Trados, memoQ, and Memsource.
description
YAML
.yml, .yaml
Human-readable format commonly used with Ruby on Rails, Hugo, and static site generators.
description
Android Strings
.xml
Android resource string files used by native Android applications.
description
iOS Strings
.strings
Apple string resource files used by iOS and macOS applications.
description
Xcode String Catalogs
.xcstrings
Apple's modern string catalog format introduced in Xcode 15 for iOS, macOS, watchOS, and tvOS apps.
description
RESX
.resx
.NET resource file format used by ASP.NET, WPF, Xamarin, and .NET MAUI applications.
description
Gettext
.po
GNU Gettext format widely used in PHP, Python (Django), C/C++, and WordPress projects.
description
Fluent
.ftl
Mozilla's localization system designed for natural-sounding translations with built-in pluralization and gender support.
description
Laravel PHP
.php
PHP array-based translation files used by the Laravel framework.
description
CSV
.csv
Comma-separated values for simple tabular translation data. Easy to edit in spreadsheet applications.
description
XLSX
.xlsx
Excel spreadsheet format for bulk translation management and handoff to non-technical translators.
description
TBX / UTX
.tbx, .utx
Terminology exchange formats used for importing and exporting glossary and lexicon data between localization tools.
description
TMX
.tmx
Translation Memory eXchange format for migrating translation memories between TMS platforms.
description
Java Properties
.properties
Key-value format used by Java applications, Spring Boot, and other JVM-based frameworks.

i18n Framework Formats

A lot of framework-specific formats so your translations match the syntax your code expects.

i18next v4
The current i18next format with flat or nested keys, pluralization, and interpolation and optional context-based variants for gender, formality, or other contextual distinctions.
i18next v3
Legacy i18next format for projects that have not yet migrated to v4 and optional context-based variants for gender, formality, or other contextual distinctions.
ICU MessageFormat
Industry-standard message syntax used by react-intl (FormatJS), Angular, and many other frameworks.
MessageFormat 2
The Unicode standard for messages: declarations with .input, selection with .match, and patterns quoted in {{…}}. For i18next via the i18next-mf2 plugin.
Fluent
Mozilla's Fluent syntax for natural-sounding translations with advanced grammar support.
Vue i18n
Format used by vue-i18n for Vue.js applications with linked messages and pluralization.
Polyglot
Airbnb's Polyglot.js format with simple interpolation and pluralization.
i18n-js (Rails)
JavaScript counterpart of Ruby on Rails i18n, commonly used in Rails-backed frontends.
Android
Android-specific i18n format with plural quantity strings and string arrays.
Other
For i18n frameworks not listed above. Locize stores your keys and values as-is, but format-specific features like intelligent plural handling or context variants are not available.

Migrating existing translations?

Locize can import your existing translation files directly: XLIFF, Gettext, Android strings, RESX, and 13 other formats. No conversion scripts needed.

Upload via UI
Drag and drop your translation files directly into the Locize editor.
Import via CLI
Use the locize-cli to bulk-import files from your repository.
API import
Push translations programmatically via the REST API.

Frequently asked questions

Which localization file format should I use?

Use the format your framework already reads: JSON for i18next and most JavaScript frameworks, .xcstrings for iOS and macOS apps built with Xcode 15 or later, strings.xml for Android, RESX for .NET, Gettext PO for WordPress, Python (Django) and C/C++, YAML for Rails, and .properties for Java. Use XLIFF when translations go to an agency or a CAT tool, and TMX or TBX to move translation memory or glossaries between tools. Locize imports and exports all of them, so the format in your repository and the format you hand to translators can differ.

What is the difference between JSON, Gettext PO and XLIFF?

JSON is a plain key-value structure that JavaScript frameworks load directly; i18next adds conventions for plurals and context on top. Gettext PO is a text format from the GNU project in which each entry carries the source message, optional context (msgctxt), plural forms and translator comments. XLIFF is an XML exchange format standardized by OASIS for handing translation work between tools, with a stable id per translation unit. Teams often keep JSON or PO in the code and use XLIFF only for the exchange with translators.

Should I use XLIFF 1.2 or 2.x?

For the widest tool compatibility, XLIFF 1.2 is still the safer default. The 2.x line (2.0 and 2.1 as OASIS Standards, 2.2 as a 2025 Committee Specification) is cleaner and more extensible, but some agencies and CAT tools accept 2.0 and not 2.1 or 2.2 yet. Ask your translation partner which version they prefer; if you cannot, use 1.2.

Should iOS projects use .strings or .xcstrings?

New projects should use String Catalogs (.xcstrings), introduced in Xcode 15 (June 2023), which replace the older Localizable.strings and Localizable.stringsdict pair. Xcode compiles them into the same runtime resources, so NSLocalizedString and String(localized:) keep working. .strings remains supported and is still common in older projects. Locize supports both.