- extract_webpage/save_webpage 命中白名单域名时本机直提:GitHub 代码页走 jsDelivr CDN 直链(备 GitHub API),其余白名单页用 trafilatura 正文识别, 失败自动回退 Tavily;内置白名单 github.com,个人空间可关闭/追加域名 - trafilatura 进 requirements(可选依赖,缺失时静默降级全走 Tavily) - recall_project_memory 返回记忆全文后标记为已读,可直接 edit_file Co-authored-by: Astrion powered by Kimi-K3 <astrion-agent@users.noreply.github.com>
401 lines
22 KiB
TypeScript
401 lines
22 KiB
TypeScript
// Locale namespace: personalization (en-US mirror, keys must match zh-CN/personalization.ts exactly).
|
|
// Used by: static/src/components/personalization/PersonalizationDrawer.vue
|
|
export default {
|
|
// ── Personal space drawer: chrome ──
|
|
closePersonalSpaceAriaLabel: 'Close personal space',
|
|
tabAriaLabel: 'Switch personal space sections',
|
|
loadingPersonalization: 'Loading personalization settings...',
|
|
|
|
// ── Tabs ──
|
|
tabGeneral: 'General',
|
|
tabPreferences: 'Personalization',
|
|
tabModel: 'Model & Thinking',
|
|
tabAppearance: 'Appearance & Display',
|
|
tabWorkspace: 'Workspace & Permissions',
|
|
tabContext: 'Context',
|
|
tabTools: 'Tools & Skills',
|
|
tabFiles: 'Files & Images',
|
|
tabVoice: 'Voice Model',
|
|
tabSubAgents: 'Sub-agents',
|
|
tabReviewAgents: 'Review Agents',
|
|
tabAdmin: 'Admin',
|
|
|
|
// ── General ──
|
|
autoTitleTitle: 'Auto-generate conversation titles',
|
|
autoTitleDesc: 'On by default; when off, the title uses the first message',
|
|
tutorialTitle: 'Getting started',
|
|
tutorialDesc: 'Learn key features and common settings through highlights and callouts',
|
|
tutorialButton: 'Start tutorial',
|
|
appUpdateTitle: 'App updates',
|
|
appUpdateDesc: 'Current version: {version} · {checked}',
|
|
appCheckUpdate: 'Check for updates',
|
|
appChecking: 'Checking...',
|
|
appVersionUnknown: 'Unknown',
|
|
appUpdateNotChecked: 'Not checked',
|
|
appUpdateFound: 'New version available',
|
|
appUpdateLatest: 'Up to date',
|
|
appUpdateNeverChecked: 'Not checked yet',
|
|
appUpdateJustChecked: 'Just checked',
|
|
appUpdateCheckedAt: 'Last checked: {time}',
|
|
appUpdateFailed: 'Failed to check for updates',
|
|
appUpdateNoUrl: 'No download URL available',
|
|
logoutTitle: 'Sign out',
|
|
logoutDesc: 'End the current account session',
|
|
|
|
// ── Personalization ──
|
|
preferencesTitle: 'Enable personalized prompts',
|
|
preferencesDesc: 'Your preferences are only injected when enabled',
|
|
selfIdentifyTitle: "AI agent's name",
|
|
selfIdentifyPlaceholder: 'e.g. Nova, Assistant A',
|
|
userNameTitle: 'What to call you',
|
|
userNamePlaceholder: 'e.g. Jojo, Teacher',
|
|
professionTitle: 'Profession',
|
|
professionPlaceholder: 'e.g. Product manager, Designer',
|
|
toneTitle: 'Tone',
|
|
tonePlaceholder: 'Choose or type a tone',
|
|
considerationsTitle: 'Always consider',
|
|
considerationsDesc: 'Referenced as background before every answer',
|
|
considerationsPlaceholder: 'e.g. The user owns a brown male teddy dog since 2014...',
|
|
hideBlockBordersTitle: 'Hide block borders',
|
|
hideBlockBordersDesc: 'Remove dividers between stacked blocks for a cleaner look',
|
|
minimalExpandHeightTitle: 'Limit expanded height',
|
|
minimalExpandHeightDesc: 'In minimal mode, cap the height when expanding the summary line; scroll inside if it overflows',
|
|
communicationStyleTitle: 'Communication style',
|
|
communicationStyleDesc: 'How the agent communicates with you',
|
|
communicationDefault: 'Default',
|
|
communicationDefaultDesc: 'Standard AI style',
|
|
communicationHumanLike: 'Human-like',
|
|
communicationHumanLikeDesc: 'Mimics natural human conversation',
|
|
communicationAuto: 'Auto',
|
|
communicationAutoDesc: 'Natural in chat; structured answers for complex questions',
|
|
conversationContinuityTitle: 'Conversation continuity',
|
|
conversationContinuityDesc: 'How strongly the agent continues past conversations and memory',
|
|
continuityHigh: 'High',
|
|
continuityHighDesc: 'Actively follows up on history, memory and project context',
|
|
continuityMedium: 'Medium',
|
|
continuityMediumDesc: 'Prioritizes the current conversation; references history when needed',
|
|
continuityLow: 'Low',
|
|
continuityLowDesc: 'Keeps conversations independent; rarely looks at history',
|
|
|
|
// ── Model & Thinking ──
|
|
defaultModelTitle: 'Default model',
|
|
defaultModelDesc: 'Preferred model for new conversations and the first request after sign-in',
|
|
modelDisabled: 'Disabled by administrator',
|
|
defaultThinkingModeTitle: 'Default thinking mode',
|
|
defaultThinkingModeDesc: 'Initial thinking mode on sign-in or when starting a new task',
|
|
reasoningEffortTitle: 'Default reasoning effort',
|
|
reasoningEffortDesc: 'Reasoning effort level attached to model requests in thinking mode',
|
|
runModeFast: 'Fast mode',
|
|
runModeFastDesc: 'Prioritizes speed, skips the thinking model',
|
|
runModeThinking: 'Thinking mode',
|
|
runModeThinkingDesc: 'Uses the thinking model for the whole conversation',
|
|
effortDefault: 'Default',
|
|
effortDefaultDesc: 'No effort specified, uses API default',
|
|
effortLow: 'Low',
|
|
effortLowDesc: 'Lowest reasoning, fastest responses',
|
|
effortMedium: 'Medium',
|
|
effortMediumDesc: 'Light reasoning',
|
|
effortHigh: 'High',
|
|
effortHighDesc: 'Balanced reasoning',
|
|
effortXhigh: 'Extra high',
|
|
effortXhighDesc: 'Stronger reasoning',
|
|
effortMax: 'Max',
|
|
effortMaxDesc: 'Maximum reasoning, best for the hardest tasks',
|
|
badgeTextOnly: 'Multimodal',
|
|
badgeThinking: 'Thinking',
|
|
|
|
// ── Appearance & Display ──
|
|
themeTitle: 'Theme',
|
|
themeDesc: 'Switch between Classic, Light and Dark',
|
|
groupByWorkspaceTitle: 'Group chats by project',
|
|
groupByWorkspaceDesc: 'Fold conversation history by workspace or project in the sidebar',
|
|
newChatBlankTitle: 'New Chat opens a blank page',
|
|
newChatBlankDesc: 'When on, "New Chat" routes to the new-chat page and the conversation is created on the first message; when off, an empty conversation is created immediately',
|
|
useCustomNamesTitle: 'Use custom names',
|
|
useCustomNamesDesc: 'Use the self-name and user name from personalization in the conversation area',
|
|
enhancedToolDisplayTitle: 'Enhanced tool display',
|
|
enhancedToolDisplayDesc: 'Show tool blocks as formatted content; off shows raw JSON',
|
|
showStatusAvatarTitle: 'Show assistant status avatar',
|
|
showStatusAvatarDesc: 'Show idle, thinking, and tool-call status animations on the welcome page and at the end of conversations',
|
|
showGitStatusBarTitle: 'Show Git status bar',
|
|
showGitStatusBarDesc: 'Show branch and change stats above the input when the workspace is a Git repo',
|
|
autoOpenTerminalTitle: 'Auto-open terminal panel',
|
|
autoOpenTerminalDesc: 'Open the sidebar terminal panel automatically when a terminal is created',
|
|
quickDockAutoExpandTitle: 'Auto-expand quick dock',
|
|
quickDockAutoExpandDesc: 'Expand the quick dock automatically when it has content; when off, expand it only with the side button',
|
|
editSummaryLiveTitle: 'Show edit summary live',
|
|
editSummaryLiveDesc: 'Show edited files in real time during a run; when off, show them only after the run completes',
|
|
filePreviewWrapTitle: 'Wrap file preview lines',
|
|
filePreviewWrapDesc: 'Wrap file previews to the panel width; when off, long lines scroll horizontally',
|
|
blockDisplayModeTitle: 'Block display mode',
|
|
blockDisplayModeDesc: 'How thinking and tool blocks are displayed',
|
|
blockDisplayTraditional: 'Traditional list',
|
|
blockDisplayTraditionalDesc: 'Vertical list in chronological order, classic style',
|
|
blockDisplayStacked: 'Stacked animation',
|
|
blockDisplayStackedDesc: 'Stacks more than 6 items under "More", animated',
|
|
blockDisplayMinimal: 'Minimal mode',
|
|
blockDisplayMinimalDesc: 'Summary line + seamless expand, streamed output',
|
|
badgeRecommended: 'Recommended',
|
|
badgeNew: 'New',
|
|
compactMessageTitle: 'Compact system messages',
|
|
compactMessageDesc: 'How compact system messages (review, sub-agents) are displayed',
|
|
compactMessageFull: 'Full info',
|
|
compactMessageFullDesc: 'Show full original content for review, sub-agent and other system messages',
|
|
compactMessageBrief: 'Brief',
|
|
compactMessageBriefDesc: 'Replace system messages with a one-line summary',
|
|
themeClassic: 'Classic',
|
|
themeClassicDesc: 'Beige tones, soft and high-contrast',
|
|
themeLight: 'Light',
|
|
themeLightDesc: 'Pure white + elegant grey, clean and fresh',
|
|
themeDark: 'Dark',
|
|
themeDarkDesc: 'Deep grey + black, dimmed with colorful accents',
|
|
localeZhCN: '简体中文',
|
|
localeChineseDesc: 'Chinese (Simplified)',
|
|
localeEnglish: 'English',
|
|
localeEnglishDesc: 'English (US)',
|
|
|
|
// ── Workspace & Permissions ──
|
|
defaultPermissionTitle: 'Default permission',
|
|
defaultPermissionDesc: 'Default permission mode for new conversations',
|
|
permissionReadonly: 'Read-only',
|
|
permissionReadonlyDesc: 'Read/search tools only; modification operations are rejected',
|
|
permissionApproval: 'Approval',
|
|
permissionApprovalDesc: 'Tools that modify workspace files require manual approval',
|
|
permissionAutoApproval: 'Auto-approval',
|
|
permissionAutoApprovalDesc: 'Writes pass through; high-risk operations are auto-approved by the background review agent',
|
|
permissionUnrestricted: 'Unrestricted',
|
|
permissionUnrestrictedDesc: 'Tools execute directly through the normal flow',
|
|
defaultWorkModeTitle: 'Default work mode',
|
|
workRunModeDesc: 'Default work mode for new conversations; locked to read-only in plan mode',
|
|
workModePlan: 'Plan',
|
|
workModePlanDesc: 'Only makes a plan and executes after approval',
|
|
workModeAsk: 'Ask',
|
|
workModeAskDesc: 'Discuss and confirm before starting',
|
|
workModeExecute: 'Execute',
|
|
workModeExecuteDesc: 'Fills in details and starts directly',
|
|
agentsMdInjectTitle: 'Auto-inject AGENTS.md',
|
|
agentsMdInjectDesc: 'Automatically inject system prompt when AGENTS.md exists in the workspace root',
|
|
claudeMdInjectTitle: 'Auto-inject CLAUDE.md',
|
|
claudeMdInjectDesc: 'Automatically inject system prompt when CLAUDE.md exists in the workspace root (off by default, injected alongside AGENTS.md)',
|
|
agentsSkillsScanTitle: 'Scan .agents/skills/ directory',
|
|
agentsSkillsScanDesc: 'Auto-scan industry skills under .agents/skills/ (Agent Skills open standard path) and list them with .astrion/skills/ skills; duplicates with the same name make read_skill error out and suggest reading by specific path',
|
|
modifyHistoryTitle: 'Track file changes',
|
|
modifyHistoryDesc: 'After each task, save this round of write/edit file changes as diffs under .astrion/modify_history/ so accidental overwrites (e.g. by git checkout) can be recovered manually',
|
|
versionControlDivider: 'Version control',
|
|
versioningByDefaultTitle: 'Enable versioning for new chats',
|
|
versioningByDefaultDesc: 'Turned on automatically when creating a new chat; can be disabled below the input',
|
|
backupModeTitle: 'Backup mode',
|
|
backupModeDesc: 'Shallow backup only tracks AI-edited files; full backup snapshots the whole workspace',
|
|
shallowBackup: 'Shallow',
|
|
shallowBackupDesc: 'Fast, only restores edited files',
|
|
fullBackup: 'Full',
|
|
fullBackupDesc: 'Full workspace snapshot; the first one may be slow',
|
|
goalModeDivider: 'Goal mode',
|
|
goalReviewActiveTitle: 'Review agent gathers evidence',
|
|
goalReviewActiveDesc: 'When on, runs read-only commands to verify goals; when off, judges from conversation only',
|
|
goalMaxTurnsTitle: 'Max auto-continuation turns',
|
|
goalMaxTurnsDesc: 'Automatically continues up to 1-100 turns after the main model stops',
|
|
goalTokenLimitTitle: 'Enable cumulative token limit',
|
|
goalTokenLimitDesc: 'Stop goal mode when cumulative input/output exceeds the limit',
|
|
goalTokenLimitValueTitle: 'Cumulative token limit',
|
|
goalTokenLimitValueDesc: 'Goal mode stops when cumulative consumption reaches this value',
|
|
|
|
// ── Context ──
|
|
recentConversationsTitle: 'Recent conversation hints',
|
|
recentConversationsDesc: 'Inject several recent non-empty conversations from the current workspace into the system prompt',
|
|
recentConversationsCountTitle: 'Recent conversations to inject',
|
|
restoreDefault: 'Restore default',
|
|
maxMemoryInjectTitle: 'Max memory injection',
|
|
noLimitPlaceholder: 'No limit',
|
|
compressionStrategyTitle: 'Context compression strategy',
|
|
compressionStrategyDesc: 'Control auto shallow and deep compression separately',
|
|
autoShallowCompressTitle: 'Auto shallow compression',
|
|
autoDeepCompressTitle: 'Auto deep compression',
|
|
shallowTriggerTokens: 'Shallow compression trigger context',
|
|
shallowKeepRecentTools: 'Recent tools kept in shallow compression',
|
|
shallowKeepTurnTools: 'Tools kept for current turn (shallow)',
|
|
shallowMaxReplace: 'Max replacements per round',
|
|
shallowToolInterval: 'Trigger on tool-call interval',
|
|
deepTriggerTokens: 'Deep compression trigger context',
|
|
deepCompressInjectTitle: 'Directly inject deep compression',
|
|
deepCompressInjectDesc: 'When on, inject the full text of previous compressions; when off, only hint the file location',
|
|
restoreCompressionDefaults: 'Restore compression defaults',
|
|
|
|
// ── Tools & Skills ──
|
|
silentToolDisableTitle: 'Silently disable tools',
|
|
silentToolDisableDesc: 'No hint message when disabling tools; the model won\'t notice disabled items',
|
|
hideToolApprovalTitle: 'Hide tool approval panel',
|
|
hideToolApprovalDesc: 'In auto-approval mode, the approval panel no longer expands while tools are being reviewed in the background',
|
|
toolIntentTitle: 'Tool intent hints',
|
|
toolIntentDesc: 'State briefly what a tool will do before calling it',
|
|
skillHintsTitle: 'Skill hint system',
|
|
skillHintsDesc: 'Suggest relevant skills to the model when specific keywords are detected',
|
|
strictSkillTitle: 'Strict constraints',
|
|
strictSkillDesc: 'Applies only to skills enabled in personal space',
|
|
terminalToolsTitle: 'Terminal tools',
|
|
subAgentToolsTitle: 'Sub-agent tools',
|
|
runCommandFgTitle: 'run_command foreground',
|
|
runCommandBgTitle: 'run_command background',
|
|
availableSkillsTitle: 'Available skills',
|
|
availableSkillsDesc: 'Checked skills are injected into the system prompt and synced to .astrion/skills/ in the workspace',
|
|
disabledToolCategoriesTitle: 'Default disabled tool categories',
|
|
disabledToolCategoriesDesc: 'These categories stay off in new tasks once selected',
|
|
toolLoadingTitle: 'On-demand tools (dynamic loading)',
|
|
toolLoadingDesc: 'Checked tools are not injected into context by default; the model fetches their full definitions on demand via load_tools, saving tokens and improving tool selection accuracy. Only affects new conversations; existing conversations keep the snapshot taken at creation',
|
|
toolLoadingEnabledTitle: 'Enable dynamic tool loading',
|
|
toolLoadingCat: {
|
|
workflow: 'Workflows',
|
|
sub_agent: 'Sub-agents',
|
|
conversation: 'Conversation review',
|
|
memory_write: 'Memory write',
|
|
personalization: 'Personalization',
|
|
skill_create: 'Skills',
|
|
mcp: 'MCP',
|
|
misc: 'Easter egg'
|
|
},
|
|
webDirectExtractTitle: 'Direct extraction whitelist',
|
|
webDirectExtractDesc:
|
|
'Whitelisted sites are extracted locally (GitHub code files via CDN raw links, others via readability-style parsing) at no Tavily quota cost; falls back to Tavily automatically on failure',
|
|
webDirectExtractEnabledTitle: 'Enable whitelist direct extraction',
|
|
webDirectExtractDomainsTitle: 'Additional whitelisted domains',
|
|
webDirectExtractBuiltinBadge: 'Built-in',
|
|
webDirectExtractDomainPlaceholder: 'Enter a domain, e.g. docs.python.org',
|
|
webDirectExtractAdd: 'Add',
|
|
|
|
// ── Files & Images ──
|
|
imageCompressionTitle: 'Image compression',
|
|
imageCompressionDesc: 'Scale down images proportionally when sent or viewed via view_image',
|
|
imageOriginal: 'Original',
|
|
imageOriginalDesc: 'No compression',
|
|
image1080p: '1080p',
|
|
image1080pDesc: 'Scale down so the longest edge stays within 1080p',
|
|
image720p: '720p',
|
|
image720pDesc: 'Scale down so the longest edge stays within 720p',
|
|
image540p: '540p',
|
|
image540pDesc: 'Scale down so the longest edge stays within 540p',
|
|
|
|
// ── Data ──
|
|
usageEyebrow: 'Conversation usage',
|
|
usageTitle: 'Usage statistics',
|
|
usageDesc: 'Cumulative input/output tokens, conversation count, user messages and tool calls across all conversations',
|
|
usageInputLabel: 'Input tokens',
|
|
usageOutputLabel: 'Output tokens',
|
|
usageConversationsLabel: 'Conversations',
|
|
usageMessagesLabel: 'User messages',
|
|
usageToolsLabel: 'Tool calls',
|
|
usageSyncing: 'Syncing latest statistics...',
|
|
usageUpdated: 'Updated {time}',
|
|
usageRefreshing: 'Refreshing...',
|
|
usageRefresh: 'Refresh',
|
|
usageNeverRefreshed: 'Not refreshed yet',
|
|
usageUnknownTime: 'Unknown time',
|
|
usageFetchFailed: 'Failed to fetch usage statistics',
|
|
|
|
// ── Voice model ──
|
|
voiceModelIntro: 'On-device speech recognition model (SenseVoice int8) supporting mixed Chinese/English with automatic punctuation. The model is about 228MB and runs locally on the phone with no network needed.',
|
|
voiceModelTitle: 'Speech recognition model',
|
|
voiceModelReady: 'Downloaded (228MB)',
|
|
voiceModelDownloading: 'Downloading {percent}% — {msg}',
|
|
voiceModelPartial: 'Incomplete download, please download again',
|
|
voiceModelNotDownloaded: 'Not downloaded — click to download',
|
|
voiceDownloadingBtn: 'Downloading...',
|
|
voiceRedownload: 'Re-download',
|
|
voiceDownloadModel: 'Download model',
|
|
voiceAppOnlyAlert: 'Voice model downloads are only available inside the App',
|
|
voicePreparing: 'Preparing...',
|
|
|
|
// ── Sub-agents ──
|
|
subAgentsIntro: 'Manage sub-agent roles for multi-agent mode. Preset roles can be edited (creating a custom override); custom roles can be created, edited and deleted.',
|
|
compressThresholdTitle: 'Context compression threshold',
|
|
compressThresholdDesc: 'Deep compression triggers when a sub-agent\'s context tokens exceed this value (default 150000)',
|
|
maxTurnsTitle: 'Max execution turns',
|
|
maxTurnsDesc: 'Max execution turns for a single traditional background sub-agent task (one turn = one model call). Leave empty for the default of 50; 0 means unlimited (use with care — runaway tasks keep consuming API quota). Multi-agent team members are long-term collaborators and are not limited by this',
|
|
saving: 'Saving...',
|
|
roleListTitle: 'Roles',
|
|
newRole: '+ New Role',
|
|
noRoles: 'No roles yet',
|
|
customTag: 'Custom',
|
|
presetTag: 'Preset',
|
|
noDescription: 'No description',
|
|
roleMetaId: 'ID: {id} · Thinking mode: {mode}',
|
|
roleMetaModel: ' · Model: {model}',
|
|
edit: 'Edit',
|
|
roleEditorEditTitle: 'Edit role',
|
|
roleEditorCreateTitle: 'New role',
|
|
roleIdTitle: 'Role ID',
|
|
roleIdPlaceholder: 'Lowercase letters and underscores, e.g. api-designer',
|
|
roleNameTitle: 'Display name',
|
|
roleNamePlaceholder: 'e.g. API Designer',
|
|
roleDescTitle: 'Description',
|
|
roleDescPlaceholder: 'One sentence describing the role',
|
|
thinkingModeTitle: 'Thinking mode',
|
|
roleThinkingDesc: 'fast = quick responses, thinking = reasoning',
|
|
fastResponseMode: 'Quick response mode',
|
|
thinkingReasoningMode: 'Reasoning mode',
|
|
modelTitle: 'Model',
|
|
roleModelEmptyDesc: 'Leave empty to use the default model',
|
|
defaultModelOption: 'Default model',
|
|
roleDefaultModelDesc: 'Uses default_model from the config file',
|
|
textOnly: 'Text only',
|
|
promptBodyTitle: 'Prompt Body (Markdown)',
|
|
promptBodyPlaceholder: 'Custom prompt body for this role...',
|
|
deleteRoleConfirm: 'Delete role "{name}"?',
|
|
|
|
// ── Review agents ──
|
|
reviewIntro: 'Configure models and run parameters for the three review agents. They share the model library with sub-agents; leave empty to use the library default.',
|
|
reviewAgentAutoApproval: 'Auto-approval agent',
|
|
reviewAgentAutoApprovalDesc: 'Judges whether a tool call is out of scope or dangerous in auto-approval mode',
|
|
reviewAgentGoalReview: 'Goal review agent',
|
|
reviewAgentGoalReviewDesc: 'Judges whether long-term goals are truly met in goal mode',
|
|
reviewAgentWorkflowReview: 'Workflow review agent',
|
|
reviewAgentWorkflowReviewDesc: 'Judges whether stage output meets the bar at workflow review nodes',
|
|
reviewModelEmptyDesc: 'Leave empty to use the model library default',
|
|
reviewDefaultModelDesc: 'Uses the model library default_model',
|
|
titleModelTitle: 'Title generation model',
|
|
titleModelDesc: 'Choose the AI model used to generate conversation titles, shared with sub-agents',
|
|
externalSessionHeaderTitle: 'External session header',
|
|
externalSessionHeaderDesc: 'Send a stable per-conversation x-opencode-session header to OpenCode endpoints for session routing and cache optimization; disabled means no header is sent',
|
|
titleDefaultModelDesc: 'Uses the sub-agent model library default',
|
|
reviewThinkingDesc: 'Falls back to fast mode automatically when the model does not support thinking',
|
|
timeoutTitle: 'Review request timeout',
|
|
timeoutDesc: 'Single model request timeout (5-3600 seconds)',
|
|
maxRoundsTitle: 'Max review rounds',
|
|
maxRoundsDesc: 'Applies the fallback when no conclusion is reached within this many rounds (1-50)',
|
|
commandTimeoutTitle: 'Evidence command timeout',
|
|
commandTimeoutDesc: 'Single timeout for read-only evidence commands (1-600 seconds)',
|
|
|
|
// ── Admin ──
|
|
mcpConfigTitle: 'MCP server management',
|
|
mcpConfigDesc: 'Configure MCP servers centrally to manage tool extensions',
|
|
adminMonitorTitle: 'Admin monitor',
|
|
adminMonitorDesc: 'Quota trends, container status, project storage and upload security',
|
|
apiAdminTitle: 'API management',
|
|
apiAdminDesc: 'Manage API calls and account',
|
|
customToolsAdminTitle: 'Custom tool management',
|
|
customToolsAdminDesc: 'Create and edit custom tool files online',
|
|
open: 'Open',
|
|
|
|
// ── Alerts & errors (script: toast/confirm/Error) ──
|
|
modelDisabledTitle: 'Model disabled',
|
|
modelDisabledMessage: 'This model has been disabled by the administrator and cannot be selected',
|
|
modelModeConflictTitle: 'Model / thinking mode conflict',
|
|
modelThinkingOnlyWarning: '{label} only supports thinking mode. Your setting was kept.',
|
|
modelFastOnlyWarning: '{label} only supports fast mode. Your setting was kept.',
|
|
|
|
// ── Experience onboarding ──
|
|
expTitle: 'First time? Choose a mode that fits you',
|
|
expSubtitle: 'Speed, web access and tool scope differ; switch anytime in personal space',
|
|
expConfirmStart: 'Confirm & Start',
|
|
expModeFastBadge: 'Lightning',
|
|
expModeFastTitle: 'Quick answers',
|
|
expModeFastDesc: "Answers your questions quickly, searches the web, and doesn't write files",
|
|
expModeThinkingBadge: 'Thinking',
|
|
expModeThinkingTitle: 'Think first',
|
|
expModeThinkingDesc: "Thinks before completing tasks, searches the web, and doesn't write files; replies take longer",
|
|
expModeResearchBadge: 'Research',
|
|
expModeResearchTitle: 'Multi-step research',
|
|
expModeResearchDesc: 'Multi-step reasoning and 20+ tools for complex tasks; replies may take a while',
|
|
expModeExpertBadge: 'Expert',
|
|
expModeExpertTitle: 'Full-featured exploration',
|
|
expModeExpertDesc: 'Explore every configuration option freely; built for agent experts and practitioners',
|
|
} as const; |