Weblate 的 REST API

2.6 新版功能: 从 Weblate 2.6 开始可以使用 REST API。

API 可以在 /api/ URL上访问,并且它基于 Django REST framework。你可以直接使用或参考 Weblate 客户端

身份验证和通用参数

公共项目 API 不需要身份验证就可用,尽管没有身份验证的请求导致严重的瓶颈(默认每天 100 个请求),所以推荐使用身份验证。身份验证使用令牌,这可以在你的简介中得到。在 Authorization 标头中使用它:

ANY /

对于 API的普通请求行为,标头、状态编码和参数在这里也应用于所有端点。

查询参数
  • format – 响应格式(覆盖了 Accept)。可能的值依赖于 REST 框架设置,默认支持 jsonapi。后者为 API 提供了 web 浏览器接口。

  • page – Returns given page of paginated results (use next and previous fields in response to automate the navigation).

请求标头
  • Accept – 相应内容的类型依赖于 Accept 标头

  • Authorization – 验证为 ``Authorization: Token YOUR-TOKEN``的可选令牌

响应标头
响应 JSON 对象
  • detail (string) – 结果的详细描述(对于 200 OK 以外的 HTTP 状态编码)

  • count (int) – 对象列表的总项目计数

  • next (string) – 对象列表的下一页 URL

  • previous (string) – 对象列表的上一页 URL

  • results (array) – 对象列表的结果

  • url (string) – 使用 API 访问这个资源的 URL

  • web_url (string) – 使用浏览器访问这个资源的 URL

状态编码

身份验证的例子

示例请求:

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

示例响应:

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

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

CURL 示例:

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

传递参数的示例

对于 POST 方法,参数可以指定为表格提交(application/x-www-form-urlencoded)或 JSON (application/json)。

表格请求示例:

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

operation=pull

JSON 请求的示例:

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

{"operation":"pull"}

CURL 示例:

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

CURL JSON 示例:

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

API 频次限制

这个 API 请求限制了速率;对于匿名用户默认配置限制为每天 100 个请求,对于身份验证的用户限制为每小时 5000 个请求。

速率限制可以在 settings.py 中调整;如何配置它的更多细节请参见 Throttling in Django REST framework documentation

速率限制在后面的标头中报告:

X-RateLimit-Limit

要执行的对速率限制进行限制的请求

X-RateLimit-Remaining

保持限制的请求

X-RateLimit-Remaining

直到速率限制窗口重置时的秒数

在 4.1 版更改: 添加速率限制状态的标头。

API 入口点

GET /api/

API 根入口点。

示例请求:

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

示例响应:

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

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

用户

4.0 新版功能.

GET /api/users/

返回用户列表,如果有权限查看管理用户的话。如果没有,那么会只看到自己的具体信息。

参见

用户对象属性被归档在 GET /api/users/(str:username)/

POST /api/users/

创建新用户。

参数
  • username (string) – 用户名

  • full_name (string) – 用户全名

  • email (string) – 用户电子邮箱

  • is_superuser (boolean) – 用户是超级用户吗?(可选的)

  • is_active (boolean) – 用户是活动用户吗?(可选的)

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

返回用户的信息。

参数
  • username (string) – 用户的用户名

响应 JSON 对象
  • username (string) – 用户的用户名

  • full_name (string) – 用户的全名

  • email (string) – 用户的电子邮箱

  • is_superuser (boolean) – 用户是否是超级用户

  • is_active (boolean) – 用户是否是活动用户

  • date_joined (string) – 创建用户的日期

  • groups (array) – 连接到关联的组;请参见 GET /api/groups/(int:id)/

示例 JSON 数据:

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

更改用户参数。

参数
  • username (string) – 用户的用户名

响应 JSON 对象
  • username (string) – 用户的用户名

  • full_name (string) – 用户的全名

  • email (string) – 用户的电子邮箱

  • is_superuser (boolean) – 用户是否是超级用户

  • is_active (boolean) – 用户是否是活动用户

  • date_joined (string) – 创建用户的日期

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

更改用户参数。

参数
  • username (string) – 用户的用户名

响应 JSON 对象
  • username (string) – 用户的用户名

  • full_name (string) – 用户的全名

  • email (string) – 用户的电子邮箱

  • is_superuser (boolean) – 用户是否是超级用户

  • is_active (boolean) – 用户是否是活动用户

  • date_joined (string) – 创建用户的日期

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

