feat: 日语转写(翻译前归档)也作为产物放到视频旁

翻译前的日语转写只有中间态,重跑字幕或回看译文时无据可查;把它按语言归档到
视频旁,与中文译文、双目字幕并列。

- `learn-translate` 的 `final_outputs` 增加 `ja_srt: asr.srt_uri`(清洗后的转写)。
- `_sidecar_product_name` 改为**按 final_outputs 别名**映射语言后缀
  (`ja_srt`→`.JA.srt`、`cn_srt`→`.CN.srt`、`ass`→`.CN_dual_eye.ass`),未登记别名
  时按扩展名兜底。此前两份 `.srt` 都映射成 `.CN.srt` 会互相覆盖(真实日志:
  "产物已放视频旁: movie.CN.srt, movie.CN.srt")。
- 任务管理的产物列补"日语 SRT"下载链接。
- 测试:按别名区分语言变体 + 端到端验证两份产物都落地且不覆盖。
This commit is contained in:
2026-09-18 22:27:38 +08:00
parent 34f0052d61
commit 8645e440f4
6 changed files with 66 additions and 10 deletions
+3 -1
View File
@@ -382,11 +382,13 @@ function progressBar(percent, failed) {
return `<div class="progress"><div class="progress-bar ${failed ? "error" : ""}" style="width:${Math.min(100, percent)}%"></div></div>`;
}
// 为已完成任务生成最终产物下载链接(cn_srt / ass)。
// 为已完成任务生成最终产物下载链接(ja_srt / cn_srt / ass)。
// 日语转写是翻译前的中间产物,归档下来便于回看与对照译文。
function artifactLinks(runId, status) {
if (status !== "COMPLETED") return "-";
return `
<div class="downloads-inline">
<a class="download-link" href="/api/runs/${encodeURIComponent(runId)}/artifacts/ja_srt">日语 SRT</a>
<a class="download-link" href="/api/runs/${encodeURIComponent(runId)}/artifacts/cn_srt">中文 SRT</a>
<a class="download-link" href="/api/runs/${encodeURIComponent(runId)}/artifacts/ass">VR ASS</a>
</div>`;