Skip to main content
Entri supports ten localization file formats covering web, mobile, and desktop platforms. You configure the format per file pattern in your .nt3.yml file.

Format overview

Format identifierExtensionPlatform / use case
json-flat.jsonWeb — simple flat key-value
json-nested.jsonWeb — nested object structure
yaml.yamlWeb / Ruby on Rails
po.poGNU gettext (Linux, web)
xliff.xlfIndustry standard XLIFF 1.2
xliff2.xlfIndustry standard XLIFF 2.0
arb.arbFlutter / Dart
android-xml.xmlAndroid
ios-strings.stringsiOS / macOS
ios-stringsdict.stringsdictiOS / macOS (plurals)

Format examples

Flat key-value JSON. All keys live at the root level of the object.
{
  "welcome_message": "Welcome to Entri",
  "button_save": "Save",
  "button_cancel": "Cancel",
  "error_not_found": "Page not found"
}
Recommended for simple projects or tools that don’t support nested keys.

Configuring formats in .nt3.yml

Specify the format for each file pattern using the format key:
project_id: "proj_abc123"
source_language: en
file_patterns:
  - path: "src/locales/{lang}.json"
    format: json-nested
The {lang} placeholder is replaced with the language code (e.g., en, fr, de) when reading and writing files.

Multiple patterns

You can mix formats within the same project by listing multiple patterns:
project_id: "proj_abc123"
source_language: en
file_patterns:
  - path: "src/locales/{lang}/app.json"
    format: json-nested
  - path: "src/locales/{lang}/marketing.po"
    format: po
Each pattern maps to a separate namespace in Entri, allowing you to manage files by feature or team independently.

Platform recommendations

You are building…Recommended format
React / Vue / Angular appjson-nested or json-flat
Ruby on Rails appyaml
Android appandroid-xml
iOS / macOS appios-strings (+ ios-stringsdict for plurals)
Flutter apparb
Working with a translation agencyxliff or xliff2
GNU/Linux or gettext projectpo