Open Call 应征附言自动翻译 (2026-08-05)

接口变更

artist_center

接口示例

artist_center

POST /api/artist_center/project_request/create

  • 功能说明:Artist 创建 Open Call Project Request。
  • 变更说明:沿用 Service Request 需求详情的翻译方式,在保存应征附言后同步创建并执行翻译任务。

请求参数

请求字段没有变化。detail 应继续携带原文语言:

字段类型必填说明
detailobject / string是应征附言;多语言对象使用 _lang 标记原文语言
detail_langstring条件detail 使用字符串格式时用于指定原文语言
project_idnumber是Open Call ID
currency_idnumber是应征报价币种 ID
artworksnumber[]是应征作品 ID,最多 6 个
budgetnumber是应征报价

翻译规则

  • 原文语言读取 detail._lang;字符串格式读取 detail_lang,缺失时按系统默认语言处理。
  • 目标语言为 Open Call 发布者的 user.language.code,发布者没有设置首选语言时回退到 en。
  • 原文语言与目标语言相同时不创建翻译任务。
  • 翻译记录归属提交应征的 Artist 对应 User。
  • 翻译成功后,目标语言内容直接写入 detail 多语言对象,响应会返回更新后的 detail。
  • 翻译执行失败时沿用现有翻译任务的失败处理,不影响 Project Request 已保存的原文。

请求示例

{
  "project_id": 101,
  "currency_id": 31,
  "detail": {
    "en": "I am interested in this Open Call.",
    "_lang": "en"
  },
  "artworks": [501],
  "budget": 12000,
  "days_need": 5
}

响应示例

假设 Open Call 发布者的首选语言为 ja:

{
  "ok": true,
  "data": {
    "id": 201,
    "detail": {
      "en": "I am interested in this Open Call.",
      "ja": "このオープンコールに興味があります。",
      "_lang": "en",
      "_ja_from": "ai"
    }
  }
}

错误响应

无新增,沿用原有错误语义。

POST /api/artist_center/project_request/update

  • 功能说明:Artist 编辑自己的 Open Call Project Request。
  • 变更说明:请求包含 detail 时重新翻译;未提交 detail 时不创建翻译任务。

请求参数

字段类型必填说明
idnumber是Project Request ID
detailobject / string否新的应征附言
detail_langstring条件detail 使用字符串格式时用于指定原文语言

其他字段与现有更新接口保持不变。

请求示例

{
  "id": 201,
  "detail": {
    "zh": "我更新了应征方案。",
    "_lang": "zh"
  }
}

响应示例

响应结构与创建接口一致,data.detail 包含本次生成的目标语言翻译。

错误响应

无新增,沿用原有错误语义。

前端对接

  • 前端不需要新增请求字段,但必须继续正确提交原文语言 _lang 或 detail_lang。
  • 展示附言时继续按当前界面语言读取 detail[lang],并沿用已有多语言回退逻辑。
  • Artist 更新已被选中的 Project Request 后,只更新 Project Request 当前数据;已有 Commission WorkTask 的 reqable_snap.detail 不会回写。后续再次选择时,新 WorkTask 使用更新并翻译后的附言。

兼容性说明

  • 请求参数和 HTTP 响应结构没有变化。
  • detail 仍然是现有多语言字段,本次只补充自动生成目标语言内容。
  • 历史 Project Request 不做批量补翻译,仅新建或更新 detail 时触发。