Програмний інтерфейс REST Weblate

Нове в версії 2.6: Програмний інтерфейс REST доступний починаючи з версії Weblate 2.6.

Програмний інтерфейс доступний через /api/ в URL і побудовано на бібліотеці REST Django. Можете користуватися ним безпосередньо або через Клієнт Weblate.

Розпізнавання і типові параметри

Відкритий програмний інтерфейс проєкту доступний без розпізнавання користувача, хоча частоту запитів користувачів, які не пройшли розпізнавання, значно зменшено (типово, до 100 запитів на добу). Через це рекомендуємо вам користуватися розпізнаванням. У розпізнаванні використовується ключ, який ви можете отримати у вашому профілі. Використовуйте його в заголовку Authorization:

ANY /

Типова поведінка запиту для програмного інтерфейсу, заголовків, кодів стану та параметрів у цьому розділі стосується також усі інших кінцевих точок.

Параметри запиту
  • format – Формат відповіді (перевизначає Accept). Можливі значення залежать від налаштування бібліотеки REST. Типово, передбачено підтримку json і api. Остання надає інтерфейсу браузера для програмного інтерфейсу.

  • page – Повертає вказану сторінку розбитих на сторінки результатів (скористайтеся полями next у previous у відповіді, щоб автоматизувати навігацію).

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

  • Authorization – необов’язковий ключ для розпізнавання як-от Authorization: Token YOUR-TOKEN

Заголовки відповіді
  • Content-Type – це залежить від заголовка Accept запиту

  • Allow – список дозволених методів HTTP на об’єкті

Об’єкт відповіді JSON
  • detail (string) – докладний опис результатів (для кодів станів HTTP, відмінних від 200 OK)

  • count (int) – загальна кількість записів для списків об’єктів

  • next (string) – адреса наступної сторінки для списків об’єктів

  • previous (string) – адреса попередньої сторінки для списків об’єктів

  • results (array) – підсумки для списку об’єктів

  • url (string) – Адреса для доступу до цього ресурсу за допомогою програмного інтерфейсу

  • web_url (string) – Адреса для доступу до цього ресурсу за допомогою браузера

Коди станів
  • 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/

Приклад JSON для CURL:

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

Обмеження частоти у програмному інтерфейсі

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

Обмеження за частотою можна скоригувати у файлі settings.py; див. дроселювання у документації до бібліотек REST Django, щоб дізнатися більше про те, як налаштувати це обмеження.

Стан обмеження за частотою повідомляється за допомогою таких частин заголовка:

X-RateLimit-Limit

Обмеження за частотою запитів

X-RateLimit-Remaining

Залишок до обмеження на запити

X-RateLimit-Reset

Кількість секунд до скидання обмеження за частотою у вікні обробки

Змінено в версії 4.1: Додано частини заголовка, пов’язані зі станом засобу обмеження за частотою.

Точка входу до програмного інтерфейсу

GET /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 – int

Групи

Нове в версії 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) – Ідентифікатор адреси проєкту

Об’єкт відповіді JSON

Приклад даних JSON:

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

Нове в версії 4.3.

Редагувати проєкт розміщенням запиту PATCH.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

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

Нове в версії 4.3.

Редагувати проєкт розміщенням запиту PUT.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

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

Нове в версії 3.9.

Вилучає проєкт.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

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

Повертає список змін у проєкті. Це, по суті, GET /api/changes/ області видимості проєкту, які приймають ті самі параметри.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

Об’єкт відповіді JSON
GET /api/projects/(string: project)/repository/

Повертає відомості щодо стану репозиторію системи керування версіями. Ця кінцева точка містить лише загальне резюме для усіх репозиторіїв проєкту. Щоб отримати докладні дані щодо стану скористайтеся GET /api/components/(string:project)/(string:component)/repository/.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

Об’єкт відповіді 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) – Ідентифікатор адреси проєкту

Надіслати запит щодо об’єкта 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) – Ідентифікатор адреси проєкту

Об’єкт відповіді JSON
POST /api/projects/(string: project)/components/

Нове в версії 3.9.

Змінено в версії 4.3: У новій версії параметри zipfile і docfile приймаються меншою кількістю складників системи керування версіями, див. Локальні файли.

Змінено в версії 4.6: У нових версіях клоновані репозиторію автоматично спільно використовуються у межах проєкту з використанням Внутрішні адреси Weblate. Скористайтеся disable_autoshare, щоб вимкнути таку поведінку.

Створює складники перекладу у вказаному проєкті.

Підказка

Використовуйте Внутрішні адреси Weblate під час створення кількох складників з одного репозиторію VCS.