删除所有的用户信息并将用户标记为不活动用户。

参数
  • username (string) – 用户的用户名

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

将群组与用户关联。

参数
  • username (string) – 用户的用户名

表格参数
  • string group_id – 唯一的群组 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) – 已注册通知ID

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

编辑与用户关联的订阅。

参数
  • username (string) – 用户的用户名

  • subscription_id (int) – 已注册通知ID

请求 JSON 对象
  • notification (string) – 注册通知的名称

  • scope (int) – 来自可用选择的通知范围

  • frequency (int) – 通知的频率选择

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

编辑与用户关联的订阅。

参数
  • username (string) – 用户的用户名

  • subscription_id (int) – 已注册通知ID

请求 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) – 群组的 ID

响应 JSON 对象

示例 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) – 群组的 ID

响应 JSON 对象
  • name (string) – 群组的名称

  • project_selection (int) – 相应于对象群组的整数

  • language_selection (int) – 相应于语言群组的整数

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

更改群组参数。

参数
  • id (int) – 群组的 ID

响应 JSON 对象
  • name (string) – 群组的名称

  • project_selection (int) – 相应于对象群组的整数

  • language_selection (int) – 相应于语言群组的整数

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

删除群组。

参数
  • id (int) – 群组的 ID

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

将角色与群组关联。

参数
  • id (int) – 群组的 ID

表格参数
  • string role_id – 唯一的角色 ID

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

将组件与群组关联。

参数
  • id (int) – 群组的 ID

表格参数
  • string component_id – 唯一的组件 ID

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

从群组删除组件。

参数
  • id (int) – 群组的 ID

  • component_id (int) – 唯一的组件 ID

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

将项目与群组关联。

参数
  • id (int) – 群组的 ID

表格参数
  • string project_id – 唯一的项目 ID

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

从群组删除项目。

参数
  • id (int) – 群组的 ID

  • project_id (int) – 唯一的项目 ID

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

将语言与群组关联。

参数
  • id (int) – 群组的 ID

表格参数
  • string language_code – 唯一的语言代码

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

从群组删除语言。

参数
  • id (int) – 群组的 ID

  • language_code (string) – 唯一的语言代码

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

将组件列表与群组关联。

参数
  • id (int) – 群组的 ID

表格参数
  • string component_list_id – 唯一的组件列表 ID

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

从群组删除组件列表。

参数
  • id (int) – 群组的 ID

  • component_list_id (int) – 唯一的组件列表 ID

角色

GET /api/roles/

返回与用户关联的所有角色列表。如果用户是超级用户,那么返回所有现有角色的列表。

参见

角色对象属性归档在 GET /api/roles/(int:id)/

POST /api/roles/

创建新角色。

参数
  • name (string) – 角色名称

  • permissions (array) – 权限编码名称的列表

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

返回角色的信息。

参数
  • id (int) – 角色 ID

响应 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) – 角色的ID

响应 JSON 对象
  • name (string) – 角色名称

  • permissions (array) – 权限编码名称的列表

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

更改角色参数。

参数
  • id (int) – 角色的ID

响应 JSON 对象
  • name (string) – 角色名称

  • permissions (array) – 权限编码名称的列表

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

删除角色。

参数
  • id (int) – 角色的ID

语言

GET /api/languages/

返回所有语言的列表。

参见

语言对象属性存档在 GET /api/languages/(string:language)/

POST /api/languages/

创建新的语言。

参数
  • code (string) – 语言名称

  • name (string) – 语言名称

  • direction (string) – 文字方向

  • plural (object) – 语言复数形式与数字

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

返回语言的信息。

参数
  • language (string) – 语言代码

响应 JSON 对象
  • code (string) – 语言代码

  • direction (string) – 文字方向

  • plural (object) – 语言复数信息的对象

  • aliases (array) – 语言别名的数组

示例 JSON 数据:

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

更改语言参数。

参数
  • language (string) – 语言的编码

请求 JSON 对象
  • name (string) – 语言名称

  • direction (string) – 文字方向

  • plural (object) – 语言复数的细节

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

更改语言参数。

参数
  • language (string) – 语言的编码

