137 lines
5.2 KiB
TypeScript
137 lines
5.2 KiB
TypeScript
export default {
|
||
aiChat: {
|
||
// ── Conversation sidebar ──
|
||
sidebarTitle: 'Chats',
|
||
newConversation: 'New chat',
|
||
doubleClickToRename: 'Double-click to rename',
|
||
archive: 'Archive',
|
||
unarchive: 'Unarchive',
|
||
pinConversation: 'Pin',
|
||
unpinConversation: 'Unpin',
|
||
archived: 'Archived',
|
||
archivedCount: 'Archived ({n})',
|
||
emptyConversation: 'No conversations',
|
||
// UX-06 §3.1: conversation search (live title filter, Ctrl+K to focus)
|
||
searchPlaceholder: 'Search chats…',
|
||
searchEmpty: 'No matching chats',
|
||
searchShortcutHint: 'Ctrl+K',
|
||
|
||
// ── Time grouping (sidebar) ──
|
||
today: 'Today',
|
||
yesterday: 'Yesterday',
|
||
earlier: 'Earlier',
|
||
|
||
// ── Header buttons ──
|
||
conversationList: 'Chat list',
|
||
maximize: 'Maximize',
|
||
pendingApprovalCount: '{n} pending',
|
||
pendingApprovalHint: 'Click to jump to the first pending approval',
|
||
restoreSidebar: 'Restore sidebar',
|
||
sidebarResizeHint: 'Drag to resize sidebar',
|
||
detachWindow: 'Detach window',
|
||
closePanel: 'Close panel',
|
||
dockRight: 'Dock to main window right',
|
||
undock: 'Undock',
|
||
pinOnTop: 'Pin on top',
|
||
unpin: 'Unpin',
|
||
closeWindow: 'Close window',
|
||
|
||
// ── Provider status ──
|
||
clickToSwitchProvider: 'Click to switch provider',
|
||
providerNotConfigured: 'No AI provider configured. Please add one in settings.',
|
||
notConfigured: 'Not configured',
|
||
|
||
// ── Empty states (UX-2025-20: 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',
|
||
emptyHint: 'Try "create a project" or "list all tasks"',
|
||
// Example prompt cards: click to fill and send (4 prompts, DevFlow scenarios)
|
||
examplePrompt1: 'Analyze this project’s dependencies',
|
||
examplePrompt2: 'Help me write a workflow node',
|
||
examplePrompt3: 'List all current tasks',
|
||
examplePrompt4: 'Generate a project idea',
|
||
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) ──
|
||
providerSwitched: 'Switched to {model}',
|
||
providerSwitchHint: 'Current model: {model}',
|
||
|
||
// ── Back to bottom ──
|
||
backToBottom: 'Back to bottom',
|
||
|
||
// ── Pending queue ──
|
||
queueTitle: 'Queued {n}/10',
|
||
clearQueue: 'Clear',
|
||
// UX-260616-06/07: queue item edit + send now
|
||
queueEdit: 'Edit',
|
||
queueSave: 'Save',
|
||
queueCancel: 'Cancel',
|
||
queueSendNow: 'Send now',
|
||
|
||
// ── Skill ──
|
||
clearSkill: 'Clear skill',
|
||
placeholderWithSkill: 'Skill selected. Type arguments and press Enter',
|
||
placeholderDefault: "Type a message... (/ for skills, {'@'} to mention)",
|
||
skillNoMatch: 'No matching skill',
|
||
skillNotLoaded: 'No local skills loaded',
|
||
|
||
// ── UX-10: @ entity mention (@ opens popover, select inserts [Type:Name] token) ──
|
||
mentionHint: "{'@'} to mention project/task",
|
||
mentionGroupProject: 'Projects',
|
||
mentionGroupTask: 'Tasks',
|
||
mentionNoMatch: 'No matching entity',
|
||
mentionEmpty: 'No project/task to mention',
|
||
|
||
// ── Send ──
|
||
stopGenerating: 'Stop generating',
|
||
|
||
// ── Input hint ──
|
||
inputHint: 'Enter to send · Shift+Enter for newline',
|
||
|
||
// ── Confirm dialog ──
|
||
confirmDeleteConversation: 'Delete chat "{title}"? This cannot be undone.',
|
||
clearChat: 'Clear',
|
||
confirmClearChat: 'Are you sure you want to clear all messages in this chat? This cannot be undone.',
|
||
// UX-08 §3.4: generate-in-progress confirm when starting a new chat (only when generating, otherwise no behavior change)
|
||
confirmNewConvWhileGenerating: 'Generation is in progress. Interrupt it and start a new chat?',
|
||
toastSendFail: 'Send failed: {msg}',
|
||
|
||
// ── Message copy (F-260615-13) ──
|
||
copyMsg: 'Copy message',
|
||
copied: 'Copied',
|
||
copyFailed: 'Copy failed',
|
||
|
||
// ── Message actions bar (UX-02) ──
|
||
regenerate: 'Regenerate',
|
||
regenerateFailed: 'Regenerate failed: {msg}',
|
||
regenerateUnavailable: 'No reply to regenerate',
|
||
|
||
// ── UX-09: edit last user message and regenerate ──
|
||
editMessage: 'Edit',
|
||
editMessageFailed: 'Edit failed: {msg}',
|
||
editNotLastUser: 'Only the last user message can be edited',
|
||
placeholderEditing: 'Edit message then Enter to regenerate (Esc to cancel)',
|
||
|
||
// ── Error bubble actions (UX-03 / UX-260616-01) ──
|
||
retry: 'Retry',
|
||
goToSettingsAction: 'Open settings',
|
||
|
||
// ── F-260616-03: max iterations reached pause action card ──
|
||
maxRoundsReached: 'Max rounds reached. Continue?',
|
||
maxRoundsHint: 'Continue runs another full round; stop ends with current results',
|
||
continueLoop: 'Continue',
|
||
stopLoop: 'Stop',
|
||
continueLoopFailed: 'Continue failed: {msg}',
|
||
stopLoopFailed: 'Stop failed: {msg}',
|
||
|
||
// ── UX-18: conversation export (sidebar hover, pick format to download) ──
|
||
exportConversation: 'Export chat',
|
||
exportMarkdown: 'Markdown',
|
||
exportJson: 'JSON',
|
||
exportTxt: 'Plain text',
|
||
exportFailed: 'Export failed: {msg}',
|
||
},
|
||
}
|