Быстрый старт
Полный цикл: установка, аутентификация, привязка к движку, отправка исходников и получение переводов.
Предварительные требования
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Откройте Lingo.dev в браузере и разрешите доступ CLI. Если вы ещё не вошли в учётную запись, сначала войдите. CLI сохраняет сеанс в ~/.lingo/credentials.json. Для CI и работы без взаимодействия с пользователем используйте ключ API: lingo login --api-key lk_... (или задайте --api-key как глобальный флаг для любой команды).
Инициализация проекта
В корне проекта:
lingo initCLI запросит исходную локаль, целевые локали и шаблоны файлов (glob-шаблоны, указывающие на исходные файлы). Затем раздел локализации будет записан в .lingo/config.json. Обязательно закоммитьте этот файл — именно он определяет, что будет переводиться.
Привязка к движку
lingo linkВыберите (или создайте) организацию и движок локализации. Движок хранит настройки AI-модели, глоссарии, тональность бренда и правила — настройте его один раз на платформе Lingo.dev и используйте в любых проектах. link добавляет orgId и engineId в .lingo/config.json (тоже попадает в репозиторий).
Первый push#
Когда у вас уже есть непустой исходный файл (например, locales/en.json):
lingo push --backfill-missing --waitПереводит все недостающие строки для каждого настроенного шаблона. --wait держит CLI активным до конца запуска, а затем записывает результаты (locales/de.json, locales/fr.json, ...) на диск. На чистом чекауте это занимает от нескольких секунд (небольшие JSON-файлы) до нескольких минут (крупные пакеты markdown). Без --wait push завершается сразу после отправки запуска, а lingo pull запишет результаты позже.
После завершения:
✓ Run lrg_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 dateКаждая из этих команд завершается сразу после отправки запуска — добавьте --wait, чтобы записать результаты тут же, или соберите их с помощью lingo pull.
Получение результатов позже#
push сохраняет ИД запуска в ~/.lingo/runs/<hash>.json (ключ — абсолютный путь к проекту). Позже, на той же машине и из того же чекаута:
lingo pull…дожидается завершения последнего пуша, если он ещё идёт, и записывает результаты. Пригодится, если вы закрыли терминал в процессе перевода. Остальные машины получат переводы после коммита.
Что дальше#
- Configuration — схема
.lingo/config.json, lockfile и место хранения состояния запуска. - lingo push — шаблоны с областью действия,
--force, семантика повторных попыток. - lingo pull — обнаружение конфликтов,
--dry-run.