Weblate 的 REST API

在 2.6 版本加入: 从 Weblate 2.6 开始可以使用 REST API。

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

身份验证和通用参数

公共项目的 API 无需身份验证即可使用,但未经身份验证的请求会受到严格的限制(默认为每天 100 个请求),所以建议使用身份验证。身份验证使用令牌,你可以在你的个人资料中获取该令牌。在 Authorization 标头中使用它:

ANY /

API 的通用请求行为、标头、状态码和此处的参数也适用于所有端点。

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

  • page – 返回给定页面的分页结果(使用 nextprevious 字段来响应的自动导航).

请求标头
  • 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

状态码

身份验证令牌

在 4.10 版本发生变更: 在 4.10 版本中引入了项目范围的令牌。

每个用户都有自己的个人访问令牌,可以在用户档案中获得。新生成的用户访问令牌带有 wlu_ 前缀。

可以创建项目范围的访问令牌,只用于访问指定项目的 API。这些访问令牌带有 wlp_ 前缀。

身份验证的示例

示例请求:

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

在 Docker 容器中可使用 WEBLATE_API_RATELIMIT_ANONWEBLATE_API_RATELIMIT_USER 对此进行配置。

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

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) – 用户是活动用户吗?(可选的)

  • is_bot (boolean) – 用户是机器人吗?(可选)(用于项目范围内的访问令牌)

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

