REST API Weblate’а

Добавлено в версии 2.6: REST API доступен с версии Weblate 2.6.

API доступен по адресу /api/ и основан на фреймворке Django REST. Вы можете использовать его напрямую или через Клиент Weblate.

Аутентификация и общие параметры

API публичного проекта доступен без аутентификации, хотя количество неаутентифицированных запросов сильно ограничено (по умолчанию до 100 запросов в день), так что аутентификацию всё равно рекомендуется использовать. Аутентификация использует токен, который вы можете получить в своём профиле. Используйте его в заголовке Authorization:

ANY /

Описанные здесь общее поведение запросов для API, заголовки, коды состояния и параметры применяются ко всем конечным точкам.

Параметры запроса
  • format – Формат ответа (переопределяет заголовок Accept). Возможные значения зависят от настройки REST-фреймворка, по умолчанию поддерживаются json и api. Последний предоставляет для API интерфейс веб-браузера.

  • page – Возвращает заданную страницу постраничных результатов (используйте поля next и previous в ответе для автоматизации навигации).

Заголовки запроса
  • Accept – тип содержимого ответа зависит от заголовка Accept

  • Authorization – необязательный токен для аутентификации в качестве Authorization: Token YOUR-TOKEN

Заголовки ответа
  • Content-Type – зависит от заголовка Accept запроса

  • Allow – список разрешённых для объекта методов HTTP

JSON -объект ответа
  • detail (string) – подробное описание результата (для кодов статусов HTTP, отличных от 200 OK)

  • count (int) – общее количество элементов для списков объектов

  • next (string) – URL-адрес следующей страницы для списков объектов

  • previous (string) – URL-адрес предыдущей страницы для списков объектов

  • results (array) – результаты для списков объектов

  • url (string) – URL-адрес для доступа к этому ресурсу с помощью API

  • web_url (string) – URL-адрес для доступа к этому ресурсу через веб-браузер

Коды статусов
  • 200 OK – при правильной обработке запроса

  • 201 Created – когда новый объект был успешно создан

  • 204 No Content – когда объект был успешно удалён

  • 400 Bad Request – при отсутствии параметров формы

  • 403 Forbidden – в случае отказа в доступе

  • 429 Too Many Requests – при превышении количества запросов из-за ограничения на количество запросов

Токены аутентификации

Изменено в версии 4.10: Токены с ограничениями по проекту были введены в версии 4.10.

У каждого пользователя есть собственный токен доступа, который можно получить со страницы профиля пользователя. Вновь созданные токены пользователей содержат префикс wlu_.

Предусмотрена возможность создания токенов для доступа к API на уровне текущего проекта. Эти токены можно распознать по префиксу wlp_.

Примеры аутентификации

Пример запроса:

GET /api/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript
Authorization: Token YOUR-TOKEN

Пример ответа:

HTTP/1.0 200 OK
Date: Fri, 25 Mar 2016 09:46:12 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS

{
    "projects":"http://example.com/api/projects/",
    "components":"http://example.com/api/components/",
    "translations":"http://example.com/api/translations/",
    "languages":"http://example.com/api/languages/"
}

Пример CURL:

curl \
    -H "Authorization: Token TOKEN" \
    https://example.com/api/

Примеры передачи параметров

Для метода POST параметры могут быть указаны либо в виде представления формы (application/x-www-form-urlencoded), либо в JSON (application/json).

Пример запроса формы:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Token TOKEN

operation=pull

Пример JSON запроса:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

Пример CURL:

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

Пример CURL с JSON:

curl \
    --data-binary '{"operation":"pull"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

Ограничение частоты запросов API

Частота запросов к API ограничена; конфигурация по умолчанию ограничивает её до 100 запросов в день для анонимных пользователей и до 5000 запросов в час для аутентифицированных пользователей.

Это ограничение можно настроить в settings.py; подробнее о его настройке смотрите в разделе Throttling документации фреймворка Django REST.

In the Docker container this can be configured using WEBLATE_API_RATELIMIT_ANON and WEBLATE_API_RATELIMIT_USER.

О состоянии ограничения частоты запросов сообщается в следующих заголовках:

X-RateLimit-Limit

Ограничение на максимальное число выполняемых запросов

X-RateLimit-Remaining

Оставшийся лимит запросов

X-RateLimit-Reset

Количество секунд до сброса окна ограничения количества запросов

Изменено в версии 4.1: Добавлены заголовки состояния ограничения количества запросов.

Точка входа в API

GET /api/

Корневая точка входа в API.

Пример запроса:

GET /api/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript
Authorization: Token YOUR-TOKEN

Пример ответа:

HTTP/1.0 200 OK
Date: Fri, 25 Mar 2016 09:46:12 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS

{
    "projects":"http://example.com/api/projects/",
    "components":"http://example.com/api/components/",
    "translations":"http://example.com/api/translations/",
    "languages":"http://example.com/api/languages/"
}

Пользователи

Добавлено в версии 4.0.

GET /api/users/

Возвращает список пользователей, если у вас есть разрешения на просмотр пользоватей для управления. Если их нет, то вы увидите только свои данные.

См.также

Атрибуты объекта-пользователя описываются в разделе GET /api/users/(str:username)/.

POST /api/users/

Создаёт нового пользователя.

Параметры
  • username (string) – Имя пользователя

  • full_name (string) – Полное имя пользователя

  • email (string) – Электронная почта пользователя

  • is_superuser (boolean) – Является ли пользователь суперпользователем? (необязательный)

  • is_active (boolean) – Активен ли пользователь? (необязательный)

  • is_bot (boolean) – Является ли пользователь ботом? (необязательно) (используется для токенов проекта)

GET /api/users/(str: username)/

Возвращает информацию о пользователях.

Параметры
  • username (string) – Имя пользователя

JSON -объект ответа
  • username (string) – имя пользователя

  • full_name (string) – полное имя пользователя

  • email (string) – электронная почта пользователя

  • is_superuser (boolean) – является ли пользователь суперпользователем

  • is_active (boolean) – активен ли пользователь

  • is_bot (boolean) – whether the user is bot (used for project scoped tokens)

  • date_joined (string) – дата создания пользователя

  • groups (array) – ссылка на связанные группы; смотрите описание GET /api/groups/(int:id)/

Пример данных в JSON:

{
    "email": "user@example.com",
    "full_name": "Example User",
    "username": "exampleusername",
    "groups": [
        "http://example.com/api/groups/2/",
        "http://example.com/api/groups/3/"
    ],
    "is_superuser": true,
    "is_active": true,
    "is_bot": false,
    "date_joined": "2020-03-29T18:42:42.617681Z",
    "url": "http://example.com/api/users/exampleusername/",
    "statistics_url": "http://example.com/api/users/exampleusername/statistics/"
}
PUT /api/users/(str: username)/

Изменяет параметры пользователя.

Параметры
  • username (string) – Имя пользователя

JSON -объект ответа
  • username (string) – имя пользователя

  • full_name (string) – полное имя пользователя

  • email (string) – электронная почта пользователя

  • is_superuser (boolean) – является ли пользователь суперпользователем

  • is_active (boolean) – активен ли пользователь

  • is_bot (boolean) – whether the user is bot (used for project scoped tokens)

  • date_joined (string) – дата создания пользователя

PATCH /api/users/(str: username)/

Изменяет параметры пользователя.

Параметры
  • username (string) – Имя пользователя

