Skip to main content
Upload translation files from your local project to Entri. By default, all language files matching your configured file patterns are discovered and pushed. Any non-source languages found are automatically enabled as target languages in the project. Existing translations are skipped unless --overwrite is specified.

Usage

Examples

Options

How push works

nt3 push reads your .nt3.yml to determine which files to upload. It scans the filesystem for all files matching your configured patterns (replacing {lang} with actual language codes found on disk), reads each file, and sends it to the Entri import API. Any discovered non-source languages are automatically added as target languages to the project. The import merges incoming keys with the existing project:
  • New keys are created
  • Existing keys are skipped (unless --overwrite is set)
  • Keys not in the file are left untouched

Overwrite behavior

Without --overwrite, pushing a file that contains keys already in Entri leaves those translations unchanged. This is safe for incremental pushes — only new strings are added. With --overwrite, incoming translations replace any existing values. Use this when you want Entri to reflect your local files exactly, for example after a bulk find-and-replace or when seeding from an external source. You can also set a per-project default in .nt3.yml using update_translations: true, which has the same effect as always passing --overwrite. The CLI flag takes precedence when both are set.

JSON output

The --json flag suppresses all progress output and prints a structured result instead. This is useful for parsing results in scripts or CI pipelines:
The process exits with code 1 if any file fails to push, making it easy to fail CI builds on errors.

Multi-pattern projects

If your .nt3.yml defines multiple file patterns, all patterns are pushed for each target language. See the configuration reference for multi-pattern setup.