From 0bf26b78c69653f85155cdc768d98b35c48a1627 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 01:48:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=88(=E8=A7=84=E5=88=99=20/=20?= =?UTF-8?q?=E5=91=BD=E5=90=8D):=E9=87=8D=E5=86=99=E8=A7=84=E5=88=99?= =?UTF-8?q?=E7=BB=84=E3=80=81=E8=AF=95=E7=AE=97=E4=B8=8E=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei --- apps/web/app/components/naming/template-editor.tsx | 10 +++++----- apps/web/app/components/rules/group-editor.tsx | 12 ++++++------ apps/web/app/components/rules/labels.ts | 4 ++-- apps/web/app/components/rules/ladder-editor.tsx | 6 +++--- apps/web/app/components/rules/preview-panel.tsx | 4 ++-- apps/web/app/components/rules/tabs.tsx | 4 ++-- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/web/app/components/naming/template-editor.tsx b/apps/web/app/components/naming/template-editor.tsx index 60eae686..27f0c5bf 100644 --- a/apps/web/app/components/naming/template-editor.tsx +++ b/apps/web/app/components/naming/template-editor.tsx @@ -25,13 +25,13 @@ const GROUP_ORDER = ["title", "episode", "tech", "id", "ours"] as const; const ROLE: Record = { category: { label: "分类", className: "text-muted-foreground" }, - root: { label: "作品根", className: "text-primary font-medium" }, + root: { label: "作品目录", className: "text-primary font-medium" }, season: { label: "季目录", className: "text-foreground" }, sub: { label: "子目录", className: "text-muted-foreground" }, file: { label: "文件名", className: "text-foreground font-medium" }, }; -export const NAMING_NOTE = "已建立目录的作品不受模板影响,模板只决定新目录和新文件名。"; +export const NAMING_NOTE = "已建立目录的作品沿用原目录,模板只决定新目录和文件名。"; function useDebounced(v: T, ms = 300): T { const [d, setD] = useState(v); @@ -167,7 +167,7 @@ export function NamingTemplateEditor({ {override && !value.trim() ? `留空:沿用${inherited?.[active]?.source ?? "上级"}模板` - : "/ 分目录,最后一段是文件名,须以 {{fileExt}} 结尾"} + : "用 / 分目录,最后一段是文件名,以 {{fileExt}} 结尾"} {value.length} / 1024 @@ -317,10 +317,10 @@ function PreviewBody({ ))} )} - {r.usesBinding ? 这部作品已有目录,目录沿用已建立的路径,模板只决定文件名。 : null} + {r.usesBinding ? 这部作品已有目录,沿用原目录,模板只决定文件名。 : null} {r.missing.length ? (

- 无值的变量(输出为空):{r.missing.join("、")} + 没有值的变量:{r.missing.join("、")}

) : null} {r.warnings.map((w) => ( diff --git a/apps/web/app/components/rules/group-editor.tsx b/apps/web/app/components/rules/group-editor.tsx index 69980d60..1bb13c2a 100644 --- a/apps/web/app/components/rules/group-editor.tsx +++ b/apps/web/app/components/rules/group-editor.tsx @@ -108,7 +108,7 @@ export function RuleGroupEditor({ const save = async () => { if (!form.name.trim()) { - setNameError("名称必填"); + setNameError("填写名称"); return; } const scope: RuleGroupScope = { @@ -263,7 +263,7 @@ export function RuleGroupEditor({ label="作用范围" hint={ group && (group.scope.entityIds?.length || group.scope.siteIds?.length || group.scope.subscriptionId) - ? `另有:${scopeText({ ...group.scope, mediaTypes: undefined, mediaKinds: undefined } as RuleGroupScope)}(此处不改)` + ? `另有:${scopeText({ ...group.scope, mediaTypes: undefined, mediaKinds: undefined } as RuleGroupScope)}(这里不改)` : "不选 = 全部类型" } className="sm:col-span-2" @@ -277,15 +277,15 @@ export function RuleGroupEditor({
-

一层都不中时拒绝

+

一层都没命中时拒绝

- {form.ladderRequired ? "资源至少要命中一层" : "只影响排序,不中的资源 pri 为 0"} + {form.ladderRequired ? "资源至少要命中一层" : "只影响排序,没命中的资源 pri 为 0"}

set("ladderRequired", v)} - aria-label="一层都不中时拒绝" + aria-label="一层都没命中时拒绝" />
@@ -379,7 +379,7 @@ const FIELD_LABEL: Record = { scope: "作用范围", layers: "阶梯", hardExcludes: "硬排除", - ladderRequired: "一层不中拒绝", + ladderRequired: "一层都没命中时拒绝", enabled: "启用", label: "名称", rule: "规则", diff --git a/apps/web/app/components/rules/labels.ts b/apps/web/app/components/rules/labels.ts index be56a7dc..29e9fafc 100644 --- a/apps/web/app/components/rules/labels.ts +++ b/apps/web/app/components/rules/labels.ts @@ -29,7 +29,7 @@ export const SUPPRESS_REASON: Record = { disabled: "停用", "status:disabled": "停用", "status:deleted": "删除", - edited: "修改语义", + edited: "改了条件", }; export const suppressReason = (r: string | null) => (r ? (SUPPRESS_REASON[r] ?? r) : "未注明"); @@ -59,5 +59,5 @@ export function ruleSummary(g: RuleGroup): string { parts.push(`${g.ladderRequired ? "要求" : "偏好"} ${g.layers.map((l) => exprToString(l.expr)).join(" > ")}`); for (const h of g.hardExcludes) parts.push(`排除 ${exprToString(h)}`); if (parts.length) return parts.join(";"); - return g.legacyKind ? "旧偏好标签,没有可评估的条件" : "没有条件"; + return g.legacyKind ? "旧版偏好,没有可评估的条件" : "没有条件"; } diff --git a/apps/web/app/components/rules/ladder-editor.tsx b/apps/web/app/components/rules/ladder-editor.tsx index 2fe7fa8f..8ca0cb88 100644 --- a/apps/web/app/components/rules/ladder-editor.tsx +++ b/apps/web/app/components/rules/ladder-editor.tsx @@ -47,7 +47,7 @@ export function ladderFrom(layers: RuleLayer[]): LadderState { /** 保存用:有错误 / 解析中 / 有空层时不可保存 */ export function ladderProblem(s: LadderState): string | null { - if (s.parsing) return "规则串还在解析"; + if (s.parsing) return "规则串解析中"; if (s.failure) return s.failure; if (s.errors.length) return "规则串有错误"; if (s.cards?.some((c) => c.items.length === 0)) return "有空层"; @@ -253,7 +253,7 @@ export function RuleStringField({
  • - 第 {e.position + 1} 个字符{single ? "" : `(第 ${e.layer + 1} 层)`}:{e.message} + 第 {e.position + 1} 个字符{single ? "" : `(第 ${e.layer + 1} 层)`}:{e.message} {e.suggestions?.length ? ( @@ -338,7 +338,7 @@ function AtomChip({ item.neg ? "border-destructive/35 bg-destructive/10 text-destructive" : "border-border bg-foreground/[0.03]", unknown && "border-warning/50", )} - title={keyword ? `${keyword.name}:${keyword.description}` : "未知条件"} + title={keyword ? `${keyword.name}:${keyword.description}` : "未知条件"} > } - title={`删除条件 ${a.key}?`} + title={`删除条件 ${a.key}?`} description="被规则组引用时不能删除。" confirmLabel="删除" destructive