JSON -объект ответа
  • username (string) – имя пользователя

  • full_name (string) – полное имя пользователя

  • email (string) – электронная почта пользователя

  • is_superuser (boolean) – является ли пользователь суперпользователем

  • is_active (boolean) – активен ли пользователь

  • is_bot (boolean) – whether the user is bot (used for project scoped tokens)

  • date_joined (string) – дата создания пользователя

DELETE /api/users/(str: username)/

Удаляет всю информацию о пользователе и помечает пользователя как неактивного.

Параметры
  • username (string) – Имя пользователя

POST /api/users/(str: username)/groups/

Связывает группы с пользователем.

Параметры
  • username (string) – Имя пользователя

Параметры формы
  • string group_id – Уникальный идентификатор группы

GET /api/users/(str: username)/statistics/

Список статистик пользователя.

Параметры
  • username (string) – Имя пользователя

JSON -объект ответа
  • translated (int) – Количество переводов пользователя

  • suggested (int) – Количество предложений пользователя

  • uploaded (int) – Количество загрузок пользователя

  • commented (int) – Количество комментариев пользователя

  • languages (int) – Количество языков, на которые пользователь может переводить

GET /api/users/(str: username)/notifications/

Список подписок пользователя.

Параметры
  • username (string) – Имя пользователя

POST /api/users/(str: username)/notifications/

Связывает подписки с пользователем.

Параметры
  • username (string) – Имя пользователя

JSON -объект запроса
  • notification (string) – Название зарегистрированного уведомления

  • scope (int) – Область действия уведомления из доступных вариантов

  • frequency (int) – Выбор частоты уведомлений

GET /api/users/(str: username)/notifications/(int: subscription_id)/

Возвращает связанную с пользователем подписку.

Параметры
  • username (string) – Имя пользователя

  • subscription_id (int) – Идентификатор зарегистрированного уведомления

PUT /api/users/(str: username)/notifications/(int: subscription_id)/

Редактирует связанную с пользователем подписку.

Параметры
  • username (string) – Имя пользователя

  • subscription_id (int) – Идентификатор зарегистрированного уведомления

JSON -объект запроса
  • notification (string) – Название зарегистрированного уведомления

  • scope (int) – Область действия уведомления из доступных вариантов

  • frequency (int) – Выбор частоты уведомлений

PATCH /api/users/(str: username)/notifications/(int: subscription_id)/

Редактирует связанную с пользователем подписку.

Параметры
  • username (string) – Имя пользователя

  • subscription_id (int) – Идентификатор зарегистрированного уведомления

JSON -объект запроса
  • notification (string) – Название зарегистрированного уведомления

  • scope (int) – Область действия уведомления из доступных вариантов

  • frequency (int) – Выбор частоты уведомлений

DELETE /api/users/(str: username)/notifications/(int: subscription_id)/

Удаляет связанную с пользователем подписку.

Параметры
  • username (string) – Имя пользователя

  • subscription_id – Название зарегистрированного уведомления

  • subscription_id – целое

Группы

Добавлено в версии 4.0.

GET /api/groups/

Возвращает список групп, если у вас есть разрешения на просмотр групп для управления. Если их нет, то вы можете видеть только те группы, в которые входит пользователь.

См.также

Атрибуты объекта-группы описываются в разделе GET /api/groups/(int:id)/.

POST /api/groups/

Создаёт новую группу.

Параметры
  • name (string) – Название группы

  • project_selection (int) – Группа проекта, выбранная из предложенных вариантов

  • language_selection (int) – Группа языков, выбранная из предложенных вариантов

  • defining_project (str) – link to the defining project, used for По-проектная настройка доступа; see GET /api/projects/(string:project)/

GET /api/groups/(int: id)/

Возвращает информацию о группе.

Параметры
  • id (int) – Идентификатор группы

JSON -объект ответа

Пример данных в JSON:

{
    "name": "Guests",
    "defining_project": null,
    "project_selection": 3,
    "language_selection": 1,
    "url": "http://example.com/api/groups/1/",
    "roles": [
        "http://example.com/api/roles/1/",
        "http://example.com/api/roles/2/"
    ],
    "languages": [
        "http://example.com/api/languages/en/",
        "http://example.com/api/languages/cs/",
    ],
    "projects": [
        "http://example.com/api/projects/demo1/",
        "http://example.com/api/projects/demo/"
    ],
    "componentlist": "http://example.com/api/component-lists/new/",
    "components": [
        "http://example.com/api/components/demo/weblate/"
    ]
}
PUT /api/groups/(int: id)/

Изменяет параметры группы.

Параметры
  • id (int) – Идентификатор группы

JSON -объект ответа
  • name (string) – название группы

  • project_selection (int) – целое число, соответствующее группе проектов

  • language_selection (int) – целое число, соответствующее группе языков

PATCH /api/groups/(int: id)/

Изменяет параметры группы.

Параметры
  • id (int) – Идентификатор группы

JSON -объект ответа
  • name (string) – название группы

  • project_selection (int) – целое число, соответствующее группе проектов

  • language_selection (int) – целое число, соответствующее группе языков

DELETE /api/groups/(int: id)/

Удаляет группу.

Параметры
  • id (int) – Идентификатор группы

POST /api/groups/(int: id)/roles/

Связывает роли с группой.

Параметры
  • id (int) – Идентификатор группы

Параметры формы
  • string role_id – Уникальный идентификатор роли

POST /api/groups/(int: id)/components/

Связывает компоненты с группой.

Параметры
  • id (int) – Идентификатор группы

Параметры формы
  • string component_id – Уникальный идентификатор компонента

DELETE /api/groups/(int: id)/components/(int: component_id)

Удаляет компонент из группы.

Параметры
  • id (int) – Идентификатор группы

  • component_id (int) – Уникальный идентификатор компонента

POST /api/groups/(int: id)/projects/

Связывает проекты с группой.

Параметры
  • id (int) – Идентификатор группы

Параметры формы
  • string project_id – Уникальный идентификатор проекта

DELETE /api/groups/(int: id)/projects/(int: project_id)

Удаляет проект из группы.

Параметры
  • id (int) – Идентификатор группы

  • project_id (int) – Уникальный идентификатор проекта

POST /api/groups/(int: id)/languages/

Связывает языки с группой.

Параметры
  • id (int) – Идентификатор группы

Параметры формы
  • string language_code – Уникальный код языка

DELETE /api/groups/(int: id)/languages/(string: language_code)

Удаляет язык из группы.

Параметры
  • id (int) – Идентификатор группы

  • language_code (string) – Уникальный код языка

POST /api/groups/(int: id)/componentlists/

Связывает списки компонентов с группой.

Параметры
  • id (int) – Идентификатор группы

Параметры формы
  • string component_list_id – Уникальный идентификатор списка компонентов

DELETE /api/groups/(int: id)/componentlists/(int: component_list_id)

Удаляет список компонентов из группы.

Параметры
  • id (int) – Идентификатор группы

  • component_list_id (int) – Уникальный идентификатор списка компонентов

Роли

GET /api/roles/

Возвращает список всех ролей, связанных с пользователем. Если пользователь является суперпользователем, то возвращается список всех существующих ролей.

См.также

Атрибуты объекта-роли описываются в разделе GET /api/roles/(int:id)/.

POST /api/roles/

Создает новую роль.

Параметры
  • name (string) – Название роли

  • permissions (array) – Список кодовых названий разрешений

GET /api/roles/(int: id)/

Возвращает информацию о роли.

Параметры
  • id (int) – Идентификатор роли

JSON -объект ответа
  • name (string) – Название роли

  • permissions (array) – список кодовых названий разрешений

Пример данных в JSON:

