@localizify/cli

Локалізація з терміналу

Завантажуйте нові ключі, перекладайте їх за допомогою ШІ та отримуйте готові файли назад у репозиторій. Один конфіг, чотири команди, однаково працює на ноутбуці і в CI.

$ npm i -D @localizify/cli
Відкрити в npm

Встановлення

Потрібен Node.js 20 або новіший. Додайте CLI як dev-залежність, щоб уся команда працювала з однією версією:

$ npm i -D @localizify/cli

Після такого встановлення команда називається просто localizify. Можна й запустити один раз без встановлення:

# Or run it without installing
$ npx @localizify/cli --help

Авторизація

Створіть API-токен у розділі Налаштування → API-токени і передайте його через LOCALIZIFY_TOKEN. Токен, обмежений одним проєктом, має доступ лише до нього.

$ export LOCALIZIFY_TOKEN=loc_...
# Self-hosted or staging only:
$ export LOCALIZIFY_HOST=https://localizify.com

Зберігайте токен в оточенні або секретах CI. Ніколи не комітьте його і не пишіть у конфіг.

Налаштування

Додайте localizify.json у корінь репозиторію. Шляхи вказуються відносно файлу конфігу.

{
  "projectId": 123,
  "source": { "provider": "Angular XLIFF", "path": "src/locale/messages.xlf", "lang": "en" },
  "files": [
    { "provider": "Angular XLIFF", "lang": "uk", "path": "src/locale/messages.uk.xlf" },
    { "provider": "Angular XLIFF", "lang": "de", "path": "src/locale/messages.de.xlf" }
  ]
}
  • projectId · id проєкту з його URL
  • source · файл із вихідними рядками, його завантажує push
  • files · по запису на кожен файл перекладу, їх використовують pull і translate
  • provider · назва формату точно як у вікні експорту, наприклад "JSON Key Value" або "Gettext Po"
  • lang · код мови, доданої до проєкту

Усі підтримувані формати

Команди

Кожна команда читає localizify.json з поточної папки і виводить по рядку на результат.

localizify push

Імпортує вихідний файл і додає лише нові ключі. З --with-translations також імпортує рядки файлу як переклади для source.lang, не чіпаючи наявні.

$ localizify push
pushed src/locale/messages.xlf: 3 new keys, 148 processed
$ localizify push --with-translations

localizify translate

Перекладає всі неперекладені терміни. Провайдер обирається через --provider: anthropic (за замовчуванням), openai, deepl, google або microsoft; мови обмежуються через --lang.

$ localizify translate --provider anthropic --lang uk,de
uk: 3 terms translated
de: 3 terms translated

localizify pull

Завантажує кожен файл із files і записує його за вказаним шляхом, створюючи папки за потреби.

$ localizify pull
pulled uk -> src/locale/messages.uk.xlf (18342 bytes)
pulled de -> src/locale/messages.de.xlf (18911 bytes)

localizify status

Показує кількість ключів і прогрес для кожної мови.

$ localizify status
151 keys
uk       145/151 (96%)
de       151/151 (100%)

Запуск у CI

Збережіть токен як секрет CI і запускайте push, translate і pull при кожному мержі. Процес нижче падає при помилках API, тож неправильний токен або ліміт тарифу не пройдуть непоміченими.

# .github/workflows/i18n.yml
name: i18n
on:
  push:
    branches: [main]
jobs:
  sync:
    runs-on: ubuntu-latest
    env:
      LOCALIZIFY_TOKEN: ${{ secrets.LOCALIZIFY_TOKEN }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 22 }
      - run: npx @localizify/cli push
      - run: npx @localizify/cli translate
      - run: npx @localizify/cli pull
      - run: git status --porcelain src/locale

Машиночитний вивід

Додайте --json до будь-якої команди, щоб отримати один JSON-об'єкт у stdout для jq або скрипта збірки.

$ localizify status --json
{"termsCount":151,"languages":[{"languageCode":"uk","translatedCount":145,"totalCount":151,"progress":96}]}

Довідник

Параметри

-c, --config <path>Шлях до конфігу. За замовчуванням: localizify.json.
--with-translationspush: також імпортувати переклади з вихідного файлу.
--provider <name>translate: anthropic, openai, deepl, google або microsoft. За замовчуванням: anthropic.
--lang <a,b>translate: коди цільових мов. За замовчуванням: усі lang із files, крім вихідної.
--jsonВивести один JSON-об'єкт замість тексту.
-h, --helpПоказати довідку.

Коди виходу

0Успіх.
1Помилка API або мережі: неправильний токен, ліміт тарифу або ліміт запитів.
2Помилка конфігу або параметрів.

CLI працює поверх публічного REST API. Прямі запити до API і MCP-сервер описані в розділі Розробникам.