Перейти к содержимому

API и CLI

Весь программный доступ к Ownlate осуществляется через API-ключи. Перейдите в Рабочее пространство → API-ключи для создания ключа.

Каждый ключ имеет:

  • Название — метка для идентификации ключа (например, ci-pipeline)
  • Разрешения — детализированные права (тот же набор, что и права участника рабочего пространства)
  • Срок действия — опциональная дата истечения; после этой даты ключ перестаёт работать

Чтобы отозвать ключ, перейдите в Рабочее пространство → API-ключи и нажмите Отозвать.

API Ownlate — стандартный REST API. Передавайте API-ключ в заголовке Authorization:

Authorization: Bearer <ваш-api-ключ>

Полный список доступных эндпоинтов находится в интерактивной справке по API:

Справка по API (Swagger)

Проекты, помеченные как публичные, предоставляют эндпоинты только для чтения без авторизации. Это удобно для open-source проектов, которые хотят показать прогресс перевода сообществу.

GET /public/projects/:projectId/translations-map?lang=ru

Возвращает плоский словарь ключ → значение утверждённых переводов для указанного языка.

Инструмент @ownlate/cli предназначен для CI/CD-пайплайнов. Установите его:

Окно терминала
npm install -g @ownlate/cli
# или
pnpm add -g @ownlate/cli
Окно терминала
ownlate login --api-key <ваш-api-ключ>

Или задайте переменную окружения:

Окно терминала
export OWNLATE_API_KEY=<ваш-api-ключ>
Окно терминала
ownlate push --project <project-id> --file ./locales/en.json --lang en

Используйте это в CI-пайплайне после вливания новых строк, чтобы Ownlate оставался синхронизированным с исходным кодом.

Окно терминала
ownlate pull --project <project-id> --lang ru --output ./locales/ru.json

Скачать все языки сразу:

Окно терминала
ownlate pull --project <project-id> --output ./locales/

Это создаёт по одному файлу на язык в указанной директории.

.github/workflows/translations.yml
- name: Отправить строки в Ownlate
run: ownlate push --project $PROJECT_ID --file locales/en.json --lang en
env:
OWNLATE_API_KEY: ${{ secrets.OWNLATE_API_KEY }}
- name: Скачать утверждённые переводы
run: ownlate pull --project $PROJECT_ID --output locales/
env:
OWNLATE_API_KEY: ${{ secrets.OWNLATE_API_KEY }}