Быстрый старт

Max PrilutskiyГенеральный директор и соучредитель2 мин чтения

Полный цикл: установка, аутентификация, привязка к движку, отправка исходников и получение переводов.

Предварительные требования

Node.js 22+ (node -v для проверки). После установки CLI доступен как lingo.

Настройка#

1

Установка

bash
npm install -g @lingo.dev/cli

Или pnpm add -g @lingo.dev/cli / yarn global add @lingo.dev/cli / bun add -g @lingo.dev/cli.

2

Аутентификация

bash
lingo login

Откройте Lingo.dev в браузере и разрешите доступ CLI. Если вы ещё не вошли в учётную запись, сначала войдите. CLI сохраняет сеанс в ~/.lingo/credentials.json. Для CI и работы без взаимодействия с пользователем используйте ключ API: lingo login --api-key lk_... (или задайте --api-key как глобальный флаг для любой команды).

3

Инициализация проекта

В корне проекта:

bash
lingo init

CLI запросит исходную локаль, целевые локали и шаблоны файлов (glob-шаблоны, указывающие на исходные файлы). Затем раздел локализации будет записан в .lingo/config.json. Обязательно закоммитьте этот файл — именно он определяет, что будет переводиться.

4

Привязка к движку

bash
lingo link

Выберите (или создайте) организацию и движок локализации. Движок хранит настройки AI-модели, глоссарии, тональность бренда и правила — настройте его один раз на платформе Lingo.dev и используйте в любых проектах. link добавляет orgId и engineId в .lingo/config.json (тоже попадает в репозиторий).

Первый push#

Когда у вас уже есть непустой исходный файл (например, locales/en.json):

bash
lingo push --backfill-missing --wait

Переводит все недостающие строки для каждого настроенного шаблона. --wait держит CLI активным до конца запуска, а затем записывает результаты (locales/de.json, locales/fr.json, ...) на диск. На чистом чекауте это занимает от нескольких секунд (небольшие JSON-файлы) до нескольких минут (крупные пакеты markdown). Без --wait push завершается сразу после отправки запуска, а lingo pull запишет результаты позже.

После завершения:

text
✓ Run lrg_a8c... : localized 12 target file(s), uploaded 1 new artifact(s).

Последующие запуски#

После изменений в исходных файлах обычный lingo push переведёт только дельту — файлы, у которых хеш исходника не изменился, будут пропущены на стороне сервера. Локальные правки в целевых файлах по умолчанию сохраняются; передайте --force (с областью действия), чтобы их перезаписать.

bash
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 (ключ — абсолютный путь к проекту). Позже, на той же машине и из того же чекаута:

bash
lingo pull

…дожидается завершения последнего пуша, если он ещё идёт, и записывает результаты. Пригодится, если вы закрыли терминал в процессе перевода. Остальные машины получат переводы после коммита.

Что дальше#

  • Configuration — схема .lingo/config.json, lockfile и место хранения состояния запуска.
  • lingo push — шаблоны с областью действия, --force, семантика повторных попыток.
  • lingo pull — обнаружение конфликтов, --dry-run.