diff --git a/src/api/types.ts b/src/api/types.ts index 8ba93d48..01d759fa 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -1369,6 +1369,14 @@ export interface ManualTransferPreviewItem { episode_end?: number | string // Part part?: string + // 原始识别字符串 + org_string?: string + // 应用的自定义识别词 + apply_words?: string[] + // 制作组/字幕组 + resource_team?: string + // 自定义占位符 + customization?: string } // 手动整理预览数据 diff --git a/src/components/dialog/ReorganizeDialog.vue b/src/components/dialog/ReorganizeDialog.vue index 4c9474ae..0fe78587 100644 --- a/src/components/dialog/ReorganizeDialog.vue +++ b/src/components/dialog/ReorganizeDialog.vue @@ -511,6 +511,22 @@ const previewFileRows = computed(() => { }) }) +// 标准化预览项中的识别词命中详情 +function getPreviewApplyWords(item: ManualTransferPreviewItem) { + return (item.apply_words ?? []).filter(Boolean) +} + +// 手动整理识别词应用详情 +const previewCustomWordDetails = computed(() => { + return filteredPreviewItems.value + .map(item => ({ + sourceName: getFileName(item.source), + orgString: item.org_string, + applyWords: getPreviewApplyWords(item), + })) + .filter(item => item.applyWords.length > 0) +}) + // 是否需要拓宽窗口 const previewNeedsWideLayout = computed(() => { const candidates = [...previewFileRows.value.map(item => `${item.sourceName}${item.targetName}`)] @@ -1439,6 +1455,36 @@ onUnmounted(() => { {{ previewEpisodeCountText }} +
+
+ + {{ t('dialog.reorganize.customWordsApplied') }} +
+
+
+
{{ detail.sourceName }}
+
+ {{ detail.orgString }} +
+
+ + {{ word }} + +
+
+
+
@@ -1698,6 +1744,66 @@ onUnmounted(() => { white-space: nowrap; } +.preview-custom-words { + display: flex; + flex-direction: column; + border: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); + border-radius: 0.75rem; + gap: 0.75rem; + padding-block: 0.875rem; + padding-inline: 1rem; +} + +.preview-custom-words__title { + display: inline-flex; + align-items: center; + color: rgb(var(--v-theme-info)); + font-size: 0.875rem; + font-weight: 600; + gap: 0.375rem; +} + +.preview-custom-words__items { + display: flex; + flex-direction: column; + gap: 0.75rem; + min-inline-size: 0; +} + +.preview-custom-words__item { + display: flex; + flex-direction: column; + gap: 0.375rem; + min-inline-size: 0; +} + +.preview-custom-words__source { + overflow-wrap: anywhere; + color: rgb(var(--v-theme-on-surface)); + font-size: 0.8125rem; + font-weight: 600; + line-height: 1.4; +} + +.preview-custom-words__original { + overflow-wrap: anywhere; + color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)); + font-size: 0.75rem; + line-height: 1.4; +} + +.preview-custom-words__chips { + display: flex; + flex-wrap: wrap; + gap: 0.375rem; + min-inline-size: 0; +} + +.preview-custom-words__chip { + max-inline-size: 100%; + white-space: normal; +} + .reorganize-preview-pane__scroll { display: flex; overflow: hidden auto; @@ -1797,11 +1903,13 @@ onUnmounted(() => { } .preview-file-row__path { - overflow: hidden; + overflow: visible; + overflow-wrap: anywhere; color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)); font-size: 0.8125rem; - text-overflow: ellipsis; - white-space: nowrap; + line-height: 1.4; + white-space: normal; + word-break: break-all; } .preview-file-row__card--target .preview-file-row__name { diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index fef6e025..bc8411ad 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -2643,6 +2643,7 @@ export default { previewSeasonInfo: 'Season', previewSeasonLabel: 'Season', previewEpisodeCount: 'Episodes', + customWordsApplied: 'Recognition Word Details', previewAfterColumn: 'After', previewBeforeColumn: 'Before', previewFileNameColumn: 'Filename', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index e5656215..5e0a6ccf 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -2596,6 +2596,7 @@ export default { previewSeasonInfo: '季信息', previewSeasonLabel: '季', previewEpisodeCount: '总集数', + customWordsApplied: '识别词应用详情', previewAfterColumn: '整理后', previewBeforeColumn: '整理前', previewFileNameColumn: '文件名', diff --git a/src/locales/zh-TW.ts b/src/locales/zh-TW.ts index 0b17c914..5359fafe 100644 --- a/src/locales/zh-TW.ts +++ b/src/locales/zh-TW.ts @@ -2597,6 +2597,7 @@ export default { previewSeasonInfo: '季資訊', previewSeasonLabel: '季', previewEpisodeCount: '總集數', + customWordsApplied: '識別詞應用詳情', previewAfterColumn: '整理後', previewBeforeColumn: '整理前', previewFileNameColumn: '文件名',