请求 JSON 对象
  • name (string) – 语言名称

  • direction (string) – 文字方向

  • plural (object) – 语言复数的细节

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

删除该语言。

参数
  • language (string) – 语言的编码

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

返回语言的统计数据。

参数
  • language (string) – 语言代码

响应 JSON 对象
  • total (int) – 字符串的总数

  • total_words (int) – 词的总数

  • last_change (timestamp) – 语言的上一次更改

  • recent_changes (int) – 更改的总数

  • translated (int) – 已翻译的字符串数量

  • translated_percent (float) – 已翻译字符串的百分比

  • translated_words (int) – 已翻译词的数量

  • translated_words_percent (int) – 已翻译词的百分比

  • translated_chars (int) – 已翻译字符的数量

  • translated_chars_percent (int) – 已翻译字符的百分比

  • total_chars (int) – 总字符的数量

  • fuzzy (int) – 模糊字符串 (标记为需要编辑)的数量

  • fuzzy_percent (int) – 模糊字符串 (标记为需要编辑)的百分比

  • failing (int) – 失败字符串的数量

  • failing – 失败字符串的百分比

项目

GET /api/projects/

返回所有项目的列表。

参见

项目对象的属性存档在 GET /api/projects/(string:project)/

POST /api/projects/

3.9 新版功能.

创建新项目。

参数
  • name (string) – 项目名称

  • slug (string) – 项目标识串

  • web (string) – 项目网站

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

返回项目的信息。

参数
  • project (string) – 项目 URL 标识串

响应 JSON 对象

示例 JSON 数据:

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

4.3 新版功能.

通过 PATCH 请求来编辑一个项目。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

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

4.3 新版功能.

通过 PUT 请求来编辑一个项目。

参数
  • project (string) – 项目 URL 标识串

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

3.9 新版功能.

删除项目。

参数
  • project (string) – 项目 URL 标识串

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

返回项目更改的列表。这本质上是仔细检查的项目 GET /api/changes/ 接收相同的参数。

参数
  • project (string) – 项目 URL 标识串

响应 JSON 对象
GET /api/projects/(string: project)/repository/

返回版本控制系统(VCS)仓库状态的信息。这个端点只包含项目所有仓库的整体概况。为了得到更多细节,请使用 GET /api/components/(string:project)/(string:component)/repository/

参数
  • project (string) – 项目 URL 标识串

响应 JSON 对象
  • needs_commit (boolean) – 是否有待定的更改要提交

  • needs_merge (boolean) – 是否有上游更改要合并

  • needs_push (boolean) – 是否有本地更改要推送

示例 JSON 数据:

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

在版本控制系统(VCS)仓库上执行给定的操作。

参数
  • project (string) – 项目 URL 标识串

请求 JSON 对象
  • operation (string) – 要执行的操作: one of push, pull, commit, reset, cleanup, file-sync

响应 JSON 对象
  • result (boolean) – 操作的结果

CURL 示例:

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

JSON 请求的示例:

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

{"operation":"pull"}

JSON 响应的示例:

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

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

返回给定项目的翻译组件列表。

参数
  • project (string) – 项目 URL 标识串

响应 JSON 对象
POST /api/projects/(string: project)/components/

3.9 新版功能.

在 4.3 版更改: zipfiledocfile 参数现在可被无 VCS 的组件所接受,见 Local files.

在 4.6 版更改: The cloned repositories are now automatically shared within a project using Weblate internal URLs. Use disable_autoshare to turn off this.

在给定的项目中新建翻译组件。

提示

Use Weblate internal URLs when creating multiple components from a single VCS repository.

注解

多数组件的新建发生在后台。检查新建组件的 task_url 属性,并按照那里的步骤进行。

参数
  • project (string) – 项目 URL 标识串

表格参数
  • file zipfile – 上传到 Weblate 用于翻译初始化的 ZIP 文件

  • file docfile – 要翻译的文档

  • boolean disable_autoshare – Disables automatic repository sharing via Weblate internal URLs.

响应 JSON 对象

JSON can not be used when uploading the files using the zipfile and docfile parameters. The data has to be uploaded as multipart/form-data.

CURL表单请求示例:

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

CURL JSON 请求的示例:

