Skip to main content
Upload translation files from your local project to Entri. By default, only the source language file is pushed. Existing translations are skipped unless --overwrite is specified.

Usage

nt3 push [options]
# alias: nt3 up

Examples

# Push the source language file (default)
nt3 push

# Push and replace existing translations
nt3 push --overwrite

# Push a specific language
nt3 push -l fr

# Push all languages (source + all targets)
nt3 push --all

# JSON output for CI/CD
nt3 push --json

Options

FlagDescription
-o, --overwriteOverwrite existing translations (default: skip existing)
-l, --language <lang>Push a specific language only (e.g., -l fr)
-a, --allPush all languages: source language and all configured target languages
--jsonOutput results as JSON

How push works

nt3 push reads your .nt3.yml to determine which files to upload. For each file pattern, it resolves the file path for the target language (replacing {lang} with the language code), reads the file content, and sends it to the Entri import API. By default, only the source language defined in .nt3.yml is pushed. 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.

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:
{
  "success": true,
  "files": [
    {
      "path": "src/locales/en.json",
      "language": "en",
      "format": "json-nested",
      "created": 12,
      "updated": 0,
      "skipped": 45
    }
  ],
  "totals": {
    "created": 12,
    "updated": 0,
    "skipped": 45
  },
  "errors": []
}
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.