Примітка

Більша частина дій зі створення складника виконується у фоновому режимі. Ознайомтеся із документацією до атрибута task_url створеного складника і стежте за поступом за його допомогою.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

Параметри форми
  • file zipfile – Фай ZIP, який слід вивантажити до Weblate для ініціалізації перекладів

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

  • boolean disable_autoshare – Вимикає автоматичне спільне використання репозиторіїв за допомогою Внутрішні адреси Weblate.

Об’єкт відповіді JSON

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

Приклад запиту форми CURL:

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

Приклад запиту JSON CURL:

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) – Ідентифікатор адреси проєкту

Об’єкт відповіді 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) – Ідентифікатор адреси проєкту

Об’єкт відповіді 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді JSON

Приклад даних JSON:

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

Редагувати складник розміщенням запиту PATCH.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • source_language (string) – Код початкової мови проєкту (необов’язковий)

Надіслати запит щодо об’єкта JSON
  • name (string) – назва складника

  • slug (string) – ідентифікатор складника

  • repo (string) – адреса репозиторію системи керування версіями

Приклад для 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)/

Редагувати складник розміщенням запиту PUT.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Надіслати запит щодо об’єкта JSON
  • branch (string) – гілка репозиторію системи керування версіями

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

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

  • name (string) – назва складника

  • slug (string) – ідентифікатор складника

  • repo (string) – адреса репозиторію системи керування версіями

  • template (string) – базовий файл для одномовних перекладів

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

  • vcs (string) – система керування версіями

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

Нове в версії 3.9.

Вилучає складник.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

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

Повертає список змін у складнику. Це, по суті, GET /api/changes/ області видимості складника, які приймають ті самі параметри.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді JSON
GET /api/components/(string: project)/(string: component)/screenshots/

Повертає список знімків вікон складника.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді JSON
GET /api/components/(string: project)/(string: component)/lock/

Повертає стан блокування складника.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді JSON
  • locked (boolean) – визначає, чи заблоковано складник від оновлень

Приклад даних JSON:

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

Установлює стан блокування складника.

Відповідь є тією самою, що і GET /api/components/(string:project)/(string:component)/lock/.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Надіслати запит щодо об’єкта 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Надіслати запит щодо об’єкта 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

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

Завантажує файл шаблона для нових перекладів.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

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

Повертає список об’єктів перекладу у вказаному складнику.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді JSON
POST /api/components/(string: project)/(string: component)/translations/

Створює переклад у вказаному складнику.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Надіслати запит щодо об’єкта JSON
Об’єкт відповіді JSON
  • result (object) – створено об’єкт перекладу

Приклад для CURL:

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

Приклад запиту JSON:

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

{"language_code": "cs"}

Приклад відповіді JSON:

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

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

Повертає поділену на сторінки статистику для усіх перекладів у складнику.

Нове в версії 2.7.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді JSON

Повертає проєкт, який пов’язано зі складником.

Нове в версії 4.5.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Об’єкт відповіді JSON
POST /api/components/(string: project)/(string: component)/links/

Пов’язати проєкт зі складником.

Нове в версії 4.5.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

Параметри форми
  • string project_slug – Ідентифікатор проєкту

Вилучити прив’язку проєкту до складника.

Нове в версії 4.5.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • 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) – Адреса для спільного ресурсу, що веде до сторінки участі

  • total (int) – загальна кількість рядків

  • total_words (int) – загальна кількість слів

  • translate_url (string) – Адреса для перекладу

  • translated (int) – кількість перекладених рядків

  • translated_percent (float) – частка перекладених рядків

  • translated_words (int) – кількість перекладених слів

  • repository_url (string) – Адреса стану репозиторію, див. GET /api/translations/(string:project)/(string:component)/(string:language)/repository/

  • file_url (string) – Адреса об’єкта файла, див. GET /api/translations/(string:project)/(string:component)/(string:language)/file/

  • changes_list_url (string) – Адреса списку змін, див. GET /api/translations/(string:project)/(string:component)/(string:language)/changes/

  • units_list_url (string) – Адреса списку рядків, див. 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • language (string) – Код мови перекладу

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

Повертає список змін у перекладі. Це, по суті, GET /api/changes/ області видимості перекладу, які приймають ті самі параметри.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • language (string) – Код мови перекладу

Об’єкт відповіді JSON
GET /api/translations/(string: project)/(string: component)/(string: language)/units/

Повертає список модулів перекладу.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • language (string) – Код мови перекладу

  • q (string) – Рядок пошукового запиту Пошук (необов’язково)