curl \
    --data-binary '{
        "branch": "main",
        "file_format": "po",
        "filemask": "po/*.po",
        "git_export": "",
        "license": "",
        "license_url": "",
        "name": "Weblate",
        "slug": "weblate",
        "repo": "file:///home/nijel/work/weblate-hello",
        "template": "",
        "new_base": "",
        "vcs": "git"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

JSON 请求的示例:

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

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "vcs": "git"
}

JSON 响应的示例:

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

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

对项目内的所有语言返回编页的统计数据。

3.8 新版功能.

参数
  • project (string) – 项目 URL 标识串

响应 JSON 对象
  • results (array) – 翻译统计数据对象的矩阵

  • language (string) – 语言名称

  • code (string) – 语言代码

  • total (int) – 字符串的总数

  • translated (int) – 已翻译的字符串数量

  • translated_percent (float) – 已翻译字符串的百分比

  • total_words (int) – 词的总数

  • translated_words (int) – 已翻译词的数量

  • words_percent (float) – 已翻译词的百分比

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

返回项目的统计数据。

3.8 新版功能.

参数
  • project (string) – 项目 URL 标识串

响应 JSON 对象
  • total (int) – 字符串的总数

  • translated (int) – 已翻译的字符串数量

  • translated_percent (float) – 已翻译字符串的百分比

  • total_words (int) – 词的总数

  • translated_words (int) – 已翻译词的数量

  • words_percent (float) – 已翻译词的百分比

组件

GET /api/components/

返回翻译组件的列表。

参见

组件对象属性存档在 GET /api/components/(string:project)/(string:component)/

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

返回翻译组件的信息。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象

示例 JSON 数据:

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

通过 PATCH 请求编辑一个组件。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • source_language (string) – 项目源语言代码(可选)

请求 JSON 对象
  • name (string) – 组件名称

  • slug (string) – 组件的标识串

  • repo (string) – 版本控制系统(VCS)仓库的URL

CURL 示例:

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

JSON 请求的示例:

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

{
    "name": "new name"
}

JSON 响应的示例:

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

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

通过 PUT 请求编辑一个组件。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

请求 JSON 对象
  • branch (string) – 版本控制系统(VCS)仓库分支

  • file_format (string) – 翻译的文件格式

  • filemask (string) – 仓库中翻译的文件掩码

  • name (string) – 组件名称

  • slug (string) – 组件的标识串

  • repo (string) – 版本控制系统(VCS)仓库的URL

  • template (string) – 但语言翻译的译文模板文件

  • new_base (string) – 用于添加新翻译的译文模板文件

  • vcs (string) – 版本控制系统

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

3.9 新版功能.

删除组件。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

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

返回组件更改的列表。这本质上是仔细检查的组件 :http:get:`/api/changes/`接相同参数。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象
GET /api/components/(string: project)/(string: component)/screenshots/

返回组件屏幕截图的列表。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象
GET /api/components/(string: project)/(string: component)/lock/

返回组件锁定状态。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象
  • locked (boolean) – 组件是否因更新而锁定

示例 JSON 数据:

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

设置组件锁定状态。

响应时间与 :http:get:`/api/components/(string:project)/(string:component)/lock/`相同。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

请求 JSON 对象
  • lock – 是否锁定的布尔值。

CURL 示例:

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

JSON 请求的示例:

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

{"lock": true}

JSON 响应的示例:

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

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

返回版本控制系统(VCS)仓库状态的信息。

响应与 GET /api/projects/(string:project)/repository/ 的相同。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象
  • needs_commit (boolean) – 是否有待定的更改要提交

  • needs_merge (boolean) – 是否有上游更改要合并

  • needs_push (boolean) – 是否有本地更改要推送

  • remote_commit (string) – 远程提交信息

  • status (string) – 由版本控制系统(VCS)报告的 VCS 状态

  • merge_failure – 描述合并失败的文本,没有的话为空

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

在版本控制系统(VCS)仓库执行给定的操作。

文档请参见 POST /api/projects/(string:project)/repository/

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

请求 JSON 对象
  • operation (string) – 执行的操作: push, pull, commit, reset, ``cleanup``之一

响应 JSON 对象
  • result (boolean) – 操作的结果

CURL 示例:

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

JSON 请求的示例:

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

{"operation":"pull"}

