diff --git a/apps/web/app/components/downloads/business-tasks.tsx b/apps/web/app/components/downloads/business-tasks.tsx index 941a58ad..f03b0018 100644 --- a/apps/web/app/components/downloads/business-tasks.tsx +++ b/apps/web/app/components/downloads/business-tasks.tsx @@ -24,15 +24,15 @@ import { formatDateTime } from "~/lib/utils.ts"; const TaskPage = cursorPage(Task); export const TASK_KIND_LABEL: Record = { - ingestFeed: "抓取 Feed", + ingestFeed: "抓取 RSS", resolveObservation: "识别资源", - evaluateAcquisition: "评估候选", + evaluateAcquisition: "评估资源", submitDownload: "提交下载", verifyAndImport: "核验整理", refreshMetadata: "刷新元数据", reconcileLibrary: "文件核对", cleanupDownloadCache: "清理缓存", - resolveDecision: "处理待处理事项", + resolveDecision: "处理事项", agentRun: "智能体运行", }; @@ -40,13 +40,13 @@ export const TASK_STATUS: Record< TaskStatus, { label: string; tone: "success" | "warning" | "destructive" | "neutral" } > = { - pending: { label: "排队", tone: "neutral" }, + pending: { label: "排队中", tone: "neutral" }, running: { label: "运行中", tone: "neutral" }, waiting: { label: "等待", tone: "warning" }, succeeded: { label: "成功", tone: "success" }, failed: { label: "失败", tone: "destructive" }, cancelled: { label: "已取消", tone: "neutral" }, - dead: { label: "放弃", tone: "destructive" }, + dead: { label: "已放弃", tone: "destructive" }, }; export const ACTIVE_TASK: TaskStatus[] = ["pending", "running", "waiting"]; @@ -245,8 +245,8 @@ export function BusinessTasks() { loadingMore={list.isFetchingNextPage} empty={{ icon: ListTodo, - title: f.active ? "没有符合筛选的任务" : "还没有业务任务", - description: f.active ? undefined : "提交下载、核验整理、清理缓存、对账等后台任务会出现在这里。", + title: f.active ? "没有符合筛选的任务" : "还没有后台任务", + description: f.active ? undefined : "提交下载、核验整理、清理缓存、文件核对等任务会出现在这里。", }} /> ) : null diff --git a/apps/web/app/components/downloads/business-timeline.tsx b/apps/web/app/components/downloads/business-timeline.tsx index a721d8c2..4ccc33ce 100644 --- a/apps/web/app/components/downloads/business-timeline.tsx +++ b/apps/web/app/components/downloads/business-timeline.tsx @@ -36,7 +36,7 @@ export function BusinessTimeline({ events, loading }: { events: TimelineEvent[]; })} {ongoing.length ? ( -

当前:{ongoing.map((e) => e.title).join(";")}

+

当前:{ongoing.map((e) => e.title).join(";")}

) : null} {loading && !events.length ? ( @@ -60,7 +60,7 @@ export function BusinessTimeline({ events, loading }: { events: TimelineEvent[]; /> )} {loading && events.length ? ( -

正在加载关联的整理记录与引擎运行…

+

加载整理记录和引擎运行…

) : null} ); diff --git a/apps/web/app/components/downloads/cache-volumes.tsx b/apps/web/app/components/downloads/cache-volumes.tsx index 2b1f5ab8..5b38dc05 100644 --- a/apps/web/app/components/downloads/cache-volumes.tsx +++ b/apps/web/app/components/downloads/cache-volumes.tsx @@ -81,9 +81,9 @@ function VolumeBar({ v }: { v: Volume }) { />
{pct === null ? 读不到磁盘状态,已暂停新提交 : null} - {tripped ? 超过暂停线,停止新下载 : null} + {tripped ? 超过暂停线,已停止新下载 : null} {v.pausedByThreshold ? ( - 因下载盘暂停 {v.pausedByThreshold} 个任务 + 超过暂停线,暂停了 {v.pausedByThreshold} 个任务 ) : null}
{v.notes.map((n) => ( @@ -119,7 +119,7 @@ export function CacheVolumes() { } title="按规则清理下载缓存?" - description="只清理已整理、且满足保留期与 H&R 的本工具任务,其余不动。" + description="只清理本工具管理、已整理且满足保留期和 H&R 要求的任务,其余不动。" confirmLabel="清理" onConfirm={() => cleanup.mutateAsync(undefined).then( @@ -138,7 +138,7 @@ export function CacheVolumes() { ) : vols.error ? ( void vols.refetch()} /> ) : !vols.data.length ? ( -

还没有缓存卷数据。登记下载器并完成巡检后显示。

+

还没有下载盘。添加下载器后显示。

) : (
{vols.data.map((v) => ( diff --git a/apps/web/app/components/downloads/download-board.tsx b/apps/web/app/components/downloads/download-board.tsx index f9ed371b..b03c90fa 100644 --- a/apps/web/app/components/downloads/download-board.tsx +++ b/apps/web/app/components/downloads/download-board.tsx @@ -333,11 +333,11 @@ export const BOARD_EMPTY: Record {DOWNLOAD_STATUS_LABEL[t.status]} {t.pauseReason === "threshold" ? ( - 下载盘满,已暂停 + 超过暂停线,已暂停 ) : t.pauseReason ? ( {PAUSE_REASON_LABEL[t.pauseReason]} ) : null} @@ -151,7 +151,7 @@ export function DownloadDetail({ task, live }: { task: DownloadTask; live?: Down ) : null} {task.noProgressSince ? (

- 自 {formatDateTime(task.noProgressSince)} 起无进展,不会自动换源;开了自动调查时智能体会在授权内尝试恢复。 + {formatDateTime(task.noProgressSince)} 起没有进展,不会自动换源。开启自动调查时,智能体会在持续授权范围内尝试恢复。

) : null} diff --git a/apps/web/app/components/downloads/manual-download-dialog.test.ts b/apps/web/app/components/downloads/manual-download-dialog.test.ts index eb7d866e..0091968b 100644 --- a/apps/web/app/components/downloads/manual-download-dialog.test.ts +++ b/apps/web/app/components/downloads/manual-download-dialog.test.ts @@ -85,7 +85,7 @@ describe("保存目录", () => { expect(custom).not.toHaveProperty("downloaderInstanceId"); }); - it("界面:并排两个下拉,下方写明将保存到哪;自定义时展开输入框", () => { + it("界面:并排两个下拉,下方写明保存到哪;自定义时展开输入框", () => { const props = { formId: "f", instances: paths.instances, @@ -101,10 +101,10 @@ describe("保存目录", () => { const html = render(createElement(SaveTargetFields, props)); expect(html).toContain("下载器"); expect(html).toContain("自动:qb-main"); - expect(html).toContain("将保存到:/data/downloads(本机 /mnt/dl)"); + expect(html).toContain("保存到:/data/downloads(本机 /mnt/dl)"); expect(html).not.toContain("自定义路径"); const custom = render(createElement(SaveTargetFields, { ...props, dir: CUSTOM_DIR, custom: "/x" })); - expect(custom).toContain("将保存到:/x"); + expect(custom).toContain("保存到:/x"); expect(custom).toContain('id="f-custom"'); const none = render( createElement(SaveTargetFields, { ...props, instances: [], autoInstanceId: null, target: null }), @@ -136,7 +136,7 @@ describe("作品身份", () => { expect(html).toContain("未识别"); expect(html).toContain("TMDB 编号"); expect(html).toContain('id="f-tmdb"'); - expect(html).toContain("暂未识别到作品"); + expect(html).toContain("没识别出作品"); }); it("已识别:折叠只显示当前作品", () => { diff --git a/apps/web/app/components/downloads/manual-download-dialog.tsx b/apps/web/app/components/downloads/manual-download-dialog.tsx index de8a3567..4ded6b26 100644 --- a/apps/web/app/components/downloads/manual-download-dialog.tsx +++ b/apps/web/app/components/downloads/manual-download-dialog.tsx @@ -282,7 +282,7 @@ export function ManualDownloadDialog({ }} > - 委托智能体 + 交给智能体 ) : null}
); @@ -372,7 +372,7 @@ export function SaveTargetFields({ : !target && dir !== CUSTOM_DIR ? "没有可用的下载器,先在设置里添加下载器和保存目录" : resolved - ? `将保存到:${savePathText(resolved)}` + ? `保存到:${savePathText(resolved)}` : "填写下载器能访问的路径"; return (
@@ -504,7 +504,7 @@ export function IdentitySection({
{unrecognized && !changed ? (

- 暂未识别到作品。指定后绑定到这个资源;不指定也能下载,整理时再补全识别和元数据。 + 没识别出作品。指定后绑定到这个资源;不指定也能下载,整理时再识别。

) : null} {picked ? ( @@ -533,7 +533,7 @@ export function IdentitySection({ void; }) { - if (loading) return

正在读取已有版本…

; - if (error) return

已有版本读取失败,重试后再选洗版

; + if (loading) return

读取已有版本…

; + if (error) return

读取已有版本失败,重新打开后再选洗版

; if (!versions.length) return null; return (
@@ -640,7 +640,7 @@ export function ExistingVersionsSection({ ))}

- 本次新文件整理成功后替换所选旧文件。剧集只替换成功对应的季集,其余保留。 + 新文件整理成功后替换所选旧文件。剧集只替换整理成功的季集,其余保留。

) : null}