Webhook事件

事件

这些是您可以为每个项目订阅的事件,以及有效负载示例。

project.imported

每当翻译文件被上传到一个项目。

/ /项目。导入{"event": "project. "已导入","import": {"filename": "en。json", "format": "json", "inserted": 231, "updated": 0, "skip ": 0}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

您还可以订阅补充的webhook事件project.keys.addedproject.keys.modifiedproject.translations.updated以了解上传添加或修改了哪些数据,从而省去了对Lokalise API的进一步查询。webhook有效负载将包括一个行动字段与import.file值,以便您可以轻松地识别此操作导致的数据更改。

project.exported

每当翻译文件被下载来自一个项目。

/ /项目。导出{"event": "project "。"export": {"type": "json", "filename": "files/export/138c1ffa0ad94848f01f980e7f2f2af19d1bd553/67d1a7ff9cab3a57e32ea71c4561a58d/locale .zip", "platform": "Web"}, "project": {"id": " 138c1ffa0ad94848f01f980e7f2af19d1bd553 ", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.copied

触发。项目是复制。

/ /项目。复制{"event": "project "。"copy ", "action": "copy_project", "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "new_project": {"id": "435744046465ddb63bff26.20365706", "name": "Onboarding copy"}, "user": {"full_name": "John Doe", "email": "(电子邮件保护)}, "created_at": "2023-05-18 10:11:40", "created_at_timestamp": 1684397500}

project.deleted

触发。项目已删除。

// project.deleted {"event": "project.deleted", "project": {"id": "123. "abc”、“名称”:“示例项目“}”用户”:{“full_name”:“John Doe”、“电子邮件”:“(电子邮件保护)}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.snapshot

触发。项目快照被创建。

/ /项目。快照{"event": "project. "snapshot", "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.branch.added

当一个新的项目分公司被创建。

// project.branch.added {"event": "project.branch. "增加了","project": {"id": "123 "。abc”、“名称”:“示例项目”},“分支”:{“名称”:“开发”},“用户”:{“full_name”:“John Doe”、“电子邮件”:“(电子邮件保护)}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.branch.deleted

触发。项目分公司被删除。

// project.branch.deleted {"event": "project.branch.deleted", "project": {"id": "123. "abc”、“名称”:“示例项目”},“分支”:{“名称”:“开发”},“用户”:{“full_name”:“John Doe”、“电子邮件”:“(电子邮件保护)}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.branch.merged

两个人的时候开火项目分支被合并。

// project.branch.merged {"event": "project.branch. . "已合并","project": {"id": "123 "。abc", "name": "Sample Project"}, "branch": {"name": "develop"}, "target_branch": {"name": "sprint_20210103"}, "affected_keys": {"inserted_count": 4, "updated_count": 10}, "user": {"full_name": "John Doe", "email": "(电子邮件保护)}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.languages.added

当一个新的语言已添加到项目中。

// project.languages.added {"event": "project.languages. "新增","languages": [{"id": 734, "iso": "it", "name": "Italian"}], "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.language.removed

触发。语言已从项目中删除。

// project.language.remove {"event": "project.language. . "removed", "language": {"id": 734, "iso": "it", "name": "Italian"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.language.settings_changed

火灾时语言设置已经改变了。

/ / project.language。Settings_changed {"event": "project.language. "settings_changed", "language": {"id": 734, "iso": "it", "name": "Italian"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.key.added

当一个新的翻译的关键已添加到项目中。

// project.key.added {"event": "project.key. "增加了","key": {"id": 16307699, "name": "test. properties "。title", "base_value": "Hello, world!", "tags": ["home"]}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.keys.added

新的时候触发翻译键已通过批量操作添加到项目中。每个事件在有效负载中最多包含300个键。

// project.keys.added {"event": "project.keys. "补充说”、“钥匙”:[{" id ": 28707699,“名字”:”测试。标题”、“base_value”:“你好,世界!”,“标签”:[" home_page " ] }, { " id”:28746571,“名字”:“测试。line1”、“base_value”:“你好吗?”、“标签”:[" home_page " ] }, { " id”:28745716,“名字”:“测试。line2", "base_value": "很高兴见到你","tags": ["home_page"]}], "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2023-03-07 12:02:01", "created_at_timestamp": 1678186921}

project.key.modified

触发。翻译的关键已在项目中修改。

// project.key.modified {"event": "project.key. "修改”、“关键”:{" id ": 16307699,“名字”:”测试。Title_modified ", "previous_name": "test. name"。title", "文件名":{"ios": "ios_%LANG_ISO%. "string ", "android": null, "web": "%LANG_ISO%. ""other": null}}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护)mpany.com", "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.keys.modified

当一个或多个翻译键在项目中通过替换操作、批量操作或API调用进行修改。例如,当您一次为多个密钥分配或替换密钥标签时,将触发此事件。

// project.keys.modified {"event": "project.keys. "“修改”、“动作”:“批量”。add_tags", "keys": [{"id": 169532683, "name": "welcome_header", "previous_name": "welcome_header", "filename ": {"ios": "ios_%LANG_ISO%. "string ", "android": null, "web": "%LANG_ISO%. ""other": null}, "tags": ["release_1.1"], "hidden": false}, {"id": 169685853, "name": "feedback_button", "previous_name": "feedback_button", "filename ": {"ios": "ios_%LANG_ISO%. json", "other": null}, "tags": ["release_1.1"], "hidden": false}, "id": 169685853, "name": "feedback_button", "filename ": {"ios": "ios_%LANG_ISO%. "string ", "android": null, "web": "%LANG_ISO%. ""other": null}, "tags": ["release_1.1"], "hidden": false}], "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.keys.deleted

触发。翻译的关键已从项目中删除(例如,通过批量操作或通过API单独删除)。

// project.keys.deleted {"event": "project.keys.deleted", "keys": [{"id": 16307699, "name": "test. delete "。title_modified", "filename ": {"ios": "ios_%LANG_ISO%. "字符串"}}},{"id": 16307700, "name": "test. name"。to_delete"}], "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.key.comment.added

当一个新的评论已为翻译键添加。

// project.key.comment.added {"event": "project.key.comment.added", "comment": {"value": "My comment to test. "标题关键”},“关键”:{" id ": 16307701,“名字”:”测试。title", "filename ": {"android": "filename1", "ios": "filename2", "other": "filename3", "web": "filename4"}}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.translation.updated

在项目中修改翻译时触发。

// project.translation.updated {"event": "project.translation. update . "updated", "translation": {"id": 84835169, "value": "Hello, %s!", "previous_value": "Hi!"“语言”}:{" id ": 640年,“iso”:“en”,“名字”:“英语”},“关键”:{" id ": 16307701,“名字”:”测试。title"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.translations.updated

当在项目中通过批量操作(例如,应用了翻译记忆库)修改翻译时触发。每个事件将在有效载荷中包含最多300个翻译。

// project.translations.updated {"event": "project.translations. "" Updated ", "action": "bulk "。tm”、“翻译”:[{" id ": 84825168,“价值”:“你好!”,“previous_value”:“”,“语言”:{" id ": 673年,“iso”:“fr”、“名称”:“法国”},“关键”:{" id ": 277年,“名字”:”测试。欢迎 " } }, { " id”:93825168,“价值”:“¡你好!”,“previous_value”:“”、“语言”:{" id ": 1056年,“iso”:“西文”、“名称”:“西班牙”},“关键”:{" id ": 277年,“名字”:”测试。欢迎"}}],"project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"full_name": "John Doe", "email": "(电子邮件保护)}, "created_at": "2023-03-27 13:06:09", "created_at_timestamp": 1679915169}

project.translation.proofread

当翻译被标记或未标记为时触发综述了在一个项目中。

// project.translation.proofread {"event": "project.translation. read "校对”、“翻译”:{" id ": 84835169,“价值”:“你好,% s !”,“is_proofread”:真正的},“语言”:{" id ": 640年,“iso”:“en”,“名字”:“英语”},“关键”:{" id ": 16307701,“名字”:”测试。title"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.contributor.added

当一个新的贡献者应管理员的邀请添加到项目中。

// project.contributor.added {"event": "project.contributor. "增加了","contributor": {"email": "(电子邮件保护)}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.contributor.added_public

当一个新的贡献者通过公共注册链接将自己添加到项目中。

project.contributor.deleted

触发。贡献者已从项目中删除。

// project.contributor.deleted {"event": "project.contributor.deleted", "contributor": {"email": "(电子邮件保护)}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.task.created

当一个新的翻译或复习任务在项目中创建。

// project.task.created {"event": "project.task. create ""task": {"id": 5022, "type": "translation", //支持的类型是"translation"和"review" "title": " heading translation", "due_date": "2019-08-01 00:00:00", "description": "task description"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.task.queued

在新创建时触发任务已经排队了。请注意,当满足以下条件时,任务将被排队:

  • 这是一个审查任务
  • 它有一个父任务或者一个父翻译顺序
  • 其父类至少有一种语言尚未标记为已完成(或翻译订单尚未标记为已完成)

project.task.closed

触发。任务已被标记为关闭。任务可以由项目管理员手动关闭,也可以在任务完成后自动关闭。

// project.task.closed {"event": "project.task. close . "closed", "task": {"id": 5022, "type": "translation", //支持的类型是"translation"和"review" "title": " heading translation", "due_date": "2019-08-01 00:00:00", "description": "task description"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.task.deleted

触发。任务已删除。

// project.task.deleted {"event": "project.task.deleted", "task": {"id": 5022, "title": " heading translation", "due_date": "2019-08-01 00:00:00", "description": "task description"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.task.language.closed

类中添加语言时触发任务已经关闭。语言可以在完成后手动关闭或自动关闭。

// project.task.language.closed {"event": "project.task.language. "closed", "language": {"id": 640, "iso": "en", "name": "English"}, "task": {"id": 5022, "type": "translation", //支持的类型是"translation"和"review" "title": " heading translation", "due_date": "2019-08-01 00:00:00", "description": "task description"}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

team.order.created

当一个新的翻译的顺序已创建。

// team.order.created {"event": "team.order. create . "create ", "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "order": {"id": "20101010D85", "provider": "lokalise", "currency": "USD", "total": 10.00}, "user": {"email": "(电子邮件保护), "full_name": "John Doe"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

team.order.deleted

触发。翻译的顺序已删除。

// team.order.deleted {"event": "team.order.deleted", "project": {"id": "123. "abc”、“名称”:“示例项目“}”用户”:{“full_name”:“John Doe”、“电子邮件”:“(电子邮件保护)}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

team.order.completed

触发。翻译的顺序已标记为完成。

// team.order.completed {"event": "team.order.completed", "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project"}, "order": {"id": "20101010D85", "provider": "lokalise"}, "created_at": "2019-07-29 12:18:31", "created_at_timestamp": 1564395511}

project.task.initial_tm_leverage.calculated

当初始值翻译记忆为一项任务计算了杠杆。这个计算是自动执行的。

/ / project.task.initial_tm_leverage。计算{"事件":"project.task.initial_tm_leverage. ""task": {"id": 12345, "title": "New task", "description": "请尽快翻译","initial_tm_leverage": {"600": {"0": 154, "50": 5, "75": 4, "85": 11, "95": 0, "100%": 6}, "1056": {"0": 158, "50": 17, "75": 0, "85": 0, "95": 2, "100%": 3}}}, "project": {"id": "138c1ffa0ad94848f01f980e7f2f2af19d1bd553", "name": "TheApp project", "branch": "master"}, "created_at": "2021-03-30 16:01:11", "created_at_timestamp": 1617112871}

特殊领域和事件

替换和批量操作

替换和批量操作可能一次涉及许多键或翻译。webhook事件有效负载将包含1到300个对象的数据。如果操作中涉及的对象超过300个,您将接收多个事件来捕获有关添加、修改或删除对象的所有数据。

移动和复制键

当您使用批量操作在项目之间移动或复制键时,将生成以下webhook事件:

  • project.keys.added事件将在目的地的webhook处理程序关键的补充说事件。
  • 当钥匙移动,一个project.keys.deleted事件将在的webhook处理程序键删除事件。

行动

行动字段允许区分导致webhook事件的特定用户或自动操作。以下是该字段的可能值:

api

automation.clear
automation.copy_source
automation.mt
automation.tm
automation.pseudolocalize

bulk.add_tags
bulk.clear
bulk.copy
bulk.copy_source
bulk.delete
bulk.fill
bulk.linked_screenshots
bulk.move
bulk.pseudolocalize
bulk.remove_tags
bulk.tm
bulk.unlinked_screenshots

import.file

replace.tags
replace.translations

linked_screenshots
unlinked_screenshots