Skip to content

Config file reference

i18nme.config.json, created by i18nme init and read by every CLI command.

json
{
  "sourceLocale": "en",
  "targetLocales": ["de", "fr", "es"],
  "files": "locales/{locale}.json",
  "format": "json"
}

Fields

sourceLocale (required)

The locale your source strings are written in, e.g. "en". This is the locale sync reads from and translates out of — it's never a target.

targetLocales (required)

Array of locale codes to translate into, e.g. ["de", "fr", "es"]. Each one maps to a locale file via files.

files (required)

Path template for locale files. Must contain the literal string {locale}, substituted per language:

"locales/{locale}.json"  ->  locales/en.json, locales/de.json, ...

Paths are resolved relative to the directory containing i18nme.config.json.

format

One of "json" (default), "arb", or "rails-yaml" — see Adapters. Determines how each locale file is parsed and re-serialized.

apiBaseUrl / portalBaseUrl

Override the default hosted endpoints — only needed for a self-hosted deployment. Can also be set via the I18NME_API_URL / I18NME_PORTAL_URL environment variables, which take priority if both are set.

FieldDefaultUsed by
apiBaseUrlhttps://sapi.i18nme.comstatus (read-only)
portalBaseUrlhttps://api.i18nme.comsync (costs translation units)

.i18nme-lock.json

Written by sync, not init. Maps each key to a hash of the source text as of the last successful sync — this is the local diff state that makes repeated sync runs translate only what changed. Commit it alongside your source locale file. Losing it isn't destructive (the server re-checks translation memory regardless), just slower — everything looks "changed" once and gets re-diffed against the server's cache.

Environment variables

VariablePurpose
I18NME_API_KEYProject API key — required for sync and status
I18NME_API_URLOverrides apiBaseUrl
I18NME_PORTAL_URLOverrides portalBaseUrl

i18nme is provided on a best-effort basis. While we strive for reliability and rapid issue resolution, no specific uptime, response time, or bug-fix timeframe is guaranteed.
Translation content and AI-generated output should be reviewed before production use.