优化: 清理无意义注释(走查编号前缀/过时历史标注/死代码注释)

This commit is contained in:
lxy
2026-08-15 18:05:43 +08:00
parent 5a4c821629
commit 5ac815b9ca
137 changed files with 735 additions and 737 deletions
+4 -4
View File
@@ -23,9 +23,9 @@ export default {
errorTimeout: 'The response timed out. Please try again.',
errorNetwork: 'Network connection failed. Please check your network.',
// CR-30-2 / F-260616-07(d) / decision a1: stream pre-failure retry bubble copy
// UX-260616-01: clarify this is an AI response (network/rate-limit) retry, not a tool failure (shown in card)
// clarify this is an AI response (network/rate-limit) retry, not a tool failure (shown in card)
aiStreamRetry: '⚠ AI response failed, retrying ({attempt}/{max})…',
// UX-260616-01: Fatal errors (4xx/auth) are not retryable — prompt user to check settings instead
// Fatal errors (4xx/auth) are not retryable — prompt user to check settings instead
notRetryable: 'This error cannot be resolved by retrying. Please check the configuration.',
streamInterruptedAfterTool: '⚠ The tool finished, but the following reply was interrupted (no data stream for a long time). You can click Continue to retry.',
streamInterrupted: '⚠ The response was interrupted (no data stream for a long time). This may be due to a network disconnection or a backend error. Please try again.',
@@ -38,7 +38,7 @@ export default {
approvalNotDelivered: 'Approval operation failed to reach the backend: {error}',
queuedSendFailed: 'Failed to send queued message: {error}',
approvalTimeout: '⚰ Approval timed out, automatically rejected: {toolName}',
// UX-260617-08: conversation load/switch failure feedback (network jitter/IPC down → empty list/blank, was silent)
// conversation load/switch failure feedback (network jitter/IPC down → empty list/blank, was silent)
loadConvFail: 'Failed to load conversations. Please check your network or backend connection.',
switchConvFail: 'Failed to switch conversation. Please retry.',
// M30: rename/archive/pin IPC failure feedback (was no try/catch, exceptions leaked to unhandledrejection)
@@ -52,7 +52,7 @@ export default {
unarchiveAction: 'unarchive',
pinAction: 'pin',
unpinAction: 'unpin',
// AE-2025-07: Agentic loop progress bar copy
// Agentic loop progress bar copy
// Note: max round / completed tool count are not surfaced by backend this round;
// template conditionally omits them. Add *WithMax keys once backend exposes them.
agenticProgress: '🔄 Round {round} · ⏳{pending} pending',
+8 -8
View File
@@ -71,7 +71,7 @@ export default {
selectModel: 'Select model',
noModels: 'No models available. Please fetch in settings.',
// ── Empty states (UX-2025-20: example prompt cards + no-provider guidance) ──
// ── Empty states example prompt cards + no-provider guidance) ──
emptyNoProvider: 'No AI provider configured',
emptyNoProviderHint: 'Please add a provider in settings to start chatting',
emptyTitle: 'Chat with AI assistant',
@@ -84,7 +84,7 @@ export default {
goToSettings: 'Open settings',
goToSettingsHint: 'The detached window cannot open settings directly. Configure AI providers on the main window’s Settings page.',
// ── Provider switch feedback (UX-2025-14) ──
// ── Provider switch feedback ──
providerSwitched: 'Switched to {model}',
providerSwitchHint: 'Current model: {model}',
@@ -107,7 +107,7 @@ export default {
skillNoMatch: 'No matching skill',
skillNotLoaded: 'No local skills loaded',
// ── UX-10: @ entity mention (@ opens popover, select inserts [Type:Name] token) ──
// ── @ entity mention (@ opens popover, select inserts [Type:Name] token) ──
mentionHint: "{'@'} to mention project/task",
mentionGroupProject: 'Projects',
mentionGroupTask: 'Tasks',
@@ -136,13 +136,13 @@ export default {
// ── Confirm dialog ──
confirmDeleteConversation: 'Delete chat "{title}"? This cannot be undone.',
// UX-260617-24: stronger warning when deleting the currently active conversation
// stronger warning when deleting the currently active conversation
confirmDeleteActiveConversation: '"{title}" is the chat you are currently viewing. Deleting it will clear the current view and cannot be undone. Continue?',
clearChat: 'Clear',
confirmClearChat: 'Are you sure you want to clear all messages in this chat? This cannot be undone.',
toastSendFail: 'Send failed: {msg}',
// ── Message copy (F-260615-13) ──
// ── Message copy ──
copyMsg: 'Copy message',
copied: 'Copied',
copyFailed: 'Copy failed',
@@ -151,14 +151,14 @@ export default {
copiedAsImage: 'Copied as image',
copyAsImageFailed: 'Failed to copy as image',
// ── Message actions bar (UX-02) ──
// ── Message actions bar ──
regenerate: 'Regenerate',
regenerateFailed: 'Regenerate failed: {msg}',
regenerateUnavailable: 'No reply to regenerate',
// fetch_url "Install obscura via AI" button triggers sendMessage; failure toast (mirrors editMessageFailed)
sendFailed: 'Send failed: {msg}',
// ── UX-09: edit last user message and regenerate ──
// ── edit last user message and regenerate ──
editMessage: 'Edit',
editMessageFailed: 'Edit failed: {msg}',
editNotLastUser: 'Only the last user message can be edited',
@@ -168,7 +168,7 @@ export default {
retry: 'Retry',
goToSettingsAction: 'Open settings',
// ── F-260616-03: max iterations reached pause action card ──
// ── max iterations reached pause action card ──
maxRoundsReached: 'Max rounds reached. Continue?',
maxRoundsHint: 'Continue runs another full round; stop ends with current results',
continueLoop: 'Continue',
+17 -17
View File
@@ -6,11 +6,11 @@ export default {
approveAll: 'Approve All ({n})',
rejectAll: 'Reject All',
rejectedHint: 'User rejected this action',
// B-260616-12: tool execution slow hint (frontend fallback, no backend cancel IPC)
// tool execution slow hint (frontend fallback, no backend cancel IPC)
executionSlow: 'Tool "{name}" is taking longer than expected, please wait…',
// BUG-260624-02: approval pending duration hint (>2min orange, >5min red)
// approval pending duration hint (>2min orange, >5min red)
waitTime: '⏱ Waiting {time}',
// UX-260616-01: tool execution failure marker (AR-6 keeps status=completed, red to distinguish from success)
// tool execution failure marker (AR-6 keeps status=completed, red to distinguish from success)
executionFailed: 'Failed',
executionFailedHint: 'Tool execution failed, see details below',
// Singular expand/collapse (ToolCard single-card content, command output toggle; expandAll/collapseAll are for ToolCardList global multi-group)
@@ -31,7 +31,7 @@ export default {
dirFallback: 'List Directory',
writePrefix: 'Write',
writeFallback: 'Write File',
// grep cross-file content search header (F-260621)
// grep cross-file content search header
grepPrefix: 'Search',
grepFallback: 'Content Search',
// CRUD tool display names (delete/restore/purge/update_project resolve project name by id; fallback when no id or unresolved)
@@ -63,26 +63,26 @@ export default {
purged: 'Purged',
purgeIneffective: 'Purge ineffective',
workflowHint: 'Run it on the workflow page',
// UX-260618-05: run_workflow tool_result shows execution_id (workflowHint misleading — workflow already triggered; old key kept for other refs)
// run_workflow tool_result shows execution_id (workflowHint misleading — workflow already triggered; old key kept for other refs)
workflowTriggered: 'Task {id} triggered workflow (advancing to {status}, execution {exec})',
workflowTriggeredShort: 'Execution {exec}',
// UX-260616-04: formatToolResult covers all tools with human-readable summaries (missing keys)
// formatToolResult covers all tools with human-readable summaries (missing keys)
updatedTaskField: 'Task「{title}」 updated field {field}',
advancedTask: 'Task「{title}」 advanced to {status}',
// UX-260618-09: advance_task return-round accumulation (shown only when >0); UX-260618-14: {title} = task name (TaskRecord), fallback id
// advance_task return-round accumulation (shown only when >0); {title} = task name (TaskRecord), fallback id
advancedTaskWithRounds: 'Task「{title}」 advanced to {status} (returned {n} times)',
commandOk: 'Command succeeded ({ms} ms)',
commandFailed: 'Command failed (exit code {code})',
commandOutputLines: '{n} lines of output',
patchedFile: 'Patched {path} ({diff} bytes)',
// UX-260618-06: patch_file multi-match hint + size_diff unit
// patch_file multi-match hint + size_diff unit
patchedMatches: 'matched {n} places',
bytesUnit: 'bytes',
patchedNoChange: '{path} no change',
appendedTo: 'Appended {bytes} to {path}',
renamedFile: 'Renamed {from} → {to}',
// UX-260618-12: rename_file bytes/cross-volume + write_file overwrite/encoding hints
// rename_file bytes/cross-volume + write_file overwrite/encoding hints
renamedWithBytes: 'Renamed {from} → {to} ({bytes})',
renamedCrossVolume: 'Moved {from} → {to} (cross-volume, {bytes})',
writeOverwrite: 'overwrote {old} → {neww}',
@@ -113,7 +113,7 @@ export default {
fetchUrlFallback: 'Fetch URL',
installObscura: 'Install obscura via AI',
obscuraInstallPrompt: 'Please install obscura (a Rust headless browser, used by fetch_url render=true for JS rendering). Try `cargo install obscura` first; if cargo is unavailable, download the prebuilt binary for this platform from the GitHub releases (github.com/h4ckf0r0day/obscura) and place it on PATH. After installing, verify with `obscura --version` and tell me I can retry the web fetch.',
// grep cross-file content search results (F-260621): per output_mode phrasing
// grep cross-file content search results per output_mode phrasing
grepHitsN: '{n} hits',
grepFilesN: '{n} files',
grepCountSummary: '{n} hits / {files} files',
@@ -121,10 +121,10 @@ export default {
grepTruncated: 'Results truncated (max reached), narrow pattern or add glob',
boundDir: 'Bound directory "{path}" stack: {stack}',
deleteFilePermanent: 'Permanently deleted {path}',
// UX-260618-07: soft-delete adds backup_path (trash filename so user knows where to recover from)
// soft-delete adds backup_path (trash filename so user knows where to recover from)
deleteFileSoft: 'Soft-deleted {path} (backed up, recover from: {backup_path})',
fileInfoSize: '{path} {size}',
// UX-260618-12: file_info modified time (epoch_ms → client toLocaleString)
// file_info modified time (epoch_ms → client toLocaleString)
fileInfoModified: ' · modified {time}',
fileInfoLines: ' · {n} lines',
fileInfoBinary: ' · binary',
@@ -133,11 +133,11 @@ export default {
projectLabel: '"{name}"',
projectIdNotFound: '(project not found, id={id})',
// UX-260618-14: advance_task/run_workflow task_id → task title (store.tasks lookup; fallback id)
// advance_task/run_workflow task_id → task title (store.tasks lookup; fallback id)
taskLabel: '"{name}"',
taskIdNotFound: '(task not in current list, id={id})',
// AE-2025-05: High-risk approval second confirm (ask once more before approve; misclick cancellable)
// High-risk approval second confirm (ask once more before approve; misclick cancellable)
confirmHighDelete: 'Permanently delete? This action cannot be undone',
confirmHighExec: 'Run this command?',
confirmHighGeneric: 'Proceed with this high-risk action?',
@@ -145,7 +145,7 @@ export default {
// Tool result detail format (plain-text result + approval placeholder appends arg summary)
resultDetail: '{raw} ({detail})',
// UX-260617-17: ToolCardList group header (shown when 2+ same-name tools; was hardcoded zh)
// ToolCardList group header (shown when 2+ same-name tools; was hardcoded zh)
toolGroup: {
readFile: 'Read File',
writeFile: 'Write File',
@@ -165,10 +165,10 @@ export default {
httpRequest: 'HTTP Request',
},
// UX-260617-14: approval loading fallback timeout notice (no backend ack, card still pending_approval → reset + prompt)
// approval loading fallback timeout notice (no backend ack, card still pending_approval → reset + prompt)
approveLoadingTimeout: 'Approval response timed out, please retry or check the backend',
// UX-260617-18: tool failure detection copy (regex narrowed to line-anchored err_msg prefix)
// tool failure detection copy (regex narrowed to line-anchored err_msg prefix)
// (reuse executionFailed/executionFailedHint, no new key)
// http_request High-risk confirm: external network call, data may leak via URL/body
+2 -2
View File
@@ -49,7 +49,7 @@ export default {
decided: {
human: 'Human',
auto: 'Auto',
// SA-1: cover all backend decided_by sources (different decision paths, more precise than generic 'auto')
// cover all backend decided_by sources (different decision paths, more precise than generic 'auto')
auto_trust: 'Auto (trusted)',
auto_dedup: 'Auto (deduped)',
cache_hit: 'Auto (cached)',
@@ -66,7 +66,7 @@ export default {
convTruncated: 'Content truncated (expand to view full conversation)',
convSelectHint: '← Select a conversation to view full interaction log',
convReasoning: 'Reasoning (thinking)',
// SA-2: conversation role labels (previously hardcoded Chinese, now i18n)
// conversation role labels (previously hardcoded Chinese, now i18n)
convRoleUser: '🧑 User',
convRoleAssistant: '🤖 Assistant',
convRoleTool: '🔧 Tool',
+1 -1
View File
@@ -230,7 +230,7 @@ export default {
confirmDiscardUnsaved: 'The form has unsaved changes. Discard them?',
toastSaved: 'Saved',
toastSaveFail: 'Save failed: {msg}',
// P0-2: save-failure classified guidance (persistent banner, not raw Err text)
// save-failure classified guidance (persistent banner, not raw Err text)
saveErrKeyringTitle: 'Failed to write key to the OS keychain',
saveErrKeyringDetail: 'Original config left unchanged. Backend reason: {msg}\nSuggestion: check the OS keychain/credential store permissions (Windows Credential Manager / macOS Keychain / Linux secret-service daemon), then click "Save" again to retry.',
saveErrGenericTitle: 'Failed to save provider config',
+1 -1
View File
@@ -95,7 +95,7 @@ export default {
desc: 'Description',
branch: 'Branch',
priority: 'Priority',
// F-260619-01: related idea (1:1, optional)
// related idea (1:1, optional)
idea: 'Related Idea',
ideaPlaceholder: 'None (optional)',
titlePlaceholder: 'Enter task title...',