优化: 界面交互完善与设置体验

- 审批卡尊重滚动意图,等长切换回底,排队超时按钮修活
- 带图编辑提示不静默丢,删除目标回写,切换文案消歧
- 会话键盘可达+搜索态重命名,筛选计数口径对齐
- 子任务提示正名,看板加载态
- 主题跟随系统,表单脏态拦截,密钥显隐留空提示
This commit is contained in:
lxy
2026-10-03 16:28:38 +08:00
parent 31f7a9570b
commit 3e3c6f4d0f
22 changed files with 294 additions and 12 deletions
+2
View File
@@ -43,6 +43,8 @@ export default {
queueTimedOut: 'Queue timed out',
approvalNotDelivered: 'Approval operation failed to reach the backend: {error}',
queuedSendFailed: 'Failed to send queued message: {error}',
// UX-P2-A2: toast when queued messages get dropped by error/regenerate/edit (was silent)
queueCleared: 'Cleared {n} queued message(s)',
approvalTimeout: '⚰ Approval timed out, automatically rejected: {toolName}',
// 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.',
+8
View File
@@ -16,6 +16,8 @@ export default {
unarchive: 'Unarchive',
pinConversation: 'Pin',
unpinConversation: 'Unpin',
// UX走查 P3-1/P2-6: rename entry in the "..." menu (search-mode parity + keyboard reach)
renameConversation: 'Rename',
moreActions: 'More actions',
archived: 'Archived',
archivedCount: 'Archived ({n})',
@@ -36,6 +38,8 @@ export default {
maximize: 'Maximize',
pendingApprovalCount: '{n} pending',
pendingApprovalHint: 'Click to jump to the first pending approval',
// UX walkthrough B1: approval card arrived while user scrolled up; no forced scroll, hint only (5s dedup in ToolCardList)
newApprovalPending: 'New approval pending',
restoreSidebar: 'Restore sidebar',
sidebarResizeHint: 'Drag to resize sidebar',
detachWindow: 'Detach window',
@@ -60,6 +64,8 @@ export default {
// ── Provider status ──
clickToSwitchProvider: 'Click to switch provider',
// UX walkthrough B5: topbar switching shares the same IPC as Settings "set as default" (ai_set_provider rewrites is_default), label it honestly
providerSwitchSetsDefault: 'Click to switch provider (also sets it as the global default)',
providerNotConfigured: 'No AI provider configured. Please add one in settings.',
notConfigured: 'Not configured',
@@ -164,6 +170,8 @@ export default {
editMessage: 'Edit',
editMessageFailed: 'Edit failed: {msg}',
editNotLastUser: 'Only the last user message can be edited',
// UX walkthrough B3: editMessage IPC takes no parts; editing would silently drop images, block at entry
editImageBlocked: 'This message contains images and cannot be edited (regenerating would lose them)',
placeholderEditing: 'Edit message then Enter to regenerate (Esc to cancel)',
// ── Error bubble actions (UX-03 / ) ──
+4
View File
@@ -54,6 +54,10 @@ export default {
phProviderName: 'e.g. DeepSeek, GLM-4',
phBaseUrl: 'https://api.deepseek.com',
phApiKey: 'sk-...',
// UX-P2 walkthrough: API key show/hide toggle + "leave empty = keep" note
apiKeyShow: 'Show',
apiKeyHide: 'Hide',
apiKeyKeepHint: 'Leave empty while editing to keep the saved API key unchanged',
phDefaultModel: 'deepseek-chat',
// Direction A (lightweight): defaultModel is only a "suggested starting point";
// guide users to hit "Test connection" to pull the vendor's real model list and overwrite,
+2
View File
@@ -76,6 +76,8 @@ export default {
addSubtask: '+ Add Subtask',
progressTitle: 'Progress',
addSubtaskFailed: 'Failed to create subtask: {msg}',
// Subtask created (UX review P2-3): previously reused the batch-advance wording "Advanced N tasks"
subtaskCreated: 'Subtask created',
// P2-9 subtask hint
subtaskHint: 'This is a subtask of: {title}',
// P2-7 subtask creation validation
+2
View File
@@ -85,6 +85,8 @@ export default {
emptyColumn: 'No tasks',
dragHandle: 'Drag to move',
parentNoDrag: 'Parent status is aggregated from subtasks and cannot be dragged',
// Illegal transition rejected on drag (UX review P2-5): toast the reason when the card bounces back
illegalMove: 'Cannot move: transition from "{from}" to "{to}" is not allowed',
},
// New task modal