From 23ec352dd0e623b166d371a8fdb15c1e5b212c61 Mon Sep 17 00:00:00 2001 From: solidSpoon Date: Sat, 25 Apr 2026 15:32:08 +0800 Subject: [PATCH 1/3] ci: update GitHub Actions Node runtime --- .github/workflows/deploy-doc.yml | 2 +- .github/workflows/release.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-doc.yml b/.github/workflows/deploy-doc.yml index e828ca6c..7f9d97cf 100644 --- a/.github/workflows/deploy-doc.yml +++ b/.github/workflows/deploy-doc.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build docs using Writerside Docker builder uses: JetBrains/writerside-github-action@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7cf633e5..d97c583b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: runs-on: ${{ matrix.os.image }} steps: - name: Github checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build whisper.cpp CLI (all platforms) shell: bash run: | @@ -184,7 +184,7 @@ jobs: fi ls -la "${ARCHIVE}" - name: Use Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: 22.12.0 cache: yarn From 924d353a24bf01975490238ec9475515daee7b9b Mon Sep 17 00:00:00 2001 From: solidSpoon Date: Sat, 25 Apr 2026 15:45:37 +0800 Subject: [PATCH 2/3] fix: suppress subtitle translation toast when disabled --- .../services/impl/TranslateServiceImpl.ts | 18 +++--------------- src/fronted/hooks/useTranslation.ts | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/backend/application/services/impl/TranslateServiceImpl.ts b/src/backend/application/services/impl/TranslateServiceImpl.ts index e8b274e7..667916f2 100644 --- a/src/backend/application/services/impl/TranslateServiceImpl.ts +++ b/src/backend/application/services/impl/TranslateServiceImpl.ts @@ -311,16 +311,12 @@ export default class TranslateServiceImpl implements TranslateService { const engine = await this.settingService.getCurrentTranslationProvider(); if (!engine) { - this.logger.error('没有启用的翻译服务'); + this.logger.info('字幕翻译服务未启用,忽略本次翻译请求'); this.notifySubtitleTranslationFailed({ fileHash, keys: requestedKeys, provider: 'openai', }); - this.showSubtitleTranslationToast({ - message: '未启用字幕翻译服务,请在设置中配置后重试', - dedupeKey: 'subtitle-translation:engine-not-enabled', - }); return; } const openAiMode: TranslationMode | null = engine === 'openai' @@ -426,16 +422,12 @@ export default class TranslateServiceImpl implements TranslateService { private async processTencentBatch(tasks: Sentence[], storageMode: SubtitleTranslationStorageMode): Promise { const currentProvider = await this.settingService.getCurrentTranslationProvider(); if (currentProvider !== 'tencent') { - this.logger.error('腾讯翻译服务未启用'); + this.logger.info('腾讯字幕翻译服务已关闭,忽略本次翻译请求'); this.notifySubtitleTranslationFailed({ fileHash: tasks[0]?.fileHash ?? '', keys: tasks.map((task) => task.translationKey), provider: 'tencent', }); - this.showSubtitleTranslationToast({ - message: '腾讯字幕翻译未启用,请检查设置', - dedupeKey: 'subtitle-translation:tencent-not-enabled', - }); return; } @@ -527,17 +519,13 @@ export default class TranslateServiceImpl implements TranslateService { ): Promise { const currentProvider = await this.settingService.getCurrentTranslationProvider(); if (currentProvider !== 'openai') { - this.logger.error('OpenAI 翻译服务未启用'); + this.logger.info('OpenAI 字幕翻译服务已关闭,忽略本次翻译请求'); this.notifySubtitleTranslationFailed({ fileHash: tasks[0]?.fileHash ?? '', keys: tasks.map((task) => task.translationKey), provider: 'openai', mode: openAiMode, }); - this.showSubtitleTranslationToast({ - message: 'OpenAI 字幕翻译未启用,请检查设置', - dedupeKey: 'subtitle-translation:openai-not-enabled', - }); return; } diff --git a/src/fronted/hooks/useTranslation.ts b/src/fronted/hooks/useTranslation.ts index a670eadc..2f8de953 100644 --- a/src/fronted/hooks/useTranslation.ts +++ b/src/fronted/hooks/useTranslation.ts @@ -92,6 +92,10 @@ const useTranslation = create( } const state = get(); + if (state.engine === 'none') { + return; + } + const fileHash = sentences[0]?.fileHash; if (!fileHash) { @@ -173,8 +177,18 @@ const useTranslation = create( }); }, - // 强制重新翻译 + /** + * 强制重新翻译指定字幕句。 + * + * @param fileHash 当前字幕文件哈希。 + * @param indices 需要重新翻译的字幕索引列表。 + * @param useCache 是否允许使用已有缓存,默认强制请求新结果。 + */ retranslate: (fileHash: string, indices: number[], useCache = false) => { + if (get().engine === 'none') { + return; + } + set(state => { const newStatus = new Map(state.translationStatus); indices.forEach((index) => { From 7d2a3ae40013ac838ace7bfda7c8ba15aac3f015 Mon Sep 17 00:00:00 2001 From: solidSpoon Date: Sat, 25 Apr 2026 15:50:57 +0800 Subject: [PATCH 3/3] chore: bump version to 6.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index efc0bf43..b22525a3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "dash-player", "productName": "DashPlayer", - "version": "6.0.0", + "version": "6.0.1", "description": "My Electron application description", "main": ".vite/build/main.js", "scripts": {