Configuration
The .lokalio.yaml file is committed to your repository root and defines how Lokalio discovers and translates your locale files.
Basic Structure
repository: owner/repo
api_key: "${LOKALIO_API_KEY}"
source:
language: en
files:
- locales/en/**/*.json
targets:
- language: fr
mirror: locales/fr/{{file}}
- language: de
mirror: locales/de/{{file}}
mode: diffTop-Level Fields
| Field | Required | Description |
|---|---|---|
repository | Yes | GitHub or GitLab repository slug (owner/repo) |
api_key | Yes | Lokalio API key (use $env_var syntax for secrets) |
source | Yes | Source language and file patterns |
targets | Yes | Target languages and output paths |
mode | No | Translation mode: diff (default) or add-remove |
context | No | Per-project AI context for translation quality |
glossary | No | Approved term translations |
groups | No | Multiple independent file groups for monorepos |
Source Configuration
source:
language: en # Source language code
files: # Glob patterns for source files
- locales/en/**/*.json
- frontend/translations/en.yamlTarget Configuration
targets:
- language: fr
mirror: locales/fr/{{file}} # Mirror preserves directory structure
- language: ja
files: # Explicit file mapping
- path: locales/ja/main.json
source: locales/en/main.jsonThe {{file}} placeholder preserves the relative path from the source glob match.
Multiple Groups (Monorepo)
For repos with independent translation units, use groups:
groups:
- source:
language: en
files:
- frontend/locales/en/**/*.json
targets:
- language: fr
mirror: frontend/locales/fr/{{file}}
mode: diff
- source:
language: en
files:
- backend/config/locales/*.yaml
targets:
- language: fr
mirror: backend/config/locales/fr/{{file}}
mode: add-removeGroups inherit the top-level api_key. Each group can override mode.