JSON 响应的示例:

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

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

为单语言翻译下载译文模板文件。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

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

为新的翻译下载模板文件。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

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

返回给定组件中翻译对象的列表。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象
POST /api/components/(string: project)/(string: component)/translations/

在给定组件中新建新的翻译。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

请求 JSON 对象
响应 JSON 对象
  • result (object) – 新建的新翻译对象

CURL 示例:

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

JSON 请求的示例:

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

{"language_code": "cs"}

JSON 响应的示例:

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

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

对组件内所有的翻译返回分页的统计数据。

2.7 新版功能.

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象

返回与组件相连的项目。

4.5 新版功能.

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

响应 JSON 对象
POST /api/components/(string: project)/(string: component)/links/

将项目与一个组件相关联。

4.5 新版功能.

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

表格参数
  • string project_slug – 项目标识串

删除项目与组件的关联性。

4.5 新版功能.

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • project_slug (string) – 要移除的项目的地址

翻译

GET /api/translations/

返回翻译的列表。

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

返回翻译的信息。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

响应 JSON 对象

示例 JSON 数据:

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

3.9 新版功能.

删除翻译。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

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

返回翻译更改的列表。这本质上是仔细检查的翻译 :http:get:`/api/changes/`接受相同参数。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

响应 JSON 对象
GET /api/translations/(string: project)/(string: component)/(string: language)/units/

返回翻译单元的列表。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

  • q (string) – 搜索查询字符串 :ref:`Searching`(可选)

响应 JSON 对象
POST /api/translations/(string: project)/(string: component)/(string: language)/units/

添加新的单语言单元。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

请求 JSON 对象
  • key (string) – 翻译单元的名称

  • value (array) – 翻译单元值

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

触发自动翻译。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

请求 JSON 对象
  • mode (string) – 自动翻译模式

  • filter_type (string) – 自动翻译筛选类型

  • auto_source (string) – 自动翻译来源 - mtothers

  • component (string) – 为项目打开对共享翻译记忆库的贡献,以访问其他组件。

  • engines (array) – 机器翻译引擎

  • threshold (string) – 匹配分数阈值

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

下载存储在 VCS 中的当前翻译文件(不带 ``format``参数)或将其转换为另一格式(见 Downloading translations)。

注解

这个 API 端点使用了不同于API其余的逻辑来输出,它在整个文件而不是在数据上操作。接受的``format``参数组不同,没有这个参数会将翻译文件存储在版本控制系统(VCS)中。

查询参数
  • format – 使用的文件格式;如果不指定,则不会进行格式转换;支持的文件格式有:po, mo, xliff, xliff11, tbx, csv, xlsx, json, aresource, strings

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

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

上传带有翻译的新文件。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

