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

Max PrilutskiyГенеральный директор и соучредительUpdated в прошлом месяце · 2 min read

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

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

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

Введите свой email — CLI отправит одноразовый код и сохранит токен сессии в ~/.lingo/auth.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

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

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

text
✓ Run run_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

Pull на другой машине#

push сохраняет ID запуска в ~/.lingo/runs/<hash>.json (с привязкой к абсолютному пути проекта). На любой машине с тем же checkout и теми же учётными данными:

bash
lingo pull

…команда заберёт результаты последнего push. Это удобно для CI ("переводчик запускает push с ноутбука, а CI выполняет pull при каждой сборке") или если нужно просто продолжить работу после закрытия терминала.

Что дальше#

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