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: diff

Top-Level Fields

FieldRequiredDescription
repositoryYesGitHub or GitLab repository slug (owner/repo)
api_keyYesLokalio API key (use $env_var syntax for secrets)
sourceYesSource language and file patterns
targetsYesTarget languages and output paths
modeNoTranslation mode: diff (default) or add-remove
contextNoPer-project AI context for translation quality
glossaryNoApproved term translations
groupsNoMultiple 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.yaml

Target 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.json

The {{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-remove

Groups inherit the top-level api_key. Each group can override mode.