返回用户的信息。

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

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

  • full_name (string) – 用户的全名

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

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

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

  • is_bot (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,
    "is_bot": false,
    "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) – 用户是否是活动用户

  • is_bot (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) – 用户是否是活动用户

  • is_bot (boolean) – 用户是否是机器人(用于项目范围的令牌)

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

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

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

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

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

将群组与用户关联。

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

表单参数
  • string group_id – 唯一的群组 ID

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

在 4.13.1 版本加入.

从组中删除用户。

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

创建新的群组。

参数
GET /api/groups/(int: id)/

返回群组的信息。

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

响应 JSON 对象

示例 JSON 数据:

{
    "name": "Guests",
    "defining_project": null,
    "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) – 文字方向

  • population (int) – 语言使用者数量

  • plural (object) – 语言复数公式和数量

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

返回语言的信息。

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

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

  • direction (string) – 文字方向

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

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

请求 JSON 对象
  • population (int) – 语言使用者数量

示例 JSON 数据:

{
    "code": "en",
    "direction": "ltr",
    "name": "English",
    "population": 159034349015,
    "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) – 文字方向

  • population (int) – 语言使用者数量

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

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

更改语言参数。

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

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

  • direction (string) – 文字方向

  • population (int) – 语言使用者数量

  • 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) – 要执行的操作:pushpullcommitresetcleanupfile-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 的部件所接受,见 本地文件.

在 4.6 版本发生变更: 克隆的仓库现在可以使用 Weblate 内部网址. 使用 disable_autoshare 关闭此功能。

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

提示

从单个版本控制系统(VCS)仓库创建多个部件时,请使用 Weblate 内部网址

备注

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

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

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

  • file docfile – 要翻译的文档

  • boolean disable_autoshare – 禁用通过 :ref:`internal-urls`自动共享仓库。

请求 JSON 对象
响应 JSON 对象

使用``zipfile`` 上传文件时无法使用 JSON 和``docfile``参数数据必须以 :mimetype:`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",
        "name": "Weblate",
        "slug": "weblate",
        "repo": "https://github.com/WeblateOrg/hello.git",
        "template": "",
        "new_base": "po/hello.pot",
        "vcs": "git"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

从 Git 创建新部件的 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",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "https://github.com/WeblateOrg/hello.git",
    "template": "",
    "new_base": "po/hello.pot",
    "vcs": "git"
}

从另一个部件创建新部件的 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

{
    "file_format": "po",
    "filemask": "po/*.po",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "weblate://weblate/hello",
    "template": "",
    "new_base": "po/hello.pot",
    "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",
             "population": 159034349015,
            "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) – 已翻译词的百分比

部件

提示

使用:http:post:/api/projects/(string:project)/components/ 创建新部件。

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",
             "population": 159034349015,
            "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",
        "population": 159034349015,
        "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",
            "population": 159034349015,
            "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/

返回部件更改的列表。这本质是一个部件范围的 GET /api/changes/ 接受相同的参数。

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

  • component (string) – 部件 URL 标识符

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

在 4.9 版本加入.

使用请求的格式将与部件关联的所有可用翻译作为存档文件下载。

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

  • component (string) – 部件 URL 标识符

查询参数
  • format (string) – 要使用的存档格式;如果未指定,默认为 zip;支持的格式: zip

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",
        "population": 1303174280
        "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",
                "population": 159034349015,
                "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",
        "population": 1303174280
        "name": "Czech",
        "url": "http://example.com/api/languages/cs/",
        "web_url": "http://example.com/languages/cs/"
    },
    "language_code": "cs",
    "last_author": "Weblate Admin",
    "last_change": "2016-03-07T10:20:05.499",
    "revision": "7ddfafe6daaf57fc8654cc852ea6be212b015792",
    "share_url": "http://example.com/engage/hello/cs/",
    "total": 4,
    "total_words": 15,
    "translate_url": "http://example.com/translate/hello/weblate/cs/",
    "translated": 4,
    "translated_percent": 100.0,
    "translated_words": 15,
    "url": "http://example.com/api/translations/hello/weblate/cs/",
    "web_url": "http://example.com/projects/hello/weblate/cs/"
}
DELETE /api/translations/(string: project)/(string: component)/(string: language)/

在 3.9 版本加入.

删除翻译。

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

  • component (string) – 部件 URL 标识符

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

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

返回翻译更改的列表。这本质上是一个翻译范围的 GET /api/changes/ 接受相同的参数。

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

  • component (string) – 部件 URL 标识符

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

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

返回翻译单元的列表。

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

  • component (string) – 部件 URL 标识符

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

  • q (string) – 搜索查询字符串 搜索 (可选)

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

添加新单元。

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

  • component (string) – 部件 URL 标识符

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

请求 JSON 对象
  • key (string) – 翻译单元的名称(用作键或上下文)

  • value (array) – 源字符串(如果不创建复数则使用单个字符串)

响应 JSON 对象
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 参数)或将其转换为另一格式(见 下载译文)。

备注

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

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

  • q (string) – 筛选已下载的字符串,见 搜索页面

参数
  • 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 – 如何处理冲突(ignorereplace-translatedreplace-approved

  • file file – 上传文件

  • string email – 作者电子邮箱

  • string author – 作者姓名

  • string method – 上传方法(translateapprovesuggestfuzzyreplacesourceadd),请参见 导入方式

  • 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)仓库状态的信息。

响应与 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)

记忆存储

在 4.14 版本加入.

GET /api/memory/

返回记忆结果列表。

DELETE /api/memory/(int: memory_object_id)/

删除记忆项目

参数
  • memory_object_id – 内存对象 ID

单元

unit`是翻译的一个单件它将一个源字符串与一个相应的翻译字符串配对,还包含一些相关的元数据。该术语源自`Translate Toolkit 和XLIFF。

在 2.10 版本加入.

GET /api/units/

返回翻译单元的列表。

参数
  • q (string) – 搜索查询字符串 搜索 (可选)

参见

单元对象属性记录在 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

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

  • pending (boolean) – 该单元是否待写入

  • timestamp (timestamp) – 字符串添加时间

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 版本发生变更: 术语表现在存储为常规部件、翻译和字符串,请改用相应的 API。

任务

在 4.4 版本加入.

GET /api/tasks/

任务列表当前不可用。

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

返回任务信息

参数
  • uuid (string) – 任务 UUID

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

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

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

  • log (string) – 任务日志

指标

GET /api/metrics/

返回服务器指标。

响应 JSON 对象
  • units (int) – 单元数量

  • units_translated (int) – 已翻译单元数量

  • users (int) – 用户数量

  • changes (int) – 更改次数

  • projects (int) – 项目数量

  • components (int) – 部件数量

  • translations (int) – 翻译数量

  • languages (int) – 所用语言数量

  • checks (int) – 触发的质量检查数

  • configuration_errors (int) – 配置错误的数量

  • suggestions (int) – 待处理建议数量

  • celery_queues (object) – Celery 队列长度,见 使用 Celery 的后台任务

  • name (string) – 配置的服务器名

通知钩子

通知钩子允许外部应用来通知 Weblate 版本控制系统(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/get-started/customizing-your-github-workflow/exploring-integrations/about-webhooks

GitHub Webhooks 的一般信息

ENABLE_HOOKS

关于对整个 Weblate 启动钩子

POST /hooks/gitlab/

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

参见

从 GitLab 自动接收更改

关于设置 GitLab 集成的指示

https://docs.gitlab.com/ee/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 DevOps 通知并自动更新匹配的部件的特殊钩子。

备注

请确保 :guilabel:`Resource details to send`设置为*All*,否则Weblate将无法匹配你的Azure仓库。

参见

从 Azure Repos 自动接收更改

关于设置 Azure 集成的指示

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

关于 Azure DevOps 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 订阅源。