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

状态码

身份验证令牌

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

Each user has his personal access token which can be obtained in the user profile. Newly generated user tokens have the wlu_ prefix.

It is possible to create project scoped tokens for API access to given project only. These tokens can be identified by the wlp_ prefix.

身份验证的例子

示例请求:

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 的部件所接受,见 本地文件.

在 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 对象

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",
        "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/

JSON request to create a new component from Git:

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 request to create a new component from another one:

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",
            "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",
            "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)/file/

4.9 新版功能.

Downloads all available translations associated with the component as an archive file using the requested format.

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

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

查询参数
  • format (string) – The archive format to use; If not specified, defaults to zip; Supported formats: zip

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

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) – 搜索查询字符串 搜索 (可选)

响应 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),见 导入方式

  • 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/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 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 订阅源。