mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-18 10:04:55 +08:00
@@ -133,9 +133,30 @@ bat i18n publish \
|
||||
|
||||
发布只接受当前实现支持的直接 TextAsset 条目;TypeTree 字段和 zip 内 bundle 使用 `parse repack` 的 spec 单独处理。`--force` 不覆盖已有目录,而是生成独立的 `<official-release>-manual-<unix-seconds>` 汉化 release ID;也可以用 `--localized-release-id` 显式指定新 ID。因此强制发布仍保留旧 release 和 rollback 信息。
|
||||
|
||||
当前 `i18n run` 是离线工作流:刷新 TextUnit 队列,并可用 `--translation-file` 导出工作台;不会假装调用未接入的外部 provider。
|
||||
当前 `i18n run` 是离线工作流:刷新 TextUnit 队列,并可用 `--translation-file` 导出工作台;真实 provider 由单独的 worker 命令消费 `translation-tasks.sqlite`。
|
||||
|
||||
provider worker 消费 handoff 后,可以用 `i18n task update` 回写当前 release 的任务状态:
|
||||
运行一次 mock provider worker:
|
||||
|
||||
```bash
|
||||
bat i18n worker run \
|
||||
--output /tmp/bat-resources \
|
||||
--provider mock \
|
||||
--worker-concurrency 8
|
||||
```
|
||||
|
||||
`--provider` 支持 `mock` 和 `crowdin`。`mock` 可通过 `--translation-fixture`
|
||||
读取本地 JSON fixture;`crowdin` 从环境变量 `CROWDIN_PROJECT_ID`、
|
||||
`CROWDIN_LANGUAGE_ID`、`CROWDIN_API_TOKEN` 读取配置。worker 默认并发为 8,
|
||||
范围 `1..=256`;每个 worker 完成当前任务后立即从 SQLite 队列领取下一项,
|
||||
不会等待当前一批 worker 全部结束后再重新分配。
|
||||
|
||||
可用参数包括 `--worker-max-attempts`、`--worker-lease-seconds`、
|
||||
`--worker-retry-backoff` / `--worker-retry-backoff-seconds`、
|
||||
`--worker-max-tasks` 和 `--worker-id`。worker 支持 `--run-count` 与
|
||||
`--watch`,因此可以单次、限定次数或周期执行;`--run-count > 1` 时仍必须
|
||||
显式指定 `--interval`。
|
||||
|
||||
外部 provider 或人工流程也可以用 `i18n task update` 回写当前 release 的任务状态:
|
||||
|
||||
```bash
|
||||
bat i18n task update \
|
||||
@@ -224,11 +245,24 @@ contract:`id`、`group`、`action`、`args`、`next_run_unix_seconds`、
|
||||
`enabled`;`schedule.list` 额外接受 `id`、`group`、`enabled` 过滤,
|
||||
`schedule.run` 额外接受 `group`、`force` 和 `max_runs`。
|
||||
|
||||
翻译任务状态可由已鉴权的 dashboard 通过 `GET /admin/translation/tasks`
|
||||
查询,query 过滤项包括 `offset`、`limit`、`task_id`、`release_id`、
|
||||
`destination`、`path_pattern`、`archive_entry`、`status`、`worker_status`、
|
||||
`parse_status`、`format`、`has_reason` 和 `has_failure_reason`。完整 provider
|
||||
run 交接视图通过 `GET /admin/translation/handoff` 查询。两个查询接口都只转发
|
||||
Rust `translation.tasks` / `translation.handoff`,不在 Go 侧维护状态。
|
||||
|
||||
翻译任务状态也可由已鉴权的 dashboard 通过
|
||||
`POST /admin/control/translation-task-update` 回写,请求字段为
|
||||
`task_id`、`status`,以及可选的 `failure_reason`、`provider_run_id`;
|
||||
该接口只转发 `translation.task.update`。
|
||||
|
||||
`POST /admin/control/translation-worker-run` 会触发 Rust 侧
|
||||
`translation.worker.run`,请求字段为 `provider`、`fixture_path`、
|
||||
`concurrency`、`max_attempts`、`lease_seconds`、`retry_backoff_seconds`、
|
||||
`max_tasks` 和 `worker_id`。bat-api 只做鉴权、JSON 解码和基础范围校验;
|
||||
任务状态、lease、重试和 provider 结果仍由 Rust 持久化。
|
||||
|
||||
`POST /admin/control/translation-proofread` 会把当前汉化 workflow 标记为人工校对中;
|
||||
该接口只转发 `translation.proofread`,不会改动已发布汉化 release 指针。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user