{
    "name": "Access repository",
    "permissions": [
        "vcs.access",
        "vcs.view"
    ],
    "url": "http://example.com/api/roles/1/",
}
PUT /api/roles/(int: id)/

Изменяет параметры роли.

Параметры
  • id (int) – Идентификатор роли

JSON -объект ответа
  • name (string) – Название роли

  • permissions (array) – список кодовых названий разрешений

PATCH /api/roles/(int: id)/

Изменяет параметры роли.

Параметры
  • id (int) – Идентификатор роли

JSON -объект ответа
  • name (string) – Название роли

  • permissions (array) – список кодовых названий разрешений

DELETE /api/roles/(int: id)/

Удаляет роль.

Параметры
  • id (int) – Идентификатор роли

Языки

GET /api/languages/

Возвращает список всех языков.

См.также

Атрибуты объекта-языка описываются в разделе GET /api/languages/(string:language)/.

POST /api/languages/

Создаёт новый язык.

Параметры
  • code (string) – Название языка

  • name (string) – Название языка

  • direction (string) – Направление текста

  • plural (object) – Формула множественного числа языка и количество форм множественных чисел

GET /api/languages/(string: language)/

Возвращает информацию о языке.

Параметры
  • language (string) – Код языка

JSON -объект ответа
  • code (string) – Код языка

  • direction (string) – Направление текста

  • plural (object) – Объект информации о формах множественного числа языка

  • aliases (array) – Массив псевдонимов языка

Пример данных в JSON:

{
    "code": "en",
    "direction": "ltr",
    "name": "English",
    "plural": {
        "id": 75,
        "source": 0,
        "number": 2,
        "formula": "n != 1",
        "type": 1
    },
    "aliases": [
        "english",
        "en_en",
        "base",
        "source",
        "eng"
    ],
    "url": "http://example.com/api/languages/en/",
    "web_url": "http://example.com/languages/en/",
    "statistics_url": "http://example.com/api/languages/en/statistics/"
}
PUT /api/languages/(string: language)/

Изменяет параметры языка.

Параметры
  • language (string) – Код языка

JSON -объект запроса
  • name (string) – Название языка

  • direction (string) – Направление текста

  • plural (object) – Данные по формам множественного числа языка

PATCH /api/languages/(string: language)/

Изменяет параметры языка.

Параметры
  • language (string) – Код языка

JSON -объект запроса
  • name (string) – Название языка

  • direction (string) – Направление текста

  • plural (object) – Данные по формам множественного числа языка

DELETE /api/languages/(string: language)/

Удаляет язык.

Параметры
  • language (string) – Код языка

GET /api/languages/(string: language)/statistics/

Возвращает статистику по языку.

Параметры
  • language (string) – Код языка

JSON -объект ответа
  • total (int) – общее количество строк

  • total_words (int) – общее количество слов

  • last_change (timestamp) – последние изменения в языке

  • recent_changes (int) – общее количество изменений

  • translated (int) – количество переведенных строк

  • translated_percent (float) – процент переведённых строк

  • translated_words (int) – количество переведённых слов

  • translated_words_percent (int) – процент переведенных слов

  • translated_chars (int) – количество переведённых символов

  • translated_chars_percent (int) – процент переведенных символов

  • total_chars (int) – общее количество символов

  • fuzzy (int) – количество неточных (отмеченных «на правку») переводов

  • fuzzy_percent (int) – процент неточных (отмеченных «на правку») переводов

  • failing (int) – количество строк с неудачными проверками

  • failing – процент строк с неудачными проверками

Проекты

GET /api/projects/

Возвращает список всех проектов.

См.также

Атрибуты объекта-проекта описываются в разделе GET /api/projects/(string:project)/.

POST /api/projects/

Добавлено в версии 3.9.

Создаёт новый проект.

Параметры
  • name (string) – Название проекта

  • slug (string) – Плашка проекта

  • web (string) – Веб-сайт проекта

GET /api/projects/(string: project)/

Возвращает информацию о проекте.

Параметры
  • project (string) – URL-плашка проекта

JSON -объект ответа

Пример данных в JSON:

{
    "name": "Hello",
    "slug": "hello",
    "url": "http://example.com/api/projects/hello/",
    "web": "https://weblate.org/",
    "web_url": "http://example.com/projects/hello/"
}
PATCH /api/projects/(string: project)/

Добавлено в версии 4.3.

Вносит изменения в проект с помощью PATCH-запроса.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

PUT /api/projects/(string: project)/

Добавлено в версии 4.3.

Вносит изменения в проект с помощью PUT-запроса.

Параметры
  • project (string) – URL-плашка проекта

DELETE /api/projects/(string: project)/

Добавлено в версии 3.9.

Удаляет проект.

Параметры
  • project (string) – URL-плашка проекта

GET /api/projects/(string: project)/changes/

Возвращает список изменений проекта. По сути, эта точка входа работает так же и принимает те же самые параметры, что и GET /api/changes/, только для проекта.

Параметры
  • project (string) – URL-плашка проекта

JSON -объект ответа
  • results (array) – массив объектов компонентов; смотрите описание GET /api/changes/(int:id)/

GET /api/projects/(string: project)/repository/

Возвращает информацию о состоянии репозитория системы контроля версий. Эта конечная точка содержит только общую сводку по всем репозиториям проекта. Для получения более подробной информации о состоянии используйте конечную точку GET /api/components/(string:project)/(string:component)/repository/.

Параметры
  • project (string) – URL-плашка проекта

JSON -объект ответа
  • needs_commit (boolean) – есть ли какие-нибудь отложенные изменения для коммита

  • needs_merge (boolean) – есть ли какие-нибудь изменения в вышестоящем репозитории для объединения

  • needs_push (boolean) – есть ли какие-нибудь локальные изменения для отправки

Пример данных в JSON:

{
    "needs_commit": true,
    "needs_merge": false,
    "needs_push": true
}
POST /api/projects/(string: project)/repository/

Выполняет заданную операцию на репозитории системы контроля версий.

Параметры
  • project (string) – URL-плашка проекта

JSON -объект запроса
  • operation (string) – Выполняемые операции: одна из push, pull, commit, reset, cleanup, file-sync

JSON -объект ответа
  • result (boolean) – результат операции

Пример CURL:

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/repository/

Пример JSON запроса:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

Пример ответа в JSON:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"result":true}
GET /api/projects/(string: project)/components/

Возвращает список компонентов перевода в указанном проекте.

Параметры
  • project (string) – URL-плашка проекта

JSON -объект ответа
POST /api/projects/(string: project)/components/

Добавлено в версии 3.9.

Изменено в версии 4.3: Параметры zipfile и docfile теперь доступны и для компонентов без системы контроля версий, смотреть раздел Локальные файлы.

Изменено в версии 4.6: Клонированные репозитории теперь автоматически разделяются внутри проекта с помощью Внутренние URL-адреса Weblate. Используйте disable_autoshare, чтобы отключить это.

Создаёт компоненты перевода в указанном проекте.

Подсказка

Используйте Внутренние URL-адреса Weblate при создании нескольких компонентов из одного VCS-репозитория.

Примечание

Большая часть процесса создания компонента происходит асинхронно, в фоновой задаче. Посмотрите значение атрибута task_url вновь созданного компонента и следите за ходом выполнения через него.

Параметры
  • project (string) – URL-плашка проекта

Параметры формы
  • file zipfile – ZIP-файл, который будет загружен в Weblate для инициализации переводов

  • file docfile – Документ для перевода

  • boolean disable_autoshare – Отключает автоматический обмен репозиториями через Внутренние URL-адреса Weblate.

JSON -объект запроса
JSON -объект ответа

