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

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

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

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

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

ANY /

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

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

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

  • Authorization – необов’язковий ключ для розпізнавання

Заголовки відповіді
  • 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 – якщо запит було оброблено коректно

  • 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

Об’єкт відповіді 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 приймаються меншою кількістю компонентів системи керування версіями, див. Локальні файли.

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

Підказка

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

Примітка

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

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

Надіслати запит щодо об’єкта JSON
  • zipfile (file) – Фай ZIP, який слід вивантажити до Weblate для ініціалізації перекладів

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

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

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

Об’єкт відповіді 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": "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)/

Редагувати складник розміщенням запиту 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": "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)/

Редагувати складник розміщенням запиту 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": "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) – Ідентифікатор адреси проєкту

  • 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 (string) – Значення модуля перекладу

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) – Джерело автоматичного перекладу

  • component (string) – Щоб отримати доступ до додаткових складників, увімкніть спільний внесок у пам’ять перекладів для проєкту.

  • engines (string) – Рушії комп’ютерного перекладу

  • 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 conflicts – Спосіб обробки конфліктів (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) – Журнал завдань

Обробники сповіщень

Обробники сповіщень надають змогу стороннім програмам сповіщати 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/ce/user/project/integrations/webhooks.html

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

ENABLE_HOOKS

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

POST /hooks/bitbucket/

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

Дивись також

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

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

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

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

ENABLE_HOOKS

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

POST /hooks/pagure/

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

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

Дивись також

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

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

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

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

ENABLE_HOOKS

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

POST /hooks/azure/

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

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

Дивись також

Автоматичне отримання змін зі сховищ Azure

Настанови щодо налаштовування інтеграції із 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/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.

Дивись також

RSS у Вікіпедії