mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-18 07:24:55 +08:00
@@ -92,9 +92,9 @@ CAS V1 和 Rust 官方同步闭环完成后,下一阶段优先推进:
|
||||
|
||||
1. 继续联调 Go `bat-api` 与 Rust daemon 的资源分发路径;Go 同步 CLI 不再作为产品目标。
|
||||
2. 按 `docs/guides/official-full-pull-smoke.md` 在隔离目录执行真实官方网络全量下载 smoke,并保留运行报告。
|
||||
3. 基于 `translation.worker.run` 推进翻译记忆和 Patch 构建。
|
||||
3. 基于 `translation.worker.run` 推进翻译记忆和通用 manifest Patch 构建。
|
||||
4. 扩展 ResourceRepository 查询面:CAS 诊断入口、面向大索引的查询优化和更丰富 TextUnit 查询。
|
||||
5. 继续完善 AssetBundle 复杂对象解析、复杂对象重打包和 Patch 发布流程统一;通用 Binary/JSON/Text Patch 基础与 UnityFS TextAsset patch 发布前置链路已可用。
|
||||
5. 继续完善 AssetBundle 复杂对象解析、复杂对象重打包和通用 Patch 发布流程统一;通用 Binary/JSON/Text Patch 基础与受支持 localized patch 发布/rollback 链路已可用。
|
||||
|
||||
优先阅读:
|
||||
|
||||
|
||||
@@ -119,8 +119,8 @@ bat i18n validate \
|
||||
--translation-file /tmp/bat-workbench.json
|
||||
```
|
||||
|
||||
报告会区分未审核、原文未变化、可直接 `i18n publish` 的 TextAsset,以及必须使用
|
||||
`parse repack` 的 TypeTree/嵌套 archive 条目。
|
||||
报告会区分未审核、原文未变化、可直接 `i18n publish` 的受支持 TextAsset/
|
||||
TypeTree string field 条目,以及需要先经过独立 repack 流程的 ZIP 内或其他不支持条目。
|
||||
|
||||
发布汉化 release:
|
||||
|
||||
@@ -131,7 +131,12 @@ bat i18n publish \
|
||||
--translation-file /tmp/bat-workbench.json
|
||||
```
|
||||
|
||||
发布只接受当前实现支持的直接 TextAsset 条目;TypeTree 字段和 zip 内 bundle 使用 `parse repack` 的 spec 单独处理。`--force` 不覆盖已有目录,而是生成独立的 `<official-release>-manual-<unix-seconds>` 汉化 release ID;也可以用 `--localized-release-id` 显式指定新 ID。因此强制发布仍保留旧 release 和 rollback 信息。
|
||||
发布接受当前实现支持的直接 TextAsset、TypeTree string field 和 managed-reference
|
||||
string field 条目;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 由单独的 worker 命令消费 `translation-tasks.sqlite`。
|
||||
|
||||
@@ -266,6 +271,45 @@ Rust `translation.tasks` / `translation.handoff`,不在 Go 侧维护状态。
|
||||
`POST /admin/control/translation-proofread` 会把当前汉化 workflow 标记为人工校对中;
|
||||
该接口只转发 `translation.proofread`,不会改动已发布汉化 release 指针。
|
||||
|
||||
## localized patch 发布与回滚
|
||||
|
||||
`i18n publish` 会在独立的 `.staging/<localized-release-id>` 中复制当前官方
|
||||
release,校验工作台与当前 TextUnit 索引的 source/location 一致后,写入已有支持
|
||||
范围内的 TextAsset、TypeTree string field 和 managed-reference string field
|
||||
patch。校验通过后才原子切换 `localized/current`,并在 release manifest 中记录
|
||||
源/目标 BLAKE3、字节数、patch kind、TextUnit、provider、review 和 rollback
|
||||
信息。ZIP 内 bundle 不会被静默改写。
|
||||
|
||||
使用人工编辑的工作台发布:
|
||||
|
||||
```bash
|
||||
bat i18n publish \
|
||||
--translation-file /tmp/bat-workbench.json \
|
||||
--localized-release-id release-manual-1
|
||||
```
|
||||
|
||||
使用已完成 provider worker 的译文结果发布:
|
||||
|
||||
```bash
|
||||
bat i18n publish \
|
||||
--from-worker \
|
||||
--localized-release-id release-worker-1
|
||||
```
|
||||
|
||||
发布失败会清理 staging,不切换 `current`。当前 release 的 rollback 目标由
|
||||
manifest 记录,执行后删除本次版本目录并恢复上一版本;没有上一版本时移除
|
||||
`current`:
|
||||
|
||||
```bash
|
||||
bat i18n rollback --localized-release-id release-worker-1
|
||||
```
|
||||
|
||||
Rust RPC 方法为 `localized.publish` 和 `localized.rollback`;bat-api 对应为
|
||||
`POST /admin/control/localized-publish`、`POST /admin/control/localized-rollback`
|
||||
以及鉴权的 `GET /admin/translation/status`。发布请求必须且只能包含
|
||||
`translation_file` 或 `from_worker=true`;rollback 可省略 release ID 以操作当前
|
||||
release。Go 只做鉴权、参数校验和转发,状态与产物仍由 Rust 持有。
|
||||
|
||||
## 边界
|
||||
|
||||
解析器新增类型覆盖和新的解析格式仍受 `docs/reports/PARSER_FREEZE.md` 约束。本次 issue 43 的例外只开放已有解析输出的手动编排、缓存刷新、工作台编辑、既有 patch 实现的重打包和独立汉化发布,不扩展 UnityFS/AssetBundle/Addressables/TypeTree 的解析类型覆盖。
|
||||
|
||||
Reference in New Issue
Block a user