JSON не может использоваться при загрузке файлов с помощью параметров zipfile и docfile. Данные должны быть загружены в формате multipart/form-data.

Пример запроса CURL:

curl \
    --form docfile=@strings.html \
    --form name=Weblate \
    --form slug=weblate \
    --form file_format=html \
    --form new_lang=add \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

Пример CURL JSON запроса:

curl \
    --data-binary '{
        "branch": "main",
        "file_format": "po",
        "filemask": "po/*.po",
        "name": "Weblate",
        "slug": "weblate",
        "repo": "https://github.com/WeblateOrg/hello.git",
        "template": "",
        "new_base": "po/hello.pot",
        "vcs": "git"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

Запрос JSON для создания нового компонента из Git:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "https://github.com/WeblateOrg/hello.git",
    "template": "",
    "new_base": "po/hello.pot",
    "vcs": "git"
}

Запрос JSON для создания нового компонента на основе другого компонента:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "file_format": "po",
    "filemask": "po/*.po",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "weblate://weblate/hello",
    "template": "",
    "new_base": "po/hello.pot",
    "vcs": "git"
}

Пример ответа в JSON:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "Weblate",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
GET /api/projects/(string: project)/languages/

Возвращает разбитую на страницы статистику по всем языкам проекта.

Добавлено в версии 3.8.

Параметры
  • project (string) – URL-плашка проекта

JSON -объект ответа
  • results (array) – массив объектов статистики перевода

  • language (string) – название языка

  • code (string) – код языка

  • total (int) – общее количество строк

  • translated (int) – количество переведенных строк

  • translated_percent (float) – процент переведённых строк

  • total_words (int) – общее количество слов

  • translated_words (int) – количество переведённых слов

  • words_percent (float) – процент переведенных слов

GET /api/projects/(string: project)/statistics/

Возвращает статистику по проекту.

Добавлено в версии 3.8.

Параметры
  • project (string) – URL-плашка проекта

JSON -объект ответа
  • total (int) – общее количество строк

  • translated (int) – количество переведенных строк

  • translated_percent (float) – процент переведённых строк

  • total_words (int) – общее количество слов

  • translated_words (int) – количество переведённых слов

  • words_percent (float) – процент переведенных слов

Компоненты

Подсказка

Используйте POST /api/projects/(string:project)/components/ для создания новых компонентов.

GET /api/components/

Возвращает список компонентов перевода.

См.также

Атрибуты объекта-компонента описываются в разделе GET /api/components/(string:project)/(string:component)/.

GET /api/components/(string: project)/(string: component)/

Возвращает информацию о компоненте перевода.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа

Пример данных в JSON:

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "Weblate",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "source_language": {
        "code": "en",
        "direction": "ltr",
        "name": "English",
        "url": "http://example.com/api/languages/en/",
        "web_url": "http://example.com/languages/en/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
PATCH /api/components/(string: project)/(string: component)/

Вносит изменения в компонент с помощью PATCH-запроса.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • source_language (string) – Код исходного языка проекта (необязательный)

JSON -объект запроса
  • name (string) – название компонента

  • slug (string) – плашка компонента

  • repo (string) – URL-адрес репозитория системы контроля версий

Пример CURL:

curl \
    --data-binary '{"name": "new name"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    PATCH http://example.com/api/projects/hello/components/

Пример JSON запроса:

PATCH /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "name": "new name"
}

Пример ответа в JSON:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "new name",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
PUT /api/components/(string: project)/(string: component)/

Вносит изменения в компонент с помощью PATCH-запроса.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект запроса
  • branch (string) – Ветка репозитория системы контроля версий

  • file_format (string) – формат файла переводов

  • filemask (string) – маска файлов перевода в репозитории

  • name (string) – название компонента

  • slug (string) – плашка компонента

  • repo (string) – URL-адрес репозитория системы контроля версий

  • template (string) – базовый файл для одноязычных переводов

  • new_base (string) – базовый файл для добавления новых переводов

  • vcs (string) – система контроля версий

DELETE /api/components/(string: project)/(string: component)/

Добавлено в версии 3.9.

Удаляет компонент.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

GET /api/components/(string: project)/(string: component)/changes/

Возвращает список изменений компонента. По сути, эта точка входа работает так же и принимает те же самые параметры, что и GET /api/changes/, только для компонента.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа
  • results (array) – массив объектов компонентов; смотрите описание GET /api/changes/(int:id)/

GET /api/components/(string: project)/(string: component)/file/

Добавлено в версии 4.9.

Загружает все доступные переводы, связанные с компонентом, в виде архивного файла, используя запрашиваемый формат.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

Параметры запроса
  • format (string) – Формат архива для использования; если не указан, по умолчанию используется zip; Поддерживаемые форматы: zip

  • q (string) – Фильтр загруженных строк, смотрите раздел. Поиск.

GET /api/components/(string: project)/(string: component)/screenshots/

Возвращает список снимков экрана компонента.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа
GET /api/components/(string: project)/(string: component)/lock/

Возвращает состояние блокировки компонента.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа
  • locked (boolean) – заблокирован ли компонент для обновлений

Пример данных в JSON:

{
    "locked": false
}
POST /api/components/(string: project)/(string: component)/lock/

Устанавливает статус блокировки компонента.

Ответ такой же, как и у GET /api/components/(string:project)/(string:component)/lock/.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект запроса
  • lock – Логическое значение, стоит ли блокировка или нет.

Пример CURL:

curl \
    -d lock=true \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

Пример JSON запроса:

POST /api/components/hello/weblate/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"lock": true}

Пример ответа в JSON:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"locked":true}
GET /api/components/(string: project)/(string: component)/repository/

Возвращает информацию о состоянии репозитория системы контроля версий.

Ответ такой же, как и у GET /api/projects/(string:project)/repository/.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа
  • needs_commit (boolean) – есть ли какие-нибудь отложенные изменения для коммита

  • needs_merge (boolean) – есть ли какие-нибудь изменения в вышестоящем репозитории для объединения

  • needs_push (boolean) – есть ли какие-нибудь локальные изменения для отправки

  • remote_commit (string) – Информация о коммите из удаленного репозитория

  • status (string) – Статус репозитория системы контроля версий по её же данным

  • merge_failure – Текст, описывающий причину неудачи объединения или null, если её нет

POST /api/components/(string: project)/(string: component)/repository/

Выполняет заданную операцию на репозитории системы контроля версий.

Документацию смотрите в описании POST /api/projects/(string:project)/repository/.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект запроса
  • operation (string) – Выполняемые операции: одна из push, pull, commit, reset или cleanup

JSON -объект ответа
  • result (boolean) – результат операции

Пример CURL:

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

Пример JSON запроса:

POST /api/components/hello/weblate/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

Пример ответа в JSON:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"result":true}
GET /api/components/(string: project)/(string: component)/monolingual_base/

Скачивает базовый файл для одноязычных переводов.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

GET /api/components/(string: project)/(string: component)/new_template/

Скачивает файл шаблона для новых переводов.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

GET /api/components/(string: project)/(string: component)/translations/

Возвращает список объектов перевода в указанном компоненте.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа
POST /api/components/(string: project)/(string: component)/translations/

Создаёт новый перевод в указанном компоненте.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект запроса
JSON -объект ответа
  • result (object) – новый созданный объект перевода

Пример CURL:

curl \
    -d language_code=cs \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

Пример JSON запроса:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"language_code": "cs"}

