创建导出模板
在指定项目下新建一个导出模板(同步返回,含服务端生成的 id 和时间戳)。
请求地址
POST {BASE_URL}/api/open/v1/export-templates/create鉴权 Header
和 创建翻译任务 完全一样。POST 的 raw body 参与签名:MD5(timestamp + raw_body + appSecret)。
请求体(JSON)
json
{
"type": "project_strings",
"name": "默认 INI 导出",
"format": "ini",
"is_default": false,
"mode": "single",
"languages": ["en", "ja", "ko"],
"field_order": [
{ "type": "language", "value": "en" },
{ "type": "language", "value": "ja" },
{ "type": "language", "value": "ko" }
]
}字段说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
type | string | 是 | 模板类型:project_strings / task_strings,详见 列表接口 |
name | string | 是 | 模板名称(仅显示用,不构成唯一约束) |
format | string | 是 | 导出格式:csv / json / xlsx / ini / xliff / xml |
is_default | bool | 否 | 是否设为该 type 下的默认模板。true 时自动把同 type 下其它模板的 is_default 置 false(一次原子写入,对并发安全) |
mode | string | 否 | 单文件 single / 各语言分离 separate(仅在 format 支持时有意义) |
fields | string[] | 否 | 选中的基础字段列表(如 CSV / Excel 的列) |
languages | string[] | 否 | 默认勾选的目标语言代码列表 |
field_order | array | 否 | 字段 / 语言的展示顺序,每个元素 { "type": "field" | "language", "value": "<字段名 / 语言码>" } |
id、created_at、updated_at由服务端生成,请求体里不要带;服务端会返回一个tpl-xxxxxxxx形式的id。
响应
json
{
"success": true,
"code": 0,
"msg": "ok",
"trace_id": "...",
"data": {
"type": "project_strings",
"template": {
"id": "tpl-9d3f1a2c",
"name": "默认 INI 导出",
"is_default": false,
"format": "ini",
"mode": "single",
"languages": ["en", "ja", "ko"],
"field_order": [
{ "type": "language", "value": "en" },
{ "type": "language", "value": "ja" },
{ "type": "language", "value": "ko" }
],
"created_at": 1715520000000,
"updated_at": 1715520000000
}
}
}字段含义与 列表接口 完全一致。
错误码
| code | 说明 |
|---|---|
| 400 | 请求体不是合法 JSON 对象 / type / name / format 缺失或非法 / mode 不在 single, separate 内 / fields / languages / field_order 类型不对 |
| 401 | 签名校验失败 / 时间戳过期 |
| 403 | App Secret 未配置 |
| 404 | appKey 对应的项目不存在(鉴权层会先报) |
| 500 | 写入失败或系统错误 |
示例
bash
APP_KEY="5685414646a54423c891d87194d87f3f"
APP_SECRET="<你的 App Secret>"
BASE_URL="https://api.loxily.com"
BODY='{"type":"project_strings","name":"默认 INI 导出","format":"ini","is_default":false,"mode":"single","languages":["en","ja","ko"]}'
TIMESTAMP=$(date +%s)
SIGN=$(printf '%s' "${TIMESTAMP}${BODY}${APP_SECRET}" | md5)
curl -s -X POST "${BASE_URL}/api/open/v1/export-templates/create" \
-H "Content-Type: application/json" \
-H "X-Loxily-AppKey: ${APP_KEY}" \
-H "X-Loxily-Timestamp: ${TIMESTAMP}" \
-H "X-Loxily-Sign: ${SIGN}" \
--data "${BODY}"