NeoIQ Localize

Introduction

NeoIQ Localize is the localization toolkit for modern teams. It connects to your repo, understands your translation formats, and keeps every language in sync as your product ships new features.

Why use NeoIQ Localize?

Localization is usually slow because it is manual, format-sensitive, and spread across teams. NeoIQ Localize automates the translation workflow without taking away control of your source files.

It gives you incremental translations, format integrity, clean diffs, and flexible workflows. Only new or changed keys are translated, structured formats stay valid, and a lock file prevents unnecessary churn. You can run it locally, in CI, or from your own tooling with the SDK or API.


What you can do with it

You can keep product UI strings consistent across many languages, translate docs alongside releases, and generate Android XML or iOS catalogs from a single source. Teams often use it to fail CI when translations are missing or to open PRs automatically, and more advanced teams build internal automation with the SDK or API.


How it works

Pick how you want to run the CLI. All options produce the same config and outputs.

npx @neoiq/localize@latest init
npx @neoiq/localize@latest translate

If you prefer a global install:

Terminal
npm install -g @neoiq/localize

After you choose how to run the CLI, the workflow is always the same:

Configure your project

Create neoiq-localize.json (or run the init command shown above) and tell NeoIQ Localize which locales and file patterns to use.

Authenticate once

Sign in in a browser or provide NEOIQ_LOCALIZE_API_KEY and NEOIQ_LOCALIZE_PROJECT_ID in your environment.

Translate only what changed

Run translate to detect new or edited keys in your source locale and translate just those keys.

Write targets and track state

Target files are written to disk and neoiq-localize.lock is updated so future runs stay incremental.

Enforce in CI

Use translate --check to fail CI when translations are missing.


Core concepts

Project config

neoiq-localize.json defines locales and file patterns. This is the contract between your repo and the translation engine.

neoiq-localize.json
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "files": {
    "json": {
      "include": ["src/locales/[locale].json"]
    }
  }
}

Source locale

The source locale is your single source of truth. You edit src/locales/en.json, and NeoIQ Localize generates es, fr, and de from it.

src/locales/en.json
{
  "checkout": {
    "title": "Checkout",
    "cta": "Place order"
  }
}

Target locales

Target locales are the languages you want to generate. If you add it to the list, run translate --force it to backfill existing keys.

Targets
{
  "locale": {
    "targets": ["es", "fr", "de", "it"]
  }
}

Lock file

neoiq-localize.lock records which source strings have already been translated so future runs only process changes. Commit it to your repo to keep diffs stable.

Overrides

Overrides let you adjust translations from the dashboard and pull them into your repo. Use the overrides pull command when you want to sync them locally.


Ways to integrate


Supported formats

See the full list in Formats.


Getting started

How is this guide?

Edit on GitHub

Last updated on

On this page