Об’єкт відповіді JSON
POST /api/translations/(string: project)/(string: component)/(string: language)/units/

Додати новий одномовний модуль.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • language (string) – Код мови перекладу

Надіслати запит щодо об’єкта JSON
  • key (string) – Назва модуля перекладу

  • value (array) – Значення модуля перекладу

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

Перемкнути автоматичний переклад.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • 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/

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

Примітка

Ця кінцева точка програмного інтерфейсу використовує іншу логіку для виведення даних, якщо порівнювати із рештою програмного інтерфейсу, оскільки працює із цілим файлом, а не із даними цього файла. Набір прийнятних значень параметра``format`` є іншим. Без цього параметра ви отримаєте файл перекладу у тому форматі, у якому він зберігається у системі керування версіями.

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

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • language (string) – Код мови перекладу

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

Вивантажити новий файл із перекладами.

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • language (string) – Код мови перекладу

Параметри форми
  • string conflict – Спосіб обробки конфліктів (ignore, replace-translated або replace-approved)

  • file file – Вивантажений файл

  • string email – Адреса ел. пошти автора

  • string author – Ім’я автора

  • string method – Спосіб вивантаження (translate, approve, suggest, fuzzy, replace, source, add), див. Способи імпортування

  • string fuzzy – Обробка неточних (позначених для редагування) перекладів (empty, 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • language (string) – Код мови перекладу

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

Виконує вказану дію над репозиторієм системи керування версіями.

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

Параметри
  • project (string) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • 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) – Ідентифікатор адреси проєкту

  • component (string) – Ідентифікатор адрес складника

  • 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_translate (string) – адреса доступу до перекладу (справжня адреса перекладу)

Модулі

Модуль — окрема одиниця перекладу, яка поєднує початковий рядок із відповідним рядком перекладу, а також містить деякі пов’язані із ними метадані. Термін походить з 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) – Адреса пов’язаного об’єкта перекладу

  • 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) – адреса, за якою можна редагувати модуль

  • souce_unit (string) – Посилання на модуль початкового коду; див. GET /api/units/(int:id)/

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

Нове в версії 4.3.

Виконує часткове оновлення модуля перекладу.

Параметри
  • id (int) – Ід. модуля

Надіслати запит щодо об’єкта JSON
PUT /api/units/(int: id)/

Нове в версії 4.3.

Виконує повне оновлення модуля перекладу.

Параметри
  • id (int) – Ід. модуля

Надіслати запит щодо об’єкта JSON
DELETE /api/units/(int: id)/

Нове в версії 4.3.

Вилучає модуль перекладу.

Параметри
  • id (int) – Ід. модуля

Зміни

Нове в версії 2.10.

GET /api/changes/

Змінено в версії 4.1: Фільтрування змін було впроваджено у випуску 4.1.

Повертає список змін у перекладі.

Дивись також

Атрибути об’єкта зміни документовано у GET /api/units/(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) – адреса пов’язаного об’єкта модуля

  • translation (string) – Адреса пов’язаного об’єкта перекладу

  • component (string) – адреса пов’язаного об’єкта складника

  • user (string) – адреса пов’язаного об’єкта користувача

  • author (string) – адреса або пов’язаний об’єкт автора

  • 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) – адреса пов’язаного об’єкта складника

  • file_url (string) – адреса для отримання файла; див. 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) – Адреса пов’язаного об’єкта перекладу

  • file_url (string) – адреса для отримання файла; див. 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) – адреса пов’язаного об’єкта складника

  • file_url (string) – адреса для отримання файла; див. 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) – адреса пов’язаного об’єкта складника

  • file_url (string) – адреса для отримання файла; див. 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) – адреса пов’язаного об’єкта складника

  • file_url (string) – адреса для отримання файла; див. 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/addons/(int:id)/.

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

Повертає дані щодо додатка.

Параметри
  • id (int) – Ідентифікатор додатка

Об’єкт відповіді JSON
  • name (string) – назва додатка

  • component (string) – адреса пов’язаного об’єкта складника

  • 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) – Ідентифікатор додатка

Об’єкт відповіді JSON
  • configuration (object) – Необов’язкові налаштування додатка

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

Редагувати повні відомості щодо додатка.

Параметри
  • id (int) – Ідентифікатор додатка

Об’єкт відповіді JSON
  • configuration (object) – Необов’язкові налаштування додатка

DELETE /api/addons/(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) – Ідентифікатор складника

Глосарій

Змінено в версії 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:component)/repository/, яка працює належним чином із розпізнаванням для обмежених ACL проєктів.