Пример ответа в JSON:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "failing_checks": 0,
    "failing_checks_percent": 0,
    "failing_checks_words": 0,
    "filename": "po/cs.po",
    "fuzzy": 0,
    "fuzzy_percent": 0.0,
    "fuzzy_words": 0,
    "have_comment": 0,
    "have_suggestion": 0,
    "is_template": false,
    "is_source": false,
    "language": {
        "code": "cs",
        "direction": "ltr",
        "name": "Czech",
        "url": "http://example.com/api/languages/cs/",
        "web_url": "http://example.com/languages/cs/"
    },
    "language_code": "cs",
    "id": 125,
    "last_author": null,
    "last_change": null,
    "share_url": "http://example.com/engage/hello/cs/",
    "total": 4,
    "total_words": 15,
    "translate_url": "http://example.com/translate/hello/weblate/cs/",
    "translated": 0,
    "translated_percent": 0.0,
    "translated_words": 0,
    "url": "http://example.com/api/translations/hello/weblate/cs/",
    "web_url": "http://example.com/projects/hello/weblate/cs/"
}
GET /api/components/(string: project)/(string: component)/statistics/

Возвращает разбитую на страницы статистику по всем переводам компонента.

Добавлено в версии 2.7.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа

Возвращает проекты, связанные с компонентом.

Добавлено в версии 4.5.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

JSON -объект ответа
POST /api/components/(string: project)/(string: component)/links/

Связывает проект с компонентом.

Добавлено в версии 4.5.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

Параметры формы
  • string project_slug – Плашка проекта

Удаляет связь проекта с компонентом.

Добавлено в версии 4.5.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • project_slug (string) – Плашка удаляемого проекта

Переводы

GET /api/translations/

Возвращает список переводов.

См.также

Атрибуты объекта-перевода описываются в разделе GET /api/translations/(string:project)/(string:component)/(string:language)/.

GET /api/translations/(string: project)/(string: component)/(string: language)/

Возвращает информацию о переводе.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

JSON -объект ответа
  • component (object) – объект компонента; смотрите описание GET /api/components/(string:project)/(string:component)/

  • failing_checks (int) – количество строк с неудачными проверками

  • failing_checks_percent (float) – процент строк с неудачными проверками

  • failing_checks_words (int) – количество слов с неудачными проверками

  • filename (string) – имя файла перевода

  • fuzzy (int) – количество неточных (отмеченных «на правку») переводов

  • fuzzy_percent (float) – процент неточных (отмеченных «на правку») переводов

  • fuzzy_words (int) – количество слов в неточных (отмеченных «на правку») строках

  • have_comment (int) – количество строк с комментариями

  • have_suggestion (int) – количество строк с комментариями

  • is_template (boolean) – использует ли перевод одноязычные файлы

  • language (object) – объект исходного языка; смотрите описание GET /api/languages/(string:language)/

  • language_code (string) – код языка, используемый в репозитории; он может отличаться от кода языка в объекте языка

  • last_author (string) – имя последнего автора

  • last_change (timestamp) – метка времени последнего изменения

  • revision (string) – хэш ревизии файла

  • share_url (string) – URL-адрес для принятия участия в переводе, ведущий на вводную страницу

  • total (int) – общее количество строк

  • total_words (int) – общее количество слов

  • translate_url (string) – URL-адрес для перевода

  • translated (int) – количество переведенных строк

  • translated_percent (float) – процент переведённых строк

  • translated_words (int) – количество переведённых слов

  • repository_url (string) – URL-адрес статуса репозитория; смотрите описание GET /api/translations/(string:project)/(string:component)/(string:language)/repository/

  • file_url (string) – URL-адрес объекта файла; смотрите описание GET /api/translations/(string:project)/(string:component)/(string:language)/file/

  • changes_list_url (string) – URL-адрес списка изменений; смотрите описание GET /api/translations/(string:project)/(string:component)/(string:language)/changes/

  • units_list_url (string) – URL-адрес списка строк; смотрите описание GET /api/translations/(string:project)/(string:component)/(string:language)/units/

Пример данных в JSON:

{
    "component": {
        "branch": "main",
        "file_format": "po",
        "filemask": "po/*.po",
        "git_export": "",
        "license": "",
        "license_url": "",
        "name": "Weblate",
        "new_base": "",
        "project": {
            "name": "Hello",
            "slug": "hello",
            "source_language": {
                "code": "en",
                "direction": "ltr",
                "name": "English",
                "url": "http://example.com/api/languages/en/",
                "web_url": "http://example.com/languages/en/"
            },
            "url": "http://example.com/api/projects/hello/",
            "web": "https://weblate.org/",
            "web_url": "http://example.com/projects/hello/"
        },
        "repo": "file:///home/nijel/work/weblate-hello",
        "slug": "weblate",
        "template": "",
        "url": "http://example.com/api/components/hello/weblate/",
        "vcs": "git",
        "web_url": "http://example.com/projects/hello/weblate/"
    },
    "failing_checks": 3,
    "failing_checks_percent": 75.0,
    "failing_checks_words": 11,
    "filename": "po/cs.po",
    "fuzzy": 0,
    "fuzzy_percent": 0.0,
    "fuzzy_words": 0,
    "have_comment": 0,
    "have_suggestion": 0,
    "is_template": false,
    "language": {
        "code": "cs",
        "direction": "ltr",
        "name": "Czech",
        "url": "http://example.com/api/languages/cs/",
        "web_url": "http://example.com/languages/cs/"
    },
    "language_code": "cs",
    "last_author": "Weblate Admin",
    "last_change": "2016-03-07T10:20:05.499",
    "revision": "7ddfafe6daaf57fc8654cc852ea6be212b015792",
    "share_url": "http://example.com/engage/hello/cs/",
    "total": 4,
    "total_words": 15,
    "translate_url": "http://example.com/translate/hello/weblate/cs/",
    "translated": 4,
    "translated_percent": 100.0,
    "translated_words": 15,
    "url": "http://example.com/api/translations/hello/weblate/cs/",
    "web_url": "http://example.com/projects/hello/weblate/cs/"
}
DELETE /api/translations/(string: project)/(string: component)/(string: language)/

Добавлено в версии 3.9.

Удаляет перевод.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

GET /api/translations/(string: project)/(string: component)/(string: language)/changes/

Возвращает список изменений перевода. По сути, эта точка входа работает так же и принимает те же самые параметры, что и GET /api/changes/, только для перевода.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

JSON -объект ответа
  • results (array) – массив объектов компонентов; смотрите описание GET /api/changes/(int:id)/

GET /api/translations/(string: project)/(string: component)/(string: language)/units/

Возвращает список единиц перевода.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

  • q (string) – Строка поискового запроса (необязательный, смотреть раздел Поиск)

JSON -объект ответа
  • results (array) – массив объектов компонента; смотрите описание GET /api/units/(int:id)/

POST /api/translations/(string: project)/(string: component)/(string: language)/units/

Добавляет новую одноязычную единицу перевода.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

JSON -объект запроса
  • key (string) – Name of translation unit (used as key or context)

  • value (array) – Source strings (use single string if not creating plural)

POST /api/translations/(string: project)/(string: component)/(string: language)/autotranslate/

Запускает автоматический перевод.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

JSON -объект запроса
  • mode (string) – Режим автоматического перевода

  • filter_type (string) – Тип фильтра автоматического перевода

  • auto_source (string) – Источник автоматического перевода - mt или others

  • component (string) – Добавлять переводы этого компонента в общую память переводов проекта, дабы получить к ним доступ из других компонентов.

  • engines (array) – Механизмы машинного перевода

  • threshold (string) – Порог оценки

GET /api/translations/(string: project)/(string: component)/(string: language)/file/

