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 интерфейс веб-браузера.
- Заголовки запроса
Authorization – optional token to authenticate as
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 – при превышении количества запросов из-за ограничения на количество запросов
Примеры аутентификации¶
Пример запроса:
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.
О состоянии ограничения частоты запросов сообщается в следующих заголовках:
|
Ограничение на максимальное число выполняемых запросов |
|
Оставшийся лимит запросов |
|
Количество секунд до сброса окна ограничения количества запросов |
Изменено в версии 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) – Активен ли пользователь? (необязательный)
- GET /api/users/(str: username)/¶
Возвращает информацию о пользователях.
- Параметры
username (string) – Имя пользователя
- JSON -объект ответа
username (string) – имя пользователя
full_name (string) – полное имя пользователя
email (string) – электронная почта пользователя
is_superuser (boolean) – является ли пользователь суперпользователем
is_active (boolean) – активен ли пользователь
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, "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) – активен ли пользователь
date_joined (string) – дата создания пользователя
- PATCH /api/users/(str: username)/¶
Изменяет параметры пользователя.
- Параметры
username (string) – Имя пользователя
- JSON -объект ответа
username (string) – имя пользователя
full_name (string) – полное имя пользователя
email (string) – электронная почта пользователя
is_superuser (boolean) – является ли пользователь суперпользователем
is_active (boolean) – активен ли пользователь
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) – Группа языков, выбранная из предложенных вариантов
- GET /api/groups/(int: id)/¶
Возвращает информацию о группе.
- Параметры
id (int) – Идентификатор группы
- JSON -объект ответа
name (string) – название группы
project_selection (int) – целое число, соответствующее группе проектов
language_selection (int) – целое число, соответствующее группе языков
roles (array) – ссылка на связанные роли; смотрите описание
GET /api/roles/(int:id)/
projects (array) – ссылка на связанные проекты; смотрите описание
GET /api/projects/(string:project)/
components (array) – ссылка на связанные компоненты; смотрите описание
GET /api/components/(string:project)/(string:component)/
componentlist (array) – ссылка на связанный список компонентов; смотрите описание
GET /api/component-lists/(str:slug)/
Пример данных в JSON:
{ "name": "Guests", "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 -объект ответа
name (string) – название проекта
slug (string) – плашка проекта
web (string) – веб-сайт проекта
components_list_url (string) – URL-адрес списка компонентов; смотрите описание
GET /api/projects/(string:project)/components/
repository_url (string) – URL-адрес статуса репозитория; смотрите описание
GET /api/projects/(string:project)/repository/
changes_list_url (string) – URL-адрес списка изменений; смотрите описание
GET /api/projects/(string:project)/changes/
translation_review (boolean) – Включить рецензии
source_review (boolean) – Включить рецензии исходных строк
set_language_team (boolean) – Задать заголовок «Language-Team»
enable_hooks (boolean) – Включить обработчики
instructions (string) – Инструкции для переводчиков
language_aliases (string) – Псевдонимы языка
Пример данных в 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 -объект ответа
results (array) – массив объектов компонентов; смотрите описание
GET /api/components/(string:project)/(string:component)/
- 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 -объект ответа
result (object) – Созданный объект компонента; смотрите описание
GET /api/components/(string:project)/(string:component)/
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", "git_export": "", "license": "", "license_url": "", "name": "Weblate", "slug": "weblate", "repo": "file:///home/nijel/work/weblate-hello", "template": "", "new_base": "", "vcs": "git" }' \ -H "Content-Type: application/json" \ -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 { "branch": "main", "file_format": "po", "filemask": "po/*.po", "git_export": "", "license": "", "license_url": "", "name": "Weblate", "slug": "weblate", "repo": "file:///home/nijel/work/weblate-hello", "template": "", "new_base": "", "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) – процент переведённых слов
Компоненты¶
- GET /api/components/¶
Возвращает список компонентов перевода.
См.также
Атрибуты объекта-компонента описываются в разделе
GET /api/components/(string:project)/(string:component)/
.
- GET /api/components/(string: project)/(string: component)/¶
Возвращает информацию о компоненте перевода.
- Параметры
project (string) – URL-плашка проекта
component (string) – URL-плашка компонента
- JSON -объект ответа
project (object) – проект перевода; смотрите описание
GET /api/projects/(string:project)/
name (string) – Название компонента
slug (string) – Плашка компонента
vcs (string) – Система контроля версий
repo (string) – Репозиторий исходного кода
git_export (string) – URL экспортированного репозитория
branch (string) – Ветка репозитория
push_branch (string) – Ветка для отправки
filemask (string) – Маска файла
template (string) – Одноязычный базовый файл
edit_template (string) – Правка базового файла
intermediate (string) – Файл промежуточного языка
new_base (string) – Шаблон для новых переводов
file_format (string) – Формат файла
license (string) – Лицензия перевода
agreement (string) – Соглашение участника
new_lang (string) – Добавление нового перевода
language_code_style (string) – Стиль кода языка
source_language (object) – объект исходного языка; смотрите описание
GET /api/languages/(string:language)/
push (string) – URL для отправки в репозиторий
check_flags (string) – Флаги перевода
priority (string) – Приоритет
enforced_checks (string) – Принудительные проверки
restricted (string) – Ограниченный доступ
repoweb (string) – Просмотрщик репозитория
report_source_bugs (string) – Адрес для сообщения об ошибке в исходной строке
merge_style (string) – Стиль слияния
commit_message (string) – Сообщения коммита, добавления, удаления, слияния и сообщения надстроек
add_message (string) – Сообщения коммита, добавления, удаления, слияния и сообщения надстроек
delete_message (string) – Сообщения коммита, добавления, удаления, слияния и сообщения надстроек
merge_message (string) – Сообщения коммита, добавления, удаления, слияния и сообщения надстроек
addon_message (string) – Сообщения коммита, добавления, удаления, слияния и сообщения надстроек
allow_translation_propagation (string) – Разрешить распространение перевода
enable_suggestions (string) – Включить предложения
suggestion_voting (string) – Голосование по предложению
suggestion_autoaccept (string) – Автоматическое принятие предложений
push_on_commit (string) – Отправлять при коммите
commit_pending_age (string) – Возраст изменений для коммита
auto_lock_error (string) – Блокировать при ошибке
language_regex (string) – Языковой фильтр
variant_regex (string) – Регулярное выражение вариантов
repository_url (string) – URL-адрес статуса репозитория; смотрите описание
GET /api/components/(string:project)/(string:component)/repository/
translations_url (string) – URL-адрес списка переводов; смотрите описание
GET /api/components/(string:project)/(string:component)/translations/
lock_url (string) – URL-адрес статуса блокировки; смотрите описание
GET /api/components/(string:project)/(string:component)/lock/
changes_list_url (string) – URL-адрес списка изменений; смотрите описание
GET /api/components/(string:project)/(string:component)/changes/
task_url (string) – URL фоновой задачи (если такая есть); просмотрите
GET /api/tasks/(str:uuid)/
Пример данных в 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)/screenshots/¶
Возвращает список снимков экрана компонента.
- Параметры
project (string) – URL-плашка проекта
component (string) – URL-плашка компонента
- JSON -объект ответа
results (array) – массив снимков экрана компонента; смотрите описание
GET /api/screenshots/(int:id)/
- 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 -объект ответа
results (array) – массив объектов перевода; смотрите описание
GET /api/translations/(string:project)/(string:component)/(string:language)/
- POST /api/components/(string: project)/(string: component)/translations/¶
Создаёт новый перевод в указанном компоненте.
- Параметры
project (string) – URL-плашка проекта
component (string) – URL-плашка компонента
- JSON -объект запроса
language_code (string) – код языка перевода; смотрите описание
GET /api/languages/(string:language)/
- 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 -объект ответа
results (array) – массив объектов статистики перевода; смотрите описание
GET /api/translations/(string:project)/(string:component)/(string:language)/statistics/
- GET /api/components/(string: project)/(string: component)/links/¶
Возвращает проекты, связанные с компонентом.
Добавлено в версии 4.5.
- Параметры
project (string) – URL-плашка проекта
component (string) – URL-плашка компонента
- JSON -объект ответа
projects (array) – связанные проекты; смотрите описание
GET /api/projects/(string:project)/
- POST /api/components/(string: project)/(string: component)/links/¶
Связывает проект с компонентом.
Добавлено в версии 4.5.
- Параметры
project (string) – URL-плашка проекта
component (string) – URL-плашка компонента
- Параметры формы
string project_slug – Плашка проекта
- DELETE /api/components/(string: project)/(string: component)/links/(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) – Название единицы перевода
value (string) – Значение единицы перевода
См.также
- 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 conflicts – Как поступать с конфликтами (
ignore
,replace-translated
илиreplace-approved
)file file – Загруженный файл
string email – E-mail автора
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) – состояние единицы перевода: 0 - не переведено, 10 - на правку, 20 - переведено, 30 - одобрено, 100 - только для чтения
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)/
- PATCH /api/units/(int: id)/¶
Добавлено в версии 4.3.
Выполняет частичное обновление единицы перевода.
- Параметры
id (int) – Идентификатор единицы перевода
- JSON -объект запроса
state (int) – состояние единицы перевода: 0 - не переведено, 10 - на правку, 20 - переведено, 30 - одобрено (требуется включить рецензирование, просмотрите раздел Выделенные рецензенты)
target (array) – целевая строка
explanation (string) – Пояснения для строки, доступные для данной единицы перевода, смотрите раздел Дополнительная информация об исходных строках
extra_flags (string) – Дополнительные флаги строки, доступны на исходных единицах перевода, смотрите раздел Настройка поведения с помощью флагов
- PUT /api/units/(int: id)/¶
Добавлено в версии 4.3.
Выполняет полное обновление единицы перевода.
- Параметры
id (int) – Идентификатор единицы перевода
- JSON -объект запроса
state (int) – состояние единицы перевода: 0 - не переведено, 10 - на правку, 20 - переведено, 30 - одобрено (требуется включить рецензирование, просмотрите раздел Выделенные рецензенты)
target (array) – целевая строка
explanation (string) – Пояснения для строки, доступные для данной единицы перевода, смотрите раздел Дополнительная информация об исходных строках
extra_flags (string) – Дополнительные флаги строки, доступны на исходных единицах перевода, смотрите раздел Настройка поведения с помощью флагов
- 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/github/extending-github/about-webhooks
Общая информация о веб-обработчиках GitHub
ENABLE_HOOKS
Для включения обработчиков для всего Weblate
- POST /hooks/gitlab/¶
Специальный обработчик для обработки уведомлений GitLab и автоматического обновления соответствующих компонентов.
См.также
- Автоматическое получение изменений из GitLab’а
Инструкция по настройке интеграции с GitLab
- https://docs.gitlab.com/ce/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.
Специальный обработчик для обработки уведомлений Azure Repos и автоматического обновления соответствующих компонентов.
См.также
- Автоматическое получение изменений из Azure Repos
Инструкция по настройке интеграции с Azure
- https://docs.microsoft.com/ru-ru/azure/devops/service-hooks/services/webhooks?view=azure-devops
Общая информация о веб-обработчиках Azure Repos
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.
См.также