Полный цикл: установка, аутентификация, привязка к движку, отправка исходников и получение переводов.
Предварительные требования
Node.js 22+ (node -v для проверки). После установки CLI доступен как lingo.
Настройка#
Установка
npm install -g @lingo.dev/cliИли pnpm add -g @lingo.dev/cli / yarn global add @lingo.dev/cli / bun add -g @lingo.dev/cli.
Аутентификация
lingo loginВведите свой email — CLI отправит одноразовый код и сохранит токен сессии в ~/.lingo/auth.json. Для CI и других неинтерактивных сценариев используйте API-ключ: lingo login --api-key lk_... (или задайте --api-key как глобальный флаг для любой команды).
Инициализация проекта
В корне проекта:
lingo initCLI запросит исходную локаль, целевые локали и шаблоны файлов (glob-шаблоны, указывающие на исходные файлы). Затем раздел локализации будет записан в .lingo/config.json. Обязательно закоммитьте этот файл — именно он определяет, что будет переводиться.
Привязка к движку
lingo linkВыберите (или создайте) organization и движок локализации. Движок хранит конфигурацию AI-модели, глоссарии, тональность бренда и инструкции — настройте его один раз на платформе Lingo.dev и используйте в разных проектах. link добавит orgId и engineId в .lingo/config.json (этот файл тоже нужно закоммитить).
Первый push#
Когда у вас уже есть непустой исходный файл (например, locales/en.json):
lingo push --backfill-missingКоманда переведёт все отсутствующие целевые варианты для всех настроенных шаблонов. CLI дождётся завершения запуска и запишет результаты (locales/de.json, locales/fr.json, ...) на диск. В чистом checkout это может занять от нескольких секунд (для небольшого JSON) до нескольких минут (для крупных наборов markdown-файлов).
После завершения:
✓ Run run_a8c... : localized 12 target file(s), uploaded 1 new artifact(s).Последующие запуски#
После изменений в исходных файлах обычный lingo push переведёт только дельту — файлы, у которых хеш исходника не изменился, будут пропущены на стороне сервера. Локальные правки в целевых файлах по умолчанию сохраняются; передайте --force (с областью действия), чтобы их перезаписать.
lingo push # delta only
lingo push docs/en/**/*.md # scoped: only this subtree
lingo push docs/en/about.md -f # scoped + force: retranslate even if up to datePull на другой машине#
push сохраняет ID запуска в ~/.lingo/runs/<hash>.json (с привязкой к абсолютному пути проекта). На любой машине с тем же checkout и теми же учётными данными:
lingo pull…команда заберёт результаты последнего push. Это удобно для CI ("переводчик запускает push с ноутбука, а CI выполняет pull при каждой сборке") или если нужно просто продолжить работу после закрытия терминала.
Что дальше#
- Configuration — схема
.lingo/config.json, lockfile и место хранения состояния запуска. - lingo push — шаблоны с областью действия,
--force, семантика повторных попыток. - lingo pull — обнаружение конфликтов,
--dry-run.
