Files
DevFlow/src/i18n/en/aiChat.ts

145 lines
5.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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',
// ── F-01 阶段6: model picker (auto/specify toggle + dropdown) ──
autoMode: 'Auto',
specifyMode: 'Specify',
autoModeHint: 'Auto mode: router picks the best model per scenario',
specifyModeHint: 'Specify mode: use the selected model, overriding the router (main chat only)',
selectModel: 'Select model',
noModels: 'No models available. Please fetch in settings.',
// ── 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 projects 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 windows 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}',
},
}