Скачивает текущий файл перевода в том виде, в котором он хранится в VCS (без параметра format) или преобразован в другой формат (смотреть раздел Скачивание переводов).

Примечание

Эта конечная точка API использует отличающуюся от остального API логику вывода, так как она работает не с данными, а с целым файлом. Отличается логика при установке допустимого параметра format — без него вы получите файл перевода, хранящийся в системе контроля версий.

Параметры запроса
  • format – Используемый формат файла; если не указан, преобразование формата не происходит; поддерживаемые форматы файлов: po, mo, xliff, xliff11, tbx, csv, xlsx, json, aresource и strings

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

POST /api/translations/(string: project)/(string: component)/(string: language)/file/

Загружает новый файл с переводами.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

Параметры формы
  • string conflict – Как поступать с конфликтами (ignore, replace-translated или replace-approved)

  • file file – Загруженный файл

  • string email – Эл. почта автора

  • string author – Имя автора

  • string method – Метод загрузки (translate, approve, suggest, fuzzy, replace, source или add), смотрите раздел Способы импорта

  • string fuzzy – Что делать с неточными, отмеченными на правку, переводами (пусто, process или approve)

Пример CURL:

curl -X POST \
    -F file=@strings.xml \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/translations/hello/android/cs/file/
GET /api/translations/(string: project)/(string: component)/(string: language)/repository/

Возвращает информацию о состоянии репозитория системы контроля версий.

Ответ такой же, как и у GET /api/components/(string:project)/(string:component)/repository/.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

POST /api/translations/(string: project)/(string: component)/(string: language)/repository/

Выполняет заданную операцию на репозитории системы контроля версий.

Документацию смотрите в описании POST /api/projects/(string:project)/repository/.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

JSON -объект запроса
  • operation (string) – Выполняемые операции: одна из push, pull, commit, reset или cleanup

JSON -объект ответа
  • result (boolean) – результат операции

GET /api/translations/(string: project)/(string: component)/(string: language)/statistics/

Возвращает подробную статистику по переводам.

Добавлено в версии 2.7.

Параметры
  • project (string) – URL-плашка проекта

  • component (string) – URL-плашка компонента

  • language (string) – Код языка перевода

JSON -объект ответа
  • code (string) – код языка

  • failing (int) – количество неудачных проверок

  • failing_percent (float) – процент неудачных проверок

  • fuzzy (int) – количество неточных (отмеченных «на правку») переводов

  • fuzzy_percent (float) – процент неточных (отмеченных «на правку») переводов

  • total_words (int) – общее количество слов

  • translated_words (int) – количество переведённых слов

  • last_author (string) – имя последнего автора

  • last_change (timestamp) – дата последнего изменения

  • name (string) – название языка

  • total (int) – общее количество строк

  • translated (int) – количество переведенных строк

  • translated_percent (float) – процент переведённых строк

  • url (string) – URL-адрес для доступа к переводу (URL-адрес вводной страницы)

  • url_translate (string) – URL-адрес для доступа к переводу (реальный URL-адрес перевода)

Единицы перевода

Единица перевода (unit) — это единичный фрагмент перевода, сопоставляющий исходную строку и соответствующий ей перевод, а также содержащий некоторые связанные с ними метаданные. Этот термин унаследован от Translate Toolkit и XLIFF.

Добавлено в версии 2.10.

GET /api/units/

Возвращает список единиц перевода.

См.также

Атрибуты объекта единицы перевода описываются в разделе GET /api/units/(int:id)/.

GET /api/units/(int: id)/

Изменено в версии 4.3: target и source теперь являются массивами, чтобы корректно обрабатывать строки со множественным числом.

Возвращает информацию о единице перевода.

Параметры
  • id (int) – Идентификатор единицы перевода

JSON -объект ответа
  • translation (string) – URL-адрес связанного объекта перевода

  • source (array) – исходная строка

  • previous_source (string) – предыдущая исходная строка, использованная для поиска неточного соответствия

  • target (array) – целевая строка

  • id_hash (string) – уникальный идентификатор единицы перевода

  • content_hash (string) – уникальный идентификатор исходной строки

  • location (string) – местоположение единицы перевода в исходном коде

  • context (string) – контекст единицы перевода

  • note (string) – примечания к единице перевода

  • flags (string) – флаги единицы перевода

  • state (int) – unit state, 0 - untranslated, 10 - needs editing, 20 - translated, 30 - approved, 100 - read only

  • fuzzy (boolean) – является ли перевод единицы перевода неточным или отмеченным на правку

  • translated (boolean) – переведена ли единица перевода

  • approved (boolean) – одобрена ли единица перевода

  • position (int) – позиция единицы перевода в файле перевода

  • has_suggestion (boolean) – содержит ли единица перевода предложения

  • has_comment (boolean) – содержит ли единица перевода комментарии

  • has_failing_check (boolean) – имеются ли у единицы перевода неудачные проверки

  • num_words (int) – количество слов в исходной строке

  • priority (int) – приоритет перевода; по умолчанию равен 100

  • id (int) – идентификатор единицы перевода

  • explanation (string) – Пояснения для строки, доступные для данной единицы перевода, смотрите раздел Дополнительная информация об исходных строках

  • extra_flags (string) – Дополнительные флаги строки, доступны на исходных единицах перевода, смотрите раздел Настройка поведения с помощью флагов

  • web_url (string) – URL-адрес, по которому можно отредактировать единицу перевода

  • souce_unit (string) – Ссылка на исходную единицу перевода; смотрите описание GET /api/units/(int:id)/

  • pending (boolean) – whether the unit is pending for write

  • timestamp (timestamp) – string age

PATCH /api/units/(int: id)/

Добавлено в версии 4.3.

Выполняет частичное обновление единицы перевода.

Параметры
  • id (int) – Идентификатор единицы перевода

JSON -объект запроса
PUT /api/units/(int: id)/

Добавлено в версии 4.3.

Выполняет полное обновление единицы перевода.

Параметры
  • id (int) – Идентификатор единицы перевода

JSON -объект запроса
DELETE /api/units/(int: id)/

Добавлено в версии 4.3.

Удаляет единицу перевода.

Параметры
  • id (int) – Идентификатор единицы перевода

Изменения

Добавлено в версии 2.10.

GET /api/changes/

Изменено в версии 4.1: Фильтрация изменений была введена в выпуске 4.1.

Возвращает список изменений в переводе.

См.также

Атрибуты объекта-изменения описываются в разделе GET /api/changes/(int:id)/.

Параметры запроса
  • user (string) – Имя пользователя для фильтров

  • action (int) – Действие для фильтра, может быть указано несколько раз

  • timestamp_after (timestamp) – Временная метка в формате ISO 8601, изменения после которой нужно вернуть

  • timestamp_before (timestamp) – Временная метка в формате ISO 8601, изменения до которой нужно вернуть

GET /api/changes/(int: id)/

Возвращает информацию об изменении в переводе.

Параметры
  • id (int) – Идентификатор изменения

JSON -объект ответа
  • unit (string) – URL-адрес связанного объекта единицы перевода

  • translation (string) – URL-адрес связанного объекта перевода

  • component (string) – URL-адрес связанного объекта компонента

  • user (string) – URL-адрес связанного объекта пользователя

  • author (string) – URL-адрес связанного объекта автора

  • timestamp (timestamp) – временная метка события

  • action (int) – числовой идентификатор действия

  • action_name (string) – текстовое описание действия

  • target (string) – изменённый текст или информация о событии

  • id (int) – идентификатор изменения

Снимки экрана