表格参数
  • string conflict – 如何处理冲突(ignore, replace-translated or replace-approved

  • file file – 上传文件

  • string email – 作者邮箱

  • string author – 作者姓名

  • string method – 上传方法 (translate, approve, suggest, fuzzy, replace, source, add),见 Import methods

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

返回版本控制系统(VCS)仓库状态的信息。

响应与 :http:get:`/api/components/(string:project)/(string:component)/repository/`的相同。

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

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

在版本控制系统(VCS)仓库上执行给定的操作。

文档请参见 POST /api/projects/(string:project)/repository/

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

请求 JSON 对象
  • operation (string) – 执行的操作: push, pull, commit, reset, ``cleanup``之一

响应 JSON 对象
  • result (boolean) – 操作的结果

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

返回具体的翻译统计数据。

2.7 新版功能.

参数
  • project (string) – 项目 URL 标识串

  • component (string) – 组件 URL 标识串

  • language (string) – 翻译语言代码

响应 JSON 对象
  • code (string) – 语言代码

  • failing (int) – 检查失败的数量

  • failing_percent (float) – 检查失败的百分比

  • fuzzy (int) – 模糊字符串 (标记为需要编辑)的数量

  • fuzzy_percent (float) – 模糊字符串 (标记为需要编辑)的百分比

  • total_words (int) – 词的总数

  • translated_words (int) – 已翻译词的数量

  • last_author (string) – 最后一位作者的姓名

  • last_change (timestamp) – 上次更改的日期

  • name (string) – 语言名称

  • total (int) – 字符串的总数

  • translated (int) – 已翻译的字符串数量

  • translated_percent (float) – 已翻译字符串的百分比

  • url (string) – 访问翻译的 URL (约定的 URL)

  • url_translate (string) – 访问翻译的 URL (真实翻译的 URL)

单元

A unit is a single piece of a translation which pairs a source string with a corresponding translated string and also contains some related metadata. The term is derived from the Translate Toolkit and XLIFF.

2.10 新版功能.

GET /api/units/

返回翻译单元的列表。

参见

单元对象属性存档在 GET /api/units/(int:id)/

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

在 4.3 版更改: targetsource 现在是矩阵,来适当的处理多个字符串。

返回翻译单元的信息。

参数
  • id (int) – 单元 ID

响应 JSON 对象
  • translation (string) – 相关翻译对象的 URL

  • source (array) – 源字符串

  • previous_source (string) – 用于模糊匹配的之前的源字符串

  • target (array) – 目标字符串

  • id_hash (string) – 单元的唯一识别文字

  • content_hash (string) – 源字符串的唯一识别文字

  • location (string) – 源代码中单元的位置

  • context (string) – 翻译单元的语境

  • note (string) – 翻译单元的注解

  • flags (string) – 翻译单元的标记

  • state (int) – 单元状态,0——未翻译,10——需要编辑,20——已翻译,30——以通过,100——只读

  • fuzzy (boolean) – 是否该单元是模糊的或标记为需要检查

  • translated (boolean) – 单元是否被翻译

  • approved (boolean) – 翻译是否被核准

  • position (int) – 翻译文件中的单元位置

  • has_suggestion (boolean) – 单元是否有翻译建议

  • has_comment (boolean) – 单元是否有注释

  • has_failing_check (boolean) – 单元是否有未通过检查的翻译

  • num_words (int) – 源词汇的数量

  • priority (int) – 翻译优先级;100为默认值

  • id (int) – 单元识别问题

  • explanation (string) – 字符串的解释,可在源单元获得,请参见 源字符串另外的信息

  • extra_flags (string) – 另外的字符串标记,可在源单元获得,请参见 使用标志定制行为

  • web_url (string) – 单元可以被编辑的 URL

  • souce_unit (string) – 源单元链接;请参见 GET /api/units/(int:id)/

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

4.3 新版功能.

对翻译单元执行部分更新。

参数
  • id (int) – 单元 ID

请求 JSON 对象
  • state (int) – 单元状态, 0 - 未翻译, 10 - 需要编辑, 20 - 已翻译, 30 - 已批准 (需启用审核工作流, 见 专门的审核者)

  • target (array) – 目标字符串

  • explanation (string) – 字符串的解释,可在源单元获得,请参见 源字符串另外的信息

  • extra_flags (string) – 另外的字符串标记,可在源单元获得,请参见 使用标志定制行为

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

4.3 新版功能.

对翻译单元执行完整翻译。

参数
  • id (int) – 单元 ID

请求 JSON 对象
  • state (int) – 单元状态, 0 - 未翻译, 10 - 需要编辑, 20 - 已翻译, 30 - 已批准 (需启用审核工作流, 见 专门的审核者)

  • target (array) – 目标字符串

  • explanation (string) – 字符串的解释,可在源单元获得,请参见 源字符串另外的信息

  • extra_flags (string) – 另外的字符串标记,可在源单元获得,请参见 使用标志定制行为

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

4.3 新版功能.

删除一个翻译单元。

参数
  • id (int) – 单元 ID

变更

2.10 新版功能.

GET /api/changes/

在 4.1 版更改: 更改的筛选在 4.1 版本引入。

返回翻译更改的列表。

参见

更改对象的属性存档在 GET /api/changes/(int:id)/

查询参数
  • user (string) – 筛选用户的用户名

  • action (int) – 筛选的动作,可以多次使用

  • timestamp_after (timestamp) – ISO 8601 格式的时间标签,列出此时间之后的更改

  • timestamp_before (timestamp) – ISO 8601 格式的时间标签,列出此时间之前的更改

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

返回有关翻译更改的信息。

参数
  • id (int) – 更改的ID

响应 JSON 对象
  • unit (string) – 相关单元对象的 URL

  • translation (string) – 相关翻译对象的 URL

  • component (string) – 相关组件对象的 URL

  • user (string) – 相关用户对象的 URL

  • author (string) – 相关作者对象的 URL

  • timestamp (timestamp) – 时间的时间标签

  • action (int) – 动作的几种识别

  • action_name (string) – 动作的文本描述

  • target (string) – 更改的事件的文本或细节

  • id (int) – 更改的识别文字

截图

2.14 新版功能.

GET /api/screenshots/

返回屏幕截图字符串信息的列表。

参见

屏幕截图对象的属性存档在 GET /api/screenshots/(int:id)/

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

返回与屏幕截图信息有关的信息。

参数
  • id (int) – 屏幕截图的 ID

响应 JSON 对象
GET /api/screenshots/(int: id)/file/

下载屏幕截图的图片。

参数
  • id (int) – 屏幕截图的 ID

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

替换屏幕截图。

参数
  • id (int) – 屏幕截图的 ID

表格参数
  • 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) – 屏幕截图的 ID

