Quick start
From a config file to translated, validated locales in three commands.
1. See where you stand#
status reports, per target locale, how many keys are translated, missing, or outdated — no credentials required.
bin/lingo status📊 Translation Status
============================================================
⚠️ de
Total keys: 412
Translated: 407
Missing: 5
Outdated: 02. Fill the gaps#
translate sends the missing and changed keys to your configured provider and merges the results back into config/locales/. Only what's actually missing or outdated is translated — the source-hash state makes re-runs cheap.
bin/lingo translate # all target locales
bin/lingo translate --locale de # just one
bin/lingo translate --force # re-translate everythingafter_translate hooks — by default i18n-tasks normalize -p to keep the YAML tidy.3. Validate#
validate reports anything missing or outdated and, with --strict, exits non-zero — the command you run in CI.
bin/lingo validate --strict # fails on missing / outdated
bin/lingo validate --strict-all # also fails on duplicate valuesKeep the state honest#
If you hand-edit locale files (or set up locallingo on an existing app), rebuild the drift state from the current translations so nothing reads as spuriously outdated:
bin/lingo syncThat's the whole loop. Next: the full CLI reference and how drift & state tracking works.