i18n toolkit
Translate, validate, and lint your locales
locallingo extends i18n-tasks with AI translation, source-hash drift detection, and quality linting — one config, one CLI, for every app and package.
gem "locallingo", group: :developmentTranslate missing and changed keys through RubyLLM — OpenAI, Anthropic, and more, chosen by config. Only what actually changed.
Per-key source hashes mark translations outdated when the English text changes, so nothing silently goes stale.
lingo validate --strict gates missing and outdated keys; --strict-all adds duplicate-value and manual-edit checks.
Static rules, terminology lists, British-spelling drift, and an optional AI review pass — with auto-fix for the fixable.
One default config plus per-package overrides, so an engine or gem can translate to its own locales with its own prompt.
Ships RelativeI18nKey (with autocorrect) and StrftimeInView so fully-qualified keys and locale-aware dates are enforced.