Добавлено в версии 2.14.

GET /api/screenshots/

Возвращает список снимков экрана для исходных строк.

См.также

Атрибуты объекта снимка экрана описываются в разделе GET /api/screenshots/(int:id)/.

GET /api/screenshots/(int: id)/

Возвращает информацию о снимке экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

JSON -объект ответа
  • name (string) – название снимка экрана

  • component (string) – URL-адрес связанного объекта компонента

  • file_url (string) – URL-адрес для скачивания файла; смотрите описание GET /api/screenshots/(int:id)/file/

  • units (array) – ссылка на связанную информацию об исходной строке; смотрите описание GET /api/units/(int:id)/

GET /api/screenshots/(int: id)/file/

Скачивает изображение снимка экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

POST /api/screenshots/(int: id)/file/

Заменяет изображение снимка экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

Параметры формы
  • file image – Загруженный файл

Пример CURL:

curl -X POST \
    -F image=@image.png \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/screenshots/1/file/
POST /api/screenshots/(int: id)/units/

Связывает исходную строку со снимком экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

Параметры формы
  • string unit_id – Идентификатор единицы перевода

JSON -объект ответа
  • name (string) – название снимка экрана

  • translation (string) – URL-адрес связанного объекта перевода

  • file_url (string) – URL-адрес для скачивания файла; смотрите описание GET /api/screenshots/(int:id)/file/

  • units (array) – ссылка на связанную информацию об исходной строке; смотрите описание GET /api/units/(int:id)/

DELETE /api/screenshots/(int: id)/units/(int: unit_id)

Удаляет связь исходной строки со снимком экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

  • unit_id – ИД единицы перевода исходной строки

POST /api/screenshots/

Создаёт новый снимок экрана.

Параметры формы
  • file image – Загруженный файл

  • string name – Название снимка экрана

  • string project_slug – Плашка проекта

  • string component_slug – Плашка компонента

  • string language_code – Код языка

JSON -объект ответа
  • name (string) – название снимка экрана

  • component (string) – URL-адрес связанного объекта компонента

  • file_url (string) – URL-адрес для скачивания файла; смотрите описание GET /api/screenshots/(int:id)/file/

  • units (array) – ссылка на связанную информацию об исходной строке; смотрите описание GET /api/units/(int:id)/

PATCH /api/screenshots/(int: id)/

Редактирует часть информации о снимке экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

JSON -объект ответа
  • name (string) – название снимка экрана

  • component (string) – URL-адрес связанного объекта компонента

  • file_url (string) – URL-адрес для скачивания файла; смотрите описание GET /api/screenshots/(int:id)/file/

  • units (array) – ссылка на связанную информацию об исходной строке; смотрите описание GET /api/units/(int:id)/

PUT /api/screenshots/(int: id)/

Редактирует всю информацию о снимке экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

JSON -объект ответа
  • name (string) – название снимка экрана

  • component (string) – URL-адрес связанного объекта компонента

  • file_url (string) – URL-адрес для скачивания файла; смотрите описание GET /api/screenshots/(int:id)/file/

  • units (array) – ссылка на связанную информацию об исходной строке; смотрите описание GET /api/units/(int:id)/

DELETE /api/screenshots/(int: id)/

Удаляет снимок экрана.

Параметры
  • id (int) – Идентификатор снимка экрана

Надстройки

Добавлено в версии 4.4.1.

GET /api/addons/

Возвращает список надстроек.

См.также

Атрибуты объекта-надстройки, описываются в разделе GET /api/units/(int:id)/.

GET /api/addons/(int: id)/

Возвращает информацию о надстройке.

Параметры
  • id (int) – ID надстройки

JSON -объект ответа
  • name (string) – название надстройки

  • component (string) – URL-адрес связанного объекта компонента

  • configuration (object) – Необязательные настройки надстройки

См.также

Надстройки

POST /api/components/(string: project)/(string: component)/addons/

Создаёт новую надстройку.

Параметры
  • project_slug (string) – Плашка проекта

  • component_slug (string) – Плашка компонента

JSON -объект запроса
  • name (string) – название надстройки

  • configuration (object) – Необязательные настройки надстройки

PATCH /api/addons/(int: id)/

Редактирует часть информации о надстройке.

Параметры
  • id (int) – ID надстройки

JSON -объект ответа
  • configuration (object) – Необязательные настройки надстройки

PUT /api/addons/(int: id)/

Редактирует всю информацию о надстройке.

Параметры
  • id (int) – ID надстройки

JSON -объект ответа
  • configuration (object) – Необязательные настройки надстройки

DELETE /api/addons/(int: id)/

Удаляет надстройку.

Параметры
  • id (int) – ID надстройки

Списки компонентов

Добавлено в версии 4.0.

GET /api/component-lists/

Возвращает список списков компонентов.

См.также

Атрибуты объекта списка компонентов описываются в разделе GET /api/component-lists/(str:slug)/.

GET /api/component-lists/(str: slug)/

Возвращает информацию о списке компонентов.

Параметры
  • slug (string) – Плашка списка компонентов

JSON -объект ответа
  • name (string) – название списка компонентов

  • slug (string) – плашка списка компонентов

  • show_dashboard (boolean) – показывать ли его на панели управления

  • components (array) – ссылка на связанные компоненты; смотрите описание GET /api/components/(string:project)/(string:component)/

  • auto_assign (array) – правила автоматического назначения

PUT /api/component-lists/(str: slug)/

Изменяет параметры списка компонентов.

Параметры
  • slug (string) – Плашка списка компонентов

JSON -объект запроса
  • name (string) – название списка компонентов

  • slug (string) – плашка списка компонентов

  • show_dashboard (boolean) – показывать ли его на панели управления

PATCH /api/component-lists/(str: slug)/

Изменяет параметры списка компонентов.

Параметры
  • slug (string) – Плашка списка компонентов

JSON -объект запроса
  • name (string) – название списка компонентов

  • slug (string) – плашка списка компонентов

  • show_dashboard (boolean) – показывать ли его на панели управления

DELETE /api/component-lists/(str: slug)/

Удаляет список компонентов.

Параметры
  • slug (string) – Плашка списка компонентов

POST /api/component-lists/(str: slug)/components/

Связывает компонент со списком компонентов.

Параметры
  • slug (string) – Плашка списка компонентов

Параметры формы
  • string component_id – Идентификатор компонента

DELETE /api/component-lists/(str: slug)/components/(str: component_slug)

Отвязывает компонент от списка компонентов.

Параметры
  • slug (string) – Плашка списка компонентов

  • component_slug (string) – Плашка компонента

Глоссарий

Изменено в версии 4.5: Глоссарии теперь хранятся как обычные компоненты, переводы и строки, поэтому используйте для работы с ними соответствующие API.

Задачи

Добавлено в версии 4.4.

GET /api/tasks/

На данный момент получение списка задач недоступно.

GET /api/tasks/(str: uuid)/

Возвращает информацию о задаче

Параметры
  • uuid (string) – UUID задачи

JSON -объект ответа
  • completed (boolean) – Завершилась ли задача

  • progress (int) – Ход выполнения задачи (в процентах)

  • result (object) – Результат выполнения задачи или дополнительная информация о ходе её выполнения

  • log (string) – Журнал выполнения задачи

Метрики

GET /api/metrics/

Возвращает метрики сервера.