表格参数
  • string unit_id – 单元 ID

响应 JSON 对象
DELETE /api/screenshots/(int: id)/units/(int: unit_id)

删除与截图关联的源字符串。

参数
  • id (int) – 屏幕截图的 ID

  • unit_id – 源字符串单元 ID

POST /api/screenshots/

新建新的屏幕截图。

表格参数
  • file image – 上传文件

  • string name – 截图名称

  • string project_slug – 项目标识串

  • string component_slug – 组件标识串

  • string language_code – 语言代码

响应 JSON 对象
PATCH /api/screenshots/(int: id)/

编辑截屏的部分信息。

参数
  • id (int) – 屏幕截图的 ID

响应 JSON 对象
PUT /api/screenshots/(int: id)/

编辑截屏的完整信息。

参数
  • id (int) – 屏幕截图的 ID

响应 JSON 对象
DELETE /api/screenshots/(int: id)/

删除截图。

参数
  • id (int) – 屏幕截图的 ID

附加组件

4.4.1 新版功能.

GET /api/addons/

返回附加组件的列表。

参见

附加组件对象属性记录在 GET /api/units/(int:id)/

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

返回有关附加组件的信息。

参数
  • id (int) – 附加组件 ID

响应 JSON 对象
  • name (string) – 组件名称

  • component (string) – 相关组件对象的 URL

  • configuration (object) – 最优附加组件配置

参见

附加组件

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

创建新附加组件。

参数
  • project_slug (string) – 项目标识串

  • component_slug (string) – 组件标识串

请求 JSON 对象
  • name (string) – 组件名称

  • configuration (object) – 最优附加组件配置

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

编辑附加组件的部分信息。

参数
  • id (int) – 附加组件 ID

响应 JSON 对象
  • configuration (object) – 最优附加组件配置

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

编辑附加组件的完整信息。

参数
  • id (int) – 附加组件 ID

响应 JSON 对象
  • configuration (object) – 最优附加组件配置

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

删除附加组件。

参数
  • id (int) – 附加组件 ID

组件列表

4.0 新版功能.

GET /api/component-lists/

返回组件列表的列表。

参见

组件列表对象属性存档在 GET /api/component-lists/(str:slug)/

GET /api/component-lists/(str: slug)/

返回组件列表的信息。

参数
  • slug (string) – 组件列表的标识串

响应 JSON 对象
  • name (string) – 组件列表的名称

  • slug (string) – 组件列表的表示串

  • show_dashboard (boolean) – 是否在控制台上显示

  • components (array) – 相关联组件的连接;请参见 GET /api/components/(string:project)/(string:component)/

  • auto_assign (array) – 自动分配规则

PUT /api/component-lists/(str: slug)/

更改组件列表参数。

参数
  • slug (string) – 组件列表的标识串

请求 JSON 对象
  • name (string) – 组件列表的名称

  • slug (string) – 组件列表的表示串

  • show_dashboard (boolean) – 是否在控制台上显示

PATCH /api/component-lists/(str: slug)/

更改组件列表参数。

参数
  • slug (string) – 组件列表的标识串

请求 JSON 对象
  • name (string) – 组件列表的名称

  • slug (string) – 组件列表的表示串

  • show_dashboard (boolean) – 是否在控制台上显示