Вмикає оновлення складника (отримання даних з системи керування версіями і сканування змін у перекладах).

GET /hooks/update/(string: project)/

Застаріло починаючи з версії 2.6: Будь ласка, скористайтеся замість цього POST /api/projects/(string:project)/repository/, яка працює належним чином із розпізнаванням для обмежених ACL проєктів.

Вмикає оновлення усіх складників проєкту (отримання даних із системи керування версіями і сканування змін у перекладах).

POST /hooks/github/

Особливий скрипт для обробки сповіщень GitHub і автоматичного оновлення відповідних складників.

Примітка

До GitHub включено безпосередню підтримку сповіщень Weblate: увімкніть скрипт перехоплення для служби Weblate у параметрах репозиторію і встановіть адресу, яка відповідає встановленому вами екземпляру 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/ee/user/project/integrations/webhooks.html

Загальні відомості щодо вебскриптів GitLab

ENABLE_HOOKS

Вмикання скриптів для усього екземпляра Weblate

POST /hooks/bitbucket/

Особливий скрипт для обробки сповіщень Bitbucket і автоматичного оновлення відповідних складників.

Дивись також

Автоматичне отримання змін з Bitbucket

Настанови щодо налаштовування інтеграції із Bitbucket

https://support.atlassian.com/bitbucket-cloud/docs/manage-webhooks/

Загальні відомості щодо вебскриптів Bitbucket

ENABLE_HOOKS

Вмикання скриптів для усього екземпляра Weblate

POST /hooks/pagure/

Нове в версії 3.3.

Особливий скрипт для обробки сповіщень Pagure і автоматичного оновлення відповідних складників.

Дивись також

Автоматичне отримання змін з Pagure

Настанови щодо налаштовування інтеграції із Pagure

https://docs.pagure.org/pagure/usage/using_webhooks.html

Загальні відомості щодо вебскриптів Pagure

ENABLE_HOOKS

Вмикання скриптів для усього екземпляра Weblate

POST /hooks/azure/

Нове в версії 3.8.

Особливий скрипт для обробки сповіщень Azure Repos і автоматичного оновлення відповідних складників.

Дивись також

Автоматичне отримання змін зі репозиторіїв Azure

Настанови щодо налаштовування інтеграції із Azure

https://docs.microsoft.com/en-us/azure/devops/service-hooks/services/webhooks?view=azure-devops

Загальні відомості щодо вебскриптів репозиторіїв Azure

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/; надає доступ також і до керованих за допомогою ACL проєктів.

Отримує статистичні дані для вказаного складника у вказаному форматі.

Приклад запиту:

GET /exports/stats/weblate/main/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript

Приклад відповіді:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

[
    {
        "code": "cs",
        "failing": 0,
        "failing_percent": 0.0,
        "fuzzy": 0,
        "fuzzy_percent": 0.0,
        "last_author": "Michal Čihař",
        "last_change": "2012-03-28T15:07:38+00:00",
        "name": "Czech",
        "total": 436,
        "total_words": 15271,
        "translated": 436,
        "translated_percent": 100.0,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/cs/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/cs/"
    },
    {
        "code": "nl",
        "failing": 21,
        "failing_percent": 4.8,
        "fuzzy": 11,
        "fuzzy_percent": 2.5,
        "last_author": null,
        "last_change": null,
        "name": "Dutch",
        "total": 436,
        "total_words": 15271,
        "translated": 319,
        "translated_percent": 73.2,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/nl/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/nl/"
    },
    {
        "code": "el",
        "failing": 11,
        "failing_percent": 2.5,
        "fuzzy": 21,
        "fuzzy_percent": 4.8,
        "last_author": null,
        "last_change": null,
        "name": "Greek",
        "total": 436,
        "total_words": 15271,
        "translated": 312,
        "translated_percent": 71.6,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/el/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/el/"
    }
]

RSS-стрічки

Зміни в перекладах експортуються до стрічок RSS.

GET /exports/rss/(string: project)/(string: component)/(string: language)/

Отримує RSS-стрічку з останніми змінами в перекладі.

GET /exports/rss/(string: project)/(string: component)/

Отримує RSS-стрічку з останніми змінами у складнику.

GET /exports/rss/(string: project)/

Отримує RSS-стрічку з останніми змінами у проєкті.

GET /exports/rss/language/(string: language)/

Отримує RSS-стрічку з останніми змінами в мові.

GET /exports/rss/

Отримує RSS-стрічку з останніми змінами в екземплярі Weblate.

Дивись також

RSS у Вікіпедії