JSON -объект ответа
  • units (int) – Количество единиц

  • units_translated (int) – Количество переведённых единиц

  • users (int) – Количество пользователей

  • changes (int) – Количество изменений

  • projects (int) – Количество проектов

  • components" (int) – Количество компонентов

  • translations" (int) – Количество переводов

  • languages" (int) – Количество используемых языков

  • checks" (int) – Количество проведённых проверок

  • configuration_errors" (int) – Количество ошибок конфигурации

  • suggestions" (int) – Количество ожидающих предложений

  • celery_queues (object) – Длины очередей Celery, смотреть раздел Фоновые задачи с использованием Celery

  • name (string) – Настроенное имя сервера

Обработчики уведомлений

Обработчики уведомлений позволяют внешним приложениям уведомлять Weblate об обновлении репозитория системы контроля версий.

Вы можете использовать конечные точки репозитория для проектов, компонентов и переводов для обновления отдельных репозиториев; документацию смотрите в описании POST /api/projects/(string:project)/repository/.

GET /hooks/update/(string: project)/(string: component)/

Не рекомендуется, начиная с версии 2.6: Пожалуйста, используйте вместо этой конечной точки точку POST /api/components/(string:project)/(string:component)/repository/, которая корректно работает с аутентификацией для проектов, ограниченных списками контроля доступа.

Запускает обновление компонента (извлечение кода из системы контроля версий и поиск в нём изменений перевода).

GET /hooks/update/(string: project)/

Не рекомендуется, начиная с версии 2.6: Пожалуйста, используйте вместо этой конечной точки точку POST /api/projects/(string:project)/repository/, которая корректно работает с аутентификацией для проектов, ограниченных списками контроля доступа.

Запускает обновление всех компонентов в проекте (извлечение кода из системы контроля версий и поиск в нём изменений перевода).

POST /hooks/github/

Специальный обработчик для обработки уведомлений GitHub и автоматического обновления соответствующих компонентов.

Примечание

GitHub включает прямую поддержку уведомлений Weblate: включите сервисный обработчик Weblate в настройках репозитория и установите URL-адрес в соответствие с URL-адресом вашей установки Weblate.

См.также

Автоматическое получение изменений из GitHub’а

Инструкция по настройке интеграции с GitHub

https://docs.github.com/en/get-started/customizing-your-github-workflow/exploring-integrations/about-webhooks

Общая информация о веб-обработчиках GitHub

ENABLE_HOOKS

Для включения обработчиков для всего Weblate

POST /hooks/gitlab/

Специальный обработчик для обработки уведомлений GitLab и автоматического обновления соответствующих компонентов.

См.также

Автоматическое получение изменений из GitLab’а

Инструкция по настройке интеграции с GitLab

https://docs.gitlab.com/ee/user/project/integrations/webhooks.html

Общая информация о веб-обработчиках GitLab

ENABLE_HOOKS

Для включения обработчиков для всего Weblate

POST /hooks/bitbucket/

Специальный обработчик для обработки уведомлений Bitbucket и автоматического обновления соответствующих компонентов.

См.также

Автоматическое получение изменений из Bitbucket’а

Инструкция по настройке интеграции с Bitbucket

https://support.atlassian.com/bitbucket-cloud/docs/manage-webhooks/

Общая информация о веб-обработчиках Bitbucket

ENABLE_HOOKS

Для включения обработчиков для всего Weblate

POST /hooks/pagure/

Добавлено в версии 3.3.

Специальный обработчик для обработки уведомлений Pagure и автоматического обновления соответствующих компонентов.

См.также

Автоматическое получение изменений из Pagure

Инструкция по настройке интеграции с Pagure

https://docs.pagure.org/pagure/usage/using_webhooks.html

Общая информация о веб-обработчиках Pagure

ENABLE_HOOKS

Для включения обработчиков для всего Weblate

POST /hooks/azure/

Добавлено в версии 3.8.

Special hook for handling Azure DevOps notifications and automatically updating matching components.

Примечание

Please make sure that Resource details to send is set to All, otherwise Weblate will not be able to match your Azure repository.

См.также

Автоматическое получение изменений из Azure Repos

Инструкция по настройке интеграции с Azure

https://docs.microsoft.com/ru-ru/azure/devops/service-hooks/services/webhooks?view=azure-devops

Generic information about Azure DevOps Web Hooks

ENABLE_HOOKS

Для включения обработчиков для всего Weblate

POST /hooks/gitea/

Добавлено в версии 3.9.

Специальный обработчик для обработки уведомлений Gitea и автоматического обновления соответствующих компонентов.

См.также

Автоматическое получение изменений из репозиториев Gitea

Инструкция по настройке интеграции с Gitea

https://docs.gitea.io/en-us/webhooks/

Общая информация о веб-обработчиках Gitea

ENABLE_HOOKS

Для включения обработчиков для всего Weblate

POST /hooks/gitee/

Добавлено в версии 3.9.

Специальный обработчик для обработки уведомлений Gitee и автоматического обновления соответствующих компонентов.

См.также

Автоматическое получение изменений из репозиториев Gitee

Инструкция по настройке интеграции с Gitee

https://gitee.com/help/categories/40

Общая информация о веб-обработчиках Gitee

ENABLE_HOOKS

Для включения обработчиков для всего Weblate

Экспорты

Чтобы позволить вам и дальше обрабатывать данные, Weblate предоставляет вам различные виды экспорта.

GET /exports/stats/(string: project)/(string: component)/
Параметры запроса
  • format (string) – Выходной формат: json или csv

Не рекомендуется, начиная с версии 2.6: Пожалуйста, используйте вместо этой конечной точки GET /api/components/(string:project)/(string:component)/statistics/ или GET /api/translations/(string:project)/(string:component)/(string:language)/statistics/; они также разрешает доступ к проектам, контролируемым списками контроля доступа.

Возвращает статистику по указанному компоненту в заданном формате.

Пример запроса:

GET /exports/stats/weblate/main/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript

Пример ответа:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

[
    {
        "code": "cs",
        "failing": 0,
        "failing_percent": 0.0,
        "fuzzy": 0,
        "fuzzy_percent": 0.0,
        "last_author": "Michal Čihař",
        "last_change": "2012-03-28T15:07:38+00:00",
        "name": "Czech",
        "total": 436,
        "total_words": 15271,
        "translated": 436,
        "translated_percent": 100.0,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/cs/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/cs/"
    },
    {
        "code": "nl",
        "failing": 21,
        "failing_percent": 4.8,
        "fuzzy": 11,
        "fuzzy_percent": 2.5,
        "last_author": null,
        "last_change": null,
        "name": "Dutch",
        "total": 436,
        "total_words": 15271,
        "translated": 319,
        "translated_percent": 73.2,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/nl/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/nl/"
    },
    {
        "code": "el",
        "failing": 11,
        "failing_percent": 2.5,
        "fuzzy": 21,
        "fuzzy_percent": 4.8,
        "last_author": null,
        "last_change": null,
        "name": "Greek",
        "total": 436,
        "total_words": 15271,
        "translated": 312,
        "translated_percent": 71.6,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/el/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/el/"
    }
]

RSS-каналы

Изменения в переводах экспортируются в RSS-каналы.

GET /exports/rss/(string: project)/(string: component)/(string: language)/

Возвращает RSS-ленту с последними изменениями в переводе.

GET /exports/rss/(string: project)/(string: component)/

Возвращает RSS-ленту с последними изменениями в компоненте.

GET /exports/rss/(string: project)/

Возвращает RSS-ленту с последними изменениями в проекте.

GET /exports/rss/language/(string: language)/

Возвращает RSS-ленту с последними изменениями в языке.

GET /exports/rss/

Возвращает RSS-ленту с последними изменениями в экземпляре Weblate.

См.также

RSS в Википедии