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 – необязательный токен для аутентификации
- Заголовки ответа
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 – при правильной обработке запроса
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 ограничена; конфигурация по умолчанию ограничивает её до 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/
Пример данных в 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.
Редактирует проект запросом на исправление.
- Параметры
project (string) – URL-плашка проекта
component (string) – URL-плашка компонента
-
PUT
/api/projects/
(string: project)/
¶ Добавлено в версии 4.3.
Редактирует проект запросом на замену.
- Параметры
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
- 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: The
zipfile
anddocfile
parameters are now accepted for VCS less components, see Локальные файлы.Создаёт компоненты перевода в указанном проекте.
- Параметры
project (string) – URL-плашка проекта
- JSON -объект запроса
zipfile (file) – ZIP file to upload into Weblate for translations initialization
docfile (file) – Документ для перевода
- JSON -объект ответа
result (object) – Созданный объект компонента; смотрите описание
GET /api/components/(string:project)/(string:component)/
Пример CURL:
curl \ --data-binary '{ "branch": "master", "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": "master", "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": "master", "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/
Пример данных в JSON:
{ "branch": "master", "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)/
¶ Редактирует компонент запросом на исправление.
- Параметры
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": "master", "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)/
¶ Редактирует компонент запросом на замену.
- Параметры
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/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": "master", "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) – Search query string Поиск (optional)
- 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) – Источник автоматического перевода
component (string) – Добавлять переводы этого компонента в общую память переводов проекта, дабы получить к ним доступ из других компонентов.
engines (string) – Механизмы машинного перевода
threshold (string) – Порог оценки
-
GET
/api/translations/
(string: project)/
(string: component)/
(string: language)/file/
¶ Скачивает текущий файл перевода в том виде, в котором он сохранён в системе контроля версий (без параметра
format
) или преобразованный в стандартный формат (в настоящее время поддерживаются: Gettext PO, MO, XLIFF и TBX).Примечание
Эта конечная точка 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
), смотрите раздел Способы импортирования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-адрес перевода)
Единицы перевода¶
Добавлено в версии 2.10.
-
GET
/api/units/
¶ Возвращает список единиц перевода.
См.также
Атрибуты объекта единицы перевода задокументированы в разделе
GET /api/units/(int:id)/
.
-
GET
/api/units/
(int: id)/
¶ Изменено в версии 4.3: The
target
andsource
are now arrays to properly handle plural strings.Возвращает информацию о единице перевода.
- Параметры
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 - not translated, 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)/
-
PATCH
/api/units/
(int: id)/
¶ Добавлено в версии 4.3.
Выполняет частичное обновление единицы перевода.
- Параметры
id (int) – Идентификатор единицы перевода
- JSON -объект запроса
state (int) – unit state, 0 - not translated, 10 - needs editing, 20 - translated, 30 - approved, 100 - read only
target (array) – целевая строка
explanation (string) – Объяснение строки, доступно на исходных единицах перевода, смотрите раздел Дополнительная информация об исходных строках
extra_flags (string) – Дополнительные флаги строки, доступны на исходных единицах перевода, смотрите раздел Настройка поведения
-
PUT
/api/units/
(int: id)/
¶ Добавлено в версии 4.3.
Выполняет полное обновление единицы перевода.
- Параметры
id (int) – Идентификатор единицы перевода
- JSON -объект запроса
state (int) – unit state, 0 - not translated, 10 - needs editing, 20 - translated, 30 - approved, 100 - read only
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-адрес связанного объекта компонента
glossary_term (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.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) – Плашка компонента
Глоссарий¶
-
GET
/api/glossary/
¶ Возвращает список всех связанных с проектом глоссариев, к которым у пользователя есть доступ.
См.также
Атрибуты объекта языка задокументированы в разделе
GET /api/languages/(string:language)/
.
-
GET
/api/glossary/
(int: id)/
¶ Возвращает информацию о глоссарии.
- Параметры
id (int) – Идентификатор глоссария
- JSON -объект ответа
name (string) – Код языка
color (string) – Направление текста
source_language (object) – Объект информации о формах множественного числа языка
projects (array) – ссылка на связанные проекты; смотрите описание
GET /api/projects/(string:project)/
Пример данных в JSON:
{ "name": "Hello", "id": 1, "color": "silver", "source_language": { "code": "en", "name": "English", "plural": { "id": 75, "source": 0, "number": 2, "formula": "n != 1", "type": 1 }, "aliases": [ "english", "en_en", "base", "source", "eng" ], "direction": "ltr", "web_url": "http://example.com/languages/en/", "url": "http://example.com/api/languages/en/", "statistics_url": "http://example.com/api/languages/en/statistics/" }, "project": { "name": "Hello", "slug": "hello", "id": 1, "source_language": { "code": "en", "name": "English", "plural": { "id": 75, "source": 0, "number": 2, "formula": "n != 1", "type": 1 }, "aliases": [ "english", "en_en", "base", "source", "eng" ], "direction": "ltr", "web_url": "http://example.com/languages/en/", "url": "http://example.com/api/languages/en/", "statistics_url": "http://example.com/api/languages/en/statistics/" }, "web_url": "http://example.com/projects/demo1/", "url": "http://example.com/api/projects/demo1/", "components_list_url": "http://example.com/api/projects/demo1/components/", "repository_url": "http://example.com/api/projects/demo1/repository/", "statistics_url": "http://example.com/api/projects/demo1/statistics/", "changes_list_url": "http://example.com/api/projects/demo1/changes/", "languages_url": "http://example.com/api/projects/demo1/languages/" }, "projects_url": "http://example.com/api/glossary/7/projects/", "terms_url": "http://example.com/api/glossary/7/terms/", "url": "http://example.com/api/glossary/7/" }
-
PUT
/api/glossary/
(int: id)/
¶ Изменяет параметры глоссария.
- Параметры
id (int) – Идентификатор глоссария
- JSON -объект запроса
name (string) – Название языка
color (string) – Направление языка
source_language (object) – Данные по формам множественного числа языка
-
PATCH
/api/glossary/
(int: id)/
¶ Изменяет параметры глоссария.
- Параметры
id (int) – Идентификатор глоссария
- JSON -объект запроса
name (string) – Название языка
color (string) – Направление языка
source_language (object) – Данные по формам множественного числа языка
-
DELETE
/api/glossary/
(int: id)/
¶ Удаляет глоссарий.
- Параметры
id (int) – Идентификатор глоссария
-
GET
/api/glossary/
(int: id)/projects/
¶ Возвращает проекты, связанные с глоссарием.
- Параметры
id (int) – Идентификатор глоссария
- JSON -объект ответа
projects (array) – связанные проекты; смотрите описание
GET /api/projects/(string:project)/
-
POST
/api/glossary/
(int: id)/projects/
¶ Связывает проект с глоссарием.
- Параметры
id (int) – Идентификатор глоссария
- Параметры формы
string project_slug – Плашка проекта
-
DELETE
/api/glossary/
(int: id)/projects/
¶ Remove association of a project with a glossary.
- Параметры
id (int) – Идентификатор глоссария
- Параметры формы
string project_slug – Плашка проекта
-
GET
/api/glossary/
(int: id)/terms/
¶ Перечисляет термины в глоссарии.
- Параметры
id (int) – Идентификатор глоссария
-
POST
/api/glossary/
(int: id)/terms/
¶ Связывает термины с глоссарием.
- Параметры
id (int) – Идентификатор глоссария
- JSON -объект запроса
language (object) – Язык термина
source (string) – Исходная строка термина
target (string) – Целевая строка термина
-
GET
/api/glossary/
(int: id)/terms/
(int: term_id)/
¶ Возвращает связанный с глоссарием термин.
- Параметры
id (int) – Идентификатор глоссария
term_id (int) – Идентификатор термина
-
PUT
/api/glossary/
(int: id)/terms/
(int: term_id)/
¶ Редактирует связанный с глоссарием термин.
- Параметры
id (int) – Идентификатор глоссария
term_id (int) – Идентификатор термина
- JSON -объект запроса
language (object) – Язык термина
source (string) – Исходная строка термина
target (string) – Целевая строка термина
-
PATCH
/api/glossary/
(int: id)/terms/
(int: term_id)/
¶ Редактирует связанный с глоссарием термин.
- Параметры
id (int) – Идентификатор глоссария
term_id (int) – Идентификатор термина
- JSON -объект запроса
language (object) – Язык термина
source (string) – Исходная строка термина
target (string) – Целевая строка термина
-
DELETE
/api/glossary/
(int: id)/terms/
(int: term_id)/
¶ Удаляет связанный с глоссарием термин.
- Параметры
id (int) – Идентификатор глоссария
term_id (int) – Идентификатор термина
Обработчики уведомлений¶
Обработчики уведомлений позволяют внешним приложениям уведомлять 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://confluence.atlassian.com/bitbucket/manage-webhooks-735643732.html
Общая информация о веб-обработчиках 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
Общая информация о веб-обработчиках 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/master/ 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/master/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/master/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/master/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.
См.также