DELETE /api/component-lists/(str: slug)/

删除组件列表。

参数
  • slug (string) – 组件列表的标识串

POST /api/component-lists/(str: slug)/components/

使组件与组件列表相关。

参数
  • slug (string) – 组件列表的标识串

表格参数
  • string component_id – 组件 ID

DELETE /api/component-lists/(str: slug)/components/(str: component_slug)

将组件与组件列表接触相关性。

参数
  • slug (string) – 组件列表的标识串

  • component_slug (string) – 组件标识串

语汇表

在 4.5 版更改: Glossaries are now stored as regular components, translations and strings, please use respective API instead.

任务

4.4 新版功能.

GET /api/tasks/

任务列表当前不可用。

GET /api/tasks/(str: uuid)/

返回任务信息

参数
  • uuid (string) – 任务 UUID

响应 JSON 对象
  • completed (boolean) – 任务是否已完成

  • progress (int) – 任务进度百分比

  • result (object) – 任务结果或过程细节

  • log (string) – 任务日志

Metrics

GET /api/metrics/

Returns server 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 版本控制系统(VCS)仓库已经更新。

可以为项目、组件和翻译使用仓库端点来更新各自的仓库;文档请参见 POST /api/projects/(string:project)/repository/

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

2.6 版后已移除: 请使用 POST /api/components/(string:project)/(string:component)/repository/ 来替代,它使用 ACL 限制的身份验证而工作正常。

触发组件的更新(从版本控制系统 VCS 拉取并扫描翻译的更改)。

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

2.6 版后已移除: 请使用 POST /api/projects/(string:project)/repository/ 来替代,它使用 ACL 限制的身份验证而工作正常。

触发项目中所有组件的更新(从版本控制系统 VCS 拉取并扫描翻译的更改)。

POST /hooks/github/

处理 Github 通知与自动更新匹配组件的特殊钩子。

注解

Github 包括了对通知 Weblate 的直接支持:在仓库设置中启动 Weblate 服务钩子,并将 URL 设置为你的 Weblate 安装的 URL。

参见

从 GitHub 自动接收更改

关于设置 Github 集成的指令

https://docs.github.com/en/github/extending-github/about-webhooks

GitHub Webhooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

POST /hooks/gitlab/

处理 GitLab 通知并自动更新匹配组件的特殊钩子。

参见

从 GitLab 自动接收更改

关于设置 GitLab 集成的指示

https://docs.gitlab.com/ce/user/project/integrations/webhooks.html

关于 GitLab Webhooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

POST /hooks/bitbucket/

处理 Bitbucket 通知并自动更新匹配的组件的特殊钩子。

参见

从 Bitbucket 自动接收更改

关于设置 Bitbucket 集成的指示

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

关于 Bitbucket Webhooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

POST /hooks/pagure/

3.3 新版功能.

处理 Pagure 通知并自动更新匹配的组件的特殊钩子。

参见

从 Pagure 自动接受更改

关于设置 Pagure 集成的指示

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

关于 Pagure Webhooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

POST /hooks/azure/

3.8 新版功能.

处理 Azure Repos 通知并自动更新匹配的组件的特殊钩子。

参见

从 Azure Repos 自动接收更改

关于设置 Azure 集成的指示

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

关于 Azure Repos Web Hooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

POST /hooks/gitea/

3.9 新版功能.

处理 Gitea Webhook 通知并自动更新匹配的组件的特殊钩子。

参见

从 Gitea Repos 自动接收更改

关于设置 Gitea 集成的指示

https://docs.gitea.io/en-us/webhooks/

关于 Gitea Webhooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

POST /hooks/gitee/

3.9 新版功能.

处理 Gitee Webhook 通知并自动更新匹配的组件的特殊钩子。

参见

从 Gitee Repos 自动接收更改

关于设置 Gitee 集成的指示

https://gitee.com/help/categories/40

关于 Gitee Webhooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

导出

Weblate 提供各种导出,允许进一步处理数据。

GET /exports/stats/(string: project)/(string: component)/
查询参数
  • format (string) – 输出格式: jsoncsv

为给定的组件以给定的格式检索统计数据。

请求的示例

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/

用 Weblate 事件的近期更改检索 RSS 频道。