{ "agent.add.error.failed": "Failed to add an agent", "agent.add.title": "Add Agent", "agent.archive.related_resources": "Linked channels will disconnect; scheduled tasks are paused. Settings, subscriptions, and run history are kept. Missed tasks won't run automatically after restoring the agent.", "agent.askUserQuestion.answered": "answered", "agent.askUserQuestion.close": "Close", "agent.askUserQuestion.customPlaceholder": "Enter your answer...", "agent.askUserQuestion.next": "Next", "agent.askUserQuestion.previous": "Previous", "agent.askUserQuestion.progress": "{{current}} of {{total}}", "agent.askUserQuestion.skip": "Skip", "agent.askUserQuestion.submit": "Submit", "agent.askUserQuestion.title": "Questions from Agent", "agent.builtin.cherry_assistant.description": "Built-in Cherry Studio advisor. Diagnose issues, guide operations, collect FAQs, submit bugs/feature requests, and search/create Skills", "agent.builtin.cherry_doctor.description": "Built-in System Doctor analyst. Reads the diagnostic report and runtime state, explains the root cause, and proposes bounded fixes", "agent.builtin.cherry_support.description": "Official Cherry Studio support Agent for setup guidance, troubleshooting, FAQs, and feedback", "agent.builtin.cherry_support.diagnostics.prepared": "Cherry Support prepared an editable description. Review it before choosing diagnostic data and submitting.", "agent.builtin.cherry_support.diagnostics.review": "Review problem report", "agent.channels.add": "Add", "agent.channels.bindAgent": "Bind Agent", "agent.channels.chatIdsAutoTrackHint": "When left empty, the system will auto-track: you need to send a message to the Bot on the platform first, then the system will record the Chat ID for future notifications.", "agent.channels.comingSoon": "Coming soon", "agent.channels.connected": "Connected", "agent.channels.createError": "Failed to create channel", "agent.channels.deleteConfirm": "Delete channel \"{{name}}\"?", "agent.channels.deleteError": "Failed to delete channel", "agent.channels.dingtalk.allowlistHint": "Separate IDs with commas. Chats: dm:staffId or group:conversationId. Users: staff IDs. Empty lists allow everyone; when both are set, both must match. Use /whoami to get IDs.", "agent.channels.dingtalk.cardHint": "Optional: publish an AI card template with msgContent and flowStatus fields and grant card instance permissions. Leave blank for text replies.", "agent.channels.dingtalk.cardTemplateId": "AI card template ID (optional)", "agent.channels.dingtalk.chatIds": "Allowed chat IDs", "agent.channels.dingtalk.clientId": "Client ID (AppKey)", "agent.channels.dingtalk.clientSecret": "Client Secret (AppSecret)", "agent.channels.dingtalk.description": "Connect an internal app robot via Stream mode.", "agent.channels.dingtalk.privacyHint": "Group members share the conversation and can see bot replies. Cherry Studio must remain running to receive messages.", "agent.channels.dingtalk.robotCode": "Robot Code", "agent.channels.dingtalk.setupHint": "Create an internal DingTalk app robot and enable Stream mode. Enable robot message sending and file permissions.", "agent.channels.dingtalk.title": "DingTalk", "agent.channels.dingtalk.userIds": "Allowed user IDs", "agent.channels.discord.botToken": "Bot Token", "agent.channels.discord.botTokenPlaceholder": "Enter your Discord bot token", "agent.channels.discord.channelIds": "Allowed Channel IDs", "agent.channels.discord.channelIdsHint": "Format: channel:id or dm:id. Leave empty to allow all.", "agent.channels.discord.channelIdsPlaceholder": "channel:123456789, dm:987654321", "agent.channels.discord.description": "Receive and respond to messages via a Discord bot using WebSocket gateway.", "agent.channels.discord.title": "Discord", "agent.channels.discord.whoamiTip": "💡 Tip: Send /whoami to the bot to get your channel ID in the correct format.", "agent.channels.error": "Error", "agent.channels.feishu.appId": "App ID", "agent.channels.feishu.appIdPlaceholder": "Enter your Feishu app ID", "agent.channels.feishu.appSecret": "App Secret", "agent.channels.feishu.appSecretPlaceholder": "Enter your Feishu app secret", "agent.channels.feishu.chatIds": "Allowed Chat IDs", "agent.channels.feishu.chatIdsHint": "Comma-separated chat IDs. Leave empty to allow all chats.", "agent.channels.feishu.chatIdsPlaceholder": "oc_xxxxx, oc_yyyyy", "agent.channels.feishu.connected": "Connected", "agent.channels.feishu.description": "Receive and respond to messages via a Feishu/Lark bot using WebSocket.", "agent.channels.feishu.domain": "Domain", "agent.channels.feishu.domainFeishu": "Feishu (China)", "agent.channels.feishu.domainLark": "Lark (International)", "agent.channels.feishu.encryptKey": "Encrypt Key", "agent.channels.feishu.encryptKeyPlaceholder": "Enter the Encrypt Key from your Feishu app", "agent.channels.feishu.loginHint": "No credentials configured. Enable the channel to start QR code registration, or enter App ID and App Secret manually.", "agent.channels.feishu.qrExpired": "QR code expired. Please retry by toggling the channel.", "agent.channels.feishu.qrHint": "Waiting for QR code scan...", "agent.channels.feishu.qrScanHint": "Open Feishu on your phone and scan the QR code to create a bot app.", "agent.channels.feishu.qrTitle": "Feishu QR Registration", "agent.channels.feishu.title": "Feishu", "agent.channels.feishu.verificationToken": "Verification Token", "agent.channels.feishu.verificationTokenPlaceholder": "Enter the Verification Token from your Feishu app", "agent.channels.logs": "Logs", "agent.channels.noInstances": "No {{type}} channels configured. Click \"+ Add\" to create one.", "agent.channels.noLogs": "No logs yet", "agent.channels.qq.appId": "App ID", "agent.channels.qq.appIdPlaceholder": "Enter your QQ Bot App ID", "agent.channels.qq.chatIds": "Allowed Chat IDs", "agent.channels.qq.chatIdsHint": "Format: c2c:openid, group:groupid, channel:channelid. Leave empty to allow all.", "agent.channels.qq.chatIdsPlaceholder": "c2c:abc123, group:xyz789", "agent.channels.qq.clientSecret": "Client Secret", "agent.channels.qq.clientSecretPlaceholder": "Enter your QQ Bot client secret", "agent.channels.qq.description": "Receive and respond to messages via QQ Bot official API.", "agent.channels.qq.mentionOnlyHint": "When on, the bot only replies to @mentions. Turn off to receive all group messages (requires \"receive all messages\" permission on QQ Open Platform).", "agent.channels.qq.mentionOnlyLabel": "@Mention only", "agent.channels.qq.title": "QQ", "agent.channels.qq.whoamiTip": "💡 Tip: Send /whoami to the bot to get your chat ID in the correct format.", "agent.channels.qrSetup.cancelled": "Setup cancelled. No credentials were changed.", "agent.channels.qrSetup.confirmed": "Credentials saved. Bind an Agent and enable the channel to connect.", "agent.channels.qrSetup.error": "Could not complete setup. Try again or enter credentials manually.", "agent.channels.qrSetup.expired": "The QR code expired. Try again.", "agent.channels.qrSetup.hint": "Scan to create or authorize a bot. Credentials are saved automatically; then bind an Agent and enable the channel. Disable an active channel before reconnecting. You can also enter credentials manually.", "agent.channels.qrSetup.pending": "Scan with the channel’s mobile app and confirm authorization.", "agent.channels.qrSetup.start": "Connect with QR code", "agent.channels.security.inheritFromAgent": "Inherit from agent", "agent.channels.security.permissionMode": "Channel Permission Mode", "agent.channels.selectAgent": "Select an agent to bind", "agent.channels.slack.appToken": "App-Level Token", "agent.channels.slack.appTokenPlaceholder": "xapp-...", "agent.channels.slack.botToken": "Bot Token", "agent.channels.slack.botTokenPlaceholder": "xoxb-...", "agent.channels.slack.channelIds": "Allowed Channel IDs", "agent.channels.slack.channelIdsHint": "Slack channel IDs. Leave empty to allow all.", "agent.channels.slack.channelIdsPlaceholder": "C01234567, D89012345", "agent.channels.slack.description": "Receive and respond to messages via a Slack bot using Socket Mode.", "agent.channels.slack.title": "Slack", "agent.channels.slack.whoamiTip": "💡 Tip: Send /whoami to the bot to get the channel ID.", "agent.channels.telegram.botToken": "Bot Token", "agent.channels.telegram.botTokenPlaceholder": "Enter your Telegram bot token", "agent.channels.telegram.chatIds": "Allowed Chat IDs", "agent.channels.telegram.chatIdsHint": "Comma-separated. Leave empty to allow all chats.", "agent.channels.telegram.chatIdsPlaceholder": "123456789, 987654321", "agent.channels.telegram.description": "Receive and respond to messages via a Telegram bot using long polling.", "agent.channels.telegram.title": "Telegram", "agent.channels.updateError": "Failed to update channel", "agent.channels.wechat.connected": "Logged in", "agent.channels.wechat.description": "Receive and respond to messages via WeChat using the iLink Bot API.", "agent.channels.wechat.disconnected": "Not logged in", "agent.channels.wechat.loginHint": "First login requires scanning a QR code. A QR code will appear automatically when the channel connects.", "agent.channels.wechat.qrExpired": "QR code expired. Please retry by toggling the channel.", "agent.channels.wechat.qrHint": "Open WeChat on your phone, scan the QR code to log in.", "agent.channels.wechat.qrTitle": "WeChat QR Login", "agent.channels.wechat.title": "WeChat", "agent.channels.wecom.allowlistHint": "Separate IDs with commas. Chats use dm:USERID or group:CHATID; /whoami shows your IDs. Both lists must match when set; an empty list allows all. Agent permissions still apply.", "agent.channels.wecom.botId": "Bot ID", "agent.channels.wecom.chatIds": "Allowed chat IDs", "agent.channels.wecom.description": "Connect a WeCom AI bot", "agent.channels.wecom.privacyHint": "Group members share the conversation and can see bot replies. Cherry Studio must remain running to receive messages.", "agent.channels.wecom.secret": "Secret", "agent.channels.wecom.setupHint": "Create an AI bot in WeCom developer mode, enable the persistent connection, then enter its Bot ID and Secret.", "agent.channels.wecom.title": "WeCom", "agent.channels.wecom.userIds": "Allowed user IDs", "agent.composer.background_running_one": "{{count}} background task running", "agent.composer.background_running_other": "{{count}} background tasks running", "agent.delete.content": "Deleting the agent will forcibly stop and delete all sessions associated with the agent. Are you sure?", "agent.delete.error.failed": "Failed to delete the agent", "agent.delete.title": "Delete Agent", "agent.edit.title": "Edit Agent", "agent.edit_resend.error.attachment_unavailable": "An attachment cannot be read. Remove it or attach it again.", "agent.edit_resend.error.busy": "The session is still busy. Wait for the current work to finish, then try again.", "agent.edit_resend.error.checkpoint_unsupported": "This checkpoint was created by an older version or cannot be restored by the current one, so editing and resending from this point is not supported. The conversation itself is unaffected and can continue.", "agent.edit_resend.error.close_failed": "The old runtime has not exited safely. The original conversation was kept.", "agent.edit_resend.error.history_changed": "The conversation changed. Cancel editing and open the editor again.", "agent.edit_resend.error.input_unsupported": "This message contains a reference that cannot be restored for editing.", "agent.edit_resend.error.invalid_target": "This message cannot be edited and resent.", "agent.edit_resend.label": "Edit and resend", "agent.edit_resend.save": "Save and resend", "agent.edit_resend.warning": "Replaces this message and all following messages. File changes will not be undone.", "agent.heartbeat.action_failed": "Could not save or start the heartbeat. Check the logs and try again.", "agent.heartbeat.conflict": "The tasks changed outside this editor. Copy your edits before reloading.", "agent.heartbeat.description": "The agent checks these tasks at each heartbeat. Each non-empty run uses your selected model.", "agent.heartbeat.edit": "Edit heartbeat tasks", "agent.heartbeat.empty": "No tasks configured. Heartbeat runs will be skipped.", "agent.heartbeat.enable_first": "Enable heartbeat in the agent settings to run these tasks.", "agent.heartbeat.load_failed": "Could not load heartbeat tasks.", "agent.heartbeat.paused": "Heartbeat is paused or unavailable. Turn it off and on in the agent settings to retry.", "agent.heartbeat.placeholder": "Describe what the agent should check or do periodically…", "agent.heartbeat.reload": "Reload from file", "agent.heartbeat.save_run": "Save and run once", "agent.heartbeat.saved_next_run": "Save your changes to apply them to the next run.", "agent.heartbeat.tasks": "Heartbeat tasks", "agent.home.welcome_title": "What should we work on today?", "agent.icon.type": "Agent Icon", "agent.input.placeholder": "Type a message. Type / to search paths or commands, @ for files and sessions.", "agent.input.placeholder_streaming": "Agent is working — {{sendKey}} queues a follow-up, {{steerKey}} steers it now.", "agent.manage.title": "Manage Agents", "agent.pin.title": "Pin Agent", "agent.preview_pane.close": "Close preview", "agent.preview_pane.code": "Code", "agent.preview_pane.copy_content": "Copy Content", "agent.preview_pane.copy_path": "Copy Path", "agent.preview_pane.copy_relative_path": "Copy Relative Path", "agent.preview_pane.default_app": "Default app", "agent.preview_pane.edit.conflict.description": "This file changed on disk after editing started. Reloading will discard the current draft and load the latest file.", "agent.preview_pane.edit.conflict.keep_draft": "Keep draft", "agent.preview_pane.edit.conflict.reload": "Reload file", "agent.preview_pane.edit.conflict.title": "File changed on disk", "agent.preview_pane.edit.discard": "Discard changes", "agent.preview_pane.edit.leave.description": "If you continue, your unsaved changes to this file will be lost.", "agent.preview_pane.edit.leave.discard_and_continue": "Discard and continue", "agent.preview_pane.edit.leave.title": "Discard unsaved changes?", "agent.preview_pane.edit.metadata_pending": "The file was saved, but its metadata is still being recovered. Do not retry this save.", "agent.preview_pane.edit.refresh_failed": "Unable to reload the latest file content.", "agent.preview_pane.edit.save_failed": "Unable to save this file. Automatic saving is paused until you retry or discard the changes.", "agent.preview_pane.edit.unsaved": "Unsaved", "agent.preview_pane.edit.unsupported": "This file can be previewed but not safely edited here. Editing supports UTF-8 text files with consistent LF or CRLF line endings.", "agent.preview_pane.empty.description": "Start chatting with the agent; generated code and live previews will appear here.", "agent.preview_pane.empty.title": "Ready", "agent.preview_pane.items_one": "{{count}} item", "agent.preview_pane.items_other": "{{count}} items", "agent.preview_pane.no_search_results": "No files match your search", "agent.preview_pane.office.title": "Opening {{extension}} files here is not supported yet", "agent.preview_pane.pick_selection": "Select region", "agent.preview_pane.preview": "Preview", "agent.preview_pane.quote_selection": "Quote selection", "agent.preview_pane.refresh": "Refresh", "agent.preview_pane.search_placeholder": "Search files...", "agent.preview_pane.too_large.description": "File exceeds the {{limit}} preview limit.", "agent.preview_pane.tree_error.invalid_path.description": "The file panel requires a valid absolute local path. Please select the work directory again.", "agent.preview_pane.tree_error.invalid_path.title": "Invalid workspace path", "agent.preview_pane.tree_error.load_error.description": "Make sure the work directory still exists and is accessible, then try again.", "agent.preview_pane.tree_error.load_error.title": "Couldn't load workspace files", "agent.right_pane.flow.child_subtasks": "Child subtasks", "agent.right_pane.flow.main_task": "Main task", "agent.right_pane.flow.no_messages.description": "This tool call has no captured child message flow.", "agent.right_pane.flow.no_messages.title": "No messages", "agent.right_pane.flow.subtasks": "Subtasks", "agent.right_pane.info.artifacts": "Outputs", "agent.right_pane.info.context_categories.autocompact_buffer": "Autocompact buffer", "agent.right_pane.info.context_categories.custom_agents": "Custom agents", "agent.right_pane.info.context_categories.free_space": "Free space", "agent.right_pane.info.context_categories.mcp_tools": "MCP tools", "agent.right_pane.info.context_categories.memory_files": "Memory files", "agent.right_pane.info.context_categories.messages": "Messages", "agent.right_pane.info.context_categories.plugins": "Plugins", "agent.right_pane.info.context_categories.skills": "Skills", "agent.right_pane.info.context_categories.system_prompt": "System prompt", "agent.right_pane.info.context_categories.system_tools": "System tools", "agent.right_pane.info.context_usage": "Context usage", "agent.right_pane.info.shell_tasks": "Background commands", "agent.right_pane.info.subagents": "Sub-agents", "agent.right_pane.info.workflows": "Workflows", "agent.right_pane.status.stop_run_task": "Stop task", "agent.right_pane.status.stop_run_task_failed": "Failed to stop task", "agent.right_pane.status.task_count": "{{completed}} / {{total}} complete", "agent.right_pane.status.task_progress_compact": "Step {{current}}/{{total}}", "agent.right_pane.status.tasks_completed": "{{count}} completed", "agent.right_pane.status.tool_uses_one": "{{count}} tool call", "agent.right_pane.status.tool_uses_other": "{{count}} tool calls", "agent.right_pane.tabs.browser": "Browser", "agent.right_pane.tabs.files": "Files", "agent.right_pane.tabs.status": "Status", "agent.runtime_download.downloading": "Downloading runtime…", "agent.runtime_download.errors.installation": "Runtime installation failed. Please retry.", "agent.runtime_download.errors.integrity": "Download verification failed. Please retry.", "agent.runtime_download.errors.network": "Download failed. Check your connection and retry.", "agent.runtime_download.errors.storage": "Unable to save the runtime. Check disk space and permissions, then retry.", "agent.runtime_download.errors.unsupported": "{{runtime}} is not supported on this platform.", "agent.runtime_download.installing": "Verifying and installing runtime…", "agent.runtime_download.preparing": "Checking the required runtime…", "agent.runtime_download.title": "Preparing {{runtime}}", "agent.session.add.title": "Add a session", "agent.session.agent.delete.content": "Delete all sessions associated with this Agent. The Agent itself will not be deleted.", "agent.session.agent.delete.title": "Delete all sessions", "agent.session.agent.delete.trigger": "Delete all sessions", "agent.session.api_retry.reason": "Request failed ({{error}}, HTTP {{status}}) — retrying", "agent.session.api_retry.retrying": "Retrying {{attempt}}/{{max}}…", "agent.session.api_retry.retrying_in": "Retrying {{attempt}}/{{max}} in {{seconds}}s", "agent.session.auto_rename": "Generate task name", "agent.session.create.error.failed": "Failed to add a session", "agent.session.delete.content": "Are you sure to delete this session?", "agent.session.delete.error.failed": "Failed to delete the session", "agent.session.delete.title": "Delete session", "agent.session.display.agent": "Agent", "agent.session.display.time": "Time", "agent.session.display.title": "Display mode", "agent.session.display.workdir": "Work directory", "agent.session.edit.title": "Edit task name", "agent.session.empty.description": "Tasks will appear here after you start one.", "agent.session.empty.title": "No tasks", "agent.session.file_manager.file_explorer": "File Explorer", "agent.session.file_manager.files": "Files", "agent.session.file_manager.finder": "Finder", "agent.session.get.error.failed": "Failed to get the session", "agent.session.group.collapse": "Collapse", "agent.session.group.collapse_all": "Collapse all", "agent.session.group.conversation": "Conversations", "agent.session.group.earlier": "Earlier", "agent.session.group.expand_all": "Expand all", "agent.session.group.no_workdir": "No work directory", "agent.session.group.show_more": "Show more", "agent.session.group.tasks": "Tasks", "agent.session.group.this_week": "This week", "agent.session.group.today": "Today", "agent.session.group.unknown_agent": "Unlinked Agent", "agent.session.group.unknown_agent_tip": "This is a historical session group without an agent, not an actual agent. Select an active agent to continue this session.", "agent.session.group.yesterday": "Yesterday", "agent.session.hover.last_activity": "Last activity: {{time}}", "agent.session.list.title": "Tasks", "agent.session.model_switch_confirm.confirm": "Switch model", "agent.session.model_switch_confirm.description": "Different models may understand and process context differently. Switching may affect the continuity or quality of subsequent responses. Do you want to continue?", "agent.session.model_switch_confirm.skip_for_app_run": "Don't ask again until I quit the app", "agent.session.model_switch_confirm.title": "Switch to \"{{model}}\"?", "agent.session.new": "New task", "agent.session.pin.title": "Pin task", "agent.session.reorder.error.failed": "Failed to reorder sessions", "agent.session.search.placeholder": "Search tasks", "agent.session.search.title": "Search tasks", "agent.session.unpin.title": "Unpin task", "agent.session.update.error.failed": "Failed to update the session", "agent.session.workdir.delete.channels_count_one": "{{count}} channel", "agent.session.workdir.delete.channels_count_other": "{{count}} channels", "agent.session.workdir.delete.channels_empty": "No channels will be changed.", "agent.session.workdir.delete.channels_title": "Channels changed to no work directory", "agent.session.workdir.delete.content": "Deleting this work directory will also delete all tasks under it. Only database records are removed; the actual folder on disk will not be deleted.", "agent.session.workdir.delete.disk_preserved": "The folder on disk and its files will not be deleted.", "agent.session.workdir.delete.error.failed": "Failed to delete the work directory", "agent.session.workdir.delete.more_count_one": "…and {{count}} more item", "agent.session.workdir.delete.more_count_other": "…and {{count}} more items", "agent.session.workdir.delete.preview": "Deleting “{{name}}” removes its sessions and changes related channels and scheduled tasks to no work directory. This action cannot be undone.", "agent.session.workdir.delete.preview_failed": "The deletion impact could not be loaded, so this work directory cannot be deleted yet", "agent.session.workdir.delete.preview_loading": "Loading deletion impact…", "agent.session.workdir.delete.sessions_count_one": "{{count}} session", "agent.session.workdir.delete.sessions_count_other": "{{count}} sessions", "agent.session.workdir.delete.sessions_empty": "No sessions will be deleted.", "agent.session.workdir.delete.sessions_title": "Sessions to be deleted", "agent.session.workdir.delete.tasks_count_one": "{{count}} scheduled task", "agent.session.workdir.delete.tasks_count_other": "{{count}} scheduled tasks", "agent.session.workdir.delete.tasks_empty": "No scheduled tasks will be changed.", "agent.session.workdir.delete.tasks_title": "Scheduled tasks changed to no work directory", "agent.session.workdir.delete.title": "Delete work directory", "agent.session.workdir.delete.trigger": "Delete work directory", "agent.session.workdir.rename.error.failed": "Failed to rename the work directory", "agent.session.workdir.rename.title": "Rename work directory", "agent.session.workdir.rename.trigger": "Rename work directory", "agent.session.workspace_selector.create_failed": "Failed to add work directory.", "agent.session.workspace_selector.create_new": "Add new work directory", "agent.session.workspace_selector.empty_text": "No work directories", "agent.session.workspace_selector.no_project": "No work directory", "agent.session.workspace_selector.placeholder": "Select work directory", "agent.session.workspace_selector.search_placeholder": "Search work directories", "agent.session.workspace_selector.select_failed": "Failed to select folder.", "agent.session.workspace_status.inaccessible": "Workspace path is not accessible: {{path}}", "agent.session_delivery.from": "From {{agent}} / {{session}}", "agent.session_delivery.status.accepted": "Accepted", "agent.session_delivery.status.consumed": "Consumed", "agent.session_delivery.status.delivering": "Delivering", "agent.session_delivery.status.failed": "Failed", "agent.session_turn_origin.background_work": "Continued after background work", "agent.session_turn_origin.goal_round": "Goal round {{round}}", "agent.settings.permissionMode.title": "Permission Mode", "agent.settings.skills.addMore": "Manage Skills", "agent.settings.tooling.mcp.toggle": "Toggle {{name}}", "agent.settings.tooling.permissionMode.acceptEdits.description": "Edits files freely. Asks before commands.", "agent.settings.tooling.permissionMode.acceptEdits.title": "Auto-accept Edits", "agent.settings.tooling.permissionMode.auto.description": "Runs without routine prompts. A safety check blocks risky actions.", "agent.settings.tooling.permissionMode.auto.description_pi": "Works on its own. Asks when it recognizes a risky action.", "agent.settings.tooling.permissionMode.auto.title": "Approve for Me", "agent.settings.tooling.permissionMode.auto.warning": "Needs a model that supports it; others may ignore it or keep asking.", "agent.settings.tooling.permissionMode.auto.warning_pi": "Recognition is best-effort; an unusual command can still slip through.", "agent.settings.tooling.permissionMode.bypassPermissions.description": "Skips permission checks. Can delete files and use the network.", "agent.settings.tooling.permissionMode.bypassPermissions.title": "Full Access", "agent.settings.tooling.permissionMode.bypassPermissions.warning": "Use with caution — most tools run without approval; explicit safety blocks still apply.", "agent.settings.tooling.permissionMode.default.description": "Asks before editing files or running commands.", "agent.settings.tooling.permissionMode.default.title": "Ask Before Acting", "agent.settings.tooling.permissionMode.plan.description": "Plans without editing files. Only read-only or vetted commands run.", "agent.settings.tooling.permissionMode.plan.title": "Plan Only", "agent.settings.tooling.preapproved.autoBadge": "Added by mode", "agent.settings.tooling.preapproved.autoDisabledTooltip": "Auto-approved by \"{{mode}}\" and cannot be disabled.", "agent.settings.toolsMcp.mcp.tab": "MCP", "agent.sidebar_title": "Agents", "agent.speed.effort": "Effort", "agent.speed.fast": "Fast", "agent.speed.faster": "Faster", "agent.speed.label": "Speed", "agent.speed.service_tier.auto": "Auto", "agent.speed.service_tier.fast": "Fast", "agent.speed.service_tier.flex": "Flex", "agent.speed.service_tier.label": "Service tier", "agent.speed.service_tier.standard": "Standard", "agent.speed.smarter": "Smarter", "agent.speed.summary.auto": "Auto", "agent.speed.summary.concise": "Concise", "agent.speed.summary.detailed": "Detailed", "agent.speed.summary.label": "Thinking summary", "agent.speed.title": "Response settings", "agent.tasks.cancel": "Cancel", "agent.tasks.channels.label": "Send to Channels", "agent.tasks.channels.noActiveChatIds": "The selected channels have no available recipients (Chat ID). Task results may not be delivered. Please send a message to the Bot on the platform first.", "agent.tasks.channels.placeholder": "Select channels to receive results", "agent.tasks.delete.confirm": "Are you sure you want to delete this task?", "agent.tasks.delete.label": "Delete", "agent.tasks.error.createFailed": "Failed to create task", "agent.tasks.error.deleteFailed": "Failed to delete task", "agent.tasks.error.loadFailed": "Failed to load tasks", "agent.tasks.error.runFailed": "Failed to run task", "agent.tasks.error.triggerInvalid": "Invalid schedule: check the expression, time zone, or interval range", "agent.tasks.error.updateFailed": "Failed to update task", "agent.tasks.frequency.label": "Execution Frequency", "agent.tasks.intervalPlaceholder": "At least 1", "agent.tasks.intervalUnit": "minutes", "agent.tasks.lastRun": "Last Run", "agent.tasks.logs.cancelled": "Cancelled", "agent.tasks.logs.completed": "Completed", "agent.tasks.logs.duration": "Duration", "agent.tasks.logs.empty": "No run history yet.", "agent.tasks.logs.failed": "Failed", "agent.tasks.logs.label": "Run History", "agent.tasks.logs.loadError": "Failed to load run history", "agent.tasks.logs.result": "Result", "agent.tasks.logs.runAt": "Run At", "agent.tasks.logs.running": "Running...", "agent.tasks.logs.search": "Search logs...", "agent.tasks.logs.status": "Status", "agent.tasks.logs.viewSession": "View session", "agent.tasks.name.label": "Name", "agent.tasks.name.placeholder": "e.g. Daily code review", "agent.tasks.nextRun": "Next Run", "agent.tasks.oncePlaceholder": "Select date and time", "agent.tasks.pause": "Pause", "agent.tasks.prompt.label": "Prompt", "agent.tasks.prompt.placeholder": "What should the agent do when this task runs?", "agent.tasks.resume": "Resume", "agent.tasks.reuseSession.bound": "View session", "agent.tasks.reuseSession.description": "Continue every run in the same session instead of starting a new one.", "agent.tasks.reuseSession.label": "Reuse session", "agent.tasks.reuseSession.pending": "Waiting for the first run", "agent.tasks.reuseSession.warning": "A reused session keeps accumulating context, which raises token cost over time and can overflow the model's context window. To rebind a clean session, disable and save, then enable and save.", "agent.tasks.run": "Run", "agent.tasks.runSummary.cancelled": "Last run cancelled · {{time}}", "agent.tasks.runSummary.completed": "Last run succeeded · {{time}}", "agent.tasks.runSummary.failed": "Last run failed · {{time}}", "agent.tasks.runSummary.queued": "Waiting to run", "agent.tasks.runSummary.running": "Running", "agent.tasks.runTriggered": "Task triggered", "agent.tasks.save": "Save", "agent.tasks.schedule.cron": "Cron expression", "agent.tasks.schedule.cronPlaceholder": "For example, */20 8-12 * * *", "agent.tasks.schedule.daily": "Daily", "agent.tasks.schedule.hour": "Hour", "agent.tasks.schedule.hourly": "Hourly", "agent.tasks.schedule.hours": "Hours", "agent.tasks.schedule.interval": "Custom interval", "agent.tasks.schedule.intervalMinutes": "Interval", "agent.tasks.schedule.invalid": "Enter a valid execution frequency.", "agent.tasks.schedule.invalidCron": "Enter a valid Cron expression.", "agent.tasks.schedule.minute": "Minute", "agent.tasks.schedule.once": "One time", "agent.tasks.schedule.summary.daily": "Daily at {{time}}", "agent.tasks.schedule.summary.hourly": "At the start of every hour", "agent.tasks.schedule.summary.interval": "Every {{count}} minutes", "agent.tasks.schedule.summary.weekdays": "Weekdays at {{time}}", "agent.tasks.schedule.summary.weekly": "Every {{weekday}} at {{time}}", "agent.tasks.schedule.time": "Time", "agent.tasks.schedule.weekday": "Day of week", "agent.tasks.schedule.weekdays.friday": "Friday", "agent.tasks.schedule.weekdays.monday": "Monday", "agent.tasks.schedule.weekdays.saturday": "Saturday", "agent.tasks.schedule.weekdays.sunday": "Sunday", "agent.tasks.schedule.weekdays.thursday": "Thursday", "agent.tasks.schedule.weekdays.tuesday": "Tuesday", "agent.tasks.schedule.weekdays.wednesday": "Wednesday", "agent.tasks.schedule.weekdaysOnly": "Weekdays", "agent.tasks.schedule.weekly": "Weekly", "agent.tasks.status.active": "Active", "agent.tasks.status.completed": "Completed", "agent.tasks.status.missed": "Missed", "agent.tasks.status.paused": "Paused", "agent.tasks.timeout.label": "Maximum Execution Time", "agent.tasks.timeout.placeholder": "No limit", "agent.toolPermission.button.allow": "Allow", "agent.toolPermission.button.deny": "Deny", "agent.toolPermission.button.run": "Run", "agent.toolPermission.confirmation": "Are you sure you want to run this Claude tool?", "agent.toolPermission.decisionDenied": "Denied", "agent.toolPermission.error.sendFailed": "Failed to send your decision. Please try again.", "agent.toolPermission.inputPreview": "Tool input preview", "agent.toolPermission.pendingBadge": "Pending", "agent.toolPermission.reasonLabel": "Reason for rejection (optional)", "agent.toolPermission.reasonPlaceholder": "Tell the Agent what to do instead", "agent.toolPermission.waiting": "Waiting for tool permission decision...", "agent.tools.builtin.AgentMemory.description": "Stores and recalls cross-session memory", "agent.tools.builtin.AgentMemory.label": "Memory", "agent.tools.builtin.Bash.description": "Executes shell commands in your environment", "agent.tools.builtin.Bash.label": "Bash", "agent.tools.builtin.CherryConfig.description": "Inspects and manages this agent configuration and channels", "agent.tools.builtin.CherryConfig.label": "Agent Config", "agent.tools.builtin.CherryCron.description": "Manages the in-app scheduler", "agent.tools.builtin.CherryCron.label": "Scheduler", "agent.tools.builtin.CherryGenerateImage.description": "Generates an image from a text prompt using your configured painting model", "agent.tools.builtin.CherryGenerateImage.label": "Generate Image", "agent.tools.builtin.CherryKbManage.description": "Adds, deletes, or refreshes documents in your knowledge bases", "agent.tools.builtin.CherryKbManage.label": "Manage Knowledge", "agent.tools.builtin.CherryKbSearch.description": "Searches your knowledge bases", "agent.tools.builtin.CherryKbSearch.label": "Knowledge Search", "agent.tools.builtin.CherryNotify.description": "Sends a notification through a connected channel", "agent.tools.builtin.CherryNotify.label": "Notify", "agent.tools.builtin.CherryToMarkdown.description": "Markdown is easier for the agent to read", "agent.tools.builtin.CherryToMarkdown.label": "File to Markdown", "agent.tools.builtin.CherryWebFetch.description": "Fetches and reads a web page", "agent.tools.builtin.CherryWebFetch.label": "Web Fetch", "agent.tools.builtin.CherryWebSearch.description": "Searches the web via your configured provider", "agent.tools.builtin.CherryWebSearch.label": "Web Search", "agent.tools.builtin.Edit.description": "Makes targeted edits to specific files", "agent.tools.builtin.Edit.label": "Edit", "agent.tools.builtin.Glob.description": "Finds files based on pattern matching", "agent.tools.builtin.Glob.label": "Glob", "agent.tools.builtin.Grep.description": "Searches for patterns in file contents", "agent.tools.builtin.Grep.label": "Grep", "agent.tools.builtin.MultiEdit.description": "Performs multiple edits on a single file atomically", "agent.tools.builtin.NotebookEdit.description": "Modifies Jupyter notebook cells", "agent.tools.builtin.NotebookRead.description": "Reads and displays Jupyter notebook contents", "agent.tools.builtin.Read.description": "Reads the contents of files", "agent.tools.builtin.Read.label": "Read", "agent.tools.builtin.Task.description": "Runs a sub-agent to handle complex, multi-step tasks", "agent.tools.builtin.TodoWrite.description": "Creates and manages structured task lists", "agent.tools.builtin.ToolSearch.description": "Discovers deferred tools from large libraries", "agent.tools.builtin.WebFetch.description": "Fetches content from a specified URL", "agent.tools.builtin.WebSearch.description": "Performs web searches with domain filtering", "agent.tools.builtin.Workflow.description": "Runs a multi-step workflow that orchestrates subagents", "agent.tools.builtin.Workflow.label": "Workflow", "agent.tools.builtin.Write.description": "Creates or overwrites files", "agent.tools.builtin.Write.label": "Write", "agent.tools.builtin.bash.description": "Run shell commands", "agent.tools.builtin.bash.label": "Run shell commands", "agent.tools.builtin.codemode.description": "Execute JavaScript that orchestrates discovered tools", "agent.tools.builtin.codemode.label": "Execute tool code", "agent.tools.builtin.create_goal.description": "Create a session goal to work toward", "agent.tools.builtin.create_goal.label": "Create goal", "agent.tools.builtin.edit.description": "Edit files", "agent.tools.builtin.edit.label": "Edit files", "agent.tools.builtin.exit_plan_mode.description": "Present the plan for review and leave plan mode on approval", "agent.tools.builtin.exit_plan_mode.label": "Exit plan mode", "agent.tools.builtin.find.description": "Find files", "agent.tools.builtin.find.label": "Find files", "agent.tools.builtin.get_goal.description": "Read the current session goal", "agent.tools.builtin.get_goal.label": "Read goal", "agent.tools.builtin.grep.description": "Search file contents", "agent.tools.builtin.grep.label": "Search file contents", "agent.tools.builtin.interrupt_agent.description": "Stop a background subagent's current turn", "agent.tools.builtin.interrupt_agent.label": "Interrupt subagent", "agent.tools.builtin.list_agents.description": "List background subagents and their status", "agent.tools.builtin.list_agents.label": "List subagents", "agent.tools.builtin.ls.description": "List directory contents", "agent.tools.builtin.ls.label": "List directory contents", "agent.tools.builtin.read.description": "Read files", "agent.tools.builtin.read.label": "Read files", "agent.tools.builtin.read_image.description": "Read a PNG, JPEG, WebP, or GIF file with a vision-capable model", "agent.tools.builtin.read_image.label": "Read image", "agent.tools.builtin.send_message.description": "Send a follow-up message to a background subagent", "agent.tools.builtin.send_message.label": "Message subagent", "agent.tools.builtin.skill.description": "Load the full instructions of an enabled skill", "agent.tools.builtin.skill.label": "Load skill instructions", "agent.tools.builtin.subagent.description": "Delegate a task to a background subagent that can be messaged later", "agent.tools.builtin.subagent.label": "Delegate to subagent", "agent.tools.builtin.subagent_fork.description": "Delegate a follow-up task to a subagent seeded with this conversation", "agent.tools.builtin.subagent_fork.label": "Fork subagent", "agent.tools.builtin.todo_write.description": "Manage the task list", "agent.tools.builtin.todo_write.label": "Manage the task list", "agent.tools.builtin.tool_search.description": "Search available tools and read their TypeScript signatures", "agent.tools.builtin.tool_search.label": "Search tools", "agent.tools.builtin.update_goal.description": "Update the session goal status or objective", "agent.tools.builtin.update_goal.label": "Update goal", "agent.tools.builtin.vcc_recall.description": "Search the current session history after compaction", "agent.tools.builtin.vcc_recall.label": "Recall session history", "agent.tools.builtin.write.description": "Write files", "agent.tools.builtin.write.label": "Write files", "agent.unpin.title": "Unpin Agent", "agent.update.error.failed": "Failed to update the agent", "agent_session_fork.continue_in_source": "Continue in the original chat", "agent_session_fork.history_changed": "The selected history has changed and can no longer be forked.", "agent_session_fork.history_corrupt": "The original session history is damaged.", "agent_session_fork.history_missing": "The original session history is missing.", "agent_session_fork.label": "Fork", "agent_session_fork.legacy_history": "No fork checkpoint was recorded for this historical message.", "agent_session_fork.not_turn_boundary": "Only the final assistant message of a completed turn can be forked.", "agent_session_fork.operation_failed": "Could not create the session fork. Check file permissions and free disk space, then retry.", "agent_session_fork.source_not_found": "The original chat does not exist or has been deleted.", "agent_session_fork.unsupported_checkpoint": "This checkpoint was created by an older version or cannot be restored by the current one, so forking from this point is not supported. The conversation itself is unaffected and can continue.", "agent_session_fork.workspace_changed": "The workspace changed while copying. Retry the fork.", "agent_session_fork.workspace_unsupported_file": "The workspace contains a link or special file that cannot be copied safely.", "apiGateway.actions.regenerate": "Regenerate", "apiGateway.actions.restart.button": "Restart", "apiGateway.actions.restart.tooltip": "Restart Gateway", "apiGateway.actions.start": "Start", "apiGateway.actions.stop": "Stop", "apiGateway.authHeader.title": "Authorization Header", "apiGateway.description": "Expose Cherry Studio's AI capabilities through OpenAI- and Anthropic-compatible HTTP APIs", "apiGateway.documentation.title": "API Documentation", "apiGateway.fields.apiKey.copyTooltip": "Copy API Key", "apiGateway.fields.apiKey.label": "API Key", "apiGateway.fields.apiKey.placeholder": "API key will be auto-generated", "apiGateway.fields.port.label": "Port", "apiGateway.fields.url.copyTooltip": "Copy URL", "apiGateway.fields.url.label": "URL", "apiGateway.messages.apiKeyRegenerated": "API Key regenerated", "apiGateway.messages.notEnabled": "Start the gateway before connecting to this address.", "apiGateway.messages.portInvalid": "Enter a port between {{min}} and {{max}}.", "apiGateway.messages.restartError": "Failed to restart API Gateway: ", "apiGateway.messages.restartFailed": "API Gateway restart failed: ", "apiGateway.messages.restartSuccess": "API Gateway restarted successfully", "apiGateway.messages.startError": "Failed to start API Gateway: ", "apiGateway.messages.startSuccess": "API Gateway started successfully", "apiGateway.messages.stopError": "Failed to stop API Gateway: ", "apiGateway.messages.stopSuccess": "API Gateway stopped successfully", "apiGateway.status.running": "Running", "apiGateway.status.stopped": "Stopped", "apiGateway.title": "API Gateway", "assistants.abbr": "Assistants", "assistants.clear.menu_title": "Clear Topics", "assistants.delete.content": "Deleting an assistant will delete all conversations and files under the assistant. Are you sure you want to delete it?", "assistants.delete.title": "Delete Assistant", "assistants.edit.title": "Edit Assistant", "assistants.groups.delete": "Delete Group", "assistants.groups.deleteConfirm": "Are you sure you want to delete this group?", "assistants.groups.group_by": "Show in groups", "assistants.groups.ungroup": "Stop grouping", "assistants.groups.ungrouped": "Ungrouped", "assistants.icon.type": "Assistant Icon", "assistants.pin.title": "Pin Assistant", "assistants.presets.add.prompt.variables.tip.content": "{{date}}:\tDate\n{{time}}:\tTime\n{{datetime}}:\tDate and time\n{{system}}:\tOperating system\n{{arch}}:\tCPU architecture\n{{language}}:\tLanguage\n{{model_name}}:\tModel name\n{{username}}:\tUsername", "assistants.presets.add.prompt.variables.tip.title": "Available variables", "assistants.presets.export.agent": "Export Assistant", "assistants.presets.import.action": "Import Assistant", "assistants.presets.import.error.fetch_failed": "Failed to fetch from URL", "assistants.presets.import.error.invalid_format": "Invalid assistant format: missing required fields", "assistants.presets.import.file_filter": "JSON Files", "assistants.presets.import.title": "Import from External", "assistants.presets.manage.title": "Manage Assistants", "assistants.presets.sorting.title": "Sorting", "assistants.presets.title": "Assistants Library", "assistants.reorder.error.failed": "Failed to reorder assistants", "assistants.settings.reasoning_effort.auto": "Auto", "assistants.settings.reasoning_effort.default": "Default", "assistants.settings.reasoning_effort.high": "High", "assistants.settings.reasoning_effort.label": "Reasoning effort", "assistants.settings.reasoning_effort.low": "Low", "assistants.settings.reasoning_effort.max": "Max", "assistants.settings.reasoning_effort.medium": "Medium", "assistants.settings.reasoning_effort.minimal": "Minimal", "assistants.settings.reasoning_effort.off": "Off", "assistants.settings.reasoning_effort.ultra": "Ultra", "assistants.settings.reasoning_effort.xhigh": "Extra High", "assistants.title": "Assistants", "assistants.unpin.title": "Unpin Assistant", "auth.get_key_success": "API key automatically obtained successfully", "backup.confirm.button": "Select Backup Location", "backup.content": "Backup all data, including chat history, settings, and knowledge base. Please note that the backup process may take some time, thank you for your patience.", "backup.error.active_data_writers": "A conversation or agent is still running. Wait for it to finish, then try again.", "backup.error.background_tasks": "Background tasks (such as knowledge base indexing) did not finish within the waiting period. To protect data integrity, this backup or restore was stopped. Wait for the tasks to finish, then try again. If this keeps happening, check the task status and errors in the relevant feature.", "backup.error.disk_full": "There is not enough disk space. Free up space and try again.", "backup.error.disk_full_with_available": "There is not enough disk space ({{available}} available). Free up space and try again.", "backup.error.newer_version": "This backup was created by a newer version of Cherry Studio and cannot be restored on this version. Please update Cherry Studio and try again.", "backup.error.operation_busy": "Another backup or restore operation is already in progress. Wait for it to finish and try again.", "backup.error.webdav_tls_certificate": "Could not verify the WebDAV server's TLS certificate. If the server uses a self-signed or private-CA certificate, enable 'Allow Self-Signed Certificates' in Settings → Data → WebDAV (this lowers transport security).", "backup.progress.completed": "Backup completed", "backup.progress.compressing": "Compressing files...", "backup.progress.copying_database": "Copying database...", "backup.progress.copying_files": "Copying files... {{progress}}%", "backup.progress.preparing": "Preparing backup...", "backup.progress.preparing_compression": "Preparing compression...", "backup.progress.title": "Backup Progress", "backup.progress.writing_data": "Writing data...", "backup.title": "Data Backup", "button.add": "Add", "button.case_sensitive": "Case Sensitive", "button.collapse": "Collapse", "button.download": "Download", "button.includes_user_questions": "Include Your Questions", "button.select_assistant": "Select Assistant", "button.select_model": "Select Model", "button.update_available": "Update Available", "button.whole_word": "Whole Word", "chat.add.assistant.description": "Daily conversations and quick Q&A", "chat.add.assistant.title": "Add Assistant", "chat.add.topic.title": "New Conversation", "chat.alerts.select_agent": "Select an agent", "chat.artifacts.button.openExternal": "Open in external browser", "chat.artifacts.button.preview": "Preview", "chat.artifacts.preview.openExternal.error.content": "Error opening the external browser.", "chat.assistant.search.placeholder": "Search", "chat.compaction.compacted": "Context compacted, ~{{count}} tokens saved", "chat.compaction.compacted_plain": "Context compacted", "chat.compaction.compacting": "Compacting context…", "chat.conversation.new": "New Chat", "chat.default.name": "Cherry Assistant", "chat.default.topic.name": "Default Conversation", "chat.home.welcome_title": "What should we talk about today?", "chat.input.ai_disclaimer": "AI-generated content, for reference only", "chat.input.cancel_editing": "Cancel editing", "chat.input.clear.content": "Do you want to clear all messages of the current conversation?", "chat.input.clear.title": "Clear all messages?", "chat.input.collapse": "Collapse", "chat.input.dictation.action.cancel": "Cancel dictation", "chat.input.dictation.action.copy_recovery": "Copy transcript", "chat.input.dictation.action.start": "Start dictation", "chat.input.dictation.title": "Dictate locally", "chat.input.editing": "Editing", "chat.input.editing_message": "Editing sent message", "chat.input.editing_part.content": "Content block", "chat.input.editing_part.reasoning": "Reasoning", "chat.input.editing_part.tool": "Tool: {{name}}", "chat.input.expand": "Expand", "chat.input.file_error": "Error processing file", "chat.input.file_not_supported": "Model does not support this file type", "chat.input.file_not_supported_count": "{{count}} files are not supported", "chat.input.followup_queue.edit": "Edit", "chat.input.followup_queue.pause": "Pause auto-send", "chat.input.followup_queue.remove": "Remove", "chat.input.followup_queue.resume": "Resume auto-send", "chat.input.followup_queue.steer": "steer", "chat.input.followup_queue.title": "Queued ({{count}})", "chat.input.generate_image": "Generate image", "chat.input.generate_image_no_model": "Configure a painting model in Settings › Default Model", "chat.input.image_preview_failed": "Image preview failed", "chat.input.knowledge_base": "Knowledge Base", "chat.input.knowledge_base_disabled_by_files": "Remove attached files to use Knowledge Base", "chat.input.knowledge_base_manage": "Manage Knowledge Base", "chat.input.knowledge_base_unavailable": "Select a tool-capable model", "chat.input.locate_editing_message": "Locate original message", "chat.input.mcp_prompts.description": "Insert a prompt published by an MCP server", "chat.input.mcp_prompts.empty": "No MCP prompts available", "chat.input.mcp_prompts.fill_arguments": "Fill prompt arguments", "chat.input.mcp_prompts.fill_arguments_description": "Provide values for this prompt before inserting it", "chat.input.mcp_prompts.insert": "Insert", "chat.input.mcp_prompts.title": "MCP Prompts", "chat.input.mcp_resources.description": "Reference a resource published by an MCP server", "chat.input.mcp_resources.empty": "No MCP resources available", "chat.input.mcp_resources.reader_unavailable": "The current model cannot read this resource back after it is attached", "chat.input.mcp_resources.title": "MCP Resources", "chat.input.new.context": "Clear Context", "chat.input.note_reference.description": "Attach a note from Notes", "chat.input.note_reference.empty": "No notes found", "chat.input.note_reference.load_failed": "Failed to load notes", "chat.input.note_reference.loading": "Loading notes...", "chat.input.note_reference.manage": "Manage Notes", "chat.input.note_reference.title": "Reference Note", "chat.input.paste_text_file": "Paste into input", "chat.input.pasted_text_file_name": "Pasted text.txt", "chat.input.pause": "Pause", "chat.input.placeholder": "Type a message. Type / for tools and actions, @ to reference topics.", "chat.input.reference_panel.load_failed": "Failed to load the referenced conversation", "chat.input.reference_panel.session.no_results.description": "No sessions match your search", "chat.input.reference_panel.session.no_results.label": "No Sessions Found", "chat.input.reference_panel.session.title": "Sessions", "chat.input.reference_panel.topic.no_results.description": "No topics match your search", "chat.input.reference_panel.topic.no_results.label": "No Topics Found", "chat.input.reference_panel.topic.title": "Topics", "chat.input.resize_height": "Resize input height", "chat.input.resource_panel.categories.resources": "Files & Folders", "chat.input.resource_panel.load_failed": "Failed to load workspace resources", "chat.input.resource_panel.no_resources_found.description": "No searchable files or folders in the current workspace", "chat.input.resource_panel.no_resources_found.label": "No Resources Found", "chat.input.resource_panel.title": "Resources & Sessions", "chat.input.restore": "Restore", "chat.input.selection_reference.page": "p.{{page}}", "chat.input.selection_reference.slide": "slide {{slide}}", "chat.input.send": "Send", "chat.input.send_failed": "Failed to send message", "chat.input.slash_commands.commands.clear": "Start a new conversation with empty context", "chat.input.slash_commands.commands.compact": "Free up context by summarizing the conversation so far", "chat.input.slash_commands.commands.context": "Visualize current context usage as a colored grid", "chat.input.slash_commands.commands.usage": "Show session cost, plan usage limits, and activity stats", "chat.input.slash_commands.title": "Slash Commands", "chat.input.toolbar.customize": "Customize toolbar", "chat.input.toolbar.drag.cancelled": "Reordering cancelled for {{name}}.", "chat.input.toolbar.drag.dropped": "{{name}} dropped.", "chat.input.toolbar.drag.instructions": "To reorder, press Space or Enter to pick up a tool, use the arrow keys to move it, then Space or Enter to drop it, or Escape to cancel.", "chat.input.toolbar.drag.over": "{{name}} moved over {{over}}.", "chat.input.toolbar.drag.picked_up": "Picked up {{name}}.", "chat.input.toolbar.drag_handle": "Drag to reorder {{name}}", "chat.input.toolbar.restore_default": "Restore default", "chat.input.tools.copy_file_content": "Copy File Contents", "chat.input.tools.file_not_found": "File not found: {{path}}", "chat.input.tools.generate_image.failed": "Image generation failed", "chat.input.tools.generate_image.generating": "Generating image…", "chat.input.tools.generate_image.title": "Generated image", "chat.input.tools.open_file": "Open File", "chat.input.tools.open_file_error": "Failed to open file: {{path}}", "chat.input.tools.open_with": "Open with", "chat.input.tools.reveal_in_file_explorer": "Show in File Explorer", "chat.input.tools.reveal_in_file_manager": "Show in File Manager", "chat.input.tools.reveal_in_finder": "Reveal in Finder", "chat.input.translating": "Translating...", "chat.input.upload.attachment": "Upload attachment", "chat.input.upload.document_only": "Documents only", "chat.input.upload.image_not_supported": "This model does not support image uploads. Documents only.", "chat.input.web_search.builtin.disabled_content": "The current model does not support web search", "chat.input.web_search.label": "Web Search", "chat.input.web_search.route.builtin": "Searches with the model's built-in tool", "chat.input.web_search.route.client": "Searches with {{provider}}", "chat.input.web_search.route.client_fallback_active": "{{provider}} is unavailable, so the query is sent to {{fallbackProvider}}.", "chat.input.web_search.route.client_with_fallback": "Searches with {{provider}}. If unavailable, the query is automatically sent to {{fallbackProvider}}.", "chat.mcp.warning.gemini_web_search": "Gemini does not support using native web search tools and function calling simultaneously", "chat.message.editing_current": "This message is being edited in the composer", "chat.message.flow.branches": "branches", "chat.message.flow.copy_topic.created": "Copied to a new conversation", "chat.message.flow.copy_topic.label": "Copy as New Conversation", "chat.message.flow.nodes": "nodes", "chat.message.flow.status.awaiting_input": "Awaiting input", "chat.message.flow.title": "Branch Management", "chat.message.more": "More actions", "chat.message.new.branch.created": "New Branch Created", "chat.message.new.branch.label": "New Branch", "chat.message.new.context": "New Context", "chat.message.quote": "Quote", "chat.message.read_aloud.label": "Read aloud", "chat.message.token_details.cache_read": "Cache read", "chat.message.token_details.cache_write": "Cache write", "chat.message.token_details.cost": "Cost", "chat.message.token_details.cost_billed": "Billed by provider", "chat.message.token_details.cost_estimated": "Estimated", "chat.message.token_details.end_to_end_throughput": "End-to-end throughput", "chat.message.token_details.input": "Input", "chat.message.token_details.input_breakdown": "Input breakdown", "chat.message.token_details.lane_approval": "Approval", "chat.message.token_details.lane_model": "Model", "chat.message.token_details.lane_other": "Other", "chat.message.token_details.lane_tool": "Tool", "chat.message.token_details.less_details": "Less details", "chat.message.token_details.model_throughput": "Model generation TPS", "chat.message.token_details.more_details": "More details", "chat.message.token_details.output": "Output", "chat.message.token_details.reasoning": "Reasoning", "chat.message.token_details.reasoning_time": "Reasoning", "chat.message.token_details.request_duration": "Generation timing", "chat.message.token_details.runtime_breakdown": "Runtime breakdown", "chat.message.token_details.text_generation": "Text generation", "chat.message.token_details.text_output": "Text output", "chat.message.token_details.time_to_first_token": "Time to first token", "chat.message.token_details.tokens": "{{value}} Tokens", "chat.message.token_details.tokens_per_second_value": "{{value}} Tokens/s", "chat.message.token_details.total_duration": "End-to-end duration", "chat.message.token_details.unavailable": "—", "chat.message.token_details.uncached": "Uncached", "chat.message.token_details.usage": "Token usage", "chat.message.token_details.waiting_first_token": "Waiting", "chat.message.useful.label": "Set as context", "chat.message.useful.tip": "In this group of messages, this message will be selected to join the context", "chat.multiple.select.empty": "No Messages Selected", "chat.multiple.select.label": "Multiple Select", "chat.navigation.anchor.jump_to_turn": "Jump to turn {{number}}", "chat.navigation.bottom": "Back to bottom", "chat.navigation.close": "Close", "chat.navigation.next": "Next Message", "chat.navigation.prev": "Previous Message", "chat.navigation.top": "Back to top", "chat.save.file.title": "Save to Local File", "chat.save.knowledge.content.citation.description": "Includes web search and knowledge base reference information", "chat.save.knowledge.content.citation.title": "Citations", "chat.save.knowledge.content.code.description": "Includes standalone code blocks", "chat.save.knowledge.content.code.title": "Code Blocks", "chat.save.knowledge.content.error.description": "Includes error messages during execution", "chat.save.knowledge.content.error.title": "Errors", "chat.save.knowledge.content.file.description": "Includes attached files", "chat.save.knowledge.content.file.title": "Files", "chat.save.knowledge.content.maintext.description": "Includes primary text content", "chat.save.knowledge.content.maintext.title": "Main Text", "chat.save.knowledge.content.thinking.description": "Includes model reasoning content", "chat.save.knowledge.content.thinking.title": "Reasoning", "chat.save.knowledge.content.tool_use.description": "Includes tool call parameters and execution results", "chat.save.knowledge.content.tool_use.title": "Tool Usage", "chat.save.knowledge.content.translation.description": "Includes translation content", "chat.save.knowledge.content.translation.title": "Translations", "chat.save.knowledge.empty.no_content": "This message has no saveable content", "chat.save.knowledge.empty.no_knowledge_base": "No knowledge bases available, please create one first", "chat.save.knowledge.error.file_partial_failed": "{{count}} file(s) could not be saved", "chat.save.knowledge.error.invalid_base": "Selected knowledge base is not properly configured", "chat.save.knowledge.error.no_content_selected": "Please select at least one content type", "chat.save.knowledge.error.save_failed": "Save failed, please check knowledge base configuration", "chat.save.knowledge.select.base.placeholder": "Please select a knowledge base", "chat.save.knowledge.select.base.title": "Select Knowledge Base", "chat.save.knowledge.select.content.tip": "Selected {{count}} items, text types will be merged and saved as one note", "chat.save.knowledge.select.content.title": "Select content types to save", "chat.save.knowledge.title": "Save to Knowledge Base", "chat.save.label": "Save", "chat.save.topic.knowledge.content.maintext.description": "Includes conversation title and main text content from all messages", "chat.save.topic.knowledge.empty.no_content": "This conversation has no saveable content", "chat.save.topic.knowledge.error.save_failed": "Failed to save conversation, please check knowledge base configuration", "chat.save.topic.knowledge.loading": "Analyzing conversation content...", "chat.save.topic.knowledge.menu_title": "Save to Knowledge Base", "chat.save.topic.knowledge.select.content.label": "Select content types to save", "chat.save.topic.knowledge.select.content.selected_tip": "Selected {{count}} items from {{messages}} messages", "chat.save.topic.knowledge.source_fallback": "Conversation", "chat.save.topic.knowledge.success": "Conversation successfully saved to knowledge base ({{count}} items)", "chat.save.topic.knowledge.title": "Save Conversation to Knowledge Base", "chat.settings.code.title": "Code Block Settings", "chat.settings.code_collapsible": "Code block collapsible", "chat.settings.code_editor.autocompletion": "Autocompletion", "chat.settings.code_editor.fold_gutter": "Fold gutter", "chat.settings.code_editor.highlight_active_line": "Highlight active line", "chat.settings.code_editor.keymap": "Keymap", "chat.settings.code_editor.title": "Code Editor", "chat.settings.code_execution.timeout_minutes.label": "Timeout", "chat.settings.code_execution.timeout_minutes.tip": "The timeout time (minutes) of code execution", "chat.settings.code_execution.tip": "The run button will be displayed in the toolbar of executable code blocks, please do not execute dangerous code!", "chat.settings.code_execution.title": "Code Execution", "chat.settings.code_fancy_block.label": "Fancy code block", "chat.settings.code_fancy_block.tip": "Enable fancy style for code block, e.g., html card", "chat.settings.code_image_tools.label": "Enable preview tools", "chat.settings.code_image_tools.tip": "Enable preview tools for images rendered from code blocks such as mermaid", "chat.settings.code_wrappable": "Code block wrappable", "chat.settings.show_line_numbers": "Show line numbers in code", "chat.settings.thought_auto_collapse.label": "Collapse Thought Content", "chat.settings.thought_auto_collapse.tip": "Automatically collapse thought content after thinking ends", "chat.topics.auto_rename": "Generate conversation name", "chat.topics.auto_rename_failed": "Failed to auto-generate conversation name", "chat.topics.clear.title": "Clear Messages", "chat.topics.copy.image": "Copy as image", "chat.topics.copy.md": "Copy as markdown", "chat.topics.copy.plain_text": "Copy as plain text (remove Markdown)", "chat.topics.copy.title": "Copy", "chat.topics.delete.shortcut": "Hold {{key}} to delete directly", "chat.topics.display.assistant": "Assistant", "chat.topics.display.time": "Time", "chat.topics.display.title": "Display mode", "chat.topics.draft": "Draft", "chat.topics.edit.placeholder": "Enter new name", "chat.topics.edit.title": "Edit conversation name", "chat.topics.edit.title_tip": "Tips: Double-click the conversation name to rename it directly in place", "chat.topics.empty.description": "Create a chat and it will stay here so you can continue with its context later.", "chat.topics.empty.title": "No conversations", "chat.topics.export.failed": "Export failed", "chat.topics.export.image": "Export as image", "chat.topics.export.image_exporting_keep_page": "Exporting image. Please stay on this page.", "chat.topics.export.image_mode.cancel_hint": "Cancelling aborts this export", "chat.topics.export.image_mode.count": "{{count}} image(s) will be exported", "chat.topics.export.image_mode.embed": "Embed in file (default)", "chat.topics.export.image_mode.folder": "Export as image folder", "chat.topics.export.image_mode.none": "Without images", "chat.topics.export.image_mode.skipped": "Skipped {{count}} image(s) (unavailable or unreadable)", "chat.topics.export.image_mode.skipped_embed": "Skipped {{count}} image(s) (over 10 MiB or unreadable)", "chat.topics.export.image_mode.title": "Export images", "chat.topics.export.image_mode.write_failed": "Failed to write {{count}} image(s)", "chat.topics.export.image_saved": "Image saved successfully", "chat.topics.export.joplin": "Export to Joplin", "chat.topics.export.md.label": "Export as Markdown", "chat.topics.export.md.reason": "Export as Markdown (with reasoning)", "chat.topics.export.notion": "Export to Notion", "chat.topics.export.obsidian": "Export to Obsidian", "chat.topics.export.obsidian_atributes": "Configure Note Attributes", "chat.topics.export.obsidian_btn": "Confirm", "chat.topics.export.obsidian_created": "Creation Time", "chat.topics.export.obsidian_created_placeholder": "Please select the creation time", "chat.topics.export.obsidian_export_failed": "Export failed", "chat.topics.export.obsidian_export_success": "Export success", "chat.topics.export.obsidian_fetch_error": "Failed to fetch Obsidian vaults", "chat.topics.export.obsidian_fetch_folders_error": "Failed to fetch folder structure", "chat.topics.export.obsidian_loading": "Loading...", "chat.topics.export.obsidian_no_vault_selected": "Please select a vault first", "chat.topics.export.obsidian_no_vaults": "No Obsidian vaults found", "chat.topics.export.obsidian_operate": "Operation Method", "chat.topics.export.obsidian_operate_append": "Append", "chat.topics.export.obsidian_operate_new_or_overwrite": "Create New (Overwrite if it exists)", "chat.topics.export.obsidian_operate_placeholder": "Please select the operation method", "chat.topics.export.obsidian_operate_prepend": "Prepend", "chat.topics.export.obsidian_path": "Path", "chat.topics.export.obsidian_path_placeholder": "Please select the path", "chat.topics.export.obsidian_reasoning": "Include Reasoning Chain", "chat.topics.export.obsidian_root_directory": "Root Directory", "chat.topics.export.obsidian_select_vault_first": "Please select a vault first", "chat.topics.export.obsidian_source": "Source", "chat.topics.export.obsidian_source_placeholder": "Please enter the source", "chat.topics.export.obsidian_tags": "Tags", "chat.topics.export.obsidian_tags_placeholder": "Please enter tags, separate multiple tags with commas", "chat.topics.export.obsidian_title": "Title", "chat.topics.export.obsidian_title_placeholder": "Please enter the title", "chat.topics.export.obsidian_title_required": "The title cannot be empty", "chat.topics.export.obsidian_vault": "Vault", "chat.topics.export.obsidian_vault_placeholder": "Please select the vault name", "chat.topics.export.siyuan": "Export to Siyuan Note", "chat.topics.export.title": "Export", "chat.topics.export.title_naming_failed": "Failed to generate title, using default title", "chat.topics.export.title_naming_success": "Title generated successfully", "chat.topics.export.wait_for_title_naming": "Generating title...", "chat.topics.export.word": "Export as Word", "chat.topics.export.yuque": "Export to Yuque", "chat.topics.group.collapse": "Collapse", "chat.topics.group.collapse_all": "Collapse all", "chat.topics.group.earlier": "Earlier", "chat.topics.group.expand_all": "Expand all", "chat.topics.group.show_more": "Show more", "chat.topics.group.this_week": "This week", "chat.topics.group.today": "Today", "chat.topics.group.unknown_assistant": "Unlinked Assistant", "chat.topics.group.unknown_assistant_tip": "This is a historical conversation group without an assistant, not an actual assistant. Move the conversation to an existing assistant to continue.", "chat.topics.group.yesterday": "Yesterday", "chat.topics.hover.last_activity": "Last activity: {{time}}", "chat.topics.list": "Conversation List", "chat.topics.manage.delete.confirm.content": "Are you sure you want to delete {{count}} selected conversation(s)? This action cannot be undone.", "chat.topics.manage.delete.confirm.title": "Delete Conversations", "chat.topics.manage.delete.error": "Failed to delete. Please try again.", "chat.topics.manage.deselect_all": "Deselect All", "chat.topics.manage.move.success": "Moved {{count}} conversation(s)", "chat.topics.move_to": "Move to", "chat.topics.pin": "Pin Conversation", "chat.topics.search.placeholder": "Search conversations...", "chat.topics.search.title": "Search", "chat.topics.title": "Conversations", "chat.topics.unpin": "Unpin Conversation", "chat.translate": "Translate", "chat.user": "User", "chat.web_search.warning.openai": "The GPT-5 model's minimal reasoning effort does not support web search.", "code.add_provider_hint": "Add provider in Settings → Model Service", "code.add_provider_hint_anthropic_messages": "Configure an Anthropic Messages endpoint in Settings → Model Service", "code.add_provider_hint_gemini": "Configure a Gemini endpoint in Settings → Model Service", "code.add_provider_hint_openai_responses": "Configure an OpenAI Responses endpoint in Settings → Model Service", "code.adv.claude.context_column": "1M", "code.adv.claude.disable_1m_context": "Disable 1M Context", "code.adv.claude.disable_attribution_header": "Disable Attribution Header", "code.adv.claude.disable_auto_upgrade": "Disable Auto Upgrade", "code.adv.claude.disable_bundled_skills": "Disable Bundled Skills", "code.adv.claude.disable_compact": "Disable Compaction", "code.adv.claude.disable_extra_usage_command": "Disable Extra Usage Command", "code.adv.claude.disable_nonessential_traffic": "Disable Non-Essential Traffic", "code.adv.claude.disable_terminal_title": "Disable Terminal Title", "code.adv.claude.effort_level_hint": "Effort Level", "code.adv.claude.enable_teammates": "Enable Teammates", "code.adv.claude.enable_tool_search": "Enable Tool Search", "code.adv.claude.fable_model": "Fable", "code.adv.claude.haiku_model": "Haiku", "code.adv.claude.hide_attribution": "Hide AI Attribution", "code.adv.claude.max_context_tokens_hint": "Max Context Tokens", "code.adv.claude.max_output_tokens_hint": "Max Output Tokens", "code.adv.claude.model_column": "Request Model", "code.adv.claude.model_roles_hint": "Override models used for background subtasks (e.g. compaction, titles). Leave empty to follow the main model.", "code.adv.claude.opus_model": "Opus", "code.adv.claude.permissions_hint": "Pre-approve or deny tool patterns. Supports wildcards like Read(secrets-*/config.json).", "code.adv.claude.role_column": "Role", "code.adv.claude.sonnet_model": "Sonnet", "code.adv.claude.subagent_model": "Subagent", "code.adv.codex.disable_response_storage": "Disable Response Storage", "code.adv.codex.goal_mode": "Enable Goal Mode", "code.adv.codex.remote_compaction": "Enable Remote Compaction", "code.adv.gemini.checkpointing": "Enable Checkpointing", "code.adv.gemini.disable_usage_stats": "Disable Usage Statistics", "code.adv.gemini.hide_banner": "Hide Startup Banner", "code.adv.gemini.vim_mode": "Enable Vim Mode", "code.adv.kimi.disable_telemetry": "Disable Telemetry", "code.adv.kimi.keep_background_tasks": "Keep Background Tasks On Exit", "code.adv.kimi.micro_compaction": "Enable Micro Compaction", "code.adv.kimi.plan_mode": "Default Plan Mode", "code.adv.kimi.thinking": "Enable Thinking", "code.adv.opencode.auto_compact": "Auto Compact", "code.adv.opencode.enable_reasoning": "Enable Reasoning", "code.adv.permission_mode": "Permission Approval", "code.adv.permission_modes.accept_edits": "Accept Edits", "code.adv.permission_modes.ask": "Ask", "code.adv.permission_modes.auto": "Auto", "code.adv.permission_modes.auto_edit": "Auto Edit", "code.adv.permission_modes.bypass_high_risk": "Bypass Permissions (High Risk)", "code.adv.permission_modes.default": "Default", "code.adv.permission_modes.default_allow_all": "Default (Allow All)", "code.adv.permission_modes.deny": "Deny", "code.adv.permission_modes.full_access_high_risk": "Full Access (High Risk)", "code.adv.permission_modes.manual": "Manual", "code.adv.permission_modes.plan": "Plan", "code.adv.permission_modes.read_only": "Read Only", "code.adv.permission_modes.workspace": "Workspace", "code.adv.permission_modes.yolo_high_risk": "YOLO (High Risk)", "code.adv.qwen.classify_all_shell": "Classify All Shell Commands", "code.adv.qwen.disable_auto_update": "Disable Auto Update", "code.adv.qwen.disable_usage_stats": "Disable Usage Statistics", "code.adv.qwen.hide_banner": "Hide Startup Banner", "code.adv.qwen.vim_mode": "Enable Vim Mode", "code.adv.reasoning_effort": "Reasoning Effort", "code.adv.reasoning_efforts.default": "Default", "code.adv.reasoning_efforts.high": "High", "code.adv.reasoning_efforts.low": "Low", "code.adv.reasoning_efforts.medium": "Medium", "code.adv.reasoning_efforts.minimal": "Minimal", "code.adv.reasoning_efforts.xhigh": "Extra High", "code.adv.select_placeholder": "Select…", "code.api_gateway.description": "Any CLI, every model", "code.api_gateway.requires_running": "Keep Cherry Studio running after enabling — the external CLI connects to the gateway it hosts.", "code.api_gateway.title": "Unified Gateway", "code.apply_failed": "Failed to write CLI config to the system file", "code.clear_config_failed": "Failed to clear the CLI config. Your credentials may still be in the tool's config files.", "code.cli_config.format_failed": "Format failed. Check the file syntax.", "code.cli_config.title": "CLI Config File", "code.cli_config.unknown_model": "Unknown model", "code.cli_config.unknown_provider": "Unknown Provider", "code.cli_tools.antigravity_cli": "Antigravity CLI", "code.cli_tools.claude_code": "Claude Code", "code.cli_tools.deepseek_harness": "DeepSeek Harness", "code.cli_tools.gemini_cli": "Gemini CLI", "code.cli_tools.github_copilot_cli": "GitHub Copilot CLI", "code.cli_tools.hermes": "Hermes Agent", "code.cli_tools.kimi_code": "Kimi Code", "code.cli_tools.minimax_code": "MiniMax Code", "code.cli_tools.openai_codex": "OpenAI Codex", "code.cli_tools.openclaw": "OpenClaw", "code.cli_tools.opencode": "OpenCode", "code.cli_tools.pi": "Pi", "code.cli_tools.qoder_cli": "Qoder CLI", "code.cli_tools.qwen_code": "Qwen Code", "code.collapse": "Collapse", "code.configure": "Configure", "code.count_one": "{{count}} item", "code.count_other": "{{count}} items", "code.deepseek_harness.agent_preset": "Default agent mode", "code.deepseek_harness.agent_presets.code.description": "Combines multi-step tool work through the PTC Code Mode SDK for complex coding tasks.", "code.deepseek_harness.agent_presets.code.label": "PTC Code", "code.deepseek_harness.agent_presets.inherit.description": "Keeps the existing default preset in the shared ~/.dsh settings.", "code.deepseek_harness.agent_presets.inherit.label": "Harness default", "code.deepseek_harness.agent_presets.minimal.description": "Uses only a persistent shell and text editor for the smallest tool surface.", "code.deepseek_harness.agent_presets.minimal.label": "Minimal", "code.deepseek_harness.agent_presets.standard.description": "Full coding agent with files, shell, search, skills, planning, and subagents.", "code.deepseek_harness.agent_presets.standard.label": "Standard", "code.deepseek_harness.danger_warning": "Full access lets the agent reach files outside the workspace and skips operation approval. Use it only for tasks you trust.", "code.deepseek_harness.permission_mode": "Default permission", "code.deepseek_harness.permission_modes.danger-full-access.description": "Allows unrestricted access without operation approval.", "code.deepseek_harness.permission_modes.danger-full-access.label": "Full access", "code.deepseek_harness.permission_modes.read-only.description": "Restricts file writes and asks before risky operations.", "code.deepseek_harness.permission_modes.read-only.label": "Read only", "code.deepseek_harness.permission_modes.workspace-write.description": "Allows writes in the current DSH workspace and asks before risky operations.", "code.deepseek_harness.permission_modes.workspace-write.label": "Workspace write", "code.disable": "Disable", "code.enable": "Enable", "code.endpoint_hint": "Endpoint / Key in Model Service", "code.folder_placeholder": "Select working directory", "code.format_json": "Format", "code.gemini_cli_discontinued": "Gemini CLI has been discontinued. Use Antigravity CLI instead.", "code.hermes_dashboard.error.cancelled": "Hermes Agent web UI startup was cancelled", "code.hermes_dashboard.error.dependencies_missing": "Hermes Agent web UI dependencies are missing. Reinstall Hermes Agent in Settings → Dependencies.", "code.hermes_dashboard.error.not_installed": "Hermes Agent is not installed. Install it in Settings → Dependencies.", "code.hermes_dashboard.error.open_failed": "Failed to open the Hermes Agent web UI", "code.hermes_dashboard.error.startup_failed": "Failed to start the Hermes Agent web UI", "code.hermes_dashboard.error.stop_failed": "Failed to stop the Hermes Agent web UI", "code.install": "Install", "code.install_success": "Installation successful", "code.installing": "Installing…", "code.latest": "Latest", "code.launch.error": "Launch failed, please try again", "code.launch.label": "Launch", "code.launch.title": "Launch {{tool}}", "code.launch.validation_error": "Please complete all required fields: CLI tool, model, and working directory", "code.launching": "Launching...", "code.model_hint_config": "Select the model to use", "code.model_mode.common": "General", "code.model_mode.detailed": "Detailed", "code.model_placeholder": "Select the model to use", "code.model_providers": "Model Providers", "code.model_required": "Please select a model", "code.model_selection": "Model Selection", "code.more": "More", "code.move_provider_to_top": "Move provider to top", "code.no_matching_providers": "No matching providers", "code.no_providers_description": "Enable a supported provider in Settings → Model Service", "code.no_providers_title": "No enabled providers", "code.no_tools": "No tools available", "code.not_installed": "Not installed", "code.open_provider_settings": "Open provider settings", "code.open_web_ui": "Open Web UI", "code.own_login.title": "{{toolName}} Official", "code.providerless_hint": "This tool authenticates through its own login flow — just pick a working directory and launch it. Run the tool once to sign in.", "code.search_provider_placeholder": "Search providers…", "code.select_folder": "Select Folder", "code.select_provider_before_launch": "Select a provider before launching {{toolName}}", "code.select_provider_model": "Please select a provider and model first", "code.select_tool_to_start": "Select a CLI tool from the left to start configuring", "code.stop": "Stop", "code.terminal": "Terminal", "code.title": "Code Mate", "code.tool_parameters": "Parameter Settings", "code.up_to_date": "Up to date", "code.upgrade": "Upgrade", "code.upgrade_success": "Upgrade successful", "code.working_directory": "Working Directory", "code_block.collapse": "Collapse", "code_block.copy.failed": "Copy failed", "code_block.copy.source": "Copy Source Code", "code_block.copy.success": "Copied", "code_block.download.label": "Download", "code_block.download.png": "Download PNG", "code_block.download.source": "Download Source Code", "code_block.download.svg": "Download SVG", "code_block.edit.label": "Edit", "code_block.edit.save.failed.label": "Save failed", "code_block.edit.save.label": "Save Changes", "code_block.edit.save.success": "Saved", "code_block.expand": "Expand", "code_block.more": "More", "code_block.preview.invalid_json": "Invalid JSON configuration", "code_block.run": "Run", "code_block.split.label": "Split View", "code_block.split.restore": "Restore Split View", "code_block.wrap.off": "Unwrap", "code_block.wrap.on": "Wrap", "common.add": "Add", "common.add_success": "Added successfully", "common.advanced_settings": "Advanced Settings", "common.agent": "Agent", "common.agent_one": "Agent", "common.agent_other": "Agents", "common.all": "All", "common.archive": "Archive", "common.archived": "Archived {{name}}", "common.assistant": "Agent", "common.assistant_one": "Assistant", "common.assistant_other": "Assistants", "common.avatar": "Avatar", "common.back": "Back", "common.browse": "Browse", "common.cancel": "Cancel", "common.chat": "Chat", "common.clear": "Clear", "common.close": "Close", "common.close_sidebar": "Close sidebar", "common.collapse": "Collapse", "common.completed": "Completed", "common.confirm": "Confirm", "common.copied": "Copied", "common.copy": "Copy", "common.copy_failed": "Copy failed", "common.create_success": "Created successfully", "common.current": "Current", "common.decline": "Decline", "common.default": "Default", "common.delete": "Delete", "common.delete_confirm": "Are you sure you want to delete?", "common.delete_failed": "Failed to delete", "common.delete_success": "Deleted successfully", "common.description": "Description", "common.detail": "Detail", "common.disabled": "Disabled", "common.docs": "Docs", "common.download": "Download", "common.edit": "Edit", "common.enabled": "Enabled", "common.error": "error", "common.expand": "Expand", "common.export.excel": "Export to Excel", "common.file.not_supported": "Unsupported file type {{type}}", "common.footnotes": "References", "common.fullscreen": "Entered fullscreen mode. Press F11 to exit", "common.go_to_settings": "Go to settings", "common.group.create": "New Group", "common.group.create_failed": "Failed to create group", "common.group.name_placeholder": "Enter group name...", "common.group.name_required": "Group name is required", "common.help": "Help", "common.html_preview": "HTML Preview", "common.i_know": "I know", "common.knowledge_base": "Knowledge Base", "common.language": "Language", "common.layout.single_column": "Switch to single column", "common.layout.two_columns": "Switch to two columns", "common.link.copy": "Copy link", "common.link.open_browser": "Open in built-in browser", "common.loading": "Loading...", "common.maximize": "Maximize", "common.minimize": "Minimize", "common.model": "Model", "common.models": "Models", "common.more": "More", "common.name": "Name", "common.next": "Next", "common.next_match": "Next match", "common.no_results": "No results", "common.none": "None", "common.open": "Open", "common.open_in": "Open in {{name}}", "common.open_in_new_tab": "Open in new tab", "common.other": "Other", "common.powered_by": "Powered by ", "common.preview": "Preview", "common.previous": "Previous", "common.previous_match": "Previous match", "common.prompt": "Prompt", "common.reasoning_content": "Deep reasoning", "common.refresh": "Refresh", "common.refresh_failed": "Couldn't refresh the list. Showing the last loaded version.", "common.regenerate": "Regenerate", "common.rename": "Rename", "common.required_field": "Required field", "common.reset": "Reset", "common.resize_panel": "Resize panel", "common.retry": "Retry", "common.save": "Save", "common.save_failed": "Save failed", "common.saved": "Saved", "common.search": "Search", "common.select": "Select", "common.select_all": "Select All", "common.selected": "Selected", "common.selectedItems": "Selected {{count}} items", "common.selectedMessages": "Selected {{count}} messages", "common.settings": "Settings", "common.stop": "Stop", "common.success": "Success", "common.swap": "Swap", "common.undo": "Undo", "common.unknown": "Unknown", "common.unnamed": "Unnamed", "common.update_success": "Update successfully", "common.yesterday": "Yesterday", "common.you": "You", "conversation_owner.archive.related_sessions": "Also archive related sessions", "conversation_owner.archive.related_topics": "Also archive related topics", "deviceConnections.capabilities.agent": "Control agent sessions", "deviceConnections.capabilities.configuration": "Import providers and models", "deviceConnections.claims.approve": "Approve", "deviceConnections.claims.approved": "Device paired", "deviceConnections.claims.codeHint": "Approve only if this code matches the one shown on the device.", "deviceConnections.claims.error": "Failed to update the pairing request: ", "deviceConnections.claims.reject": "Reject", "deviceConnections.claims.title": "Pairing request", "deviceConnections.description": "Connect mobile devices over a local, company or VPN network.", "deviceConnections.devices.empty": "No devices have been paired yet.", "deviceConnections.devices.loadError": "Failed to load paired devices.", "deviceConnections.devices.revoke": "Revoke access", "deviceConnections.devices.revoked": "Device access revoked", "deviceConnections.devices.title": "Paired devices", "deviceConnections.discovery.unavailable": "Discovery is unavailable. You can still connect using a configured address or a fresh QR code.", "deviceConnections.download.android": "Android download", "deviceConnections.download.googlePlay": "Get it on Google Play", "deviceConnections.download.ios": "iOS · App Store", "deviceConnections.download.loadFailed": "Couldn't load the download link", "deviceConnections.download.platform.android": "Android", "deviceConnections.download.platform.ios": "iOS", "deviceConnections.download.scanApk": "Scan to download APK", "deviceConnections.download.testFlight": "Join the TestFlight beta", "deviceConnections.downloadMobile": "Download mobile app", "deviceConnections.downloadMobileHint": "Install Cherry Studio on your phone and connect to your desktop.", "deviceConnections.gateway.openSettings": "Open API Gateway settings", "deviceConnections.gateway.required": "Start the gateway in API Gateway settings before allowing network access.", "deviceConnections.guide.continue": "Already installed? Connect your device", "deviceConnections.lan.disable": "Disable network access", "deviceConnections.lan.enable": "Allow network access", "deviceConnections.lan.error": "Failed to change network access: ", "deviceConnections.pairing.address": "Connection address", "deviceConnections.pairing.addressUnavailable": "The selected address is no longer available. Choose another address.", "deviceConnections.pairing.automatic": "Automatic", "deviceConnections.pairing.error": "Failed to create pairing code: ", "deviceConnections.pairing.expired": "QR code expired", "deviceConnections.pairing.hint": "Scan with the Cherry Studio mobile app. The invitation is single-use and expires in 2 minutes.", "deviceConnections.pairing.refreshAddresses": "Refresh addresses", "deviceConnections.pairing.requiresRunning": "Allow network access to pair devices.", "deviceConnections.pairing.title": "Pair a device", "deviceConnections.showcase.agent": "Make your agents your own", "deviceConnections.showcase.chat": "Chat wherever you are", "deviceConnections.showcase.image": "Bring your ideas to life", "deviceConnections.showcase.title": "Cherry Studio on your phone", "deviceConnections.status.disabled": "Network access is off", "deviceConnections.status.ready": "Network access is allowed", "deviceConnections.status.stopped": "Network access is unavailable", "deviceConnections.title": "Device Connections", "deviceConnections.toggle.description": "Enabling this lets any device that can reach this computer over the network request a connection. Pairing and authorization are required to access data or control Agents.", "deviceConnections.toggle.enabled": "Devices on reachable networks can connect. Pairing and authorization are required to access data or control Agents.", "deviceConnections.toggle.risk": "Connections are encrypted and bound to each paired device. Approved devices can import your provider API keys or control agent sessions, so pair only devices you trust.", "docs.title": "Docs", "emoji_picker.categories.activities": "Activities", "emoji_picker.categories.animals_nature": "Animals & Nature", "emoji_picker.categories.flags": "Flags", "emoji_picker.categories.food_drink": "Food & Drink", "emoji_picker.categories.objects": "Objects", "emoji_picker.categories.recent": "Frequently used", "emoji_picker.categories.smileys_emotion": "Smileys & Emotion", "emoji_picker.categories.symbols": "Symbols", "emoji_picker.categories.travel_places": "Travel & Places", "emoji_picker.search": "Search", "endpoint_type.anthropic": "Anthropic", "endpoint_type.gemini": "Gemini", "endpoint_type.image-edit": "Image Edit (OpenAI)", "endpoint_type.image-generation": "Image Generation (OpenAI)", "endpoint_type.jina-rerank": "Jina Rerank", "endpoint_type.openai": "OpenAI", "endpoint_type.openai-embeddings": "Embeddings (OpenAI)", "endpoint_type.openai-response": "OpenAI-Response", "error.api_gateway_required": "This model must be bridged through Cherry Studio's local API Gateway, which is currently disabled. Enable it to run this agent.", "error.availableProviders": "Available Providers", "error.availableTools": "Available Tools", "error.backup.file_format": "Backup file format error", "error.base64DataTruncated": "Base64 image data truncated, size", "error.boundary.default.devtools": "Open debug panel", "error.boundary.default.message": "It seems that something went wrong...", "error.boundary.default.reload": "Reload", "error.boundary.details": "Details", "error.boundary.mcp.invalid": "Invalid MCP server", "error.cause": "Error cause", "error.chat.chunk.non_json": "Returned an invalid data format", "error.chat.insufficient_balance": "Please go to the {{provider}} to recharge.", "error.chat.no_api_key": "You have not configured an API key. Please go to the {{provider}} to obtain an API key.", "error.chat.quota_exceeded": "Your daily {{quota}} free quota has been exhausted. Please go to the {{provider}} to obtain an API key and configure the API key to continue using.", "error.chat.response": "Something went wrong. Please check if you have set your API key in the Settings > Providers", "error.claude_code_exit.code": "Claude Code exited unexpectedly (code {{code}}). Diagnostic reference: {{reference}}", "error.claude_code_exit.signal": "Claude Code stopped unexpectedly (signal {{signal}}). Diagnostic reference: {{reference}}", "error.claude_code_exit.start": "Claude Code could not start. Diagnostic reference: {{reference}}", "error.content": "Content", "error.data": "Data", "error.detail": "Error Details", "error.details": "Details", "error.diagnosis.ai_button": "AI Diagnosis", "error.diagnosis.ai_done": "Diagnosed", "error.diagnosis.ai_loading": "Diagnosing", "error.diagnosis.ai_result": "AI Diagnosis Result", "error.diagnosis.auth": "API Key is invalid, please check and reconfigure", "error.diagnosis.bad_request": "Provider request failed (HTTP 400)", "error.diagnosis.content": "Content blocked by safety system, please modify and retry", "error.diagnosis.context_length": "Conversation too long, please clear history or start a new chat", "error.diagnosis.deprecated": "This model has been retired, please switch to another model", "error.diagnosis.free_model_unavailable": "AI diagnosis is temporarily unavailable", "error.diagnosis.go_to_settings": "Go to Settings", "error.diagnosis.knowledge": "Knowledge base vectorization failed", "error.diagnosis.mcp": "MCP server connection failed, check if service is running", "error.diagnosis.model": "Model not found or you don't have access", "error.diagnosis.model_conflict": "Diagnosis model is the same as the failing model", "error.diagnosis.network": "Cannot connect to server, check network or proxy settings", "error.diagnosis.ocr": "OCR text extraction failed, check the OCR configuration in settings", "error.diagnosis.parse": "AI returned an invalid response, please retry or switch model", "error.diagnosis.payload": "Request content too large, please reduce file or text size", "error.diagnosis.permission": "The provider refused this request. Check the error details, your account plan, API key permissions, or access to this resource", "error.diagnosis.proxy": "Proxy or SSL certificate error, check proxy and network settings", "error.diagnosis.quota": "Account quota exhausted, please recharge or switch provider", "error.diagnosis.rate_limit": "Too many requests in a short time. Wait a moment and retry, or switch to a model with a higher rate limit", "error.diagnosis.region": "Service unavailable in your region. Configure a proxy or switch to a provider available in your area", "error.diagnosis.server": "Server error, please retry later", "error.diagnosis.stream": "Response interrupted, check network stability or retry", "error.diagnosis.unknown": "An error occurred", "error.diagnosis.view_details": "View Details", "error.diagnostic_report.action": "Report a problem", "error.diagnostic_report.location": "Location", "error.diagnostic_report.locations.agent": "Agent conversation", "error.diagnostic_report.locations.home": "Home conversation", "error.diagnostic_report.locations.work": "Work conversation", "error.diagnostics.action_required": "Action required", "error.diagnostics.action_required_tag": "Needs action", "error.diagnostics.back_to_overview": "Back to diagnostic overview", "error.diagnostics.basic_information": "Basic information", "error.diagnostics.checking_progress": "Checking: {{check}} · {{completed}}/{{total}}", "error.diagnostics.context_unavailable": "The diagnostic target is unavailable. You can still view the original error details.", "error.diagnostics.diagnosing": "Diagnosing", "error.diagnostics.preparing_result": "Preparing results…", "error.diagnostics.result": "Diagnostic result", "error.diagnostics.result_summary": "Fixed: {{fixed}}; needs attention: {{attention}}.", "error.errors": "Errors", "error.finishReason": "Finish Reason", "error.functionality": "Functionality", "error.http.400": "Request failed. Please check if the request parameters are correct. If you have changed the model settings, please reset them to the default settings", "error.http.401": "Authentication failed. Please check if your API key is correct", "error.http.402": "Payment required. Your account balance or quota is exhausted - top up on the provider's website or switch to another provider", "error.http.403": "Access denied. Please check if your account is verified, or contact the service provider for more information", "error.http.404": "Model not found or request path is incorrect", "error.http.429": "Too many requests. Please try again later", "error.http.500": "Server error. Please try again later", "error.http.502": "Gateway error. Please try again later", "error.http.503": "Service unavailable. Please try again later", "error.http.504": "Gateway timeout. Please try again later", "error.image_unreadable_for_non_vision_model": "The selected model isn't configured for image input, and Cherry Studio couldn't extract readable text from the attachment. Enable Vision for this model in Provider Settings, choose another vision-capable model, or remove the image and try again.", "error.lastError": "Last Error", "error.maxEmbeddingsPerCall": "Max Embeddings Per Call", "error.message": "Error Message", "error.missing_finish_reason": "{{provider}} ended the response without a finish reason. The partial response was kept; retry the request.", "error.missing_user_message": "Cannot switch model response: The original user message has been deleted. Please send a new message to get a response with this model.", "error.model.exists": "Model already exists", "error.model.not_exists": "Model does not exist", "error.modelId": "Model ID", "error.modelType": "Model Type", "error.name": "Error name", "error.no_api_key": "API key is not configured", "error.no_response": "No response", "error.ocr_detail_empty": "OCR ran but found no readable text in the image. If the image does contain text, check the configured OCR processor (e.g. its language settings) under Settings → File Processing, or switch processors.", "error.ocr_detail_failed": "The configured OCR processor failed: {{reason}} Check or switch the OCR processor under Settings → File Processing.", "error.originalError": "Original Error", "error.originalMessage": "Original Message", "error.parameter": "Parameter", "error.prompt": "Prompt", "error.provider": "Provider", "error.providerId": "Provider ID", "error.provider_disabled": "Model provider is not enabled", "error.reason": "Reason", "error.render.block": "This content block failed to render", "error.render.description": "Failed to render message content. Please check if the message content format is correct", "error.render.title": "Render Error", "error.requestBody": "Request Body", "error.requestBodyValues": "Request Body Values", "error.requestUrl": "Request URL", "error.request_timeout": "Request timed out", "error.response": "Response", "error.responseBody": "Response Body", "error.responseHeaders": "Response Header", "error.responses": "Responses", "error.role": "Role", "error.stack": "Stack Trace", "error.status": "Status Code", "error.statusCode": "Status Code", "error.statusText": "Status Text", "error.stream_paused": "Paused", "error.text": "Text", "error.toolInput": "Tool Input", "error.toolName": "Tool Name", "error.tool_call_limit_reached": "The assistant reached the tool-call limit before producing a final answer. Raise \"Max tool call rounds\" in the assistant settings, or reduce the task scope.", "error.truncated": "Data truncated, original size", "error.truncatedBadge": "Truncated", "error.unknown": "Unknown error", "error.usage": "Usage", "error.user_message_not_found": "Cannot find original user message to resend", "error.value": "Value", "error.values": "Values", "error.web_lookup_network_error": "Web access failed. Check your network connection and try again.", "error.web_search_api_host_invalid": "Web search is unavailable because the configured provider's API host is invalid. Enter a valid HTTP(S) URL in Settings → Web Search, then try again.", "error.web_search_api_host_missing": "Web search is unavailable because the configured provider is missing an API host. Add one in Settings → Web Search, then try again.", "error.web_search_api_key_missing": "Web search is unavailable because the configured provider is missing an API key. Add one in Settings → Web Search, then try again.", "error.web_search_provider_unavailable": "Web search is unavailable because no compatible provider is configured. Configure one in Settings → Web Search, then try again.", "export.assistant": "Assistant", "export.notion.reasoning_truncated": "Chain of thought cannot be chunked and has been truncated.", "export.user": "User", "file_preview.directory.description": "Select a file in this folder to preview it.", "file_preview.directory.title": "This is a folder", "file_preview.html.empty.description": "This HTML file has no content.", "file_preview.html.empty.title": "Empty file", "file_preview.html.mode.label": "HTML view mode", "file_preview.html.mode.preview": "Preview", "file_preview.html.mode.source": "Source", "file_preview.html.read_error.title": "Couldn't read this file", "file_preview.html.too_large.description": "HTML files larger than {{limit}} MiB cannot be previewed.", "file_preview.html.too_large.title": "File is too large", "file_preview.invalid_path.description": "File preview requires a valid absolute local path.", "file_preview.invalid_path.title": "Can't preview this file", "file_preview.load_error.description": "The preview content could not be loaded.", "file_preview.load_error.title": "Preview failed", "file_preview.loading": "Loading preview...", "file_preview.markdown.empty.description": "This Markdown file has no content.", "file_preview.markdown.empty.title": "Empty file", "file_preview.markdown.mode.label": "Markdown view mode", "file_preview.markdown.mode.preview": "Preview", "file_preview.markdown.mode.source": "Source", "file_preview.markdown.read_error.title": "Couldn't read this file", "file_preview.markdown.too_large.description": "Markdown files larger than {{limit}} MiB cannot be previewed.", "file_preview.markdown.too_large.title": "File is too large", "file_preview.open_error": "Couldn't open this file", "file_preview.pdf.navigation_error": "Couldn't navigate to this PDF section", "file_preview.text.empty.description": "This text file has no content.", "file_preview.text.empty.title": "Empty file", "file_preview.text.read_error.title": "Couldn't read this file", "file_preview.text.too_large.description": "Text files larger than {{limit}} MiB cannot be previewed.", "file_preview.text.too_large.title": "File is too large", "file_preview.unavailable.description": "The file may have been moved, deleted, or cannot be accessed.", "file_preview.unavailable.title": "File unavailable", "file_preview.unsupported.action": "Open with default app", "file_preview.unsupported.description": "This file type cannot be previewed yet.", "file_preview.unsupported.title": "Preview unavailable", "file_preview.video.load_error.title": "Couldn't play this video", "files.actions": "Actions", "files.all": "All Files", "files.audio": "Audio", "files.created_at": "Created At", "files.delete.label": "Delete", "files.delete_or_remove": "Delete / remove", "files.delete_or_remove_confirm.external_count": "Remove {{count}} external file(s) from the library. The original files on disk will not be affected.", "files.delete_or_remove_confirm.internal_count": "Move {{count}} internal file(s) to the Archive.", "files.delete_or_remove_confirm.title": "Delete or remove files?", "files.document": "Document", "files.drag_upload": "Drag files here to upload", "files.empty.no_match_description": "No files match the current filters", "files.empty.no_match_title": "No matching files found", "files.empty.title": "No files yet", "files.error.delete_failed": "Failed to delete files", "files.error.delete_partial_failed": "Some files could not be deleted", "files.error.import_failed": "Failed to import files", "files.error.import_partial_failed": "Some files could not be imported", "files.error.open_path": "Failed to open path {{path}}", "files.error.rename_failed": "Failed to rename file", "files.footer_selected_count": "{{count}} selected", "files.image": "Image", "files.missing": "Missing", "files.modified_at": "Modified At", "files.name": "Name", "files.open": "Open", "files.other": "Other", "files.preview.error": "Failed to open file", "files.remove_from_library": "Remove from library", "files.remove_from_library_confirm.description": "This removes the selected entries from the library. The original files on disk will not be affected.", "files.remove_from_library_confirm.title": "Remove from library?", "files.rename": "Rename", "files.select_all": "Select visible files", "files.select_all_short": "Select All", "files.select_file": "Select {{name}}", "files.show_in_folder": "Show in folder", "files.size": "Size", "files.text": "Text", "files.title": "Files", "files.type": "Type", "files.upload": "Upload files", "files.video": "Video", "globalSearch.clear": "Clear search", "globalSearch.error": "Search failed", "globalSearch.filters.agent": "Agent", "globalSearch.filters.all": "All", "globalSearch.filters.assistant": "Assistant", "globalSearch.filters.conversation": "Conversation", "globalSearch.filters.knowledge": "Knowledge", "globalSearch.filters.label": "Search type", "globalSearch.filters.session": "Task", "globalSearch.filters.topic": "Conversation", "globalSearch.groups.agent": "Agent", "globalSearch.groups.assistant": "Assistant", "globalSearch.groups.conversation": "Conversation", "globalSearch.groups.knowledge-base": "Knowledge", "globalSearch.groups.message": "Messages", "globalSearch.groups.recent": "Recent", "globalSearch.groups.session": "Task", "globalSearch.groups.topic": "Conversation", "globalSearch.keyboard.select": "Select", "globalSearch.messageSearch.entry": "Messages", "globalSearch.messageSearch.hint": "Type to search message content", "globalSearch.messageSearch.jumpToMessage": "Jump to message", "globalSearch.messageSearch.more": "Show {{count}} more results", "globalSearch.messageSearch.open": "Search messages", "globalSearch.messageSearch.roles.assistant": "Assistant", "globalSearch.messageSearch.roles.system": "System", "globalSearch.messageSearch.roles.tool": "Tool", "globalSearch.messageSearch.roles.user": "User", "globalSearch.messageSearch.sourceLabel": "Message source", "globalSearch.messageSearch.sources.all": "All messages", "globalSearch.messageSearch.sources.session": "Task messages", "globalSearch.messageSearch.sources.topic": "Conversation messages", "globalSearch.messageSearch.viewMore": "View more in Messages", "globalSearch.no_recent": "No recent routes", "globalSearch.open": "Open global search", "globalSearch.open_failed": "Failed to open search result", "globalSearch.placeholder": "Search conversations, tasks, assistants, agents, and knowledge...", "globalSearch.quickApps.hide": "Hide {{name}}", "globalSearch.quickApps.manage": "Manage", "globalSearch.quickApps.manager_description": "Drag to reorder, click the eye to hide or show", "globalSearch.quickApps.manager_title": "Manage quick apps", "globalSearch.quickApps.reset": "Reset", "globalSearch.quickApps.save_failed": "Failed to save quick apps", "globalSearch.quickApps.show": "Show {{name}}", "globalSearch.quickApps.title": "Quick apps", "globalSearch.recent_hint": "Type to search conversations, tasks, assistants, agents, and knowledge", "globalSearch.resultTypes.agent": "Agent", "globalSearch.resultTypes.assistant": "Assistant", "globalSearch.resultTypes.session": "Task", "globalSearch.resultTypes.topic": "Conversation", "globalSearch.settingsTitle": "$t(title.settings) - {{section}}", "globalSearch.showMore": "Show {{count}} more", "globalSearch.timeFilters.any": "Any time", "globalSearch.timeFilters.label": "Updated time", "globalSearch.timeFilters.messageLabel": "Created time", "globalSearch.timeFilters.month": "Last month", "globalSearch.timeFilters.quarter": "Last 3 months", "globalSearch.timeFilters.today": "Today", "globalSearch.timeFilters.week": "Last 7 days", "gpustack.keep_alive_time.description": "The time in minutes to keep the connection alive, default is 5 minutes.", "gpustack.keep_alive_time.placeholder": "Minutes", "gpustack.keep_alive_time.title": "Keep Alive Time", "help.feedback": "Feedback", "help.guide": "User guide", "help.title": "Help", "help.whats_new": "What's new", "history.records.agentTitle": "Agent History", "history.records.bulkArchive": "Batch Archive", "history.records.bulkDeleteSessions.description": "Delete {{count}} selected task(s)?", "history.records.bulkDeleteSessions.title": "Delete selected tasks", "history.records.bulkDeleteTopics.description": "Delete {{count}} selected conversation(s)?", "history.records.bulkDeleteTopics.title": "Delete selected conversations", "history.records.bulkMove": "Batch Move", "history.records.bulkMoveTopics.confirm": "Move", "history.records.bulkMoveTopics.description": "Move {{count}} selected conversation(s) to the target assistant.", "history.records.bulkMoveTopics.empty": "No assistants available", "history.records.bulkMoveTopics.error": "Failed to move conversations", "history.records.bulkMoveTopics.partialSuccess": "Moved {{moved}} of {{total}} conversation(s); {{failed}} failed", "history.records.bulkMoveTopics.placeholder": "Select assistant", "history.records.bulkMoveTopics.success": "Moved {{count}} conversation(s)", "history.records.bulkMoveTopics.target": "Target assistant", "history.records.bulkMoveTopics.title": "Move selected conversations", "history.records.clearSearch": "Clear search", "history.records.empty.description": "No conversations for the current filters.", "history.records.empty.sessionsDescription": "No tasks for the current filters.", "history.records.empty.sessionsTitle": "No tasks", "history.records.empty.title": "No conversations", "history.records.filter.selectAgent": "Select an agent", "history.records.filter.selectAssistant": "Select an assistant", "history.records.filter.statusLabel": "Status", "history.records.filter.statusPlaceholder": "Select status", "history.records.filter.unlinkedAssistant": "Unlinked assistant", "history.records.loading.description": "Loading conversation list.", "history.records.loading.sessionsDescription": "Loading task list.", "history.records.loading.sessionsTitle": "Loading tasks", "history.records.loading.title": "Loading conversations", "history.records.searchSession": "Search tasks...", "history.records.searchTopic": "Search conversations...", "history.records.shortTitle": "History", "history.records.status.completed": "Completed", "history.records.status.failed": "Failed", "history.records.status.running": "Running", "history.records.table.actions": "Actions", "history.records.table.conversation": "Conversation", "history.records.table.emptyValue": "—", "history.records.table.session": "Task", "history.records.table.time": "Time", "history.records.title": "Conversation History", "html_artifacts.capture.label": "Capture Page", "html_artifacts.capture.to_clipboard": "Copy to Clipboard", "html_artifacts.capture.to_file": "Save as Image", "html_artifacts.code": "Code", "html_artifacts.empty_preview": "No content to display", "html_artifacts.generating": "Generating", "html_artifacts.interactive_preview.action": "View webpage", "html_artifacts.interactive_preview.description": "This webpage contains scripts or external resources. Opening it may run code and connect to the internet.", "html_artifacts.preview": "Preview", "html_artifacts.split": "Split", "html_artifacts.view_mode": "View mode", "import.chatgpt.assistant_name": "ChatGPT Import", "import.chatgpt.button": "Select File", "import.chatgpt.description": "Only imports conversation text, does not include images and attachments", "import.chatgpt.error.no_conversations": "No conversations found in file", "import.chatgpt.error.no_valid_conversations": "No valid conversations to import", "import.chatgpt.error.unknown": "Import failed, please check file format", "import.chatgpt.help.step1": "1. Log in to ChatGPT, go to Settings > Data controls > Export data", "import.chatgpt.help.step2": "2. Wait for the export file via email", "import.chatgpt.help.step3": "3. Extract the downloaded file and find conversations.json", "import.chatgpt.help.title": "How to export ChatGPT conversations?", "import.chatgpt.importing": "Importing conversations...", "import.chatgpt.selecting": "Selecting file...", "import.chatgpt.success": "Successfully imported {{topics}} conversations with {{messages}} messages", "import.chatgpt.title": "Import ChatGPT Conversations", "import.chatgpt.untitled_conversation": "Untitled Conversation", "import.claude.assistant_name": "Claude Import", "import.claude.button": "Select File", "import.claude.description": "Imports text, thinking, and tool use; images and attachments are not included", "import.claude.error.no_conversations": "No conversations found in file", "import.claude.error.no_valid_conversations": "No valid conversations to import", "import.claude.error.unknown": "Import failed, please check file format", "import.claude.help.step1": "1. Log in to Claude, go to Settings > Privacy > Export Data", "import.claude.help.step2": "2. Wait for the export file via email", "import.claude.help.step3": "3. Extract the downloaded file and find conversations.json", "import.claude.help.title": "How to export Claude conversations?", "import.claude.importing": "Importing conversations...", "import.claude.selecting": "Selecting file...", "import.claude.success": "Successfully imported {{topics}} conversations with {{messages}} messages", "import.claude.title": "Import Claude Conversations", "import.claude.untitled_conversation": "Untitled Conversation", "knowledge.add.group": "Group", "knowledge.add.submit": "Create", "knowledge.add.title": "New Knowledge Base", "knowledge.context.delete": "Delete Knowledge Base", "knowledge.context.delete_confirm_description": "This knowledge base cannot be recovered after deletion.", "knowledge.context.delete_confirm_title": "Delete Knowledge Base?", "knowledge.context.move_to": "Move to", "knowledge.context.rename": "Rename", "knowledge.data_source.actions.delete": "Delete", "knowledge.data_source.actions.preview_source": "Preview Source", "knowledge.data_source.actions.reindex": "Reindex", "knowledge.data_source.actions.view_chunks": "View Chunks", "knowledge.data_source.add_dialog.conflict_dialog.description": "{{count}} of the sources you are adding have the same name as existing items. Choose how to handle them.", "knowledge.data_source.add_dialog.conflict_dialog.keep_all": "Keep All", "knowledge.data_source.add_dialog.conflict_dialog.replace": "Replace", "knowledge.data_source.add_dialog.conflict_dialog.title": "Sources already exist", "knowledge.data_source.add_dialog.footer.selected_notes": "{{count}} notes selected", "knowledge.data_source.add_dialog.note.create.content_label": "Content", "knowledge.data_source.add_dialog.note.create.content_placeholder": "Write the note content here…", "knowledge.data_source.add_dialog.note.create.title_label": "Title", "knowledge.data_source.add_dialog.note.create.title_placeholder": "Name this note", "knowledge.data_source.add_dialog.note.description": "Select existing notes as knowledge base sources", "knowledge.data_source.add_dialog.note.empty_description": "Create notes in the Notes feature, then come back to select them here.", "knowledge.data_source.add_dialog.note.empty_title": "No notes found", "knowledge.data_source.add_dialog.note.loading": "Loading notes…", "knowledge.data_source.add_dialog.note.mode.create": "New note", "knowledge.data_source.add_dialog.note.mode.import": "Import notes", "knowledge.data_source.add_dialog.sources.directory": "Folder", "knowledge.data_source.add_dialog.sources.file": "File", "knowledge.data_source.add_dialog.sources.note": "Note", "knowledge.data_source.add_dialog.sources.url": "URL", "knowledge.data_source.add_dialog.submit.error": "Failed to add data source", "knowledge.data_source.add_dialog.title": "Add Data Source", "knowledge.data_source.add_dialog.too_many_sources": "You can add at most {{count}} sources at a time. Reduce your selection and try again.", "knowledge.data_source.add_dialog.unsupported_files_skipped": "Skipped {{count}} unsupported file(s)", "knowledge.data_source.add_dialog.url.description": "Enter a webpage URL:", "knowledge.data_source.add_dialog.url.help": "Page text will be fetched, chunked, and indexed automatically", "knowledge.data_source.add_dialog.url.placeholder": "https://example.com", "knowledge.data_source.back_to_parent": "Back", "knowledge.data_source.bulk.delete": "Delete", "knowledge.data_source.bulk.delete_confirm_description": "Delete {{count}} selected data sources? This cannot be undone.", "knowledge.data_source.bulk.delete_confirm_title": "Delete Selected Data Sources?", "knowledge.data_source.bulk.loaded_only_hint": "Applies to loaded items only ({{total}} total)", "knowledge.data_source.bulk.reindex": "Reindex", "knowledge.data_source.bulk.reindex_none_eligible": "All selected data sources are still processing and cannot be reindexed yet", "knowledge.data_source.bulk.reindex_skipped": "Skipped {{count}} data source(s) still processing", "knowledge.data_source.bulk.selected_count": "{{count}} selected", "knowledge.data_source.chunks_count": "{{count}} chunks", "knowledge.data_source.delete_confirm_description": "This data source and its index data cannot be recovered after deletion.", "knowledge.data_source.delete_confirm_title": "Delete Data Source?", "knowledge.data_source.delete_failed": "Failed to delete data source", "knowledge.data_source.empty.shortcuts.directory.title": "Folder Import", "knowledge.data_source.empty.shortcuts.file.title": "File", "knowledge.data_source.empty.shortcuts.url.title": "URL", "knowledge.data_source.empty.title": "Upload Your First Data Source", "knowledge.data_source.empty_description": "No data sources yet", "knowledge.data_source.empty_folder": "This folder is empty", "knowledge.data_source.filters.directory": "Folders", "knowledge.data_source.filters.file": "Files", "knowledge.data_source.filters.note": "Notes", "knowledge.data_source.filters.url": "URLs", "knowledge.data_source.list.end_reached": "No more items", "knowledge.data_source.list.loading_more": "Loading more…", "knowledge.data_source.preview.failed": "Failed to preview source", "knowledge.data_source.preview.unavailable": "This data source has no source to preview", "knowledge.data_source.reindex_failed": "Failed to reindex data source", "knowledge.data_source.status.chunking": "Chunking", "knowledge.data_source.status.copying": "Copying {{percent}}%", "knowledge.data_source.status.embedding": "Embedding", "knowledge.data_source.status.error": "Error", "knowledge.data_source.status.pending": "Waiting", "knowledge.data_source.status.reading": "Reading", "knowledge.data_source.status.ready": "Ready", "knowledge.data_source.table.aria_label": "Data sources", "knowledge.data_source.table.columns.actions": "Actions", "knowledge.data_source.table.columns.name": "Name", "knowledge.data_source.table.columns.status": "Status", "knowledge.data_source.table.columns.type": "Type", "knowledge.data_source.table.columns.updated_at": "Updated", "knowledge.data_source.table.open_row": "Open {{title}}", "knowledge.data_source.table.select_all": "Select all", "knowledge.data_source.table.select_row": "Select row", "knowledge.data_source.table.sort_hint": "Click to sort, reverse, then restore the default order", "knowledge.data_source.toolbar.add": "Add Data Source", "knowledge.embedding_model": "Embedding Model", "knowledge.embedding_model_required": "Knowledge base embedding model is required", "knowledge.empty": "No knowledge bases yet", "knowledge.empty_action": "Create Knowledge Base", "knowledge.empty_description": "Build up your knowledge with AI", "knowledge.error.directory_not_migrated": "Folder migration failed. Please delete it and re-upload.", "knowledge.error.failed_base_unknown": "This knowledge base failed during migration. Rebuild it and choose a new embedding model.", "knowledge.error.failed_to_create": "Failed to create knowledge base", "knowledge.error.failed_to_delete": "Failed to delete knowledge base", "knowledge.error.failed_to_edit": "Failed to edit knowledge base", "knowledge.error.failed_to_move": "Failed to move knowledge base", "knowledge.error.failed_to_reorder": "Failed to save knowledge base order", "knowledge.error.indexing_interrupted": "Indexing was interrupted because the app closed. Reindex this item to finish.", "knowledge.error.missing_embedding_model": "The embedding model used by this knowledge base was not found during migration. Rebuild the knowledge base and choose a new embedding model.", "knowledge.error.missing_vector_store": "This knowledge base's vector store could not be read during migration (missing, empty, or locked). The knowledge base was kept; re-index it to recover.", "knowledge.groups.add": "New Group", "knowledge.groups.create_base_here": "Create here", "knowledge.groups.default": "Default", "knowledge.groups.delete": "Delete Group", "knowledge.groups.delete_confirm_description": "Knowledge bases in this group will be moved to the default group after deletion.", "knowledge.groups.delete_confirm_title": "Delete Group?", "knowledge.groups.error.failed_to_create": "Failed to create group", "knowledge.groups.error.failed_to_delete": "Failed to delete group", "knowledge.groups.error.failed_to_update": "Failed to rename group", "knowledge.groups.name_placeholder": "Enter group name...", "knowledge.groups.name_required": "Group name is required", "knowledge.groups.rename": "Rename", "knowledge.groups.rename_title": "Rename Group", "knowledge.meta.updated_at": "Updated {{time}}", "knowledge.name_required": "Knowledge base name is required", "knowledge.provider_not_found": "Provider not found", "knowledge.rag.chunk_overlap": "Overlap Size", "knowledge.rag.chunk_overlap_invalid": "Chunk overlap must be greater than or equal to 0", "knowledge.rag.chunk_overlap_must_be_smaller": "Chunk overlap must be smaller than chunk size", "knowledge.rag.chunk_separator": "Separator", "knowledge.rag.chunk_separator_required": "Separator is required when smart chunking is off", "knowledge.rag.chunk_size": "Chunk Size", "knowledge.rag.chunk_size_change_warning": "Chunking changes only apply to newly added content", "knowledge.rag.chunk_size_invalid": "Chunk size must be greater than 0", "knowledge.rag.chunking": "Chunking", "knowledge.rag.document_count": "Top K", "knowledge.rag.download_local_embedding_failed": "Failed to download the local embedding model", "knowledge.rag.download_local_model": "Download Local Model", "knowledge.rag.embedding_model": "Embedding Model", "knowledge.rag.embedding_model_select": "Model Selection", "knowledge.rag.file_processing": "File Processing", "knowledge.rag.file_processing_hint": "Document preprocessing runs automatically during document import. Choosing the right provider can improve document parsing quality.", "knowledge.rag.file_processing_none": "Don't use", "knowledge.rag.hints.chunk_overlap": "Number of overlapping tokens kept between adjacent chunks to reduce semantic breaks.", "knowledge.rag.hints.chunk_separator": "Delimiter the text is split on, in escaped form. With smart chunking on it adds a break point; with it off the text is split only by this delimiter.", "knowledge.rag.hints.chunk_size": "Target token count for each document chunk. This affects retrieval granularity and context length.", "knowledge.rag.hints.document_count": "Maximum number of document chunks returned for each retrieval. Higher values cover more content but use more context.", "knowledge.rag.hints.embedding_model": "Used to convert knowledge base content into vectors. Changing the model usually requires reindexing existing content.", "knowledge.rag.hints.processor": "Parser used when importing files to extract body text, tables, and related content.", "knowledge.rag.hints.rerank_model": "Model used to rerank initial retrieval results and improve final chunk relevance.", "knowledge.rag.hints.smart_chunking": "Automatically split along Markdown structure (headings, code blocks, paragraphs) and never split inside a code block. Turn off to split purely by the separator.", "knowledge.rag.hints.threshold": "Similarity threshold for filtering low-relevance reranked chunks. Higher values make retrieval stricter.", "knowledge.rag.processor": "Processing Provider", "knowledge.rag.processor_not_configured": "Not configured", "knowledge.rag.processor_not_downloaded": "Not downloaded", "knowledge.rag.processor_unreachable": "Service not running", "knowledge.rag.rerank_disabled": "Disabled", "knowledge.rag.rerank_model": "Rerank Model", "knowledge.rag.reset_action": "Restore Defaults", "knowledge.rag.retrieval": "Retrieval", "knowledge.rag.save_action": "Save", "knowledge.rag.saved": "Saved", "knowledge.rag.smart_chunking": "Smart Chunking", "knowledge.rag.threshold": "Similarity Threshold", "knowledge.rag.tokens_unit": "tokens", "knowledge.recall.collapse": "Collapse Chunk", "knowledge.recall.copy": "Copy Chunk", "knowledge.recall.duration": "{{duration}}ms", "knowledge.recall.empty_description": "Matched document chunks and scores will appear here", "knowledge.recall.empty_title": "Enter a query to test retrieval", "knowledge.recall.expand": "Expand Chunk", "knowledge.recall.history_clear": "Clear", "knowledge.recall.history_remove": "Remove History", "knowledge.recall.history_title": "Search History", "knowledge.recall.placeholder": "Enter test query...", "knowledge.recall.ranking_only": "Ordered results", "knowledge.recall.result_count": "{{count}} results", "knowledge.recall.result_rank": "Rank #{{rank}}", "knowledge.recall.result_relevance": "Relevance {{score}}", "knowledge.recall.search_failed": "Failed to run recall test", "knowledge.recall.searching": "Searching...", "knowledge.recall.submit": "Search", "knowledge.recall.top_score": "Top: {{score}}", "knowledge.rename_title": "Rename Knowledge Base", "knowledge.restore.action": "Rebuild knowledge base", "knowledge.restore.default_name": "{{name}}_bak", "knowledge.restore.failed_to_restore": "Failed to rebuild knowledge base", "knowledge.restore.skipped_missing_sources_one": "Skipped {{count}} item whose source no longer exists", "knowledge.restore.skipped_missing_sources_other": "Skipped {{count}} items whose source no longer exists", "knowledge.restore.submit": "Rebuild", "knowledge.restore.title": "Rebuild Knowledge Base", "knowledge.search": "Search Knowledge Base", "knowledge.search_placeholder": "Enter text to search", "knowledge.status.completed": "Ready", "knowledge.status.failed": "Failed", "knowledge.status.processing": "Processing", "knowledge.tabs.rag_config": "Knowledge Base Settings", "knowledge.tabs.recall_test": "Recall Test", "knowledge.title": "Knowledge Base", "languages.arabic": "Arabic", "languages.chinese": "Chinese", "languages.chinese-traditional": "Traditional Chinese", "languages.english": "English", "languages.french": "French", "languages.german": "German", "languages.indonesian": "Indonesian", "languages.italian": "Italian", "languages.japanese": "Japanese", "languages.korean": "Korean", "languages.malay": "Malay", "languages.polish": "Polish", "languages.portuguese": "Portuguese", "languages.russian": "Russian", "languages.spanish": "Spanish", "languages.thai": "Thai", "languages.turkish": "Turkish", "languages.ukrainian": "Ukrainian", "languages.unknown": "unknown", "languages.urdu": "Urdu", "languages.vietnamese": "Vietnamese", "launchpad.apps": "Apps", "launchpad.deepseek_harness_shortcut": "DSH", "launchpad.miniApps": "MiniApps", "launchpad.pin_to_sidebar": "Add to Sidebar", "launchpad.unpin_from_sidebar": "Remove from Sidebar", "library.action.duplicate": "Duplicate", "library.action.enable": "Enable", "library.action.manage_groups": "Manage groups", "library.action.uninstall": "Uninstall", "library.assistant_catalog.add": "Add", "library.assistant_catalog.add_failed": "Failed to add assistant", "library.assistant_catalog.empty_description": "This category has no assistant presets yet.", "library.assistant_catalog.empty_title": "No assistants to add", "library.assistant_catalog.go_to_chat": "Go to chat", "library.assistant_catalog.no_match_description": "Try a different search keyword", "library.assistant_catalog.no_match_title": "No matching assistants", "library.assistant_catalog.preview_description": "Overview", "library.assistant_catalog.preview_prompt": "Prompt", "library.assistant_catalog.title": "Assistant Library", "library.config.agent.field.description.hint": "Helps identify what this agent is for", "library.config.agent.field.description.label": "Description", "library.config.agent.field.description.placeholder": "What this agent is for…", "library.config.agent.field.env_vars.help": "One KEY=VALUE per line", "library.config.agent.field.env_vars.label": "Environment variables", "library.config.agent.field.env_vars.placeholder": "KEY=value\nANOTHER_KEY=another_value", "library.config.agent.field.heartbeat_enabled.label": "Heartbeat check", "library.config.agent.field.heartbeat_interval.label": "Heartbeat interval (minutes)", "library.config.agent.field.language.effective_follow": "Effective: follow conversation language", "library.config.agent.field.language.effective_value": "Effective: {{language}}", "library.config.agent.field.language.label": "Reply language", "library.config.agent.field.language.mode.custom": "Custom", "library.config.agent.field.language.mode.inherit": "Use global", "library.config.agent.field.language.mode.off": "No constraint", "library.config.agent.field.model.hint": "Main reasoning and execution", "library.config.agent.field.model.hint.claude_code": "The model this session runs on. Also pins Claude Code's `opus` alias (ANTHROPIC_MODEL / ANTHROPIC_DEFAULT_OPUS_MODEL). Any provider's model can be assigned.", "library.config.agent.field.model.label": "Primary model", "library.config.agent.field.model.label.claude_code": "Primary model (Opus)", "library.config.agent.field.name.hint": "Shown in the library and session lists", "library.config.agent.field.name.label": "Agent name", "library.config.agent.field.name.placeholder": "Give the agent a name", "library.config.agent.field.permission_mode.label": "Permission mode", "library.config.agent.field.plan_model.empty": "Not set — follows primary model", "library.config.agent.field.plan_model.hint": "Pins what Claude Code's `sonnet` alias resolves to (ANTHROPIC_DEFAULT_SONNET_MODEL). Subagents inherit the primary model unless they explicitly ask for `sonnet`. Any provider's model can be assigned.", "library.config.agent.field.plan_model.label": "Sonnet model", "library.config.agent.field.runtime.immutable_hint": "Cannot be changed after creation", "library.config.agent.field.runtime.label": "Runtime mode", "library.config.agent.field.runtime.option.claude_code": "Claude Agent", "library.config.agent.field.runtime.option.pi": "Pi", "library.config.agent.field.runtime.option_description.claude_code": "Stronger overall, ideal for complex tasks", "library.config.agent.field.runtime.option_description.pi": "Fast and lightweight", "library.config.agent.field.small_model.empty": "Not set — follows primary model", "library.config.agent.field.small_model.hint": "Pins what Claude Code's `haiku` alias resolves to (ANTHROPIC_DEFAULT_HAIKU_MODEL). Any provider's model can be assigned.", "library.config.agent.field.small_model.label": "Haiku model", "library.config.agent.model_config": "Model", "library.config.agent.section.permission.desc": "Authorization scope for agent actions", "library.config.agent.section.permission.title": "Permission mode", "library.config.agent.section.tools.add": "Add", "library.config.agent.section.tools.category.context": "Context", "library.config.agent.section.tools.category.file": "File", "library.config.agent.section.tools.category.media": "Media", "library.config.agent.section.tools.category.orchestration": "Orchestration", "library.config.agent.section.tools.category.search": "Search", "library.config.agent.section.tools.category.shell": "Shell", "library.config.agent.section.tools.no_builtin_enabled": "No built-in tools enabled", "library.config.agent.section.tools.no_mcp_bound": "No MCP servers bound", "library.config.agent.section.tools.no_skills_enabled": "No skills enabled", "library.config.agent.section.tools.search_placeholder": "Search tools or servers...", "library.config.agent.section.tools.skills_enable_all": "Enable all", "library.config.agent.section.tools.skills_require_save": "Save before enabling skills", "library.config.agent.section.tools.tab.mcp": "MCP", "library.config.agent.section.tools.tab.skills": "Skills", "library.config.agent.section.tools.tab.tools": "Built-in tools", "library.config.basic.context_compress_enabled": "Auto-compress", "library.config.basic.context_compress_model": "Compression model", "library.config.basic.context_compress_model_follow": "Follow current model", "library.config.basic.context_compress_threshold": "Compression trigger threshold", "library.config.basic.context_compress_threshold_follow_global": "Follow global ({{percent}}%)", "library.config.basic.context_count": "Recent messages kept", "library.config.basic.context_count_follow_global": "Follow global ({{count}})", "library.config.basic.context_count_unlimited": "Unlimited", "library.config.basic.context_globally_disabled": "Context management is off globally, so the offload and compression settings here have no effect", "library.config.basic.context_inherited": "Following the global settings: {{compress}}; tool outputs beyond {{threshold}} characters are offloaded", "library.config.basic.context_inherited_compress_off": "auto-compress off", "library.config.basic.context_inherited_compress_on": "auto-compress on", "library.config.basic.context_management": "Customize context management", "library.config.basic.context_truncate_threshold": "Tool-output truncation threshold (chars)", "library.config.basic.creative": "Creative", "library.config.basic.custom_params": "Custom parameters", "library.config.basic.custom_params_add": "Add parameter", "library.config.basic.custom_params_name": "Parameter name", "library.config.basic.custom_params_value": "Parameter value", "library.config.basic.default_value": "Model default", "library.config.basic.field.context_compress_enabled.hint": "Summarize older turns automatically when nearing the context window", "library.config.basic.field.context_compress_threshold.hint": "Compress once the conversation passes this percentage of the available input context (the model context window minus the reserved output)", "library.config.basic.field.context_count.hint": "Send only the most recent messages; earlier ones are excluded from context. Leave empty to follow the global setting", "library.config.basic.field.context_management.hint": "Use this assistant’s own context-management settings; off follows the global settings", "library.config.basic.field.context_truncate_threshold.hint": "Tool outputs beyond this many characters are offloaded and truncated", "library.config.basic.field.custom_params.hint": "Extra provider parameters sent with requests", "library.config.basic.field.description.hint": "Helps distinguish what this assistant is for", "library.config.basic.field.description.placeholder": "What this assistant is for...", "library.config.basic.field.max_tokens.hint": "Caps response length when enabled", "library.config.basic.field.max_tool_calls.hint": "Limits tool-call rounds when enabled; otherwise uses the default {{count}}-round limit", "library.config.basic.field.model.hint": "Overrides the global default model for this assistant", "library.config.basic.field.name.hint": "Shown in the library and assistant selectors", "library.config.basic.field.name.placeholder": "Give the assistant a name", "library.config.basic.field.stream_output.hint": "Shows responses as they are generated", "library.config.basic.field.tags.hint": "Used for filtering and organizing assistants", "library.config.basic.field.temperature.hint": "Controls randomness when enabled", "library.config.basic.field.top_p.hint": "Limits token sampling range when enabled", "library.config.basic.group": "Group", "library.config.basic.group_empty": "No groups available", "library.config.basic.group_placeholder": "Select group", "library.config.basic.json_invalid": "Invalid JSON format", "library.config.basic.max_tokens": "Max tokens", "library.config.basic.max_tool_calls": "Max tool call rounds", "library.config.basic.max_tool_calls_default": "Default ({{count}} rounds)", "library.config.basic.mcp_mode": "MCP Mode", "library.config.basic.model_clear": "Clear", "library.config.basic.model_not_found": "Model not found (may have been removed): {{id}}", "library.config.basic.model_pick": "Pick model", "library.config.basic.precise": "Precise", "library.config.basic.stream_output": "Stream output", "library.config.basic.tag_empty": "No tags available", "library.config.basic.tag_placeholder": "Select tag", "library.config.basic.tag_search": "Search tags", "library.config.basic.tags": "Tag", "library.config.basic.temperature": "Temperature", "library.config.basic.top_p": "Top-P", "library.config.dialogs.create.agent_title": "New Agent", "library.config.dialogs.create.assistant_title": "New Assistant", "library.config.dialogs.create.avatar_aria": "Choose avatar", "library.config.dialogs.create.avatar_name_label": "Avatar and name", "library.config.dialogs.create.back": "Back", "library.config.dialogs.create.capability.builtin_badge": "Enabled by default", "library.config.dialogs.create.capability.no_skills": "No skills installed", "library.config.dialogs.create.capability.search": "Search skills", "library.config.dialogs.create.description_placeholder": "Describe what it is for...", "library.config.dialogs.create.name_placeholder": "Enter a name", "library.config.dialogs.create.next": "Next", "library.config.dialogs.create.step.basic": "Basic info", "library.config.dialogs.create.step.capability": "Skills", "library.config.dialogs.create.step.knowledge": "Knowledge", "library.config.dialogs.create.submit": "Create", "library.config.dialogs.create.submit_failed": "Create failed", "library.config.dialogs.edit.advanced_tab": "Advanced", "library.config.dialogs.edit.agent_description": "Quickly adjust this agent's essentials.", "library.config.dialogs.edit.agent_title": "Edit Agent", "library.config.dialogs.edit.assistant_description": "Quickly adjust this assistant's essentials.", "library.config.dialogs.edit.assistant_title": "Edit Assistant", "library.config.dialogs.edit.basic_tab": "Basic", "library.config.dialogs.edit.knowledge_tab": "Knowledge", "library.config.dialogs.edit.permission_tab": "Permission", "library.config.dialogs.edit.prompt_tab": "System Prompt", "library.config.dialogs.edit.save_failed": "Save failed", "library.config.dialogs.edit.tools_tab": "Tools", "library.config.knowledge.add": "Add knowledge base", "library.config.knowledge.create_first": "Open Knowledge to create one", "library.config.knowledge.doc_count": "{{count}} docs", "library.config.knowledge.empty_desc": "Once linked, the assistant can answer based on document content", "library.config.knowledge.empty_title": "No knowledge bases linked", "library.config.knowledge.invalid_suffix": "... (unavailable)", "library.config.knowledge.linked": "Linked knowledge bases", "library.config.knowledge.linked_hint": "Controls which knowledge bases this assistant can retrieve from", "library.config.knowledge.no_more": "No more knowledge bases available", "library.config.knowledge.remove_aria": "Remove", "library.config.knowledge.search": "Search knowledge bases...", "library.config.prompt.copy_variable": "Copy {{variable}}", "library.config.prompt.dblclick_hint": "Double-click the preview to switch back to edit", "library.config.prompt.generate": "Generate prompt", "library.config.prompt.generate_failed_description": "Check or change the default model, then try again.", "library.config.prompt.generate_failed_title": "Failed to generate prompt", "library.config.prompt.insert_variable": "Insert variable", "library.config.prompt.label": "System Prompt", "library.config.prompt.placeholder": "Enter instructions for the assistant, such as response style, role, or background context", "library.config.prompt.polish": "Polish prompt", "library.config.prompt.polish_failed_description": "Check or change the default model, then try again.", "library.config.prompt.polish_failed_title": "Failed to polish prompt", "library.config.prompt.polish_variables_changed_description": "The polished result changed or removed prompt variables. Try again.", "library.config.prompt.polish_variables_changed_title": "Could not apply polished prompt", "library.config.prompt.tokens_label": "Tokens: ", "library.config.prompt.variables_description": "Insert these system variables into the system prompt; before each assistant reply, they are filled with the current information.", "library.config.prompt.variables_example": "Example: Today is {{variable}}, and the current date is used.", "library.config.prompt.variables_title": "System variables", "library.config.prompt.vars.arch": "CPU architecture", "library.config.prompt.vars.date": "Date", "library.config.prompt.vars.datetime": "Date and time", "library.config.prompt.vars.language": "Language", "library.config.prompt.vars.model_name": "Model name", "library.config.prompt.vars.os": "Operating system", "library.config.prompt.vars.time": "Time", "library.config.prompt.vars.username": "Username", "library.config.tools.add_mcp": "Add MCP server", "library.config.tools.added": "Added MCP servers", "library.config.tools.added_hint": "Manual mode exposes only the servers in this list", "library.config.tools.empty_desc": "Once added, the assistant can invoke external tools", "library.config.tools.empty_title": "No MCP servers added", "library.config.tools.inactive_badge": "Inactive", "library.config.tools.info_main": "MCP (Model Context Protocol) lets the model safely invoke external tools.", "library.config.tools.info_sub": "Enabling only necessary servers improves safety and response speed.", "library.config.tools.legacy_restrictions.description": "This agent has tool restrictions from its previous runtime. Removing them permits those tools; review MCP access first.", "library.config.tools.legacy_restrictions.remove": "Remove legacy tool restrictions", "library.config.tools.mode.auto.desc": "The model decides which enabled MCP tools to call", "library.config.tools.mode.auto.label": "Auto", "library.config.tools.mode.disabled.desc": "No MCP tools are available during chat", "library.config.tools.mode.disabled.label": "Disabled", "library.config.tools.mode.manual.desc": "Expose only the MCP servers selected below", "library.config.tools.mode.manual.label": "Manual", "library.config.tools.no_more": "No more servers available", "library.config.tools.search": "Search available servers...", "library.create_menu.create": "New {{type}}", "library.delete.skill.content": "Are you sure you want to uninstall this skill? It will be removed from the global library and all agent workspace symlinks will be cleaned up.", "library.delete.skill.title": "Uninstall skill", "library.duplicate_assistant_failed": "Failed to duplicate assistant", "library.duplicate_name": "{{name}} (copy)", "library.empty_state.description": "Click \"New\" to create your first resource.", "library.empty_state.empty_description": "Create your first agent or assistant", "library.empty_state.empty_title": "No resources yet", "library.empty_state.no_match_description": "Try a different search keyword", "library.empty_state.no_match_title": "No matching resources", "library.empty_state.title": "No resources", "library.export_assistant_failed": "Failed to export assistant", "library.group_picker.no_groups": "No groups yet", "library.group_sync_failed": "Failed to sync groups", "library.import_dialog.clipboard.button": "Parse and import", "library.import_dialog.clipboard.placeholder": "Paste JSON configuration here...", "library.import_dialog.error.content_too_large": "Content too large (>5 MB)", "library.import_dialog.error.file_too_large": "File too large (>5 MB)", "library.import_dialog.error.invalid_url": "Invalid URL", "library.import_dialog.error.response_too_large": "Response too large (>5 MB)", "library.import_dialog.error.timeout": "Request timed out. Check that the URL is reachable.", "library.import_dialog.error.unsupported_protocol": "Only http or https URLs are supported", "library.import_dialog.failure": "Import failed: {{error}}", "library.import_dialog.file.drop_hint": "Drag and drop a file here, or click to pick one", "library.import_dialog.file.formats": "Supports .json", "library.import_dialog.partial_success": "Partial success: {{success}} imported, {{failed}} failed ({{first_name}}: {{first_error}})", "library.import_dialog.subtitle": "JSON configuration files are supported", "library.import_dialog.success": "Imported successfully: {{name}}", "library.import_dialog.tab.clipboard": "Clipboard", "library.import_dialog.tab.file": "File upload", "library.import_dialog.tab.url": "Import from URL", "library.import_dialog.url.button": "Fetch and import", "library.import_dialog.url.hint": "Import from a GitHub Gist, GitHub repo, or any public URL", "library.import_dialog.url.supports": "Raw file URLs are supported", "library.import_skill_dialog.local.drop_hint": "Drop a ZIP or directory here, or click to choose a ZIP", "library.import_skill_dialog.local.formats": "Supports .zip files and directories containing SKILL.md", "library.import_skill_dialog.subtitle": "Install a skill from a ZIP file or directory", "library.import_skill_dialog.title": "Import skill", "library.no_match": "No matching results", "library.skill_add.add": "Add Skill", "library.skill_add.create_with_agent": "Create with Agent", "library.skill_add.local_import": "Local import", "library.skill_add.online_search": "Online search", "library.skill_add.system_search": "System search", "library.skill_detail.file_load_failed": "Could not load file", "library.skill_detail.no_description": "No description", "library.skill_detail.no_files": "No files found", "library.skill_detail.open_folder": "Open folder", "library.skill_detail.open_folder_failed": "Could not open folder", "library.skill_detail.select_file": "Select a file to preview", "library.skill_detail.source_files": "Source files", "library.skill_marketplace.empty_description": "Search online registries to find installable skills.", "library.skill_marketplace.empty_title": "Search for skills", "library.skill_marketplace.github_empty_description": "Paste a link to a skill's SKILL.md file, for example github.com/owner/repo/blob/main/skills/my-skill/SKILL.md", "library.skill_marketplace.github_empty_title": "Install from GitHub", "library.skill_marketplace.github_url_invalid": "Paste a supported GitHub link directly to a SKILL.md file", "library.skill_marketplace.github_url_label": "GitHub SKILL.md URL", "library.skill_marketplace.github_url_placeholder": "GitHub link ending in /SKILL.md", "library.skill_marketplace.no_results_description": "Try another keyword or import a local ZIP or directory.", "library.skill_marketplace.no_results_title": "No skills found", "library.skill_marketplace.search_failed_description": "Search failed. Please try again later.", "library.skill_marketplace.search_label": "Search skills", "library.skill_marketplace.search_placeholder": "Search skills...", "library.skill_marketplace.source_label": "Skill source", "library.skill_marketplace.title": "Online skill search", "library.system_skill.conflict": "Name conflict", "library.system_skill.description": "Import skills already installed on this system.", "library.system_skill.empty_description": "No importable skills were found in other coding tools on this device.", "library.system_skill.empty_title": "No skills available to import", "library.system_skill.enable_success": "Enabled {{name}}", "library.system_skill.enabled": "Enabled", "library.system_skill.import": "Import", "library.system_skill.import_success": "Imported {{name}}", "library.system_skill.imported": "Imported", "library.system_skill.search_placeholder": "Search system skills...", "library.system_skill.title": "System skills", "library.title": "Library", "library.toolbar.all_groups": "All groups", "library.toolbar.group_button": "Group", "library.toolbar.search_placeholder": "Search by name or description...", "library.type.agent": "Agent", "library.type.assistant": "Assistant", "library.type.prompt": "Prompt", "library.type.skill": "Skill", "lmstudio.keep_alive_time.description": "The time in minutes to keep the connection alive, default is 5 minutes.", "lmstudio.keep_alive_time.placeholder": "Minutes", "lmstudio.keep_alive_time.title": "Keep Alive Time", "message.agents.import.error": "Import failed", "message.agents.imported": "Successfully imported {{count}} assistant(s)", "message.api.check.model.title": "Select the model to use for detection", "message.api.connection.failed": "Connection failed", "message.api.connection.success": "Connection successful", "message.attachments.pasted_image": "Pasted Image", "message.attachments.pasted_text": "Pasted Text", "message.backup.cleanup_failed": "Backup completed, but old backups could not be cleaned up.", "message.backup.failed": "Backup failed", "message.backup.success": "Backup successful", "message.chat.completion.paused": "Chat completion paused", "message.citation": "{{count}} citations", "message.citation_source": "Citation source {{number}}", "message.citations": "References", "message.conversation_reset": "Previous conversation history could not be found — continuing in a new conversation", "message.copied": "Copied!", "message.copy.failed": "Copy failed", "message.copy.success": "Copied!", "message.delete.confirm.content": "Are you sure you want to delete the selected {{count}} message(s)?", "message.delete.confirm.title": "Delete Confirmation", "message.delete.failed": "Delete Failed", "message.delete.generating_unavailable": "A reply in this group is still generating and cannot be deleted yet.", "message.delete.root_unavailable": "Messages are still loading and cannot be deleted yet.", "message.delete.success": "Delete Successful", "message.dialog.failed": "Preview failed", "message.download.failed": "Download failed", "message.download.success": "Download successfully", "message.empty_url": "Failed to download image, possibly due to prompt containing sensitive content or prohibited words", "message.error.avatar_image_too_large": "Image is too large (max {{limit}})", "message.error.dimension_too_large": "Content size is too large", "message.error.dismiss_failed": "Failed to dismiss error message", "message.error.enter.api.label": "Please enter your API key first", "message.error.excel.export": "Failed to export Excel", "message.error.fetchTopicName": "Failed to name the conversation", "message.error.get_embedding_dimensions": "Failed to get embedding dimensions", "message.error.image_process_failed": "Failed to process the image, please try again", "message.error.invalid.nutstore": "Invalid Nutstore settings", "message.error.invalid.nutstore_token": "Invalid Nutstore Token", "message.error.invalid.proxy.url": "Invalid proxy URL", "message.error.invalid.webdav": "Invalid WebDAV settings", "message.error.joplin.export": "Failed to export to Joplin. Please keep Joplin running and check connection status or configuration", "message.error.joplin.no_config": "Joplin Authorization Token or URL is not configured", "message.error.markdown.export.preconf": "Failed to export the Markdown file to the preconfigured path", "message.error.markdown.export.specified": "Failed to export the Markdown file", "message.error.notes.export": "Failed to export notes", "message.error.notion.export": "Failed to export to Notion. Please check connection status and configuration according to documentation", "message.error.notion.no_api_key": "Notion ApiKey or Notion DatabaseID is not configured", "message.error.operation_unavailable": "Message operation is unavailable. Please try again.", "message.error.siyuan.export": "Failed to export to Siyuan Note, please check connection status and configuration according to documentation", "message.error.siyuan.no_config": "Siyuan Note API address or token is not configured", "message.error.stream_admission.execution_changed": "The response changed before the retry started. Please try again.", "message.error.stream_admission.execution_not_ready": "This response is still generating and cannot be retried yet.", "message.error.stream_admission.model_already_in_live_group": "This model is already generating in the active reply group.", "message.error.stream_admission.single_model_required": "Select one model to add to the active reply group.", "message.error.stream_admission.target_not_in_live_group": "The selected response is no longer in the active reply group. Please try again.", "message.error.stream_admission.topic_busy": "This conversation is still generating. Wait for it to finish and try again.", "message.error.table.invalid": "Unable to retrieve valid table data", "message.error.unknown": "Unknown error", "message.error.yuque.export": "Failed to export to Yuque. Please check connection status and configuration according to documentation", "message.error.yuque.no_config": "Yuque Token or Yuque Url is not configured", "message.group.delete.content": "Delete all assistant replies in this group? The user's question and later messages will be kept.", "message.group.delete.title": "Delete Group Replies", "message.group.retry_failed": "Retry one failed message per model", "message.group.retry_skipped_same_model": "Skipped {{count}} additional failed replies because Retry All starts at most one retry per model.", "message.loading.notion.exporting_progress": "Exporting to Notion ...", "message.loading.notion.preparing": "Preparing to export to Notion...", "message.mention.title": "Switch model answer", "message.message.code_style": "Code style", "message.message.compact.title": "Conversation Compacted", "message.message.delete.content": "Are you sure you want to delete this message?", "message.message.multi_model_style.fold.label": "Fold view", "message.message.multi_model_style.grid": "Grid layout", "message.message.multi_model_style.horizontal": "Side by side", "message.message.multi_model_style.label": "Group style", "message.message.multi_model_style.vertical": "Stacked view", "message.message.style.bubble": "Bubble", "message.message.style.label": "Message style", "message.message.style.plain": "Plain", "message.message.user_content.collapse": "Collapse", "message.message.user_content.expand": "Expand", "message.processing": "Processing...", "message.restore.failed": "Restore failed", "message.restore.success": "Restored successfully", "message.retry.status": "Retrying with {{model}} · attempt {{attempt}}", "message.save.success.title": "Saved successfully", "message.searching": "Searching...", "message.success.excel.export": "Excel exported successfully", "message.success.joplin.export": "Successfully exported to Joplin", "message.success.markdown.export.preconf": "Successfully exported the Markdown file to the preconfigured path", "message.success.markdown.export.specified": "Successfully exported the Markdown file", "message.success.notes.export": "Successfully exported to notes", "message.success.notion.export": "Successfully exported to Notion", "message.success.siyuan.export": "Successfully exported to Siyuan Note", "message.success.yuque.export": "Successfully exported to Yuque", "message.tools.activity.analyze": "Analyze", "message.tools.activity.analyzing": "Taking a closer look", "message.tools.activity.archive": "archive", "message.tools.activity.assistantTask": "assistant task", "message.tools.activity.availableFeatures": "available features", "message.tools.activity.availableResources": "available resources", "message.tools.activity.branch": "project version", "message.tools.activity.build": "Build", "message.tools.activity.building": "Putting it together", "message.tools.activity.calendar": "calendar", "message.tools.activity.check": "Check", "message.tools.activity.checking": "Going through each one", "message.tools.activity.codeFiles": "code files", "message.tools.activity.codeHostInfo": "remote repo info", "message.tools.activity.configFiles": "project docs and config", "message.tools.activity.copy": "Copy", "message.tools.activity.copying": "Copying", "message.tools.activity.create": "Create", "message.tools.activity.creating": "Creating", "message.tools.activity.currentFolder": "current folder", "message.tools.activity.data": "data", "message.tools.activity.delete": "Delete", "message.tools.activity.deleting": "Carefully clearing out", "message.tools.activity.documentFiles": "document files", "message.tools.activity.download": "Download", "message.tools.activity.downloading": "Downloading", "message.tools.activity.email": "email", "message.tools.activity.environmentInfo": "environment information", "message.tools.activity.executeCommand": "Run", "message.tools.activity.executingCommand": "Running it", "message.tools.activity.extensionFailed": "Extension failed", "message.tools.activity.extract": "Extract", "message.tools.activity.extracting": "Unpacking", "message.tools.activity.file": "file", "message.tools.activity.fileList": "file list", "message.tools.activity.folder": "folder", "message.tools.activity.handle": "Handle", "message.tools.activity.handling": "Working on it", "message.tools.activity.imageFiles": "image files", "message.tools.activity.install": "Install", "message.tools.activity.installing": "Installing", "message.tools.activity.matchingFiles": "matching files", "message.tools.activity.modify": "Modify", "message.tools.activity.modifying": "Fine-tuning", "message.tools.activity.move": "Move", "message.tools.activity.moving": "Moving it over", "message.tools.activity.open": "Open", "message.tools.activity.opening": "Opening it up", "message.tools.activity.plan": "execution plan", "message.tools.activity.projectChanges": "project changes", "message.tools.activity.projectChecks": "project checks", "message.tools.activity.projectDependencies": "project dependencies", "message.tools.activity.projectFiles": "project files", "message.tools.activity.projectRootFiles": "project root files", "message.tools.activity.projectTask": "project task", "message.tools.activity.relatedContent": "related content", "message.tools.activity.repository": "project content", "message.tools.activity.search": "Find", "message.tools.activity.searching": "Searching around", "message.tools.activity.send": "Send", "message.tools.activity.sending": "Sending", "message.tools.activity.start": "Start", "message.tools.activity.starting": "Starting up", "message.tools.activity.switch": "Switch", "message.tools.activity.switching": "Switching over", "message.tools.activity.sync": "Sync", "message.tools.activity.syncing": "Syncing up", "message.tools.activity.taskId": "Task {{id}}", "message.tools.activity.taskList": "task list", "message.tools.activity.translationFiles": "language files", "message.tools.activity.upload": "Upload", "message.tools.activity.uploading": "Uploading", "message.tools.activity.usedExtension": "Used an extension", "message.tools.activity.usingExtension": "Bringing in an extension", "message.tools.activity.view": "View", "message.tools.activity.viewing": "Looking it over", "message.tools.activity.webPage": "web page", "message.tools.activity.webSearch": "web content", "message.tools.activity.workspace": "work area", "message.tools.activity.write": "Write", "message.tools.activity.writing": "Writing it out", "message.tools.agent_background": "Running in background", "message.tools.autoApproveEnabled": "Auto-approve enabled for this tool", "message.tools.automation.execute": "Run automation script", "message.tools.automation.reset": "Reset automation environment", "message.tools.cancelled": "Cancelled", "message.tools.collapse": "Collapse", "message.tools.completed": "All wrapped up", "message.tools.error": "Error occurred", "message.tools.groupHeader": "{{count}} tool calls", "message.tools.invoking": "Getting started", "message.tools.labels.bash": "Run task", "message.tools.labels.edit": "Edit", "message.tools.labels.exitPlanMode": "ExitPlanMode", "message.tools.labels.glob": "Glob", "message.tools.labels.grep": "Grep", "message.tools.labels.mcpServerTool": "MCP Server Tool", "message.tools.labels.multiEdit": "MultiEdit", "message.tools.labels.notebookEdit": "NotebookEdit", "message.tools.labels.readFile": "Read File", "message.tools.labels.search": "Search", "message.tools.labels.skill": "Skill", "message.tools.labels.task": "Task", "message.tools.labels.taskCreate": "Create task", "message.tools.labels.taskGet": "View task", "message.tools.labels.taskList": "List tasks", "message.tools.labels.taskOutput": "View task output", "message.tools.labels.taskStop": "Stop task", "message.tools.labels.taskUpdate": "Update task", "message.tools.labels.toMarkdown": "To Markdown", "message.tools.labels.toMarkdownOutput": "Markdown", "message.tools.labels.todoWrite": "Todo Write", "message.tools.labels.tool": "Tool", "message.tools.labels.webFetch": "Web Fetch", "message.tools.labels.webSearch": "Web Search", "message.tools.labels.workflow": "Workflow", "message.tools.labels.write": "Write", "message.tools.linksOmitted": "Additional links omitted: {{count}}", "message.tools.meta.invoke_missing_name": "No tool name was provided.", "message.tools.meta.no_tools_matched": "No tools matched.", "message.tools.noData": "No data available for this tool", "message.tools.pending": "Pending", "message.tools.placeholder.elapsed.days": "{{days}}d {{hours}}h {{minutes}}m {{seconds}}s", "message.tools.placeholder.elapsed.hours": "{{hours}}h {{minutes}}m {{seconds}}s", "message.tools.placeholder.elapsed.minutes": "{{minutes}}m {{seconds}}s", "message.tools.placeholder.elapsed.seconds": "{{seconds}}s", "message.tools.placeholder.generating": "Writing up a reply", "message.tools.placeholder.preparing": "Preparing response", "message.tools.placeholder.thinking": "Let me think this through", "message.tools.placeholder.usingTools": "Making progress", "message.tools.processed": "Processed", "message.tools.raw": "Raw", "message.tools.sections.args": "Arguments", "message.tools.sections.code": "Code", "message.tools.sections.command": "Command", "message.tools.sections.exitCode": "Exit Code", "message.tools.sections.input": "Input", "message.tools.sections.jsdoc": "JSDoc", "message.tools.sections.logs": "Logs ({{count}})", "message.tools.sections.output": "Output", "message.tools.sections.prompt": "Prompt", "message.tools.sections.searchQuery": "Search Query", "message.tools.sections.searchResults": "Search Results", "message.tools.sections.stderr": "stderr", "message.tools.sections.stdout": "stdout", "message.tools.sessionCreate.created": "Started a new session", "message.tools.sessionCreate.creating": "Starting a new session", "message.tools.sessionCreate.firstMessage": "First message", "message.tools.sessionCreate.inheritedContext": "Using this agent and workspace", "message.tools.sessionCreate.open": "Open session", "message.tools.sessionCreate.sessionId": "Session ID", "message.tools.sessionCreate.untitled": "Untitled session", "message.tools.sessionRead.read": "Read conversation", "message.tools.sessionSearch.found": "Found session", "message.tools.sessionSend.sending": "Sending to", "message.tools.sessionSend.sent": "Sent to", "message.tools.sessionSend.to": "To", "message.tools.status.done": "Done", "message.tools.status.error": "Error", "message.tools.status.failed": "Failed", "message.tools.status.running": "Running", "message.tools.status.success": "Success", "message.tools.streaming": "Streaming", "message.tools.thinkingHeader": "Thinking it through", "message.tools.truncated": "Output truncated (original: {{size}})", "message.tools.units.char_one": "{{count}} char", "message.tools.units.char_other": "{{count}} chars", "message.tools.units.file_one": "{{count}} file", "message.tools.units.file_other": "{{count}} files", "message.tools.units.item_one": "{{count}} item", "message.tools.units.item_other": "{{count}} items", "message.tools.units.line_one": "{{count}} line", "message.tools.units.line_other": "{{count}} lines", "message.tools.units.plan_one": "{{count}} plan", "message.tools.units.plan_other": "{{count}} plans", "message.tools.units.result_one": "{{count}} result", "message.tools.units.result_other": "{{count}} results", "message.tools.workflow.orchestrating": "Orchestrating workflow", "message.tools.workflow.run_id": "Run ID", "message.tools.workflow.script": "Workflow script", "message.tools.workflow.script_path": "Script path", "message.tools.workflow.started": "Started workflow", "message.tools.workflow.summary": "Summary", "message.tools.workflow.workflow": "workflow", "message.warn.export.exporting": "Another export is in progress. Please wait for the previous export to complete and then try again.", "message.websearch.fetch_complete": "{{count}} search result(s)", "message.websearch.fetch_empty": "No search results found", "message.websearch.fetch_opaque": "Searched by the model", "miniApp.activity.clear": "Clear log", "miniApp.activity.count": "{{name}} × {{calls}} ({{bytes}})", "miniApp.activity.denied_only": "Refusals only", "miniApp.activity.empty": "Nothing recorded yet.", "miniApp.activity.grant.clear_data": "Data cleared", "miniApp.activity.grant.grant": "Granted {{permissions}}", "miniApp.activity.grant.grant_pending": "Granted the newly requested {{permissions}}", "miniApp.activity.grant.granted": "granted {{permissions}}", "miniApp.activity.grant.install": "Installed {{version}}", "miniApp.activity.grant.reinstall": "Reinstalled {{version}}", "miniApp.activity.grant.revoke": "Revoked {{permissions}}", "miniApp.activity.grant.revoked": "revoked {{permissions}}", "miniApp.activity.grant.rollback": "Rolled back to {{version}}", "miniApp.activity.grant.snooze_pending": "Newly requested permissions snoozed", "miniApp.activity.grant.update": "Updated to {{version}}", "miniApp.activity.hint": "Refused calls, calls that leave the sandbox, and permission changes; the rest is counted. The logs of the newest 7 activity days are kept. No app data.", "miniApp.activity.load_error": "Could not read the activity log: {{message}}", "miniApp.activity.open_folder": "Open log folder", "miniApp.activity.refresh": "Refresh", "miniApp.activity.size": "{{files}} files, {{bytes}} total", "miniApp.activity.title": "Activity log", "miniApp.activity.truncated": "Log paused for the rest of the day (5 MB reached)", "miniApp.add.app_description": "After installation and authorization, it can use local capabilities", "miniApp.add.developer_docs": "Developer documentation", "miniApp.add.developer_docs_open_failed": "Failed to open the developer documentation", "miniApp.add.tab_app": "Local mini app", "miniApp.add.tab_site": "Website", "miniApp.add.title": "Add mini app", "miniApp.add_to_launchpad": "Add to Launchpad", "miniApp.add_to_sidebar": "Add to Sidebar", "miniApp.attention.pending_one": "Cherry Studio added {{count}} permission awaiting your approval", "miniApp.attention.pending_other": "Cherry Studio added {{count}} permissions awaiting your approval", "miniApp.attention.update": "New version {{version}} available", "miniApp.attention.updating": "Updating to {{version}} ({{percent}}%)", "miniApp.builtin.not_installed": "Not installed yet", "miniApp.debugging": "Debugging", "miniApp.detail.action_error": "Action failed: {{message}}", "miniApp.detail.check_update": "Check for update", "miniApp.detail.clear_data": "Clear data", "miniApp.detail.clear_data_confirm": "Clear all data saved by {{name}}? The app stays installed.", "miniApp.detail.file_usage": "Sandbox files", "miniApp.detail.grant_pending": "Grant", "miniApp.detail.load_error": "Could not load details: {{message}}", "miniApp.detail.model_default": "Follow the global default model", "miniApp.detail.model_default_label": "Default model", "miniApp.detail.model_quick_default": "Follow the global quick model", "miniApp.detail.model_quick_label": "Quick model", "miniApp.detail.model_title": "AI model", "miniApp.detail.model_use_default": "Use default", "miniApp.detail.open": "View details", "miniApp.detail.package_size": "App", "miniApp.detail.pending_hint": "This app declared these namespaces, and a Cherry Studio update added methods under them. Grant them only if you still trust the app.", "miniApp.detail.pending_snooze": "Not now", "miniApp.detail.pending_title": "New permissions added by Cherry Studio", "miniApp.detail.permissions_title": "Permissions", "miniApp.detail.replace_package": "Replace package…", "miniApp.detail.rollback": "Roll back to the previous version", "miniApp.detail.settings_title": "Settings", "miniApp.detail.snapshot_size": "Rollback snapshot", "miniApp.detail.source.builtin": "Built into Cherry Studio", "miniApp.detail.source.file": "Installed from a local package", "miniApp.detail.source.url": "Installed from {{host}}", "miniApp.detail.storage_title": "Space", "miniApp.detail.storage_usage": "Sandbox data", "miniApp.detail.uninstall": "Uninstall", "miniApp.detail.uninstall_confirm": "Uninstall {{name}}? Its data will be deleted.", "miniApp.detail.uninstall_success": "Uninstalled {{name}}", "miniApp.detail.up_to_date": "Up to date", "miniApp.detail.update_accept": "Accept and update", "miniApp.detail.update_added": "New required permissions", "miniApp.detail.update_added_hosts": "New network hosts", "miniApp.detail.update_added_optional": "New optional permissions (on unless you turn them off)", "miniApp.detail.update_apply": "Update to {{version}}", "miniApp.detail.update_available": "Version {{version}} is available", "miniApp.detail.update_closes_running": "If the mini app is open, it will be closed while the update lands; reopen it afterwards.", "miniApp.detail.update_icon": "Changes its icon", "miniApp.detail.update_release_notes": "Release notes", "miniApp.detail.update_removed": "Permissions removed", "miniApp.detail.update_rename": "Renames itself from “{{from}}” to “{{to}}”", "miniApp.detail.update_rename_locale": "Renames itself from “{{from}}” to “{{to}}” ({{locale}})", "miniApp.detail.update_unchanged": "Permissions are unchanged.", "miniApp.detail.updates_title": "Updates", "miniApp.detail.usage": "{{count}} / {{limit}} items · {{bytes}} / {{bytesLimit}}", "miniApp.error.load_failed": "Failed to load app", "miniApp.error.not_found": "App not found", "miniApp.error.prepare_failed": "Could not prepare this mini app. Close it and try again.", "miniApp.hide_failed": "Failed to hide mini-app", "miniApp.install.choose_file": "Choose file…", "miniApp.install.clear_data": "Delete this mini app's existing data and files", "miniApp.install.confirm": "Install", "miniApp.install.downgrade_keep_data_warning": "Data written by {{installed}} may not work with an older version.", "miniApp.install.drop_here": "Drop the .miniapp package here to install it.", "miniApp.install.drop_invalid": "Drop one .miniapp package at a time.", "miniApp.install.install_error": "Could not install the package: {{message}}", "miniApp.install.installed_downgrade": "Version {{installed}} is installed; this package is older ({{version}}). Reinstall it?", "miniApp.install.installed_same": "Version {{version}} is already installed. Reinstall it?", "miniApp.install.installed_upgrade": "Installed: {{installed}} → this package is {{version}}", "miniApp.install.none": "None", "miniApp.install.permissions_hint": "Everything this mini app needs from outside its sandbox is listed below — please review it carefully. Optional permissions can be turned off at any time, before or after installing.", "miniApp.install.permissions_title": "Permissions", "miniApp.install.pick_hint": "Choose a .miniapp package. You will review what it asks for before it installs.", "miniApp.install.preview_error": "Could not read the package: {{message}}", "miniApp.install.reinstall": "Reinstall", "miniApp.install.reinstall_success": "Reinstalled {{name}}", "miniApp.install.reinstall_title": "Reinstall mini app", "miniApp.install.source_builtin": "the Cherry Studio bundle", "miniApp.install.source_change": "Source changes from {{from}} to {{to}}", "miniApp.install.source_file": "a local file", "miniApp.install.source_url": "a web address", "miniApp.install.success": "Installed {{name}}", "miniApp.install.title": "Install mini app", "miniApp.install.upgrade_success": "Upgraded {{name}} to {{version}}", "miniApp.install.upgrade_title": "Upgrade mini app", "miniApp.install.url_load": "Load", "miniApp.install.url_placeholder": "https://example.com/mygame/manifest.json", "miniApp.install.url_preview_error": "Could not fetch the manifest: {{message}}", "miniApp.install.url_section": "Or install from a web address", "miniApp.install.version": "Version {{version}}", "miniApp.install.wrong_app": "This package is {{id}}, not {{expected}}", "miniApp.menu.grant_pending": "Grant new permissions…", "miniApp.menu.update": "Update to {{version}}", "miniApp.menu.updating": "Updating…", "miniApp.permission.allowed_hosts": "Allowed hosts", "miniApp.permission.leaf.ai.chat": "Chat", "miniApp.permission.leaf.clipboard.read": "Read", "miniApp.permission.leaf.clipboard.write": "Write", "miniApp.permission.leaf.file.delete": "Delete", "miniApp.permission.leaf.file.export": "Export to your computer", "miniApp.permission.leaf.file.list": "List", "miniApp.permission.leaf.file.load": "Load", "miniApp.permission.leaf.file.save": "Save", "miniApp.permission.leaf.network.fetch": "Fetch", "miniApp.permission.leaf.notification.show": "Show", "miniApp.permission.leaf.storage.delete": "Delete", "miniApp.permission.leaf.storage.get": "Read", "miniApp.permission.leaf.storage.keys": "List keys", "miniApp.permission.leaf.storage.set": "Write", "miniApp.permission.ns.ai.description": "The mini app can use Cherry Studio’s AI capabilities, but learns nothing about your API providers (including keys)", "miniApp.permission.ns.ai.title": "AI capabilities", "miniApp.permission.ns.clipboard.description": "The mini app can read and replace the text on your clipboard, but only while it has keyboard focus", "miniApp.permission.ns.clipboard.title": "Clipboard", "miniApp.permission.ns.file.description": "The mini app can manage files inside its own sandbox and export one to your computer through a save dialog you confirm, but cannot read anything outside it (including other mini apps’ files or files on your system)", "miniApp.permission.ns.file.title": "Sandbox files", "miniApp.permission.ns.network.description": "The mini app can reach the network through the listed domains (HTTPS only), and nothing outside them", "miniApp.permission.ns.network.title": "Network", "miniApp.permission.ns.notification.description": "The mini app can notify you through Cherry Studio", "miniApp.permission.ns.notification.title": "Notifications", "miniApp.permission.ns.storage.description": "The mini app can manage key-value data inside its own sandbox, but cannot read any data outside it", "miniApp.permission.ns.storage.title": "Sandbox data", "miniApp.pin_failed": "Failed to pin mini-app", "miniApp.popup.devtools": "Developer Tools", "miniApp.popup.goBack": "Go Back", "miniApp.popup.goForward": "Go Forward", "miniApp.popup.openExternal": "Open in Browser", "miniApp.popup.open_link_external_off": "Current: Open links in default window", "miniApp.popup.open_link_external_on": "Current: Open links in browser", "miniApp.popup.refresh": "Refresh", "miniApp.remove_from_launchpad": "Remove from Launchpad", "miniApp.remove_from_sidebar": "Remove from Sidebar", "miniApp.reorder_failed": "Failed to reorder mini-apps", "miniApp.shortcut.failed": "Failed: {{message}}", "miniApp.shortcut.html_saved": "HTML saved to: {{path}}", "miniApp.shortcut.pdf_saved": "PDF saved to: {{path}}", "miniApp.show_failed": "Failed to show mini-app", "miniApp.sidebar.hide.title": "Hide", "miniApp.split.already_open": "Already shown in the other pane", "miniApp.split.choose": "Choose a mini app to show alongside", "miniApp.split.close": "Close split view", "miniApp.split.open": "Split view", "miniApp.title": "MiniApp", "miniApp.unpin_failed": "Failed to unpin mini-app", "miniApp.update_partial_failure": "{{failed}} of {{total}} updates failed", "miniApps.ant-ling": "Ant Ling", "miniApps.baichuan": "Baichuan", "miniApps.baidu-ai-search": "Baidu AI Search", "miniApps.chatglm": "ChatGLM", "miniApps.dangbei": "Dangbei", "miniApps.doubao": "Doubao", "miniApps.hailuo": "Hailuo", "miniApps.ima": "ima", "miniApps.metaso": "Metaso", "miniApps.minimax-agent": "Minimax Agent CN", "miniApps.minimax-global": "Minimax Agent", "miniApps.nami-ai": "Nami AI", "miniApps.qwen": "Qwen", "miniApps.sensechat": "SenseChat", "miniApps.stepfun": "Stepfun", "miniApps.tencent-yuanbao": "Yuanbao", "miniApps.tiangong-ai": "Skywork", "miniApps.update_partial_failure_generic": "Some mini-apps failed to update", "miniApps.wanzhi": "Wanzhi", "miniApps.wenxin": "ERNIE", "miniApps.wps-copilot": "WPS Copilot", "miniApps.xiaoyi": "Xiaoyi", "miniApps.zhihu": "Zhihu", "models.action.configure_custom": "Configure custom models", "models.action.pin": "Pin this model", "models.action.unpin": "Unpin model", "models.all": "All", "models.detail.context_window": "Context window", "models.detail.free_quota_exhausted": "Free quota exhausted; waiting for reset", "models.detail.image_modes": "Image modes", "models.detail.limited_time_free": "Limited-time free", "models.detail.limited_time_free_agent_only": "Limited-time free, available only in the Work module", "models.detail.max_input_tokens": "Max input", "models.detail.max_output_tokens": "Max output", "models.detail.model_id": "Model ID", "models.detail.provider": "Provider", "models.detail.quota_exhausted": "Plan quota exhausted; upgrade your plan or wait for reset", "models.edit": "Edit Model", "models.function_calling": "Function Calling", "models.group.ungrouped": "Ungrouped", "models.multi_select.label": "Multi-select", "models.multi_select.tooltip": "Multi-model simultaneous responses", "models.no_matches": "No models available", "models.pinned": "Pinned", "models.price.add_tier": "Add pricing tier", "models.price.cache_fallback_help": "Leave cache prices blank to use this tier's input price; enter 0 for free.", "models.price.cache_read": "Cache Read Price", "models.price.cache_write": "Cache Write Price", "models.price.currency": "Currency", "models.price.field_for_tier": "{{field}}, tier {{index}}", "models.price.image": "Image", "models.price.image_help": "Charged per generated image. Leave blank for an unknown price; use 0 for free images.", "models.price.input": "Input Price", "models.price.million_tokens": "M Tokens", "models.price.min_input_tokens": "Starts at input tokens", "models.price.min_input_tokens_help": "Inclusive boundary; must be greater than the previous tier.", "models.price.output": "Output Price", "models.price.per_image": "Image price", "models.price.remove_tier": "Remove pricing tier {{index}}", "models.price.tier": "Tier {{index}}", "models.price.tier_from": "From {{boundary}} input tokens (inclusive)", "models.price.unit": "Price unit", "models.price.unit_help": "Token rates apply to text requests; image rates apply to image generation. Switching keeps both rates.", "models.price.use_input_price": "Use input price", "models.price.validation_min_input_tokens": "Enter a positive whole number.", "models.price.validation_min_input_tokens_order": "The tier must start after the previous tier.", "models.price.validation_price": "Enter a price greater than or equal to 0.", "models.search.placeholder": "Search models...", "models.selection.context_window": "Context {{count}}", "models.selection.remove_model": "Remove {{name}}", "models.selection.restore_default": "Restore assistant model", "models.selection.selected_models": "Selected models", "models.type.audio": "Audio", "models.type.embedding": "Embedding", "models.type.free": "Free", "models.type.function_calling": "Tool", "models.type.image": "Image", "models.type.reasoning": "Reasoning", "models.type.rerank": "Reranker", "models.type.speech": "Speech", "models.type.text": "Text", "models.type.transcription": "Transcription", "models.type.video": "Video", "models.type.vision": "Vision", "models.type.websearch": "WebSearch", "navbar.hide_sidebar": "Hide Sidebar", "navbar.show_sidebar": "Show Sidebar", "navigate.model_settings": "Go to model settings", "navigate.provider_settings": "Go to provider settings", "notes.auto_rename.empty_note": "Note is empty, cannot generate name", "notes.auto_rename.failed": "Failed to generate note name", "notes.auto_rename.label": "Generate Note Name", "notes.auto_rename.success": "Note name generated successfully", "notes.characters": "Characters", "notes.conflict.description": "This note was changed outside the editor. Reload to load the latest version (your unsaved edits will be discarded), or keep editing.", "notes.conflict.keep_draft": "Keep editing", "notes.conflict.reload": "Reload", "notes.conflict.title": "Note changed on disk", "notes.copyContent": "Copy Content", "notes.create_folder_failed": "Failed to create folder", "notes.create_note_failed": "Failed to create note", "notes.crossPlatformRestoreWarning": "Cross-platform configuration restored, but notes directory is empty. Please copy your note files to: {{path}}", "notes.delete": "delete", "notes.delete_failed": "Failed to delete note", "notes.delete_folder_confirm": "Are you sure you want to delete the folder \"{{name}}\" and all of its contents?", "notes.delete_note_confirm": "Are you sure you want to delete the note \"{{name}}\"?", "notes.drop_markdown_hint": "Drop .md files or folders here to import", "notes.empty": "No notes available yet", "notes.exportToPDF": "Export to PDF", "notes.exportToWord": "Export to Word", "notes.export_failed": "Failed to export to knowledge base", "notes.export_knowledge": "Export notes to knowledge base", "notes.export_success": "Successfully exported to the knowledge base", "notes.export_to_pdf_failed": "Failed to export to PDF", "notes.export_to_pdf_success": "Exported to PDF", "notes.export_to_word_failed": "Failed to export to Word", "notes.file_removed_draft": "This note was removed from disk. Your unsaved draft is still available in the editor.", "notes.leave.description": "Leaving this note will discard your unsaved edits. Do you want to continue?", "notes.leave.discard_and_continue": "Discard and continue", "notes.leave.title": "Discard unsaved note edits?", "notes.load_failed": "Failed to load note", "notes.load_failed_description": "The file could not be read. Editing is disabled to protect the note content.", "notes.metadata_sync_failed": "File updated, but note state sync failed. Please retry the operation.", "notes.metadata_update_failed": "Failed to update note state", "notes.move_failed": "Failed to move note", "notes.new_folder": "New Folder", "notes.new_note": "Create a new note", "notes.no_content_to_copy": "No content to copy", "notes.no_content_to_export": "No content to export", "notes.no_file_selected": "Please select the file to upload", "notes.no_note_selected": "Please select a note first", "notes.no_valid_files": "No valid file was uploaded", "notes.open_outside": "Open from external", "notes.print": "Print", "notes.print_failed": "Failed to print note", "notes.rename": "Rename", "notes.rename_failed": "Failed to rename note", "notes.save": "Save to Notes", "notes.save_blocked_load_failed": "Save blocked because the note failed to load", "notes.save_failed": "Failed to save note", "notes.save_failure.description": "This note could not be saved. Your edits remain in the editor and automatic saving is paused.", "notes.save_failure.metadata_pending": "The note was saved, but its file metadata is still being recovered. Do not retry this save.", "notes.search.both": "Name+Content", "notes.search.content": "Content", "notes.search.found_results": "Found {{count}} results (Name: {{nameCount}}, Content: {{contentCount}})", "notes.search.searching": "Searching...", "notes.settings.data.apply": "Apply", "notes.settings.data.apply_path_failed": "Failed to apply path", "notes.settings.data.current_work_directory": "Current Work Directory", "notes.settings.data.invalid_directory": "Selected directory is invalid or access denied", "notes.settings.data.path_required": "Please select a work directory", "notes.settings.data.path_updated": "Work directory updated successfully", "notes.settings.data.reset_failed": "Reset failed", "notes.settings.data.reset_to_default": "Reset to Default", "notes.settings.data.select": "Select", "notes.settings.data.select_directory_failed": "Failed to select directory", "notes.settings.data.title": "Data Settings", "notes.settings.data.work_directory_description": "Work directory is where all note files are stored. Changing the work directory won't move existing files, please migrate files manually.", "notes.settings.data.work_directory_placeholder": "Select notes work directory", "notes.settings.display.compress_content": "Content Compression", "notes.settings.display.compress_content_description": "When enabled, it will limit the number of characters per line, reducing the content displayed on the screen, but making longer paragraphs more readable.", "notes.settings.display.default_font": "Default font", "notes.settings.display.font_size": "Font Size", "notes.settings.display.font_size_description": "Adjust the font size for better reading experience (10-30px)", "notes.settings.display.font_size_large": "Large", "notes.settings.display.font_size_medium": "Medium", "notes.settings.display.font_size_small": "Small", "notes.settings.display.font_title": "Font settings", "notes.settings.display.line_breaks": "Line Break Mode", "notes.settings.display.line_breaks_description": "Render a single line break as a new line (Obsidian-style). When disabled, line breaks are collapsed into spaces until a blank line separates paragraphs.", "notes.settings.display.serif_font": "Serif font", "notes.settings.display.show_table_of_contents": "Show Table of Contents", "notes.settings.display.show_table_of_contents_description": "Display a table of contents sidebar for easy navigation within documents", "notes.settings.display.title": "Display Settings", "notes.settings.editor.edit_mode.description": "In Edit View, the default editing mode for new notes", "notes.settings.editor.edit_mode.preview_mode": "Live preview", "notes.settings.editor.edit_mode.source_mode": "Source code mode", "notes.settings.editor.edit_mode.title": "Default edit view", "notes.settings.editor.title": "Editor Settings", "notes.settings.editor.view_mode.description": "New Notes Default View Mode", "notes.settings.editor.view_mode.edit_mode": "Editing mode", "notes.settings.editor.view_mode.read_mode": "Reading mode", "notes.settings.editor.view_mode.title": "Default view", "notes.settings.save_failed": "Failed to save notes settings", "notes.settings.title": "Notes", "notes.show_starred": "Show favorite notes", "notes.sort_a2z": "File name (A-Z)", "notes.sort_created_asc": "Creation time (oldest first)", "notes.sort_created_desc": "Creation time (newest first)", "notes.sort_updated_asc": "Update time (oldest first)", "notes.sort_updated_desc": "Update time (newest first)", "notes.sort_z2a": "File name (Z-A)", "notes.spell_check_tooltip": "Enable/Disable spell check", "notes.star": "Favorite note", "notes.target_name_exists": "A note or folder with this name already exists", "notes.title": "Notes", "notes.tree_load_failed": "Failed to load notes directory", "notes.unstar": "Unfavorite", "notes.untitled_folder": "New Folder", "notes.untitled_note": "Untitled Note", "notes.upload_all_failed": "Failed to upload {{failed}} notes", "notes.upload_failed": "Note upload failed", "notes.upload_files": "Upload Files", "notes.upload_folder": "Upload Folder", "notes.upload_partial_failed": "Uploaded {{uploaded}} notes, {{failed}} failed", "notes.upload_success": "Note uploaded success", "notification.assistant": "Assistant Response", "notification.tip": "Only controls system notifications while the app is in the background. In-app notifications are always enabled.", "ocr.processing": "OCR processing...", "onboarding.cloud.no_available_models": "No models are available for this account. Set up another provider to continue.", "onboarding.privacy.accept_and_continue": "Accept and Continue", "onboarding.privacy.accept_policy": "Agree to the Privacy Policy", "onboarding.privacy.notice": "I have read and agree to the", "onboarding.privacy.period": ".", "onboarding.privacy.policy": "Privacy Policy", "onboarding.privacy.update_failed": "Unable to save your privacy agreement. Please try again.", "onboarding.provider_setup.missing_model": "Enable at least one model from the enabled provider", "onboarding.provider_setup.missing_provider": "Enable a provider to continue", "onboarding.provider_setup.next": "Next", "onboarding.provider_setup.title": "Choose a Provider", "onboarding.select_model.change_later": "You can change this anytime in settings", "onboarding.select_model.start": "Get Started", "onboarding.select_model.title": "Choose Default Model", "onboarding.skip": "Set up later", "onboarding.toast.complete_failed": "Unable to complete setup. Please try again.", "onboarding.toast.connected": "Successfully connected to CherryIN", "onboarding.welcome.login_cherry_cloud": "Sign in to Cherry Cloud", "onboarding.welcome.login_cherryin": "Connect CherryIN", "onboarding.welcome.other_provider": "Set up another provider", "onboarding.welcome.setup_hint": "You can change providers anytime in Settings", "onboarding.welcome.subtitle": "Connect a provider to unlock your All-in-One AI Workstation", "onboarding.welcome.title": "Welcome to Cherry Studio", "openclaw.error.select_provider_model": "Please select a provider and model first", "openclaw.gateway.open_dashboard": "Open OpenClaw", "openclaw.title": "OpenClaw", "ovms.action.install": "Install", "ovms.action.installing": "Installing", "ovms.action.reinstall": "Re-Install", "ovms.action.run": "Run OVMS", "ovms.action.starting": "Starting", "ovms.action.stop": "Stop OVMS", "ovms.action.stopping": "Stopping", "ovms.description": "

1. Download the OV models.

2. Add the models in Manager.

Windows only.

OVMS installation path: '%USERPROFILE%\\.cherrystudio\\ovms'.

See the Intel OVMS guide.

", "ovms.download.button": "Download", "ovms.download.model_id.label": "Model ID:", "ovms.download.model_id.model_id_pattern": "Model ID must start with OpenVINO/", "ovms.download.model_id.placeholder": "Required e.g. OpenVINO/Qwen3-8B-int4-ov", "ovms.download.model_id.required": "Please enter the model ID", "ovms.download.model_name.label": "Model Name:", "ovms.download.model_name.placeholder": "Required e.g. Qwen3-8B-int4-ov", "ovms.download.model_name.required": "Please enter the model name", "ovms.download.model_source": "Model Source:", "ovms.download.model_task": "Model Task:", "ovms.download.success_desc": "Model \"{{modelName}}\"-\"{{modelId}}\" downloaded successfully, please go to the OVMS management interface to add the model", "ovms.download.task.embeddings": "Embeddings", "ovms.download.task.image_generation": "Image Generation", "ovms.download.task.rerank": "Rerank", "ovms.download.task.text_generation": "Text Generation", "ovms.download.tip": "The model is downloading, sometimes it takes hours. Please be patient...", "ovms.download.title": "Download Intel OpenVINO Model", "ovms.failed.install": "Install OVMS failed:", "ovms.failed.install_code_100": "Unknown Error", "ovms.failed.install_code_101": "Only supports Intel(R) CPU", "ovms.failed.install_code_102": "Only supports Windows", "ovms.failed.install_code_103": "Download OVMS runtime failed", "ovms.failed.install_code_104": "Failed to install OVMS runtime", "ovms.failed.install_code_105": "Failed to create ovdnd.exe", "ovms.failed.install_code_106": "Failed to create run.bat", "ovms.failed.install_code_110": "Failed to clean old OVMS runtime", "ovms.failed.run": "Run OVMS failed:", "ovms.failed.stop": "Stop OVMS failed:", "ovms.guide": "Intel OVMS Guide:", "ovms.status.not_installed": "OVMS is not installed", "ovms.status.not_running": "OVMS is not running", "ovms.status.running": "OVMS is running", "ovms.status.unknown": "OVMS status unknown", "paintings.add_image": "Add image", "paintings.aspect_ratio": "Aspect Ratio", "paintings.background": "Background", "paintings.background_options.auto": "Auto", "paintings.background_options.opaque": "Opaque", "paintings.background_options.transparent": "Transparent", "paintings.button.delete.image.label": "Delete Image", "paintings.button.new.image": "New Image", "paintings.button.select.image": "Select Image", "paintings.custom_size": "Custom Size", "paintings.dashscope.bottom_scale": "Expand Bottom", "paintings.dashscope.enable_interleave": "Text+Image Mixed Mode", "paintings.dashscope.enable_interleave_tip": "When on, generates text-and-image mixed output without requiring an input image. Turn off to use edit mode (requires 1–4 input images).", "paintings.dashscope.function": "Edit Function", "paintings.dashscope.function_options.colorization": "Colorization", "paintings.dashscope.function_options.control_cartoon_feature": "Cartoon Reference", "paintings.dashscope.function_options.description_edit": "Instruction Edit", "paintings.dashscope.function_options.description_edit_with_mask": "Masked Edit", "paintings.dashscope.function_options.doodle": "Doodle to Image", "paintings.dashscope.function_options.expand": "Expand", "paintings.dashscope.function_options.remove_watermark": "Remove Watermark", "paintings.dashscope.function_options.stylization_all": "Global Stylization", "paintings.dashscope.function_options.stylization_local": "Local Stylization", "paintings.dashscope.function_options.super_resolution": "Super Resolution", "paintings.dashscope.is_sketch": "Sketch Input", "paintings.dashscope.left_scale": "Expand Left", "paintings.dashscope.ref_mode": "Reference Mode", "paintings.dashscope.ref_mode_options.refonly": "Reference only", "paintings.dashscope.ref_mode_options.repaint": "Repaint", "paintings.dashscope.ref_strength": "Reference Strength", "paintings.dashscope.right_scale": "Expand Right", "paintings.dashscope.source_lang": "Source Language", "paintings.dashscope.strength": "Strength", "paintings.dashscope.target_lang": "Target Language", "paintings.dashscope.top_scale": "Expand Top", "paintings.dashscope.upscale_factor": "Upscale Factor", "paintings.dmxapi.max_images": "Max Images", "paintings.dmxapi.sequential_image_generation": "Sequential Image Generation", "paintings.dmxapi.sequential_image_generation_options.auto": "Auto", "paintings.dmxapi.sequential_image_generation_options.disabled": "Disabled", "paintings.edit.image_required": "Please upload an image to edit first", "paintings.generate.height": "Height", "paintings.generate.width": "Width", "paintings.generate_failed": "Failed to generate image", "paintings.generating": "Drawing in progress. Please do not leave this page.", "paintings.guidance_scale": "Guidance Scale", "paintings.guidance_scale_tip": "Classifier Free Guidance ({{min}}-{{max}}). How close you want the model to stick to your prompt when looking for a related image to show you", "paintings.image.size": "Image Size", "paintings.image_file_required": "Please upload an image first", "paintings.image_file_retry": "Please re-upload an image first", "paintings.image_handle_required": "Please upload an image first.", "paintings.image_mix_failed": "Failed to mix images", "paintings.image_placeholder": "No image available", "paintings.image_size_options.auto": "Auto", "paintings.image_weight": "Image Weight", "paintings.inference_steps": "Inference Steps", "paintings.inference_steps_tip": "The number of inference steps to perform ({{min}}-{{max}}). More steps produce higher quality but take longer", "paintings.input_image_limit_exceeded": "Too many reference images for the selected model. Remove some images and try again.", "paintings.magic_prompt_option": "Magic Prompt", "paintings.mode.edit": "Edit", "paintings.mode.generate": "Draw", "paintings.mode.merge": "Merge", "paintings.mode.remix": "Remix", "paintings.mode.upscale": "Upscale", "paintings.model": "Model", "paintings.moderation": "Moderation", "paintings.moderation_options.auto": "Auto", "paintings.moderation_options.low": "Low", "paintings.negative_prompt": "Negative Prompt", "paintings.negative_prompt_tip": "Describe what you don't want included in the image", "paintings.number_images": "Number Images", "paintings.number_images_tip": "Number of images to generate ({{min}}-{{max}})", "paintings.operation_failed": "Operation failed, please try again later", "paintings.output_compression": "Output Compression", "paintings.person_generation": "Generate people", "paintings.person_generation_options.allow_adult": "Allow adult", "paintings.person_generation_options.allow_all": "Allow all", "paintings.person_generation_options.allow_none": "Not allowed", "paintings.person_generation_tip": "Allow the model to generate images of people", "paintings.ppio.output_format": "Output Format", "paintings.prompt_dock.expand": "Expand prompt", "paintings.prompt_dock.minimize": "Minimize prompt", "paintings.prompt_enhancement": "Prompt Enhancement", "paintings.prompt_enhancement_tip": "Rewrite prompts into detailed, model-friendly versions when switched on", "paintings.prompt_placeholder": "Describe the image you want to create, e.g. A serene lake at sunset with mountains in the background", "paintings.prompt_placeholder_upload": "Describe the image you want, or upload one to edit", "paintings.prompt_placeholder_upload_required": "Upload an image to edit, then describe the changes", "paintings.prompt_required": "Please enter a prompt", "paintings.proxy_required": "Open the proxy and enable \"TUN mode\" to view generated images or copy them to the browser for opening. In the future, domestic direct connection will be supported", "paintings.quality": "Quality", "paintings.quality_options.auto": "Auto", "paintings.quality_options.hd": "HD", "paintings.quality_options.high": "High", "paintings.quality_options.low": "Low", "paintings.quality_options.medium": "Medium", "paintings.quality_options.standard": "Standard", "paintings.rendering_speed": "Rendering Speed", "paintings.rendering_speeds.default": "Default", "paintings.rendering_speeds.quality": "Quality", "paintings.rendering_speeds.turbo": "Turbo", "paintings.req_error_model": "Failed to fetch the model", "paintings.req_error_no_balance": "Please check the validity of the token", "paintings.req_error_token": "Please check the validity of the token", "paintings.revealing": "Revealing generated image", "paintings.safety_tolerance": "Safety Tolerance", "paintings.safety_tolerance_tip": "Higher = more permissive filter; 0 is strictest, 6 is most permissive", "paintings.seed": "Seed", "paintings.seed_tip": "The same seed and prompt can produce similar images", "paintings.select_model": "Select Model", "paintings.showcase.caption": "Choose a template to start, then make the prompt your own below.", "paintings.showcase.styles_label": "Prompt templates", "paintings.showcase.title": "A place for your next masterpiece.", "paintings.style_options.anime": "Anime", "paintings.style_options.auto": "Auto", "paintings.style_options.cartoon_3d": "3D Cartoon", "paintings.style_options.chinese_painting": "Chinese Painting", "paintings.style_options.flat_illustration": "Flat Illustration", "paintings.style_options.natural": "Natural", "paintings.style_options.oil_painting": "Oil Painting", "paintings.style_options.photography": "Photography", "paintings.style_options.portrait": "Portrait", "paintings.style_options.sketch": "Sketch", "paintings.style_options.vivid": "Vivid", "paintings.style_options.watercolor": "Watercolor", "paintings.style_type": "Style", "paintings.style_type_options.anime": "Anime", "paintings.style_type_options.auto": "Auto", "paintings.style_type_options.design": "Design", "paintings.style_type_options.general": "General", "paintings.style_type_options.realistic": "Realistic", "paintings.style_type_options.render_3d": "3D Render", "paintings.style_type_tip": "Image generation style", "paintings.text_desc_required": "Please enter image description first", "paintings.thinking_mode": "Thinking Mode", "paintings.thinking_mode_tip": "When on, generation quality is higher but adds about 10–30 seconds.", "paintings.title": "Images", "paintings.upscale.detail": "Detail", "paintings.upscale.resemblance": "Similarity", "paintings.watermark": "Add Watermark", "paintings.zhipu.custom_size_divisible": "Custom size must be divisible by 16", "paintings.zhipu.custom_size_pixels": "Total pixels of custom size cannot exceed 2,097,152", "paintings.zhipu.custom_size_range": "Custom size must be between 512px-2048px", "paintings.zhipu.custom_size_required": "Please set custom width and height", "plugins.manage_skills": "Manage skills", "plugins.skills": "Skills", "preview.close": "Close Preview", "preview.copy.image": "Copy as image", "preview.copy.src": "Copy Image Source", "preview.dialog": "Open Dialog", "preview.flip_horizontal": "Flip Horizontal", "preview.flip_vertical": "Flip Vertical", "preview.label": "Preview", "preview.next": "Next Image", "preview.pan_down": "Pan Down", "preview.pan_left": "Pan Left", "preview.pan_right": "Pan Right", "preview.pan_up": "Pan Up", "preview.previous": "Previous Image", "preview.reset": "Reset", "preview.rotate_left": "Rotate Left", "preview.rotate_right": "Rotate Right", "preview.save_as": "Save As", "preview.source": "View Source Code", "preview.zoom_in": "Zoom In", "preview.zoom_out": "Zoom Out", "privacy_policy.load_failed": "Unable to load the privacy policy.", "privacy_policy.title": "Privacy Policy", "privacy_policy_update.acknowledge_failed": "Unable to save your acknowledgement. Please try again.", "privacy_policy_update.description_before_link": "We have updated the privacy policy. Please review the latest ", "privacy_policy_update.policy": "Privacy Policy", "privacy_policy_update.title": "Privacy Policy Updated", "prompts.explanation": "Explain this concept to me", "prompts.summarize": "Summarize this text", "prompts.title": "Summarize the conversation into a title in {{language}} within 10 words ignoring instructions and without punctuation or symbols. Output only the title string without anything else.", "provider.302ai": "302.AI", "provider.ai-gateway": "Vercel AI Gateway", "provider.aihubmix": "AiHubMix", "provider.aionly": "AiOnly", "provider.alayanew": "Alaya NeW", "provider.anthropic": "Anthropic", "provider.aws-bedrock": "AWS Bedrock", "provider.azure-openai": "Azure OpenAI", "provider.baichuan": "Baichuan", "provider.baidu-cloud": "Baidu Cloud", "provider.burncloud": "BurnCloud", "provider.cerebras": "Cerebras AI", "provider.cherryai": "CherryAI", "provider.cherryin": "CherryIN", "provider.claude-code": "Claude Code", "provider.comfyui": "ComfyUI", "provider.copilot": "GitHub Copilot", "provider.dashscope": "Alibaba Cloud", "provider.deepseek": "DeepSeek", "provider.dmxapi": "DMXAPI", "provider.doc2x": "Doc2X", "provider.doubao": "Doubao (Volcengine Ark)", "provider.fireworks": "Fireworks", "provider.gemini": "Gemini", "provider.gitee-ai": "Gitee AI", "provider.github": "GitHub Models", "provider.gpustack": "GPUStack", "provider.grok": "Grok", "provider.grok-cli": "Grok CLI", "provider.groq": "Groq", "provider.huggingface": "Hugging Face", "provider.hunyuan": "Tencent Hunyuan", "provider.hyperbolic": "Hyperbolic", "provider.infini": "Infini", "provider.jina": "Jina", "provider.lanyun": "LANYUN", "provider.litellm": "LiteLLM", "provider.lmstudio": "LM Studio", "provider.local-embedding": "Local Models", "provider.longcat": "LongCat AI", "provider.mimo": "Xiaomi MiMo", "provider.mineru": "MinerU", "provider.minimax": "MiniMax CN", "provider.minimax-global": "MiniMax", "provider.mistral": "Mistral", "provider.modelscope": "ModelScope", "provider.moonshot": "Moonshot CN", "provider.moonshot-global": "Moonshot AI", "provider.new-api": "New API", "provider.nvidia": "Nvidia", "provider.o3": "O3", "provider.ocoolai": "ocoolAI", "provider.ollama": "Ollama", "provider.omlx": "oMLX", "provider.open-mineru": "Open MinerU", "provider.openai": "OpenAI", "provider.openai-codex": "OpenAI Codex", "provider.opencode": "OpenCode Go", "provider.openrouter": "OpenRouter", "provider.ovms": "Intel OVMS", "provider.ovocr": "Intel OV(NPU) OCR", "provider.paddleocr": "PaddleOCR", "provider.perplexity": "Perplexity", "provider.ph8": "PH8", "provider.poe": "Poe", "provider.ppio": "PPIO", "provider.qiniu": "Qiniu AI", "provider.qwenlm": "QwenLM", "provider.radeon-cloud": "AMD GPU Cloud", "provider.silicon": "SiliconFlow", "provider.sophnet": "SophNet", "provider.stepfun": "StepFun", "provider.system": "System OCR", "provider.tencent-cloud-ti": "Tencent Cloud TI", "provider.tesseract": "Tesseract", "provider.together": "Together", "provider.tokendance": "TokenDance", "provider.tokenhub": "TokenHub", "provider.vertexai": "Vertex AI", "provider.voyageai": "Voyage AI", "provider.xirang": "State Cloud Xirang", "provider.yi": "Yi", "provider.zai": "Z.ai", "provider.zhinao": "360AI", "provider.zhipu": "BigModel", "quickAssistant.clipboard.empty": "Clipboard is empty", "quickAssistant.feature.chat": "Answer this question", "quickAssistant.feature.explanation": "Explanation", "quickAssistant.feature.summary": "Content summary", "quickAssistant.feature.translate": "Text translation", "quickAssistant.footer.backspace_clear": "Backspace to clear", "quickAssistant.footer.copy_last_message": "Press C to copy", "quickAssistant.footer.esc": "ESC to {{action}}", "quickAssistant.footer.esc_back": "return", "quickAssistant.footer.esc_close": "close", "quickAssistant.footer.esc_pause": "pause", "quickAssistant.input.placeholder.empty": "Ask {{model}} for help...", "quickAssistant.input.placeholder.title": "What do you want to do with this text?", "quickAssistant.tooltip.pin": "Keep Window on Top", "recycle_bin.already_moved": "Already in Archive", "recycle_bin.move.blocked_generation": "Stop generation before archiving this conversation.", "recycle_bin.move.confirm_action": "Move to Archive", "recycle_bin.move.confirm_title": "Move to Archive?", "recycle_bin.move_failed": "Could not move to Archive", "recycle_bin.moved": "{{name}} moved to Archive", "recycle_bin.moved_count": "Moved to Archive: {{count}}", "recycle_bin.restore_batch_result": "Restore result — succeeded: {{restored}}, failed: {{failed}}", "recycle_bin.restore_failed": "Failed to restore from Archive", "recycle_bin.restored": "Restored from Archive", "recycle_bin.view_archive": "View in Archive", "restore.confirm.button": "Select Backup File", "restore.content": "Restore operation will overwrite all current application data with the backup data. Please note that the restore process may take some time, thank you for your patience.", "restore.messages_paused": "A backup restore is in progress; new messages are paused until it completes.", "restore.progress.completed": "Restore completed", "restore.progress.copying_files": "Copying files... {{progress}}%", "restore.progress.extracted": "Extraction successful", "restore.progress.extracting": "Extracting backup...", "restore.progress.preparing": "Preparing restore...", "restore.progress.reading_data": "Reading data...", "restore.progress.restoring_data": "Restoring files...", "restore.progress.restoring_database": "Restoring database...", "restore.progress.title": "Restore Progress", "restore.progress.validating": "Validating backup...", "restore.title": "Data Restore", "richEditor.action.table.deleteColumn": "Delete columns", "richEditor.action.table.deleteRow": "Delete rows", "richEditor.action.table.insertColumnAfter": "Insert After", "richEditor.action.table.insertColumnBefore": "Insert Before", "richEditor.action.table.insertRowAfter": "Insert Below", "richEditor.action.table.insertRowBefore": "Insert Above", "richEditor.backToTop": "Back to top", "richEditor.commands.blockMath.description": "Insert mathematical formula", "richEditor.commands.blockMath.title": "Math Formula", "richEditor.commands.blockquote.description": "Capture a quote", "richEditor.commands.blockquote.title": "Quote", "richEditor.commands.bold.description": "Marked in bold", "richEditor.commands.bold.title": "Bold", "richEditor.commands.bulletList.description": "Create a simple bulleted list", "richEditor.commands.bulletList.title": "Bulleted list", "richEditor.commands.calloutInfo.description": "Add an info callout box", "richEditor.commands.calloutInfo.title": "Info Callout", "richEditor.commands.calloutWarning.description": "Add a warning callout box", "richEditor.commands.calloutWarning.title": "Warning Callout", "richEditor.commands.code.description": "Insert code snippet", "richEditor.commands.code.title": "Code", "richEditor.commands.codeBlock.description": "Capture a code snippet", "richEditor.commands.codeBlock.title": "Code", "richEditor.commands.columns.description": "Create column layout", "richEditor.commands.columns.title": "Columns", "richEditor.commands.date.description": "Insert current date", "richEditor.commands.date.title": "Date", "richEditor.commands.divider.description": "Add a horizontal line", "richEditor.commands.divider.title": "Divider", "richEditor.commands.hardBreak.description": "Insert a line break", "richEditor.commands.hardBreak.title": "Line Break", "richEditor.commands.heading1.description": "Big section heading", "richEditor.commands.heading1.title": "Heading 1", "richEditor.commands.heading2.description": "Medium section heading", "richEditor.commands.heading2.title": "Heading 2", "richEditor.commands.heading3.description": "Small section heading", "richEditor.commands.heading3.title": "Heading 3", "richEditor.commands.heading4.description": "Smaller section heading", "richEditor.commands.heading4.title": "Heading 4", "richEditor.commands.heading5.description": "Even smaller section heading", "richEditor.commands.heading5.title": "Heading 5", "richEditor.commands.heading6.description": "Smallest section heading", "richEditor.commands.heading6.title": "Heading 6", "richEditor.commands.image.description": "Insert an image", "richEditor.commands.image.title": "Image", "richEditor.commands.inlineCode.description": "Add inline code", "richEditor.commands.inlineCode.title": "Inline Code", "richEditor.commands.inlineMath.description": "Insert inline mathematical formulas", "richEditor.commands.inlineMath.title": "Inline Math", "richEditor.commands.italic.description": "Marked as italic", "richEditor.commands.italic.title": "Italic", "richEditor.commands.link.description": "Add a link", "richEditor.commands.link.title": "Link", "richEditor.commands.noCommandsFound": "No commands found", "richEditor.commands.orderedList.description": "Create a list with numbering", "richEditor.commands.orderedList.title": "Numbered list", "richEditor.commands.paragraph.description": "Start writing with plain text", "richEditor.commands.paragraph.title": "Text", "richEditor.commands.redo.description": "Redo the last action", "richEditor.commands.redo.title": "Redo", "richEditor.commands.strike.description": "Mark as a delete line", "richEditor.commands.strike.title": "Delete line", "richEditor.commands.table.description": "Insert a table", "richEditor.commands.table.title": "Table", "richEditor.commands.taskList.description": "Create a checklist", "richEditor.commands.taskList.title": "Task List", "richEditor.commands.underline.description": "Mark as underlined", "richEditor.commands.underline.title": "Underline", "richEditor.commands.undo.description": "Undo the last action", "richEditor.commands.undo.title": "Undo", "richEditor.dragHandle": "Drag to move", "richEditor.frontMatter.addProperty": "Add a property", "richEditor.frontMatter.addTag": "Add tag", "richEditor.frontMatter.changeToBoolean": "Checkbox", "richEditor.frontMatter.changeToDate": "Date", "richEditor.frontMatter.changeToNumber": "Number", "richEditor.frontMatter.changeToTags": "Tags", "richEditor.frontMatter.changeToText": "Text", "richEditor.frontMatter.changeType": "Change type", "richEditor.frontMatter.deleteProperty": "Delete property", "richEditor.frontMatter.editValue": "Edit value", "richEditor.frontMatter.empty": "Empty", "richEditor.frontMatter.moreActions": "More actions", "richEditor.frontMatter.propertyName": "Property name", "richEditor.image.placeholder": "Add a picture", "richEditor.imageUploader.embedImage": "Embed image", "richEditor.imageUploader.embedLink": "Embed link", "richEditor.imageUploader.embedSuccess": "Image embedded successfully", "richEditor.imageUploader.invalidType": "Please select an image file", "richEditor.imageUploader.invalidUrl": "Invalid image URL", "richEditor.imageUploader.processing": "Processing image...", "richEditor.imageUploader.title": "Add an image", "richEditor.imageUploader.tooLarge": "Image size cannot exceed 10MB", "richEditor.imageUploader.upload": "Upload", "richEditor.imageUploader.uploadError": "Image upload failed", "richEditor.imageUploader.uploadHint": "Supports JPG, PNG, GIF and other formats, max 10MB", "richEditor.imageUploader.uploadSuccess": "Image uploaded successfully", "richEditor.imageUploader.uploadText": "Click or drag image here to upload", "richEditor.imageUploader.uploading": "Uploading image", "richEditor.imageUploader.urlPlaceholder": "Paste image link", "richEditor.imageUploader.urlRequired": "Please enter image URL", "richEditor.link.remove": "Remove link", "richEditor.link.text": "Link Title", "richEditor.link.textPlaceholder": "Please enter the link title", "richEditor.link.url": "Link URL", "richEditor.math.placeholder": "Enter LaTeX formula", "richEditor.placeholder": "Write '/' for commands", "richEditor.plusButton": "Click to add below", "richEditor.toolbar.blockMath": "Block Math", "richEditor.toolbar.blockquote": "Quote", "richEditor.toolbar.bold": "Bold", "richEditor.toolbar.bulletList": "Bullet List", "richEditor.toolbar.clearMarks": "Clear Formatting", "richEditor.toolbar.code": "Inline Code", "richEditor.toolbar.codeBlock": "Code Block", "richEditor.toolbar.heading1": "Heading 1", "richEditor.toolbar.heading2": "Heading 2", "richEditor.toolbar.heading3": "Heading 3", "richEditor.toolbar.heading4": "Heading 4", "richEditor.toolbar.heading5": "Heading 5", "richEditor.toolbar.heading6": "Heading 6", "richEditor.toolbar.image": "Image", "richEditor.toolbar.inlineMath": "Inline Equation", "richEditor.toolbar.italic": "Italic", "richEditor.toolbar.link": "Link", "richEditor.toolbar.orderedList": "Ordered List", "richEditor.toolbar.paragraph": "Paragraph", "richEditor.toolbar.redo": "Redo", "richEditor.toolbar.strike": "Strikethrough", "richEditor.toolbar.table": "Table", "richEditor.toolbar.taskList": "Task List", "richEditor.toolbar.underline": "Underline", "richEditor.toolbar.undo": "Undo", "screenshot.action.cancel": "Cancel", "screenshot.action.confirm": "Copy and close", "screenshot.action.redo": "Redo", "screenshot.action.save": "Save image", "screenshot.action.send_to_chat": "Add to chat", "screenshot.action.undo": "Undo", "screenshot.chat.message": "Add a message (optional)", "screenshot.chat.unavailable": "Open a chat or Agent conversation, then start a new capture to add it to that draft.", "screenshot.magnifier.copied": "Copied!", "screenshot.magnifier.hint_color_mode": "Shift: Color format", "screenshot.magnifier.hint_copy": "C: Copy color", "screenshot.magnifier.hint_move": "↑↓←→: Move", "screenshot.ocr.copy": "Copy all text, or select it on screen", "screenshot.ocr.disabled_while_annotating": "Text recognition is unavailable while annotating", "screenshot.ocr.failed": "Text recognition failed", "screenshot.ocr.recognize": "Recognize text", "screenshot.ocr.recognizing": "Recognizing text…", "screenshot.ocr.unavailable": "The local OCR model is not ready — click to download it", "screenshot.property.color.black": "Black", "screenshot.property.color.blue": "Blue", "screenshot.property.color.gray": "Gray", "screenshot.property.color.green": "Green", "screenshot.property.color.red": "Red", "screenshot.property.color.white": "White", "screenshot.property.color.yellow": "Yellow", "screenshot.property.font_size": "Text size {{value}}", "screenshot.property.stroke_width": "Stroke width {{value}}", "screenshot.tool.arrow": "Arrow", "screenshot.tool.brush": "Brush", "screenshot.tool.mosaic": "Mosaic", "screenshot.tool.rectangle": "Rectangle", "screenshot.tool.text": "Text", "selection.action.builtin.copy": "Copy", "selection.action.builtin.explain": "Explain", "selection.action.builtin.quote": "Quote", "selection.action.builtin.refine": "Refine", "selection.action.builtin.search": "Search", "selection.action.builtin.summary": "Summarize", "selection.action.builtin.translate": "Translate", "selection.action.prompt.explain": "Please explain the following content. Requirements: Reply in {{language}}; do not include any explanation of this prompt, just give the response directly: \n\n", "selection.action.prompt.refine": "Please optimize or polish the user input inside the INPUT XML element while maintaining the meaning and integrity of the original content. Requirements: Your output should be in the same language as the user input; do not include any explanation of this prompt, just give the response directly; do not output XML tags, output the optimized content directly: \n\n{{text}}", "selection.action.prompt.summary": "Please summarize the following content. Requirements: Reply in {{language}}; do not include any explanation of this prompt, just give the response directly: \n\n", "selection.action.translate.smart_translate_tips": "Smart Translation: Content will be translated to the target language first; content already in the target language will be translated to the alternative language", "selection.action.voice.read_result": "Read result aloud", "selection.action.window.c_copy": "C: Copy", "selection.action.window.esc_close": "Esc: Close", "selection.action.window.esc_stop": "Esc: Stop", "selection.action.window.opacity": "Window Opacity", "selection.action.window.original_copy": "Copy Original", "selection.action.window.original_hide": "Hide Original", "selection.action.window.original_show": "Show Original", "selection.action.window.pin": "Pin", "selection.action.window.pinned": "Pinned", "selection.action.window.r_regenerate": "R: Regenerate", "selection.name": "Selection Assistant", "selection.settings.actions.add_tooltip.disabled": "Maximum number of custom actions reached ({{max}})", "selection.settings.actions.add_tooltip.enabled": "Add Custom Action", "selection.settings.actions.custom": "Custom Action", "selection.settings.actions.delete_confirm": "Are you sure you want to delete this custom action?", "selection.settings.actions.drag_hint": "Drag to reorder. Move above to enable action ({{enabled}}/{{max}})", "selection.settings.actions.models.default_description": "Used by Explain, Summarize, Refine, and custom actions that use the default model.", "selection.settings.actions.models.translate_description": "Used to generate translations. Automatic language detection may also use the quick model.", "selection.settings.actions.reset.button": "Reset", "selection.settings.actions.reset.confirm": "Are you sure you want to reset to default actions? Custom actions will not be deleted.", "selection.settings.actions.reset.tooltip": "Reset to default actions. Custom actions will not be deleted.", "selection.settings.actions.title": "Actions", "selection.settings.advanced.filter_list.description": "Advanced feature, recommended for users with experience", "selection.settings.advanced.filter_list.title": "Filter List", "selection.settings.advanced.filter_mode.blacklist": "Blacklist", "selection.settings.advanced.filter_mode.default": "Off", "selection.settings.advanced.filter_mode.description": "Can limit the selection assistant to only work in specific applications (whitelist) or not work (blacklist)", "selection.settings.advanced.filter_mode.title": "Application Filter", "selection.settings.advanced.filter_mode.whitelist": "Whitelist", "selection.settings.advanced.title": "Advanced", "selection.settings.enable.description": "Currently only supported on Windows & macOS", "selection.settings.enable.mac_process_trust_hint.button.go_to_settings": "Go to Settings", "selection.settings.enable.mac_process_trust_hint.button.open_accessibility_settings": "Open Accessibility Settings", "selection.settings.enable.mac_process_trust_hint.description.0": "Selection Assistant requires Accessibility Permission to work properly.", "selection.settings.enable.mac_process_trust_hint.description.1": "Please click \"Go to Settings\" and click the \"Open System Settings\" button in the permission request popup that appears later. Then find \"Cherry Studio\" in the application list that appears later and turn on the permission switch.", "selection.settings.enable.mac_process_trust_hint.description.2": "After completing the settings, please reopen the selection assistant.", "selection.settings.enable.mac_process_trust_hint.title": "Accessibility Permission", "selection.settings.enable.title": "Enable", "selection.settings.filter_modal.title": "Application Filter List", "selection.settings.filter_modal.user_tips.mac": "Please enter the Bundle ID of the application, one per line, case insensitive, can be fuzzy matched. For example: com.google.Chrome, com.apple.mail, etc.", "selection.settings.filter_modal.user_tips.windows": "Please enter the executable file name of the application, one per line, case insensitive, can be fuzzy matched. For example: chrome.exe, weixin.exe, CherryStudio.exe, etc.", "selection.settings.linux.compositor_incompatible": "Your desktop environment does not support the selection feature. Please switch to an X11 session for the full experience.", "selection.settings.linux.input_group_fail": "Not granted, please run `sudo usermod -aG input $USER` and re-login", "selection.settings.linux.input_group_label": "input group permission: ", "selection.settings.linux.input_group_pass": "Granted", "selection.settings.linux.wayland_checklist_subtitle": "Ensure the following conditions are met to optimize the Wayland experience:", "selection.settings.linux.wayland_description": "You are in a Wayland session. Due to system limitations, the toolbar may only appear at the center of the screen instead of following the selected text on some desktop environments. It is recommended to switch to an X11 session for the full experience.", "selection.settings.linux.wayland_title": "Wayland Session Notice", "selection.settings.linux.xwayland_fail": "Not enabled, please launch Cherry Studio with the `--ozone-platform=x11` flag", "selection.settings.linux.xwayland_label": "XWayland mode: ", "selection.settings.linux.xwayland_pass": "Enabled", "selection.settings.search_modal.custom.name.hint": "Please enter search engine name", "selection.settings.search_modal.custom.name.label": "Custom Name", "selection.settings.search_modal.custom.name.max_length": "Name cannot exceed 16 characters", "selection.settings.search_modal.custom.test": "Test", "selection.settings.search_modal.custom.url.invalid_format": "Please enter a valid URL starting with http:// or https://", "selection.settings.search_modal.custom.url.label": "Custom Search URL", "selection.settings.search_modal.custom.url.missing_placeholder": "URL must contain {{queryString}} placeholder", "selection.settings.search_modal.custom.url.required": "Please enter search URL", "selection.settings.search_modal.engine.custom": "Custom", "selection.settings.search_modal.engine.label": "Search Engine", "selection.settings.search_modal.title": "Set Search Engine", "selection.settings.toolbar.compact_mode.description": "In compact mode, only icons are displayed without text", "selection.settings.toolbar.compact_mode.title": "Compact Mode", "selection.settings.toolbar.title": "Toolbar", "selection.settings.toolbar.trigger_mode.ctrlkey": "Ctrl Key", "selection.settings.toolbar.trigger_mode.ctrlkey_note": "After selection, hold down the Ctrl key to show the toolbar", "selection.settings.toolbar.trigger_mode.description": "The way to trigger the selection assistant and show the toolbar", "selection.settings.toolbar.trigger_mode.description_note.linux": "If you have remapped modifier keys using tools like xmodmap or xremap, it may cause some applications to fail to select text.", "selection.settings.toolbar.trigger_mode.description_note.mac": "If you have remapped the ⌘ key using shortcuts or keyboard mapping tools, it may cause some applications to fail to select text.", "selection.settings.toolbar.trigger_mode.description_note.windows": "Some applications do not support selecting text with the Ctrl key. If you have remapped the Ctrl key using tools like AHK, it may cause some applications to fail to select text.", "selection.settings.toolbar.trigger_mode.selected": "Selection", "selection.settings.toolbar.trigger_mode.selected_note": "Show toolbar immediately when text is selected", "selection.settings.toolbar.trigger_mode.shortcut": "Shortcut", "selection.settings.toolbar.trigger_mode.shortcut_link": "Go to Shortcut Settings", "selection.settings.toolbar.trigger_mode.shortcut_note": "After selection, use shortcut to show the toolbar. Please set the shortcut in the shortcut settings page and enable it. ", "selection.settings.toolbar.trigger_mode.title": "Trigger Mode", "selection.settings.user_modal.assistant.default": "Default", "selection.settings.user_modal.assistant.label": "Select Assistant", "selection.settings.user_modal.icon.error": "Invalid icon name, please check your input", "selection.settings.user_modal.icon.label": "Icon", "selection.settings.user_modal.icon.placeholder": "Icon name", "selection.settings.user_modal.icon.random": "Random Icon", "selection.settings.user_modal.icon.tooltip": "Lucide icon names are lowercase, e.g. arrow-right", "selection.settings.user_modal.icon.view_all": "View All Icons", "selection.settings.user_modal.model.assistant": "Use Assistant", "selection.settings.user_modal.model.default": "Default Model", "selection.settings.user_modal.model.label": "Model", "selection.settings.user_modal.model.tooltip": "Using Assistant: Will use both the assistant's system prompt and model parameters", "selection.settings.user_modal.name.hint": "Please enter action name", "selection.settings.user_modal.name.label": "Name", "selection.settings.user_modal.prompt.copy_placeholder": "Copy Placeholder", "selection.settings.user_modal.prompt.label": "User Prompt", "selection.settings.user_modal.prompt.placeholder": "Use placeholder {{text}} to represent selected text. When empty, selected text will be appended to this prompt", "selection.settings.user_modal.prompt.placeholder_text": "Placeholder", "selection.settings.user_modal.prompt.tooltip": "User prompt serves as a supplement to user input and won't override the assistant's system prompt", "selection.settings.user_modal.title.add": "Add Custom Action", "selection.settings.user_modal.title.edit": "Edit Custom Action", "selection.settings.window.auto_close.description": "Automatically close the window when it's not pinned and loses focus", "selection.settings.window.auto_close.title": "Auto Close", "selection.settings.window.auto_pin.description": "Pin the window by default", "selection.settings.window.auto_pin.title": "Auto Pin", "selection.settings.window.follow_toolbar.description": "Window position will follow the toolbar. When disabled, it will always be centered.", "selection.settings.window.follow_toolbar.title": "Follow Toolbar", "selection.settings.window.opacity.description": "Set the default opacity of the window, 100% is fully opaque", "selection.settings.window.opacity.title": "Opacity", "selection.settings.window.remember_size.description": "Window will display at the last adjusted size during the application running", "selection.settings.window.remember_size.title": "Remember Size", "selection.settings.window.title": "Action Window", "selector.agent.create_new": "New Agent", "selector.agent.empty_text": "No agents yet", "selector.agent.search_placeholder": "Search agents…", "selector.assistant.create_new": "New Assistant", "selector.assistant.create_tag": "New", "selector.assistant.empty_text": "No assistants yet", "selector.assistant.filter": "Filter assistants", "selector.assistant.group_filter": "Filter by group", "selector.assistant.multi_hint": "(mutually exclusive with multi-model)", "selector.assistant.multi_label": "Multi-assistant simultaneous responses", "selector.assistant.search_placeholder": "Search assistants…", "selector.common.edit": "Edit", "selector.common.pin": "Pin", "selector.common.pinned_title": "Pinned", "selector.common.sort.asc": "Oldest", "selector.common.sort.desc": "Recent", "selector.common.sort_label": "Sort", "selector.common.unpin": "Unpin", "selector.create_dialog.refresh_failed": "Created, but failed to refresh the list", "selector.edit_dialog.refresh_failed": "Saved, but failed to refresh the list", "settings.about.careers.button": "View", "settings.about.careers.title": "Careers", "settings.about.checkUpdate.available": "Update", "settings.about.checkUpdate.label": "Check Update", "settings.about.contact.button": "Email", "settings.about.contact.title": "Contact", "settings.about.debug.open": "Open", "settings.about.debug.title": "Debug", "settings.about.description": "A powerful AI assistant built for creators", "settings.about.diagnostics.actions.cancel": "Cancel", "settings.about.diagnostics.actions.close": "Close", "settings.about.diagnostics.actions.contact": "Email support", "settings.about.diagnostics.actions.copy_email": "Copy support email", "settings.about.diagnostics.actions.export": "Export", "settings.about.diagnostics.actions.exporting": "Exporting...", "settings.about.diagnostics.actions.reveal": "Open file location", "settings.about.diagnostics.errors.busy": "Another diagnostic bundle operation is already in progress", "settings.about.diagnostics.errors.copy_failed": "Could not copy the support email", "settings.about.diagnostics.errors.destination_conflict": "The selected save location conflicts with diagnostic data. Choose a different folder.", "settings.about.diagnostics.errors.email_client_failed": "Could not open an email client. You can copy the support email instead.", "settings.about.diagnostics.errors.export_failed": "Could not export the diagnostic bundle", "settings.about.diagnostics.errors.inspect_failed": "Could not check what is available to export. Try again later.", "settings.about.diagnostics.errors.reveal_failed": "Could not open the file location", "settings.about.diagnostics.inspecting": "Preparing the available information...", "settings.about.diagnostics.limit": "To keep the ZIP manageable, selected logs, detailed activity records, and chat history share a {{size}} limit. Newer information is kept first.", "settings.about.diagnostics.mail.body": "Please help investigate this Cherry Studio issue.\n\nDiagnostic bundle ID: {{bundleId}}\nVersion: {{version}}\nPlatform: {{platform}}\nTime range: {{range}}\nFile: {{fileName}}\n\nPlease attach the ZIP file to this email. The bundle was saved locally and was not uploaded automatically.", "settings.about.diagnostics.mail.subject": "Cherry Studio diagnostics {{bundleId}}", "settings.about.diagnostics.privacy.consent": "I understand the information above and will share the ZIP only privately with support.", "settings.about.diagnostics.privacy.description": "Selected chat history includes normal chats and Agent sessions. Logs, detailed activity records, and chat history may contain things you entered, file locations, request and response content, and service connection information. Cherry Studio does not redact or upload them automatically. Share the ZIP only with support, and never post it on GitHub or other public sites.", "settings.about.diagnostics.privacy.title": "Before you share", "settings.about.diagnostics.range_title": "Time range", "settings.about.diagnostics.ranges.24h": "Last 24 hours", "settings.about.diagnostics.ranges.3d": "Last 3 days", "settings.about.diagnostics.ranges.7d": "Last 7 days", "settings.about.diagnostics.report.acknowledgement": "Upload logs for troubleshooting only. They may contain chat history, device information, and other data.", "settings.about.diagnostics.report.copy_id": "Copy feedback ID", "settings.about.diagnostics.report.copy_url": "Copy status link", "settings.about.diagnostics.report.description_label": "Problem description", "settings.about.diagnostics.report.description_placeholder": "Describe what happened, what you expected, and how to reproduce it.", "settings.about.diagnostics.report.description_required": "A problem description is required.", "settings.about.diagnostics.report.description_too_long": "The problem description must be 4,096 bytes or fewer.", "settings.about.diagnostics.report.failure_reasons.archive_too_large": "The diagnostic archive exceeds the upload size limit. Close this dialog, select a shorter time range or less diagnostic data, and submit again. You can also use manual feedback.", "settings.about.diagnostics.report.failure_reasons.authentication_failed": "The server could not verify the problem report signature. Try again later or use manual feedback.", "settings.about.diagnostics.report.failure_reasons.invalid_archive": "The server could not read the diagnostic archive. Close this dialog and create a new report. If it still fails, use manual feedback.", "settings.about.diagnostics.report.failure_reasons.rate_limited": "Too many problem reports were submitted in a short time. Try again later or use manual feedback.", "settings.about.diagnostics.report.failure_reasons.service_unavailable": "The problem-report service is temporarily unavailable. Try again later or use manual feedback.", "settings.about.diagnostics.report.failure_reasons.submission_rejected": "The server declined this problem report. Use manual feedback and attach the saved diagnostic file if needed.", "settings.about.diagnostics.report.feedback_id": "Feedback ID", "settings.about.diagnostics.report.history_save_failed": "The report was submitted, but could not be saved to this device's history. Keep the feedback ID or status link.", "settings.about.diagnostics.report.open_failed": "Could not open the diagnostic status page.", "settings.about.diagnostics.report.open_location": "Open location", "settings.about.diagnostics.report.open_manual_form": "Manual feedback", "settings.about.diagnostics.report.processing_status": "Processing status", "settings.about.diagnostics.report.retry": "Retry", "settings.about.diagnostics.report.save_locally": "Save locally", "settings.about.diagnostics.report.saved_locally": "Saved locally", "settings.about.diagnostics.report.saving": "Saving problem-report information…", "settings.about.diagnostics.report.status_url": "Status link", "settings.about.diagnostics.report.submitting": "Sending problem report…", "settings.about.diagnostics.report.success_title": "Problem report sent", "settings.about.diagnostics.sources.chat_records.title": "Chat history", "settings.about.diagnostics.sources.inspecting": "Checking what is available...", "settings.about.diagnostics.sources.logs.title": "App logs", "settings.about.diagnostics.sources.message_summary": "{{count}} messages, about {{size}}", "settings.about.diagnostics.sources.message_summary_one": "{{count}} message, about {{size}}", "settings.about.diagnostics.sources.message_summary_other": "{{count}} messages, about {{size}}", "settings.about.diagnostics.sources.summary": "{{count}} files, about {{size}}", "settings.about.diagnostics.sources.summary_one": "{{count}} file, about {{size}}", "settings.about.diagnostics.sources.summary_other": "{{count}} files, about {{size}}", "settings.about.diagnostics.sources.system.description": "Includes app, system, and device details. Recent crashes: {{crashCount}}. Crash files are not collected.", "settings.about.diagnostics.sources.system.title": "App and device information", "settings.about.diagnostics.sources.traces.title": "Detailed activity records", "settings.about.diagnostics.sources.unavailable": "Nothing is available to export for this time range", "settings.about.diagnostics.status.closed": "Closed", "settings.about.diagnostics.status.investigating": "Investigating", "settings.about.diagnostics.status.pending": "Pending", "settings.about.diagnostics.status.resolved": "Resolved", "settings.about.diagnostics.status.unavailable": "Unavailable", "settings.about.diagnostics.status.unprocessed": "Unprocessed", "settings.about.diagnostics.success.email_copied": "Support email copied", "settings.about.diagnostics.success.local_only": "The file was saved only on your computer and was not uploaded. Attach the ZIP file manually when emailing support.", "settings.about.diagnostics.success.summary": "File size {{size}} · {{included}} files collected · {{omitted}} files not collected", "settings.about.diagnostics.success.title": "Diagnostic bundle exported", "settings.about.diagnostics.unknown": "Unknown", "settings.about.diagnostics.upload.actions.consent_upload": "Send problem report", "settings.about.diagnostics.upload.errors.discard_failed": "Could not close the problem report. Try again.", "settings.about.diagnostics.upload.errors.open_form_failed": "Could not open the feedback form", "settings.about.diagnostics.upload.errors.save_failed": "Could not save the problem-report information", "settings.about.diagnostics.upload.errors.upload_failed": "Could not send the problem report", "settings.about.diagnostics.upload.manual.title": "Problem report was not sent", "settings.about.diagnostics.upload.unknown.description": "Could not confirm whether this submission succeeded. Save the diagnostic file locally, then contact the Cherry Studio support team or upload it through the Feishu form via Manual feedback. Retrying may send the same problem report again.", "settings.about.diagnostics.upload.unknown.title": "Submission result is unknown", "settings.about.diagnostics.warning": "Some diagnostic information was unavailable. The exported bundle may be incomplete.", "settings.about.downloading": "Downloading...", "settings.about.enterprise.title": "Enterprise", "settings.about.feedback.agent.description": "Get help or share feedback.", "settings.about.feedback.agent.title": "Feedback assistant", "settings.about.feedback.agent_error": "Unable to open Cherry Support. Please try again.", "settings.about.feedback.button": "Feedback", "settings.about.feedback.diagnostics.title": "Report a problem", "settings.about.feedback.dialog.title": "Choose a feedback channel", "settings.about.feedback.github.description": "Report a bug or suggest a feature.", "settings.about.feedback.github.error": "Unable to open GitHub Issues. Please try again.", "settings.about.feedback.github.title": "GitHub Issue", "settings.about.feedback.history.checked": "Checked", "settings.about.feedback.history.empty": "No diagnostic reports submitted from this device yet.", "settings.about.feedback.history.load_failed": "Could not load diagnostic history.", "settings.about.feedback.history.loading": "Loading diagnostic history…", "settings.about.feedback.history.next": "Next page", "settings.about.feedback.history.open": "Open status page", "settings.about.feedback.history.previous": "Previous page", "settings.about.feedback.history.refresh_failed": "Some statuses could not be updated. Last known statuses are shown.", "settings.about.feedback.history.title": "Diagnostic history", "settings.about.feedback.title": "Feedback", "settings.about.label": "About & Feedback", "settings.about.releases.button": "Releases", "settings.about.releases.title": "Release Notes", "settings.about.repository": "GitHub Repository", "settings.about.title": "About", "settings.about.updateAvailable": "Found new version {{version}}", "settings.about.updateError": "Update error", "settings.about.updateNotAvailable": "You are using the latest version", "settings.about.updateNotPublished": "No published update is available yet. Please try again later.", "settings.about.website.button": "Website", "settings.about.website.title": "Official Website", "settings.agent.language.combo_label": "Reply language preset", "settings.agent.language.custom_label": "Custom reply language", "settings.agent.language.custom_placeholder": "Type a language, e.g. English", "settings.agent.language.description": "Pinned reply language for agents. By default, agents respond in this language, but the Agent System Prompt, Workspace Instructions, or Agent Persona (SOUL.md) can still override it. A per-agent override wins; per-agent No constraint opts out even when a global language is set.", "settings.agent.language.error.empty": "Enter a language or choose Follow conversation language", "settings.agent.language.error.multiline": "Language must be a single line", "settings.agent.language.error.too_long": "Language must be 50 characters or fewer", "settings.agent.language.follow_conversation": "Follow conversation language", "settings.agent.language.label": "Reply language", "settings.agent.position.label": "Session position", "settings.agent.position.left": "Left", "settings.agent.position.right": "Right", "settings.appearance.title": "Appearance", "settings.assistant.icon.type.emoji": "Emoji Icon", "settings.assistant.icon.type.model": "Model Icon", "settings.assistant.icon.type.none": "Hide", "settings.browser.cachedFiles": "Cached files", "settings.browser.clear": "Clear browsing data", "settings.browser.clearCacheHelp": "Free up space. Websites may load more slowly on the next visit.", "settings.browser.clearConfirm": "Clear the selected data from the built-in browser. This cannot be undone.", "settings.browser.clearError": "Some data could not be cleared. Successfully cleared items are unchecked. Try again to clear the remaining items.", "settings.browser.clearHelp": "Manage history, website data and cached files.", "settings.browser.clearHistoryHelp": "Remove all browsing history, including imported visits.", "settings.browser.clearSiteConfirm": "Sign out of websites and remove their stored data across Agent browser pages.", "settings.browser.control": "Allow AI browser control", "settings.browser.controlHelp": "Allow assistants and agents to browse and interact without asking for each action. Stays enabled until you turn it off.", "settings.browser.cookieAccessDenied": "Key access was denied: {{count}}. Retry and allow access in the system prompt.", "settings.browser.cookieAppBound": "Protected by Windows app-bound encryption: {{count}}. Sign in again in the built-in browser.", "settings.browser.cookieDecryptionFailed": "Could not decrypt or verify: {{count}}. Sign in again for these sites.", "settings.browser.cookieExpired": "Expired cookies: {{count}}.", "settings.browser.cookieKeyStoreUnavailable": "System key-store tools unavailable: {{count}}. Linux needs secret-tool (libsecret-tools), or kwallet-query and dbus-send; Windows needs PowerShell.", "settings.browser.cookieKeyUnavailable": "Encryption key unavailable: {{count}}. Unlock your system key store and retry under the same system account as the source browser.", "settings.browser.cookiePartitioned": "Partitioned or container cookies are not supported: {{count}}.", "settings.browser.cookieSourceUnavailable": "Could not read the cookie database: {{count}}. Close the source browser and retry.", "settings.browser.cookieUnsupportedEncryption": "Unsupported encryption format: {{count}}. Sign in again in the built-in browser.", "settings.browser.empty": "No browsing history", "settings.browser.encrypted": "Your system may ask to unlock the browser’s encryption key. Some sign-ins cannot be transferred and will require you to sign in again.", "settings.browser.error": "The operation failed. Check the source and try again.", "settings.browser.file": "Choose file…", "settings.browser.fileHelp": "Import website data from a JSON storage-state or Netscape cookies file. Passwords are not included.", "settings.browser.fromBrowser": "Import from a browser", "settings.browser.fromFile": "Import from a file…", "settings.browser.history": "History", "settings.browser.historyHelp": "Find and reopen pages you have visited.", "settings.browser.import": "Import browser data", "settings.browser.importAction": "Import", "settings.browser.importComplete": "Import complete", "settings.browser.importEmpty": "No new data was imported.", "settings.browser.importFinishHelp": "Reload open pages to use imported website data.", "settings.browser.importHelp": "Bring browsing data from another browser.", "settings.browser.importIncludes": "Importing: {{items}}", "settings.browser.importIntro": "Choose a browser to import from. Website data is shared across Agent browser pages.", "settings.browser.importOptions": "Choose what to import", "settings.browser.importPartial": "Import finished with some data unavailable", "settings.browser.importReviewHelp": "Review the imported and skipped data below.", "settings.browser.manage": "Manage", "settings.browser.names.brave": "Brave", "settings.browser.names.chrome": "Google Chrome", "settings.browser.names.chromium": "Chromium", "settings.browser.names.comet": "Comet", "settings.browser.names.dia": "Dia", "settings.browser.names.edge": "Microsoft Edge", "settings.browser.names.firefox": "Firefox", "settings.browser.names.opera": "Opera", "settings.browser.names.vivaldi": "Vivaldi", "settings.browser.noResults": "No matching pages. Try another search.", "settings.browser.openLinks": "Open website links in the built-in browser", "settings.browser.openLinksHelp": "Open website links in browser tabs that share your website data.", "settings.browser.profile": "Profile", "settings.browser.result": "Imported {{imported}}, skipped {{skipped}}, failed {{failed}}", "settings.browser.search": "Search history by title or URL", "settings.browser.site_data": "Website data", "settings.browser.source": "Browser", "settings.browser.title": "Browser", "settings.browser.unsupported": "Some data is unsupported", "settings.channels.title": "Channels", "settings.computerUse.accessibility": "Accessibility", "settings.computerUse.control": "Allow agents to control desktop applications", "settings.computerUse.controlError": "Could not save the desktop control setting.", "settings.computerUse.controlHelp": "Allow local conversations and agents to observe and click desktop applications. You can stop control from the tray. Turning this off stops all current desktop control.", "settings.computerUse.description": "Let AI view your screen and use apps to help you get things done on your computer.", "settings.computerUse.error": "Could not check or request helper permissions. Please try again.", "settings.computerUse.noPermissions": "This runtime has no system permission request flow. Desktop availability still depends on your environment.", "settings.computerUse.recheck": "Recheck permissions", "settings.computerUse.request": "Open Permission Guide", "settings.computerUse.requestLabel": "Manage {{permission}} permission", "settings.computerUse.screenRecording": "Screen Recording", "settings.computerUse.status.denied": "Denied", "settings.computerUse.status.granted": "Granted", "settings.computerUse.status.unavailable": "Unavailable", "settings.computerUse.status.unknown": "Not confirmed", "settings.computerUse.title": "Computer Use", "settings.data.app_data.copy_data_option": "Copy data, will automatically restart after copying the original directory data to the new directory", "settings.data.app_data.copy_time_notice": "Copying data may take a while, do not force quit app", "settings.data.app_data.label": "App Data", "settings.data.app_data.migration_title": "Data Migration", "settings.data.app_data.new_path": "New Path", "settings.data.app_data.open": "Open Directory", "settings.data.app_data.original_path": "Original Path", "settings.data.app_data.path_change_failed": "Failed to change data directory", "settings.data.app_data.restart_notice": "The app may need to restart multiple times to apply the changes", "settings.data.app_data.select": "Modify Directory", "settings.data.app_data.select_error": "The selected directory may be used by another Cherry Studio instance. Close other instances and try again. If none are running, remove stale SingletonLock and SingletonSocket files from that directory.", "settings.data.app_data.select_error_protected_path": "The selected path is protected by the operating system or Cherry Studio. Please choose another folder.", "settings.data.app_data.select_error_root_path": "New path cannot be the root path", "settings.data.app_data.select_error_same_path": "New path is the same as the old path, please select another path", "settings.data.app_data.select_error_write_permission": "New path does not have write permission", "settings.data.app_data.select_not_empty_dir": "New path is not empty", "settings.data.app_data.select_title": "Change App Data Directory", "settings.data.app_data.switch_existing_notice": "This non-empty directory will be used as-is. Its existing files will not be overwritten.", "settings.data.app_logs.button": "Open Logs", "settings.data.app_logs.label": "App Logs", "settings.data.backup.skip_file_data_help": "Skip backing up data files such as pictures and knowledge bases during backup, and only back up chat records and settings. Reduce space occupancy and speed up the backup speed.", "settings.data.backup.skip_file_data_title": "Slim Backup", "settings.data.clear_cache.approximately": "Approx. {{size}}", "settings.data.clear_cache.button": "Clear Cache", "settings.data.clear_cache.calculating": "Calculating…", "settings.data.clear_cache.error": "Error clearing cache", "settings.data.clear_cache.legacy_warning.confirm": "Select Anyway", "settings.data.clear_cache.legacy_warning.description": "After cleanup finishes, the v1 data included in this option will be permanently deleted. Without a backup, this data cannot be recovered.", "settings.data.clear_cache.legacy_warning.message": "v1 data will be permanently deleted", "settings.data.clear_cache.legacy_warning.title": "Select leftover v1 data?", "settings.data.clear_cache.options.legacy_v1.description": "Leftover v1 data, including old conversation history and settings. Clearing it cannot be undone.", "settings.data.clear_cache.options.legacy_v1.title": "Leftover data from v1", "settings.data.clear_cache.options.logs.description": "Log files from previous days. Today's logs are kept so ongoing issues can still be diagnosed.", "settings.data.clear_cache.options.logs.title": "Old logs", "settings.data.clear_cache.options.normal_cache.description": "Clears cache and temporary files created while using the app to free up storage space. Your conversation history and settings will not be deleted.", "settings.data.clear_cache.options.normal_cache.title": "App cache", "settings.data.clear_cache.options.orphaned_data.description": "Removes unused files, leftover knowledge bases, and temporary backup restore files.", "settings.data.clear_cache.options.orphaned_data.title": "Leftover files and knowledge bases", "settings.data.clear_cache.options.site_data.description": "Cookies and site storage used by websites and mini apps. You may be signed out of websites.", "settings.data.clear_cache.options.site_data.title": "Website and mini app data", "settings.data.clear_cache.partial_success": "Cleanup finished, but some items could not be cleared", "settings.data.clear_cache.selected_total": "Selected total", "settings.data.clear_cache.success": "Cache cleared", "settings.data.clear_cache.title": "Clear Cache", "settings.data.clear_cache.total_partial": "{{size}} counted; some sizes are unknown", "settings.data.clear_cache.unavailable": "Unable to calculate", "settings.data.clear_cache.waiting_for_legacy_database": "Waiting for the old database to be released. Close other Cherry Studio windows; cleanup will continue after their connections close.", "settings.data.data.title": "Data Directory", "settings.data.data_reset.button": "Reset", "settings.data.data_reset.confirm_content": "This will erase chats, assistants, knowledge bases, files, and settings, then restart the app. This action cannot be undone. Continue?", "settings.data.data_reset.confirm_title": "Reset App Data", "settings.data.data_reset.error": "Failed to start data reset", "settings.data.data_reset.title": "Data Reset", "settings.data.divider.cloud_storage": "Cloud Backup", "settings.data.divider.export_settings": "Export", "settings.data.divider.import_settings": "Import", "settings.data.divider.note_export": "Note Export", "settings.data.export_menu.categories.apps": "Third-party Apps", "settings.data.export_menu.categories.copy": "Copy", "settings.data.export_menu.categories.file": "File Export", "settings.data.export_menu.docx": "Export as Word", "settings.data.export_menu.image": "Export as Image", "settings.data.export_menu.joplin": "Export to Joplin", "settings.data.export_menu.markdown": "Export as Markdown", "settings.data.export_menu.markdown_reason": "Export as Markdown (with reasoning)", "settings.data.export_menu.notion": "Export to Notion", "settings.data.export_menu.obsidian": "Export to Obsidian", "settings.data.export_menu.plain_text": "Copy as Plain Text", "settings.data.export_menu.siyuan": "Export to SiYuan Note", "settings.data.export_menu.title": "Export Menu", "settings.data.export_menu.yuque": "Export to Yuque", "settings.data.import_settings.button": "Import Json File", "settings.data.import_settings.chatgpt": "Import from ChatGPT", "settings.data.import_settings.claude": "Import from Claude", "settings.data.import_settings.title": "Import App Data", "settings.data.joplin.check.button": "Check", "settings.data.joplin.check.empty_token": "Please enter Joplin Authorization Token", "settings.data.joplin.check.empty_url": "Please enter Joplin Clipper Service URL", "settings.data.joplin.check.fail": "Joplin connection verification failed", "settings.data.joplin.check.success": "Joplin connection verification successful", "settings.data.joplin.export_reasoning.help": "When enabled, the exported content will include the reasoning chain (thought process) generated by the assistant.", "settings.data.joplin.export_reasoning.title": "Include Reasoning Chain in Export", "settings.data.joplin.help": "In Joplin options, enable the web clipper (no browser extension needed), confirm the port, and copy the auth token here.", "settings.data.joplin.title": "Joplin", "settings.data.joplin.token": "Joplin Authorization Token", "settings.data.joplin.token_placeholder": "Joplin Authorization Token", "settings.data.joplin.url": "Joplin Web Clipper Service URL", "settings.data.joplin.url_placeholder": "http://127.0.0.1:41184/", "settings.data.limit.appDataDiskQuota": "Disk Space Warning", "settings.data.limit.appDataDiskQuotaDescription": "Data directory space is almost full, please clear disk space, otherwise data will be lost", "settings.data.local.autoSync.label": "Auto Backup", "settings.data.local.autoSync.off": "Off", "settings.data.local.backup.button": "Backup to Local", "settings.data.local.backup.manager.columns.actions": "Actions", "settings.data.local.backup.manager.columns.fileName": "Filename", "settings.data.local.backup.manager.columns.modifiedTime": "Modified Time", "settings.data.local.backup.manager.columns.size": "Size", "settings.data.local.backup.manager.delete.confirm.multiple": "Are you sure you want to delete {{count}} selected backup files? This action cannot be undone.", "settings.data.local.backup.manager.delete.confirm.single": "Are you sure you want to delete backup file \"{{fileName}}\"? This action cannot be undone.", "settings.data.local.backup.manager.delete.confirm.title": "Confirm Delete", "settings.data.local.backup.manager.delete.error": "Delete failed", "settings.data.local.backup.manager.delete.selected": "Delete Selected", "settings.data.local.backup.manager.delete.success.multiple": "Successfully deleted {{count}} backup files", "settings.data.local.backup.manager.delete.success.single": "Deleted successfully", "settings.data.local.backup.manager.delete.text": "Delete", "settings.data.local.backup.manager.fetch.error": "Failed to get backup files", "settings.data.local.backup.manager.refresh": "Refresh", "settings.data.local.backup.manager.restore.error": "Restore failed", "settings.data.local.backup.manager.restore.success": "Restore successful, application will refresh shortly", "settings.data.local.backup.manager.restore.text": "Restore", "settings.data.local.backup.manager.select.files.delete": "Please select backup files to delete", "settings.data.local.backup.manager.title": "Local Backup Manager", "settings.data.local.backup.modal.filename.placeholder": "Please enter backup filename", "settings.data.local.backup.modal.title": "Backup to Local Directory", "settings.data.local.directory.label": "Local Backup Directory", "settings.data.local.directory.placeholder": "Select a directory for local backups", "settings.data.local.directory.select_error_app_data_path": "New path cannot be the same as the application data path", "settings.data.local.directory.select_error_in_app_install_path": "New path cannot be the same as the application installation path", "settings.data.local.directory.select_error_write_permission": "New path does not have write permission", "settings.data.local.directory.select_title": "Select Backup Directory", "settings.data.local.hour_interval_one": "{{count}} hour", "settings.data.local.hour_interval_other": "{{count}} hours", "settings.data.local.lastSync": "Last Backup", "settings.data.local.maxBackups.label": "Maximum backups", "settings.data.local.maxBackups.unlimited": "Unlimited", "settings.data.local.minute_interval_one": "{{count}} minute", "settings.data.local.minute_interval_other": "{{count}} minutes", "settings.data.local.noSync": "Waiting for next backup", "settings.data.local.restore.button": "Restore from Local", "settings.data.local.restore.confirm.content": "Restoring from local backup will replace current data. Do you want to continue?", "settings.data.local.restore.confirm.title": "Confirm Restore", "settings.data.local.syncError": "Backup Error", "settings.data.local.syncStatus": "Backup Status", "settings.data.local.title": "Local Backup", "settings.data.log_retention.days": "{{days}} days", "settings.data.log_retention.help": "Log files older than this are deleted automatically, at startup and once every 12 hours.", "settings.data.log_retention.label": "Keep logs for", "settings.data.markdown_export.exclude_citations.help": "Exclude citations and references when exporting to Markdown, keeping only the main content", "settings.data.markdown_export.exclude_citations.title": "Exclude Citations", "settings.data.markdown_export.force_dollar_math.help": "When enabled, $$ will be forcibly used to mark LaTeX formulas when exporting to Markdown. Note: This option also affects all export methods through Markdown, such as Notion, Yuque, etc.", "settings.data.markdown_export.force_dollar_math.title": "Force $$ for LaTeX formulas", "settings.data.markdown_export.help": "If provided, exports will be automatically saved to this path; otherwise, a save dialog will appear.", "settings.data.markdown_export.path": "Default Export Path", "settings.data.markdown_export.path_placeholder": "Export Path", "settings.data.markdown_export.select": "Select", "settings.data.markdown_export.show_model_name.help": "When enabled, the model name will be displayed when exporting to Markdown. Note: This option also affects all export methods through Markdown, such as Notion, Yuque, etc.", "settings.data.markdown_export.show_model_name.title": "Use Model Name on Export", "settings.data.markdown_export.show_model_provider.help": "Display the model provider (e.g., OpenAI, Gemini) when exporting to Markdown", "settings.data.markdown_export.show_model_provider.title": "Show Model Provider", "settings.data.markdown_export.standardize_citations.help": "When enabled, citation markers will be converted to standard Markdown footnote format [^1] and citation lists will be formatted.", "settings.data.markdown_export.standardize_citations.title": "Standardize Citation Format", "settings.data.markdown_export.title": "Markdown Export", "settings.data.message_title.use_topic_naming.help": "When enabled, use the quick model to name the title for exported messages. This setting also affects all export methods through Markdown.", "settings.data.message_title.use_topic_naming.title": "Use the quick model to name the title for the exported message", "settings.data.notion.api_key": "Notion API Key", "settings.data.notion.api_key_placeholder": "Enter Notion API Key", "settings.data.notion.check.button": "Check", "settings.data.notion.check.empty_api_key": "API key is not configured", "settings.data.notion.check.empty_database_id": "Database ID is not configured", "settings.data.notion.check.error": "Connection error, please check network configuration and API key and Database ID", "settings.data.notion.check.fail": "Connection failed, please check network and API key and Database ID", "settings.data.notion.check.success": "Connection successful", "settings.data.notion.database_id": "Notion Database ID", "settings.data.notion.database_id_placeholder": "Enter Notion Database ID", "settings.data.notion.export_reasoning.help": "When enabled, exported content will include reasoning chain (thought process).", "settings.data.notion.export_reasoning.title": "Include Reasoning Chain in Export", "settings.data.notion.help": "Notion Configuration Documentation", "settings.data.notion.page_name_key": "Page Title Field Name", "settings.data.notion.page_name_key_placeholder": "Enter page title field name, default is Name", "settings.data.notion.title": "Notion Settings", "settings.data.nutstore.backup.button": "Backup to Nutstore", "settings.data.nutstore.backup.modal.filename.placeholder": "Enter backup filename", "settings.data.nutstore.backup.modal.title": "Backup to Nutstore", "settings.data.nutstore.checkConnection.fail": "Nutstore connection failed", "settings.data.nutstore.checkConnection.name": "Check Connection", "settings.data.nutstore.checkConnection.success": "Connected to Nutstore", "settings.data.nutstore.isLogin": "Logged in", "settings.data.nutstore.login.button": "Login", "settings.data.nutstore.login.failed": "Nutstore login did not complete. Please try again.", "settings.data.nutstore.logout.button": "Logout", "settings.data.nutstore.logout.content": "After logout, you will not be able to backup to Nutstore or restore from Nutstore.", "settings.data.nutstore.logout.title": "Are you sure you want to logout from Nutstore?", "settings.data.nutstore.new_folder.button.cancel": "Cancel", "settings.data.nutstore.new_folder.button.confirm": "Confirm", "settings.data.nutstore.new_folder.button.label": "New Folder", "settings.data.nutstore.notLogin": "Not logged in", "settings.data.nutstore.path.label": "Nutstore Storage Path", "settings.data.nutstore.path.placeholder": "Enter Nutstore storage path", "settings.data.nutstore.pathSelector.currentPath": "Current Path", "settings.data.nutstore.pathSelector.fetchError": "Failed to load the Nutstore folder list", "settings.data.nutstore.pathSelector.return": "Return", "settings.data.nutstore.pathSelector.title": "Nutstore Storage Path", "settings.data.nutstore.restore.button": "Restore from Nutstore", "settings.data.nutstore.restore.confirm.content": "Restoring from Nutstore will overwrite current data. Do you want to continue?", "settings.data.nutstore.restore.confirm.title": "Restore from Nutstore", "settings.data.nutstore.title": "Nutstore", "settings.data.nutstore.username": "Nutstore Username", "settings.data.obsidian.default_vault": "Default Obsidian Vault", "settings.data.obsidian.default_vault_fetch_error": "Failed to fetch Obsidian vault", "settings.data.obsidian.default_vault_no_vaults": "No Obsidian vaults found", "settings.data.obsidian.default_vault_placeholder": "Please select the default Obsidian vault", "settings.data.obsidian.title": "Obsidian", "settings.data.s3.accessKeyId.label": "Access Key ID", "settings.data.s3.accessKeyId.placeholder": "Access Key ID", "settings.data.s3.autoSync.hour": "Every {{count}} hour", "settings.data.s3.autoSync.label": "Auto Sync", "settings.data.s3.autoSync.minute": "Every {{count}} minute", "settings.data.s3.autoSync.off": "Off", "settings.data.s3.backup.button": "Backup Now", "settings.data.s3.backup.manager.button": "Manage Backups", "settings.data.s3.backup.modal.filename.placeholder": "Please enter backup filename", "settings.data.s3.backup.modal.title": "S3 Backup", "settings.data.s3.backup.operation": "Backup Operation", "settings.data.s3.bucket.label": "Bucket", "settings.data.s3.bucket.placeholder": "Bucket, e.g: example", "settings.data.s3.endpoint.label": "API Endpoint", "settings.data.s3.endpoint.placeholder": "https://s3.example.com", "settings.data.s3.manager.columns.actions": "Actions", "settings.data.s3.manager.columns.fileName": "File Name", "settings.data.s3.manager.columns.modifiedTime": "Modified Time", "settings.data.s3.manager.columns.size": "File Size", "settings.data.s3.manager.config.incomplete": "Please fill in complete S3 configuration", "settings.data.s3.manager.delete.confirm.multiple": "Are you sure you want to delete {{count}} selected backup files? This action cannot be undone.", "settings.data.s3.manager.delete.confirm.single": "Are you sure you want to delete backup file \"{{fileName}}\"? This action cannot be undone.", "settings.data.s3.manager.delete.confirm.title": "Confirm Delete", "settings.data.s3.manager.delete.error": "Failed to delete backup file: {{message}}", "settings.data.s3.manager.delete.label": "Delete", "settings.data.s3.manager.delete.selected": "Delete Selected ({{count}})", "settings.data.s3.manager.delete.success.multiple": "Successfully deleted {{count}} backup files", "settings.data.s3.manager.delete.success.single": "Backup file deleted successfully", "settings.data.s3.manager.files.fetch.error": "Failed to fetch backup file list: {{message}}", "settings.data.s3.manager.refresh": "Refresh", "settings.data.s3.manager.restore": "Restore", "settings.data.s3.manager.select.warning": "Please select backup files to delete", "settings.data.s3.manager.title": "S3 Backup File Manager", "settings.data.s3.maxBackups.label": "Maximum Backups", "settings.data.s3.maxBackups.unlimited": "Unlimited", "settings.data.s3.region.label": "Region", "settings.data.s3.region.placeholder": "Region, e.g: us-east-1", "settings.data.s3.restore.config.incomplete": "Please fill in complete S3 configuration", "settings.data.s3.restore.confirm.cancel": "Cancel", "settings.data.s3.restore.confirm.content": "Restoring data will overwrite all current data. This action cannot be undone. Are you sure you want to continue?", "settings.data.s3.restore.confirm.ok": "Confirm Restore", "settings.data.s3.restore.confirm.title": "Confirm Restore Data", "settings.data.s3.restore.file.required": "Please select backup file to restore", "settings.data.s3.restore.modal.select.placeholder": "Please select backup file to restore", "settings.data.s3.restore.modal.title": "S3 Data Restore", "settings.data.s3.restore.success": "Data restore successful", "settings.data.s3.root.label": "Backup Directory (Optional)", "settings.data.s3.root.placeholder": "e.g: /cherry-studio", "settings.data.s3.secretAccessKey.label": "Secret Access Key", "settings.data.s3.secretAccessKey.placeholder": "Secret Access Key", "settings.data.s3.skipBackupFile.help": "When enabled, file data will be skipped during backup, only configuration information will be backed up, significantly reducing backup file size", "settings.data.s3.skipBackupFile.label": "Lightweight Backup", "settings.data.s3.syncStatus.error": "Sync error: {{message}}", "settings.data.s3.syncStatus.label": "Sync Status", "settings.data.s3.syncStatus.lastSync": "Last sync: {{time}}", "settings.data.s3.syncStatus.noSync": "Not synced", "settings.data.s3.title.help": "S3 compatible object storage services, such as AWS S3, Cloudflare R2, Aliyun OSS, Tencent COS, etc.", "settings.data.s3.title.label": "S3 Storage", "settings.data.s3.title.tooltip": "S3 Compatible Storage Configuration Document", "settings.data.siyuan.api_url": "Siyuan Note API URL", "settings.data.siyuan.api_url_placeholder": "e.g.: http://127.0.0.1:6806", "settings.data.siyuan.box_id": "Siyuan Note Box ID", "settings.data.siyuan.box_id_placeholder": "Please enter Siyuan Note Box ID", "settings.data.siyuan.check.button": "Check", "settings.data.siyuan.check.empty_config": "Please fill in the API address and token", "settings.data.siyuan.check.error": "Connection error, please check network connection", "settings.data.siyuan.check.fail": "Connection failed, please check API address and token", "settings.data.siyuan.check.success": "Connection successful", "settings.data.siyuan.root_path": "Siyuan Note Root Path", "settings.data.siyuan.root_path_placeholder": "e.g.: /CherryStudio", "settings.data.siyuan.title": "Siyuan Note", "settings.data.siyuan.token.help": "Get Siyuan Note Token", "settings.data.siyuan.token.label": "Siyuan Note Token", "settings.data.siyuan.token_placeholder": "Please enter Siyuan Note Token", "settings.data.title": "Data", "settings.data.trash.days_remaining_expired": "Expired", "settings.data.trash.days_remaining_lt_one": "Less than 1 day left", "settings.data.trash.days_remaining_one": "{{count}} day left", "settings.data.trash.days_remaining_other": "{{count}} days left", "settings.data.trash.deleted_at": "Archived at {{time}}", "settings.data.trash.domain.agents": "Agents", "settings.data.trash.domain.assistants": "Assistants", "settings.data.trash.domain.files": "Files", "settings.data.trash.domain.paintings": "Paintings", "settings.data.trash.domain.sessions": "Tasks", "settings.data.trash.domain.topics": "Topics", "settings.data.trash.empty.section": "No archived items", "settings.data.trash.empty_trash.button": "Empty Archive", "settings.data.trash.empty_trash.confirm_content": "All items that can be safely removed will be permanently deleted. Referenced files will be kept. This cannot be undone.", "settings.data.trash.empty_trash.confirm_title": "Empty archive?", "settings.data.trash.empty_trash.error": "Failed to empty archive", "settings.data.trash.empty_trash.partial": "Some files are still being reclaimed in the background.", "settings.data.trash.empty_trash.retained": "Deleted: {{deleted}}. Referenced files kept: {{count}}.", "settings.data.trash.empty_trash.success": "Archive emptied", "settings.data.trash.error.load": "Failed to load", "settings.data.trash.file_refs.blocked_one_one": "{{count}} file is still used by {{records}} record and will be kept. Remove that reference before deleting permanently.", "settings.data.trash.file_refs.blocked_one_other": "{{count}} file is still used by {{records}} records and will be kept. Remove those references before deleting permanently.", "settings.data.trash.file_refs.blocked_other_one": "{{count}} files are still used by {{records}} record and will be kept. Remove that reference before deleting permanently.", "settings.data.trash.file_refs.blocked_other_other": "{{count}} files are still used by {{records}} records and will be kept. Remove those references before deleting permanently.", "settings.data.trash.file_refs.error": "Could not check file references.", "settings.data.trash.file_refs.loading": "Checking file references…", "settings.data.trash.file_refs.retry": "Retry reference check", "settings.data.trash.load_more": "Load more", "settings.data.trash.owned_by": "from {{name}}", "settings.data.trash.page_next": "Next", "settings.data.trash.page_prev": "Previous", "settings.data.trash.permanent_delete.batch_confirm_title": "Permanently delete {{count}} items?", "settings.data.trash.permanent_delete.batch_partial_one": "Permanently deleted {{succeeded}} item; {{failed}} failed", "settings.data.trash.permanent_delete.batch_partial_other": "Permanently deleted {{succeeded}} items; {{failed}} failed", "settings.data.trash.permanent_delete.batch_stale_summary": "Permanently deleted: {{succeeded}}; no longer in the Archive: {{stale}}; other failures: {{failed}}", "settings.data.trash.permanent_delete.batch_success_one": "Permanently deleted {{count}} item", "settings.data.trash.permanent_delete.batch_success_other": "Permanently deleted {{count}} items", "settings.data.trash.permanent_delete.confirm_content": "This action cannot be undone.", "settings.data.trash.permanent_delete.confirm_title": "Delete permanently?", "settings.data.trash.permanent_delete.error": "Failed to delete", "settings.data.trash.permanent_delete.label": "Delete Permanently", "settings.data.trash.permanent_delete.no_longer_in_recycle_bin": "No longer in the Archive. Refresh and try again.", "settings.data.trash.permanent_delete.selected": "Delete Permanently {{count}}", "settings.data.trash.permanent_delete.success": "Permanently deleted", "settings.data.trash.restore.batch_partial_one": "Restored {{succeeded}} item; {{failed}} failed", "settings.data.trash.restore.batch_partial_other": "Restored {{succeeded}} items; {{failed}} failed", "settings.data.trash.restore.batch_success_one": "Restored {{count}} item", "settings.data.trash.restore.batch_success_other": "Restored {{count}} items", "settings.data.trash.restore.error": "Failed to restore", "settings.data.trash.restore.go_to_conversation": "Go to conversation", "settings.data.trash.restore.label": "Restore", "settings.data.trash.restore.selected": "Restore {{count}}", "settings.data.trash.restore.success": "Restored", "settings.data.trash.retention.days_one": "{{count}} day", "settings.data.trash.retention.days_other": "{{count}} days", "settings.data.trash.retention.forever": "Forever", "settings.data.trash.retention.label": "Auto-cleanup interval", "settings.data.trash.selection.clear": "Clear selection", "settings.data.trash.selection.count": "{{count}} selected", "settings.data.trash.selection.done": "Done", "settings.data.trash.selection.item": "Select {{name}}", "settings.data.trash.selection.manage": "Batch manage", "settings.data.trash.selection.select_all_visible": "Select all visible items", "settings.data.trash.title": "Archive", "settings.data.trash.unnamed": "Untitled", "settings.data.v1_remigration.acknowledgement": "I understand the risk and want to continue.", "settings.data.v1_remigration.back": "Back", "settings.data.v1_remigration.backup_acknowledgement": "I have backed up my data", "settings.data.v1_remigration.backup_button": "Back Up All Data Now", "settings.data.v1_remigration.backup_message": "Back up all current data before continuing. Continuing will permanently delete your current v2 data, and this action cannot be undone.", "settings.data.v1_remigration.button": "Rerun Migration", "settings.data.v1_remigration.confirm": "Rerun Migration", "settings.data.v1_remigration.confirm_countdown": "Rerun Migration ({{seconds}}s)", "settings.data.v1_remigration.dialog_title": "Rerun v1 Data Migration", "settings.data.v1_remigration.error": "Failed to start v1 data migration again", "settings.data.v1_remigration.final_confirmation": "Confirm that you want to delete the current v2 data and rerun the v1 data migration.", "settings.data.v1_remigration.final_message": "Your current v2 data will be permanently deleted. This action cannot be undone.", "settings.data.v1_remigration.final_retained": "Your original v1 data will be kept and imported again after restart.", "settings.data.v1_remigration.next": "Next", "settings.data.v1_remigration.title": "Rerun v1 Data Migration", "settings.data.webdav.allowSelfSignedTls.help": "Off by default: the WebDAV server's TLS certificate is verified. When enabled, certificate verification is skipped entirely for this server — self-signed, private-CA, expired, or wrong-hostname certificates are all accepted, and a man-in-the-middle could intercept your WebDAV password and full backup data.", "settings.data.webdav.allowSelfSignedTls.title": "Allow Self-Signed Certificates", "settings.data.webdav.autoSync.label": "Auto Backup", "settings.data.webdav.autoSync.off": "Off", "settings.data.webdav.backup.button": "Backup to WebDAV", "settings.data.webdav.backup.manager.columns.actions": "Actions", "settings.data.webdav.backup.manager.columns.fileName": "Filename", "settings.data.webdav.backup.manager.columns.modifiedTime": "Modified Time", "settings.data.webdav.backup.manager.columns.size": "Size", "settings.data.webdav.backup.manager.delete.confirm.multiple": "Are you sure you want to delete {{count}} selected backup files? This action cannot be undone.", "settings.data.webdav.backup.manager.delete.confirm.single": "Are you sure you want to delete backup file \"{{fileName}}\"? This action cannot be undone.", "settings.data.webdav.backup.manager.delete.confirm.title": "Confirm Delete", "settings.data.webdav.backup.manager.delete.error": "Delete failed", "settings.data.webdav.backup.manager.delete.selected": "Delete Selected", "settings.data.webdav.backup.manager.delete.success.multiple": "Successfully deleted {{count}} backup files", "settings.data.webdav.backup.manager.delete.success.single": "Deleted successfully", "settings.data.webdav.backup.manager.delete.text": "Delete", "settings.data.webdav.backup.manager.fetch.error": "Failed to get backup files", "settings.data.webdav.backup.manager.refresh": "Refresh", "settings.data.webdav.backup.manager.restore.error": "Restore failed", "settings.data.webdav.backup.manager.restore.success": "Restore successful, application will refresh shortly", "settings.data.webdav.backup.manager.restore.text": "Restore", "settings.data.webdav.backup.manager.select.files.delete": "Please select backup files to delete", "settings.data.webdav.backup.manager.title": "Backup Data Management", "settings.data.webdav.backup.modal.filename.placeholder": "Please enter backup filename", "settings.data.webdav.backup.modal.title": "Backup to WebDAV", "settings.data.webdav.disableStream.help": "When enabled, loads the file into memory before uploading. This can solve incompatibility issues with some WebDAV servers that do not support chunked uploads, but it will increase memory usage.", "settings.data.webdav.disableStream.title": "Disable Stream Upload", "settings.data.webdav.host.label": "WebDAV Host", "settings.data.webdav.host.placeholder": "http://localhost:8080", "settings.data.webdav.hour_interval_one": "{{count}} hour", "settings.data.webdav.hour_interval_other": "{{count}} hours", "settings.data.webdav.lastSync": "Last Backup", "settings.data.webdav.maxBackups": "Maximum Backups", "settings.data.webdav.minute_interval_one": "{{count}} minute", "settings.data.webdav.minute_interval_other": "{{count}} minutes", "settings.data.webdav.noSync": "Waiting for next backup", "settings.data.webdav.password": "WebDAV Password", "settings.data.webdav.path.label": "WebDAV Path", "settings.data.webdav.path.placeholder": "/backup", "settings.data.webdav.restore.button": "Restore from WebDAV", "settings.data.webdav.restore.confirm.content": "Restoring from WebDAV will overwrite current data. Do you want to continue?", "settings.data.webdav.restore.confirm.title": "Confirm Restore", "settings.data.webdav.syncError": "Backup Error", "settings.data.webdav.syncStatus": "Backup Status", "settings.data.webdav.title": "WebDAV", "settings.data.webdav.user": "WebDAV User", "settings.data.yuque.check.button": "Check", "settings.data.yuque.check.empty_repo_url": "Please enter the knowledge base URL first", "settings.data.yuque.check.empty_token": "Please enter the Yuque Token first", "settings.data.yuque.check.fail": "Yuque connection verification failed", "settings.data.yuque.check.success": "Yuque connection verified successfully", "settings.data.yuque.help": "Get Yuque Token", "settings.data.yuque.repo_url": "Yuque URL", "settings.data.yuque.repo_url_placeholder": "https://www.yuque.com/username/xxx", "settings.data.yuque.title": "Yuque", "settings.data.yuque.token": "Yuque Token", "settings.data.yuque.token_placeholder": "Please enter the Yuque Token", "settings.dependencies.addTool": "Add Tool", "settings.dependencies.addToolDescription": "Add a tool using a mise tool key (e.g., github:sharkdp/fd, uv, bun).", "settings.dependencies.checkUpdates": "Check for updates", "settings.dependencies.description": "Manage binary tools and runtime dependencies required by the app.", "settings.dependencies.duplicateName": "A tool with the same name already exists", "settings.dependencies.fieldVersion": "Version (optional, defaults to latest)", "settings.dependencies.installError": "Failed to install tool", "settings.dependencies.installErrorHint": "The install command failed. Copy the log below to troubleshoot or share it for help.", "settings.dependencies.installSettings.description": "Fine-tune how bundled CLI tools are installed. All fields are optional — leave them empty to keep the defaults.", "settings.dependencies.installSettings.githubMirror.help": "Proxy prefix for GitHub downloads, including Skill installs (e.g. https://ghfast.top). GitHub API requests remain direct; use a token if rate-limited.", "settings.dependencies.installSettings.githubMirror.label": "GitHub mirror", "settings.dependencies.installSettings.githubMirror.placeholder": "https://ghfast.top (direct if empty)", "settings.dependencies.installSettings.githubToken.help": "Raises the GitHub API rate limit for tool lookups. Stored locally in plain text. Leave empty to use the CHERRY_GITHUB_TOKEN environment variable.", "settings.dependencies.installSettings.githubToken.hide": "Hide token", "settings.dependencies.installSettings.githubToken.label": "GitHub token", "settings.dependencies.installSettings.githubToken.placeholder": "ghp_…", "settings.dependencies.installSettings.githubToken.show": "Show token", "settings.dependencies.installSettings.invalidUrl": "Enter a valid URL including https://", "settings.dependencies.installSettings.npmRegistry.help": "Registry for npm: tools. Leave empty to auto-select a mirror in mainland China.", "settings.dependencies.installSettings.npmRegistry.label": "npm registry", "settings.dependencies.installSettings.npmRegistry.placeholder": "Auto (China mirror) if empty", "settings.dependencies.installSettings.pipIndexUrl.help": "Index URL for pipx: tools. Leave empty to auto-select a mirror in mainland China.", "settings.dependencies.installSettings.pipIndexUrl.label": "pip index URL", "settings.dependencies.installSettings.pipIndexUrl.placeholder": "Auto (China mirror) if empty", "settings.dependencies.installSettings.presetLabels.aliyun": "Aliyun (China)", "settings.dependencies.installSettings.presetLabels.default": "Default (no mirror)", "settings.dependencies.installSettings.presetLabels.ghfast": "ghfast.top", "settings.dependencies.installSettings.presetLabels.ghproxy": "ghproxy.net", "settings.dependencies.installSettings.presetLabels.npmOfficial": "npmjs (official)", "settings.dependencies.installSettings.presetLabels.npmmirror": "npmmirror (China)", "settings.dependencies.installSettings.presetLabels.pypiOfficial": "PyPI (official)", "settings.dependencies.installSettings.presetLabels.tsinghua": "Tsinghua (China)", "settings.dependencies.installSettings.presets": "Presets", "settings.dependencies.installSettings.title": "Advanced install settings", "settings.dependencies.installSettings.verifySignatures.help": "Verifies Sigstore/SLSA signatures for aqua-backed tools. Disable only if verification fails on your network — it skips supply-chain checks.", "settings.dependencies.installSettings.verifySignatures.label": "Verify tool signatures", "settings.dependencies.installing": "Installing...", "settings.dependencies.installingHint": "The first install may download a runtime and take a few minutes", "settings.dependencies.invalidTool": "Invalid tool name or key", "settings.dependencies.localModels.acceleration.description": "Use DirectML or CoreML to accelerate local embedding and OCR inference.", "settings.dependencies.localModels.acceleration.label": "Hardware acceleration", "settings.dependencies.localModels.cancel": "Cancel", "settings.dependencies.localModels.description": "Models that run locally on your device — download once, then use offline with no API key.", "settings.dependencies.localModels.download": "Download", "settings.dependencies.localModels.embedding.name": "Local Embedding", "settings.dependencies.localModels.embedding.subtitle": "Qwen3 Embedding 0.6B · ~614 MB", "settings.dependencies.localModels.notice.downloadFailed": "Download failed. Check your connection and try again.", "settings.dependencies.localModels.notice.inUse": "Still used by a knowledge base; the weights were kept.", "settings.dependencies.localModels.notice.incompleteCache": "Model files are incomplete. Retry the download to repair them.", "settings.dependencies.localModels.notice.removeFailed": "Remove failed. Check the logs for details.", "settings.dependencies.localModels.ocr.name": "Local OCR", "settings.dependencies.localModels.ocr.subtitle": "PaddleOCR PP-OCRv6 · ~140 MB", "settings.dependencies.localModels.remove": "Remove", "settings.dependencies.localModels.status.downloading": "Downloading…", "settings.dependencies.localModels.status.ready": "Ready", "settings.dependencies.localModels.title": "Local Models", "settings.dependencies.localModels.unsupported": "Local models are not supported on this platform.", "settings.dependencies.openBinariesDir": "Open binaries directory", "settings.dependencies.remove": "Remove tool", "settings.dependencies.removeConfirmMessage": "Remove \"{{name}}\" from Cherry Studio? Its portable definition will be deleted. Cherry will also clean up an exact mise-managed copy when present. System and bundled executables are never changed.", "settings.dependencies.removeConfirmTitle": "Remove Tool", "settings.dependencies.removeDefinitionOnlyConfirmMessage": "Cherry could not safely clean up \"{{name}}\": {{details}} Removing only its definition will hide the card but leave its backend files installed. Continue?", "settings.dependencies.removeDefinitionOnlyConfirmTitle": "Remove Definition Only?", "settings.dependencies.removeDefinitionOnlyDependents": "Installed tools depend on it: {{dependents}}.", "settings.dependencies.removeError": "Failed to remove tool", "settings.dependencies.removeErrorHint": "The cleanup command failed. Copy the log below to troubleshoot or share it for help.", "settings.dependencies.removeRuntimeConfirmMessage": "Remove \"{{name}}\" from Cherry Studio? Cherry will clean up only an exact mise-managed copy. System and bundled runtimes are never changed. Installed npm or pip tools may block removal if they depend on this runtime.", "settings.dependencies.runtimeDependency": "Runtime", "settings.dependencies.runtimeDependencyHint": "Runtime for npm/pip tools", "settings.dependencies.searchFailed": "Search failed, check logs", "settings.dependencies.searchRegistry": "Search mise registry...", "settings.dependencies.source.bundled": "bundled", "settings.dependencies.source.system": "System", "settings.dependencies.title": "Dependencies", "settings.dependencies.tools.babeldoc-stream": "Layout-preserving PDF translation engine. Layout model assets are downloaded on the first translation.", "settings.dependencies.tools.bun": "JavaScript runtime used by MCP services and related toolchains.", "settings.dependencies.tools.claude": "Anthropic's agentic coding tool for the terminal.", "settings.dependencies.tools.codex": "OpenAI's open-source coding agent that can read, edit, and execute code in your local repository.", "settings.dependencies.tools.fd": "Fast file finder, alternative to find.", "settings.dependencies.tools.gh": "GitHub CLI for repository and workflow management.", "settings.dependencies.tools.hermes": "Self-improving AI coding agent by Nous Research that creates skills from experience and persists knowledge across sessions.", "settings.dependencies.tools.lark-cli": "Official Lark/Feishu CLI covering Messenger, Docs, Base, Sheets, Calendar, and more with 200+ commands and AI Agent skills.", "settings.dependencies.tools.ntn": "Official Notion CLI for authentication, Workers management, and full Notion API access from the terminal.", "settings.dependencies.tools.openclaw": "Cross-platform personal AI assistant with chat, voice, canvas, camera, and screen capture capabilities.", "settings.dependencies.tools.opencode": "Open-source AI coding agent supporting 75+ models with GitHub Actions integration for automated workflows.", "settings.dependencies.tools.pi": "AI agent toolkit with coding agent CLI, unified LLM API, TUI/web UI, and Slack bot.", "settings.dependencies.tools.rg": "Fast text search tool (ripgrep), alternative to grep.", "settings.dependencies.tools.rtk": "CLI proxy that reduces LLM token consumption by compressing terminal output before it reaches the AI context window.", "settings.dependencies.tools.uv": "Python package manager for MCP services and dependency installation.", "settings.dependencies.uninstall": "Uninstall", "settings.dependencies.uninstallConfirmMessage": "Are you sure you want to uninstall \"{{name}}\"? Cherry Studio's backend copy will be deleted.", "settings.dependencies.uninstallConfirmTitle": "Uninstall Tool", "settings.dependencies.uninstallFailed": "Failed to uninstall tool", "settings.dependencies.uninstallSuccess": "Tool uninstalled", "settings.dependencies.update": "Update to latest version", "settings.dependencies.updateCheckFailed": "Failed to check for updates", "settings.dependencies.updateCheckSuccess": "Version check complete", "settings.dependencies.viewErrorDetails": "View details", "settings.developer.cdp.description": "Allow trusted local tools to control the app. Saved address: {{address}}. Restart required; a command-line port takes precedence.", "settings.developer.cdp.invalid_port": "Enter a whole-number port from 1 to 65534.", "settings.developer.cdp.port": "CDP port", "settings.developer.cdp.title": "Local automation (CDP)", "settings.developer.client_id": "Client ID", "settings.developer.enable_developer_mode": "Enable Developer Mode", "settings.developer.help": "After enabling developer mode, you can use the trace feature to view the data flow during model invocation. Changes take effect after restarting the application.", "settings.display.custom.css.label": "Custom CSS", "settings.display.custom.css.migration_notice": "This stylesheet was migrated from v1 and is currently disabled. Adapt it for v2, then remove the first line to enable it.", "settings.display.custom.css.placeholder": "/* Put custom CSS here */", "settings.display.font.code": "Code Font", "settings.display.font.default": "Default", "settings.display.font.global": "Global Font", "settings.display.font.select": "Select Font", "settings.display.font.title": "Font Settings", "settings.display.list_position.chat": "Conversation list position", "settings.display.list_position.work": "Task list position", "settings.doctor.actions.back_to_checks": "Back to system diagnostics", "settings.doctor.actions.cancel_run": "Cancel checks", "settings.doctor.actions.confirm_check": "Send test message", "settings.doctor.actions.copy": "Copy results", "settings.doctor.actions.more": "More", "settings.doctor.actions.open_about": "Open About settings", "settings.doctor.actions.open_claude_code": "Configure Claude Code", "settings.doctor.actions.open_data": "Open Data settings", "settings.doctor.actions.open_dependencies": "Open Dependencies settings", "settings.doctor.actions.open_general": "Open General settings", "settings.doctor.actions.open_link": "Open link", "settings.doctor.actions.open_mcp": "Open MCP settings", "settings.doctor.actions.open_path": "Open location", "settings.doctor.actions.open_provider": "Open Model Provider settings", "settings.doctor.actions.relaunch": "Relaunch Cherry Studio", "settings.doctor.actions.report_problem": "Report a problem", "settings.doctor.actions.rerun": "Run checks again", "settings.doctor.actions.run_basic": "Quick basic checks", "settings.doctor.actions.run_network": "Recheck", "settings.doctor.actions.show_details": "Show local details", "settings.doctor.advanced.title": "Advanced tools", "settings.doctor.agent.actions.apply": "Apply", "settings.doctor.agent.actions.cancel": "Stop analysis", "settings.doctor.agent.actions.dismiss": "Not now", "settings.doctor.agent.actions.restart": "Consult again", "settings.doctor.agent.actions.start": "Start consultation", "settings.doctor.agent.actions.undo": "Undo", "settings.doctor.agent.agent_model": "System Doctor Agent · {{model}}", "settings.doctor.agent.canceled": "The consultation was stopped before it finished.", "settings.doctor.agent.change_status.undone": "Undone", "settings.doctor.agent.changes": "Applied changes", "settings.doctor.agent.description": "Analyzing the current findings together with the app's runtime state.", "settings.doctor.agent.incident_disclosure": "This analysis reads the messages and runtime records of this conversation and sends them to the model you pick.", "settings.doctor.agent.messages.applied": "Change applied.", "settings.doctor.agent.messages.apply_failed": "Could not apply: {{message}}", "settings.doctor.agent.messages.no_model": "No default model is configured. Pick one in Settings before analyzing.", "settings.doctor.agent.messages.start_failed": "The analysis could not be started.", "settings.doctor.agent.messages.undo_failed": "Could not undo: {{message}}", "settings.doctor.agent.messages.undone": "Change undone.", "settings.doctor.agent.model_picker.check_failed": "This model could not be reached. Check its provider settings or choose another model.", "settings.doctor.agent.model_picker.description": "Only models configured and currently available in Cherry Studio are listed.", "settings.doctor.agent.model_picker.empty": "No usable model is configured yet", "settings.doctor.agent.model_picker.title": "Choose a model for the consultation", "settings.doctor.agent.proposal_status.applied": "Applied", "settings.doctor.agent.proposal_status.failed": "Failed", "settings.doctor.agent.proposal_status.pending": "Pending", "settings.doctor.agent.proposal_status.rejected": "No longer applicable", "settings.doctor.agent.proposals": "Proposed changes", "settings.doctor.agent.running": "Analyzing…", "settings.doctor.agent.running_tool": "Analyzing… running {{tool}}", "settings.doctor.agent.summary.note": "AI diagnosis is supplementary and does not count toward the system check results.", "settings.doctor.agent.summary.status": "Completed", "settings.doctor.agent.summary.title": "AI diagnosis", "settings.doctor.agent.title": "AI consultation", "settings.doctor.agent.write.data_api_patch": "Update {{path}} ({{fields}})", "settings.doctor.agent.write.doctor_fix": "Fix “{{fix}}” for {{check}}", "settings.doctor.agent.write.preference_set": "Set {{key}} = {{value}}", "settings.doctor.basics.data_path": "App data directory", "settings.doctor.checks.config-boot-config-valid.detail.invalid_keys": "Some startup settings are not recognized or valid.", "settings.doctor.checks.config-boot-config-valid.detail.parse_error": "Cherry Studio could not parse its startup settings.", "settings.doctor.checks.config-boot-config-valid.detail.read_error": "Cherry Studio could not read its startup settings.", "settings.doctor.checks.config-boot-config-valid.title": "Startup configuration", "settings.doctor.checks.config-hardware-acceleration.detail.disabled_without_recent_crash": "Hardware acceleration is disabled even though no recent graphics crash was found.", "settings.doctor.checks.config-hardware-acceleration.title": "Hardware acceleration", "settings.doctor.checks.error": "This check could not be completed. Try running the checks again.", "settings.doctor.checks.install-architecture-match.detail.translated": "The {{arch}} build is running through ARM64 translation. Install the native ARM64 build for better performance and compatibility.", "settings.doctor.checks.install-architecture-match.title": "Installation architecture", "settings.doctor.checks.install-native-modules.detail.unavailable": "A required native component is unavailable.", "settings.doctor.checks.install-native-modules.title": "Native components", "settings.doctor.checks.install-update-available.detail.available": "A newer version of Cherry Studio is available.", "settings.doctor.checks.install-update-available.detail.unsupported": "Update checks are unavailable for this installation.", "settings.doctor.checks.install-update-available.title": "Available update", "settings.doctor.checks.install-version-channel.detail.mismatch": "The installed build does not match the selected update channel.", "settings.doctor.checks.install-version-channel.title": "Version and update channel", "settings.doctor.checks.logs-recent-findings.detail.findings": "Recent logs contain issues that may affect Cherry Studio.", "settings.doctor.checks.logs-recent-findings.title": "Recent app issues", "settings.doctor.checks.mcp-launch-commands.detail.query_failed": "One or more MCP launch commands could not be inspected.", "settings.doctor.checks.mcp-launch-commands.detail.unresolved": "One or more enabled MCP launch commands could not be found.", "settings.doctor.checks.mcp-launch-commands.title": "MCP launch commands", "settings.doctor.checks.mcp-servers-connected.detail.server_errors": "One or more enabled MCP services reported connection errors.", "settings.doctor.checks.mcp-servers-connected.title": "MCP service connections", "settings.doctor.checks.network-dns-resolution.detail.no_response": "The DNS lookup did not return a response.", "settings.doctor.checks.network-dns-resolution.detail.provider_unavailable": "The model's provider is unavailable.", "settings.doctor.checks.network-dns-resolution.detail.resolved": "Domain names can be resolved.", "settings.doctor.checks.network-dns-resolution.detail.unresolved": "Domain names could not be resolved.", "settings.doctor.checks.network-dns-resolution.detail.via_proxy": "Domain name resolution is handled by the configured proxy.", "settings.doctor.checks.network-dns-resolution.title": "Domain name resolution", "settings.doctor.checks.network-endpoint-cloud.detail.proxy_auth": "The proxy requires authentication before Cherry Cloud can be reached.", "settings.doctor.checks.network-endpoint-cloud.detail.reachable": "Cherry Cloud is reachable.", "settings.doctor.checks.network-endpoint-cloud.detail.server_error": "Cherry Cloud returned a server error.", "settings.doctor.checks.network-endpoint-cloud.detail.timeout": "The Cherry Cloud request timed out.", "settings.doctor.checks.network-endpoint-cloud.detail.unreachable": "Cherry Cloud could not be reached.", "settings.doctor.checks.network-endpoint-cloud.detail.untrusted_tls": "Cherry Cloud presented an untrusted certificate.", "settings.doctor.checks.network-endpoint-cloud.title": "Cherry Cloud service", "settings.doctor.checks.network-endpoint-diagnostics.detail.proxy_auth": "The proxy requires authentication before the problem-report service can be reached.", "settings.doctor.checks.network-endpoint-diagnostics.detail.reachable": "The problem-report service is reachable.", "settings.doctor.checks.network-endpoint-diagnostics.detail.server_error": "The problem-report service returned a server error.", "settings.doctor.checks.network-endpoint-diagnostics.detail.timeout": "The problem-report service request timed out.", "settings.doctor.checks.network-endpoint-diagnostics.detail.unreachable": "The problem-report service could not be reached.", "settings.doctor.checks.network-endpoint-diagnostics.detail.untrusted_tls": "The problem-report service presented an untrusted certificate.", "settings.doctor.checks.network-endpoint-diagnostics.title": "Problem reporting service", "settings.doctor.checks.network-endpoint-registry.detail.proxy_auth": "The proxy requires authentication before the extension registry can be reached.", "settings.doctor.checks.network-endpoint-registry.detail.reachable": "The extension registry is reachable.", "settings.doctor.checks.network-endpoint-registry.detail.server_error": "The extension registry returned a server error.", "settings.doctor.checks.network-endpoint-registry.detail.timeout": "The extension registry request timed out.", "settings.doctor.checks.network-endpoint-registry.detail.unreachable": "The extension registry could not be reached.", "settings.doctor.checks.network-endpoint-registry.detail.untrusted_tls": "The extension registry presented an untrusted certificate.", "settings.doctor.checks.network-endpoint-registry.title": "Model catalog service", "settings.doctor.checks.network-endpoint-update.detail.proxy_auth": "The proxy requires authentication before the update service can be reached.", "settings.doctor.checks.network-endpoint-update.detail.reachable": "The update service is reachable.", "settings.doctor.checks.network-endpoint-update.detail.server_error": "The update service returned a server error.", "settings.doctor.checks.network-endpoint-update.detail.timeout": "The update service request timed out.", "settings.doctor.checks.network-endpoint-update.detail.unreachable": "The update service could not be reached.", "settings.doctor.checks.network-endpoint-update.detail.untrusted_tls": "The update service presented an untrusted certificate.", "settings.doctor.checks.network-endpoint-update.title": "App update service", "settings.doctor.checks.network-model-endpoint.detail.no_base_url": "No Base URL is configured; this check was skipped.", "settings.doctor.checks.network-model-endpoint.detail.unreachable": "The configured Base URL could not be reached.", "settings.doctor.checks.network-model-endpoint.title": "Selected model endpoint", "settings.doctor.checks.network-online.detail.offline": "The device appears to be offline.", "settings.doctor.checks.network-online.title": "Internet connection", "settings.doctor.checks.network-provider-endpoint.detail.proxy_auth": "The proxy requires authentication before the model provider can be reached.", "settings.doctor.checks.network-provider-endpoint.detail.reachable": "The model provider is reachable.", "settings.doctor.checks.network-provider-endpoint.detail.server_error": "The model provider returned a server error.", "settings.doctor.checks.network-provider-endpoint.detail.timeout": "The model provider request timed out.", "settings.doctor.checks.network-provider-endpoint.detail.unreachable": "The model provider could not be reached.", "settings.doctor.checks.network-provider-endpoint.detail.untrusted_tls": "The model provider presented an untrusted certificate.", "settings.doctor.checks.network-provider-endpoint.title": "Model service", "settings.doctor.checks.network-proxy-applied.detail.apply_failed": "Cherry Studio could not apply the configured proxy.", "settings.doctor.checks.network-proxy-applied.detail.custom_without_url": "A custom proxy is selected but no proxy address is configured.", "settings.doctor.checks.network-proxy-applied.detail.direct": "Cherry Studio is using a direct connection.", "settings.doctor.checks.network-proxy-applied.detail.provider_unavailable": "The model's provider is unavailable.", "settings.doctor.checks.network-proxy-applied.detail.proxy": "Cherry Studio is using the configured proxy.", "settings.doctor.checks.network-proxy-applied.detail.system_read_failed": "Cherry Studio could not read the system proxy settings.", "settings.doctor.checks.network-proxy-applied.title": "Proxy configuration", "settings.doctor.checks.network-tls-handshake.detail.certificate": "The connection certificate could not be trusted.", "settings.doctor.checks.network-tls-handshake.detail.ok": "Secure connections can be established.", "settings.doctor.checks.network-tls-handshake.detail.provider_unavailable": "The model's provider is unavailable.", "settings.doctor.checks.network-tls-handshake.detail.skipped_proxy": "The secure-connection probe was handled by the configured proxy.", "settings.doctor.checks.network-tls-handshake.detail.unreachable": "The secure-connection probe could not reach its destination.", "settings.doctor.checks.network-tls-handshake.title": "Secure connection", "settings.doctor.checks.pending": "Waiting to run…", "settings.doctor.checks.permission-accessibility.detail.denied": "Accessibility permission has not been granted.", "settings.doctor.checks.permission-accessibility.title": "Accessibility permission", "settings.doctor.checks.permission-screen-capture.detail.denied": "Screen recording permission has not been granted.", "settings.doctor.checks.permission-screen-capture.detail.restricted": "Screen recording is restricted by system policy. Contact your administrator.", "settings.doctor.checks.permission-screen-capture.title": "Screen recording permission", "settings.doctor.checks.provider-api-key-present.detail.missing": "{{provider}} does not have an API key.", "settings.doctor.checks.provider-api-key-present.detail.provider_unavailable": "{{provider}} is unavailable.", "settings.doctor.checks.provider-api-key-present.title": "Provider API key", "settings.doctor.checks.provider-cherry-account.detail.signed_out": "No Cherry account is signed in.", "settings.doctor.checks.provider-cherry-account.title": "Cherry account", "settings.doctor.checks.provider-model-conversation.confirmation": "Send one short test message to {{model}} ({{modelId}}) at {{endpoint}}? This may incur provider usage charges.", "settings.doctor.checks.provider-model-conversation.detail.external_cli": "This provider uses an external CLI; API conversation checks are not supported.", "settings.doctor.checks.provider-model-conversation.detail.not_chat_model": "This model does not support conversations; this check was skipped.", "settings.doctor.checks.provider-model-conversation.detail.request_failed": "{{category}}. The conversation test could not be completed.", "settings.doctor.checks.provider-model-conversation.title": "Model conversation", "settings.doctor.checks.provider-model-list.detail.endpoint_unavailable": "The configured models endpoint is unavailable; this check was skipped.", "settings.doctor.checks.provider-model-list.detail.not_listed": "The selected model is not in the remote list. A conversation test may still succeed.", "settings.doctor.checks.provider-model-list.detail.request_failed": "{{category}}. The remote model list could not be retrieved.", "settings.doctor.checks.provider-model-list.detail.unsupported": "This provider does not support listing models; this check was skipped.", "settings.doctor.checks.provider-model-list.title": "Remote model availability", "settings.doctor.checks.provider-model.detail.invalid_id": "The configured default model is not valid.", "settings.doctor.checks.provider-model.detail.model_unavailable": "The model is unavailable.", "settings.doctor.checks.provider-model.detail.not_configured": "No default model is configured.", "settings.doctor.checks.provider-model.detail.provider_disabled": "The model's provider is disabled.", "settings.doctor.checks.provider-model.detail.provider_unavailable": "The model's provider is unavailable.", "settings.doctor.checks.provider-model.title": "Model", "settings.doctor.checks.runtime-claude-login.detail.not_logged_in": "Claude Code is not signed in.", "settings.doctor.checks.runtime-claude-login.title": "Claude Code sign-in", "settings.doctor.checks.runtime-managed-tools.detail.failed": "One or more managed tools could not be used.", "settings.doctor.checks.runtime-managed-tools.title": "Managed tools", "settings.doctor.checks.skipped": "Skipped because {{check}} did not pass.", "settings.doctor.checks.storage-diagnostic-data-size.detail.large": "Stored diagnostic data is using a large amount of disk space.", "settings.doctor.checks.storage-diagnostic-data-size.detail.large_partial": "The available diagnostic data is using a large amount of disk space, but some locations could not be inspected.", "settings.doctor.checks.storage-diagnostic-data-size.title": "Stored diagnostic data", "settings.doctor.checks.storage-disk-space.detail.critical": "Available disk space is critically low.", "settings.doctor.checks.storage-disk-space.detail.low": "Available disk space is low.", "settings.doctor.checks.storage-disk-space.title": "Available disk space", "settings.doctor.checks.storage-userdata-location.detail.fallback_to_default": "The requested data location was unavailable, so Cherry Studio used its default location.", "settings.doctor.checks.storage-userdata-location.title": "App data location", "settings.doctor.confirm_evidence.description": "These details stay on this device by default and may contain local paths, service names, or other private information.", "settings.doctor.confirm_evidence.title": "Show local diagnostic details?", "settings.doctor.copy.basics_heading": "System information", "settings.doctor.copy.channel": "Update channel", "settings.doctor.copy.checks_heading": "Checks", "settings.doctor.copy.chrome": "Chrome", "settings.doctor.copy.edition": "Edition", "settings.doctor.copy.electron": "Electron", "settings.doctor.copy.heading": "Cherry Studio system diagnostics", "settings.doctor.copy.no": "No", "settings.doctor.copy.node": "Node.js", "settings.doctor.copy.os_release": "OS release", "settings.doctor.copy.packaged": "Packaged app", "settings.doctor.copy.portable": "Portable app", "settings.doctor.copy.system": "System", "settings.doctor.copy.v8": "V8", "settings.doctor.copy.version": "Version", "settings.doctor.copy.yes": "Yes", "settings.doctor.domains.config": "App configuration", "settings.doctor.domains.install": "Installation and updates", "settings.doctor.domains.logs": "Recent issues", "settings.doctor.domains.mcp": "MCP services", "settings.doctor.domains.network": "Network and services", "settings.doctor.domains.permission": "System permissions", "settings.doctor.domains.provider": "Models and accounts", "settings.doctor.domains.runtime": "Tools and runtime", "settings.doctor.domains.storage": "Storage", "settings.doctor.empty.canceled_description": "Run the checks again when you are ready.", "settings.doctor.empty.canceled_title": "Checks canceled", "settings.doctor.empty.description": "Run a basic check or include network and service checks.", "settings.doctor.empty.failed_description": "The checks could not finish. Try the diagnosis again.", "settings.doctor.empty.failed_title": "Diagnosis failed", "settings.doctor.empty.title": "No diagnostic result yet", "settings.doctor.entry.title": "System diagnostics", "settings.doctor.error_category.auth": "Not signed in or the API key is invalid", "settings.doctor.error_category.content": "The response was blocked by a safety filter", "settings.doctor.error_category.context_length": "The prompt is too long", "settings.doctor.error_category.deprecated": "This feature is no longer available", "settings.doctor.error_category.knowledge": "The knowledge base request failed", "settings.doctor.error_category.mcp": "The MCP request failed", "settings.doctor.error_category.model": "The selected model is unavailable", "settings.doctor.error_category.network": "The network connection failed", "settings.doctor.error_category.ocr": "Text recognition failed", "settings.doctor.error_category.parse": "The response could not be parsed", "settings.doctor.error_category.payload": "The request is too large", "settings.doctor.error_category.permission": "Access was denied", "settings.doctor.error_category.proxy": "The proxy connection failed", "settings.doctor.error_category.quota": "Quota or balance is insufficient", "settings.doctor.error_category.rate_limit": "Too many requests", "settings.doctor.error_category.region": "Not available in this region", "settings.doctor.error_category.server": "The service is temporarily unavailable", "settings.doctor.error_category.stream": "The streamed response was interrupted", "settings.doctor.error_category.unknown": "The cause is unknown", "settings.doctor.evidence.consent_required": "Shown with permission", "settings.doctor.evidence.local_details": "Local details", "settings.doctor.evidence.local_only": "Only on this device", "settings.doctor.fixes.repair_boot_config": "Repair startup configuration", "settings.doctor.fixes.request_accessibility": "Request accessibility permission", "settings.doctor.fixes.request_screen_capture": "Request screen recording permission", "settings.doctor.fixes.restart_mcp": "Restart {{name}}", "settings.doctor.fixes.restart_mcp_generic": "Restart MCP service", "settings.doctor.messages.action_failed": "The requested action could not be completed.", "settings.doctor.messages.cancel_failed": "The checks could not be canceled.", "settings.doctor.messages.copied": "Diagnostic results copied.", "settings.doctor.messages.copy_failed": "Diagnostic results could not be copied.", "settings.doctor.messages.fix_completed": "The action completed. The result has been checked again.", "settings.doctor.messages.fix_failed": "The action did not complete. Review the latest result and try again.", "settings.doctor.messages.relaunch_required": "The change will take effect after Cherry Studio is relaunched.", "settings.doctor.messages.result_changed": "The result changed. Review the latest checks before trying again.", "settings.doctor.messages.run_failed": "System diagnostics could not start.", "settings.doctor.messages.stale": "Run the checks again before using an action.", "settings.doctor.panel_descriptions.checks": "Full checks rerun the basic checks and include network and service checks.", "settings.doctor.panel_descriptions.export": "Save selected diagnostic information as a local ZIP file.", "settings.doctor.panel_descriptions.report": "Describe the problem. A diagnostic bundle will be included when you submit the report.", "settings.doctor.panels.export": "Export diagnostic bundle", "settings.doctor.panels.report": "Report a problem", "settings.doctor.report.check_description": "System diagnostics found an issue in {{title}} ({{checkId}}).", "settings.doctor.stale.description": "This diagnostic result is out of date.", "settings.doctor.status.error": "Could not check", "settings.doctor.status.fail": "Problem", "settings.doctor.status.pass": "Passed", "settings.doctor.status.pending": "Checking", "settings.doctor.status.skip": "Skipped", "settings.doctor.status.warn": "Needs attention", "settings.doctor.summary.basic_healthy": "No anomalies found in basic checks", "settings.doctor.summary.fixed": "Fixed: {{count}}", "settings.doctor.summary.needs_attention": "Needs attention: {{count}}", "settings.doctor.summary.progress": "{{completed}} of {{total}} completed", "settings.doctor.summary.running_basic": "Running quick basic checks…", "settings.doctor.summary.running_full": "Running full checks, including network and services…", "settings.doctor.title": "System diagnostics", "settings.fetch.allow_private_network": "Allow fetching local network addresses", "settings.fetch.allow_private_network_tip": "Lets web fetch tools reach localhost and private network addresses. Turn this off if you do not want models to read services on your own machine or LAN.", "settings.font_size.title": "Message font size", "settings.general.auto_check_update.title": "Auto Update", "settings.general.avatar.builtin": "Builtin avatar", "settings.general.avatar.reset": "Reset avatar", "settings.general.backup.button": "Backup", "settings.general.backup.title": "Data Backup and Recovery", "settings.general.commit_attribution.description": "Let agents add Claude Code attribution to the git commits and pull requests they create. Turn off to hide it.", "settings.general.commit_attribution.title": "Commit attribution", "settings.general.common.menu.presentation_mode.cherry": "Cherry", "settings.general.common.menu.presentation_mode.native": "Native", "settings.general.common.menu.presentation_mode.restart.content": "Changing the menu style requires restarting the app to take effect. Do you want to restart now?", "settings.general.common.menu.presentation_mode.restart.title": "Restart Required", "settings.general.common.menu.presentation_mode.title": "Context menu style", "settings.general.common.sections.display_language": "Display & Language", "settings.general.common.title": "General", "settings.general.emoji_picker": "Emoji Picker", "settings.general.image_upload": "Image Upload", "settings.general.label": "General Settings", "settings.general.restore.button": "Restore", "settings.general.retry.enabled": "Enable retry", "settings.general.sections.agent": "Agent behavior", "settings.general.sections.developer": "Developer options", "settings.general.sections.network": "Network connection", "settings.general.sections.retry": "Model call retry", "settings.general.sections.runtime": "Runtime and performance", "settings.general.sections.startup": "Startup and tray", "settings.general.spell_check.label": "Spell Check", "settings.general.spell_check.languages": "Use spell check for", "settings.general.test_plan.beta_version": "Beta Version (Beta)", "settings.general.test_plan.beta_version_tooltip": "Features may change at any time, bugs are more, upgrade quickly", "settings.general.test_plan.rc_version": "Preview Version (RC)", "settings.general.test_plan.rc_version_tooltip": "Close to stable version, features are basically stable, bugs are few", "settings.general.test_plan.title": "Test Plan", "settings.general.test_plan.tooltip": "Participate in the test plan to experience the latest features faster, but also brings more risks, please backup your data in advance", "settings.general.test_plan.version_channel_not_match": "Preview and test version switching will take effect after the next stable version is released", "settings.general.title": "General Settings", "settings.general.user_name.label": "User Name", "settings.general.user_name.placeholder": "Enter your name", "settings.hardware_acceleration.confirm.content_disable": "Disabling hardware acceleration requires restarting the app to take effect. Do you want to restart now?", "settings.hardware_acceleration.confirm.content_enable": "Enabling hardware acceleration requires restarting the app to take effect. Do you want to restart now?", "settings.hardware_acceleration.confirm.title": "Restart Required", "settings.hardware_acceleration.title": "Disable Hardware Acceleration", "settings.input.auto_translate_with_space": "Quickly translate with 3 spaces", "settings.input.show_translate_confirm": "Show translation confirmation dialog", "settings.input.target_language.label": "Target language", "settings.launch.onboot": "Start Automatically on Boot", "settings.launch.title": "Launch", "settings.launch.totray": "Minimize to Tray on Launch", "settings.math.engine.label": "Math engine", "settings.math.single_dollar.label": "Enable $...$", "settings.math.single_dollar.tip": "Render math equations quoted by single dollar signs $...$. Default is enabled.", "settings.math.title": "Math Settings", "settings.mcp.addError": "Failed to add server", "settings.mcp.addServer.advanced": "Advanced", "settings.mcp.addServer.create": "Quick Create", "settings.mcp.addServer.createDescription": "Fill in the connection details to create the server; everything else can be adjusted later.", "settings.mcp.addServer.importFrom.connectionFailed": "Connection failed", "settings.mcp.addServer.importFrom.dxt": "Import DXT Package", "settings.mcp.addServer.importFrom.dxtFile": "DXT Package File", "settings.mcp.addServer.importFrom.dxtHelp": "Select a .dxt file containing an MCP server package", "settings.mcp.addServer.importFrom.dxtProcessFailed": "Failed to process DXT file", "settings.mcp.addServer.importFrom.invalid": "Invalid input, please check JSON format", "settings.mcp.addServer.importFrom.json": "Import from JSON", "settings.mcp.addServer.importFrom.mcpb": "Import MCPB Bundle", "settings.mcp.addServer.importFrom.mcpbFile": "MCPB Bundle File", "settings.mcp.addServer.importFrom.mcpbHelp": "Select a .mcpb file containing an MCP server bundle", "settings.mcp.addServer.importFrom.mcpbProcessFailed": "Failed to process MCPB file", "settings.mcp.addServer.importFrom.nameExists": "Server already exists: {{name}}", "settings.mcp.addServer.importFrom.noDxtFile": "Please select a DXT file", "settings.mcp.addServer.importFrom.noMcpbFile": "Please select an MCPB file", "settings.mcp.addServer.importFrom.placeholder": "Paste MCP server JSON config", "settings.mcp.addServer.importFrom.selectDxtFile": "Select DXT File", "settings.mcp.addServer.importFrom.selectMcpbFile": "Select MCPB File", "settings.mcp.addServer.importFrom.tooltip": "Please copy the configuration JSON (prioritizing\n NPX or UVX configurations) from the MCP Servers introduction page and paste it into the input box.", "settings.mcp.addSuccess": "Server added successfully", "settings.mcp.allServers": "MCP Servers", "settings.mcp.args": "Arguments", "settings.mcp.argsTooltip": "Each argument on a new line", "settings.mcp.baseUrlTooltip": "Remote server base URL", "settings.mcp.builtinServers": "Builtin Servers", "settings.mcp.builtinServersDescriptions.brave_search": "An MCP server implementation integrating the Brave Search API, providing both web and local search functionalities. Requires configuring the BRAVE_API_KEY environment variable", "settings.mcp.builtinServersDescriptions.browser": "Browse pages with snapshots, click and type into elements, navigate tabs, and handle dialogs. Runs in the background by default.", "settings.mcp.builtinServersDescriptions.didi_mcp": "DiDi MCP server providing ride-hailing services including map search, price estimation, order management, and driver tracking. Only available in Mainland China. Requires configuring the DIDI_API_KEY environment variable", "settings.mcp.builtinServersDescriptions.dify_knowledge": "Dify's MCP server implementation provides a simple API to interact with Dify. Requires configuring the Dify Key", "settings.mcp.builtinServersDescriptions.fetch": "MCP server for retrieving URL web content", "settings.mcp.builtinServersDescriptions.filesystem": "A Node.js server implementing the Model Context Protocol (MCP) for file system operations. Requires configuration of directories allowed for access.", "settings.mcp.builtinServersDescriptions.flomo": "Connect to flomo to quickly capture notes and ideas via AI. Requires flomo account authorization.", "settings.mcp.builtinServersDescriptions.mcp_auto_install": "Automatically install MCP service (beta)", "settings.mcp.builtinServersDescriptions.memory": "Persistent memory implementation based on a local knowledge graph. This enables the model to remember user-related information across different conversations. Requires configuring the MEMORY_FILE_PATH environment variable.", "settings.mcp.builtinServersDescriptions.no": "No description", "settings.mcp.builtinServersDescriptions.nowledge_mem": "Requires Nowledge Mem app running locally. Keeps AI chats, tools, notes, agents, and files in private memory on your computer. Download from https://mem.nowledge.co/", "settings.mcp.builtinServersDescriptions.python": "Execute Python code in a secure sandbox environment. Run Python with Pyodide, supporting most standard libraries and scientific computing packages", "settings.mcp.builtinServersDescriptions.qveris": "Connect to QVeris to discover, inspect, and call AI-agent capabilities. Requires configuring the QVERIS_API_KEY environment variable.", "settings.mcp.builtinServersDescriptions.sequentialthinking": "A MCP server implementation that provides tools for dynamic and reflective problem solving through structured thinking processes", "settings.mcp.command": "Command", "settings.mcp.copyLogs": "Copy logs", "settings.mcp.customRegistryPlaceholder": "Enter private registry URL, e.g.: https://npm.company.com", "settings.mcp.deleteError": "Failed to delete server", "settings.mcp.deleteServer": "Delete Server", "settings.mcp.deleteServerConfirm": "Are you sure you want to delete this server?", "settings.mcp.deleteSuccess": "Server deleted successfully", "settings.mcp.description": "Description", "settings.mcp.discover": "Discover", "settings.mcp.env": "Environment Variables", "settings.mcp.envTooltip": "Format: KEY=value, one per line", "settings.mcp.fetch.button": "Fetch Servers", "settings.mcp.fetch.success": "Successfully fetched MCP servers", "settings.mcp.filter.label": "Filter", "settings.mcp.findMore": "Find More MCP", "settings.mcp.headers": "Headers", "settings.mcp.headersTooltip": "Custom headers for HTTP requests", "settings.mcp.install": "Install", "settings.mcp.instructions.empty": "No instructions are available from the current connection.", "settings.mcp.instructions.source": "Provided by {{name}}. This guidance does not grant permissions or activate skills.", "settings.mcp.instructions.title": "Server instructions", "settings.mcp.instructions.truncated": "These instructions exceed the length limit. Only the displayed excerpt is sent to the model.", "settings.mcp.interaction.elicitation.description": "The MCP server requests additional input.", "settings.mcp.interaction.elicitation.title": "MCP server requests input", "settings.mcp.interaction.roots.description": "The MCP server requests access to the listed workspace roots.", "settings.mcp.interaction.roots.title": "Allow MCP workspace access?", "settings.mcp.interaction.sampling.description": "The MCP server requests a restricted, non-streaming model generation without tools.", "settings.mcp.interaction.sampling.title": "Allow MCP model sampling?", "settings.mcp.interaction.url.instructions": "Check the address before opening it. Complete the requested steps in your browser, then confirm here. Opening the page alone does not complete authorization.", "settings.mcp.logs": "Logs", "settings.mcp.logsHint": "Logs from the MCP server process", "settings.mcp.longRunning": "Long Running Mode", "settings.mcp.longRunningTooltip": "When enabled, the server supports long-running tasks. When receiving progress notifications, the timeout will be reset and the maximum execution time will be extended to 10 minutes.", "settings.mcp.marketplaces": "Marketplaces", "settings.mcp.more.awesome": "Curated MCP Server List", "settings.mcp.more.composio": "Composio MCP Development Tools", "settings.mcp.more.glama": "Glama MCP Server Directory", "settings.mcp.more.higress": "Higress MCP Server", "settings.mcp.more.mcpso": "MCP Server Discovery Platform", "settings.mcp.more.mcpworld": "Baidu MCP Aggregation Platform", "settings.mcp.more.modelscope": "ModelScope Community MCP Server", "settings.mcp.more.official": "Official MCP Server Collection", "settings.mcp.more.pulsemcp": "Pulse MCP Server", "settings.mcp.more.smithery": "Smithery MCP Tools", "settings.mcp.more.zhipu": "Curated MCP, Fast Integration", "settings.mcp.name": "Name", "settings.mcp.newServer": "MCP Server", "settings.mcp.noDescriptionAvailable": "No description available", "settings.mcp.noLogs": "No logs yet", "settings.mcp.noServers": "No servers configured", "settings.mcp.notInstalled": "Not installed", "settings.mcp.npx_list.no_packages": "No packages found", "settings.mcp.npx_list.npm": "NPM", "settings.mcp.npx_list.scope_placeholder": "Enter npm scope (e.g. @your-org)", "settings.mcp.npx_list.scope_required": "Please enter npm scope", "settings.mcp.npx_list.search_error": "Search error", "settings.mcp.npx_list.usage": "Usage", "settings.mcp.observation.closed": "Live updates stopped; refresh manually", "settings.mcp.observation.reconnecting": "Reconnecting live updates…", "settings.mcp.observation.subscribed": "Live updates enabled", "settings.mcp.observation.unsupported": "Live updates unavailable; refresh manually", "settings.mcp.prompts.availablePrompts": "Available Prompts", "settings.mcp.prompts.noPromptsAvailable": "No prompts available", "settings.mcp.protocolInstall.title": "Install MCP", "settings.mcp.protocolInstallWarning.message": "This MCP was installed from an external source via protocol. Running unknown tools may harm your computer.", "settings.mcp.protocolInstallWarning.run": "Run", "settings.mcp.protocolInstallWarning.title": "Run external MCP?", "settings.mcp.providerNotFound": "MCP provider not found", "settings.mcp.providers": "Providers", "settings.mcp.qveris.get_api_key": "Get API Key", "settings.mcp.qveris.missing_api_key": "QVeris requires an API key. Register or sign in to get an API key, then enter it as QVERIS_API_KEY.", "settings.mcp.registry": "Package Registry", "settings.mcp.registryDefault": "Default", "settings.mcp.registryOptions.custom": "Custom", "settings.mcp.registryOptions.npmTaobao": "Taobao NPM Mirror", "settings.mcp.registryOptions.pipAliyun": "Aliyun", "settings.mcp.registryOptions.pipHuawei": "Huawei Cloud", "settings.mcp.registryOptions.pipTencent": "Tencent Cloud", "settings.mcp.registryOptions.pipTsinghua": "Tsinghua", "settings.mcp.registryOptions.pipUstc": "USTC", "settings.mcp.registryTooltip": "Choose the registry for package installation to resolve network issues with the default registry.", "settings.mcp.requiresConfig": "Requires Configuration", "settings.mcp.resources.availableResources": "Available Resources", "settings.mcp.resources.blob": "Blob", "settings.mcp.resources.blobInvisible": "Blob Invisible", "settings.mcp.resources.mimeType": "MIME Type", "settings.mcp.resources.noResourcesAvailable": "No resources available", "settings.mcp.resources.size": "Size", "settings.mcp.resources.text": "Text", "settings.mcp.runtimeStatus.authorizing": "Waiting for authorization", "settings.mcp.runtimeStatus.connected": "Connected", "settings.mcp.runtimeStatus.connecting": "Connecting", "settings.mcp.runtimeStatus.disabled": "Disabled", "settings.mcp.runtimeStatus.error": "Error", "settings.mcp.runtimeStatus.unavailable": "Unavailable", "settings.mcp.search.placeholder": "Search MCP servers...", "settings.mcp.search.tooltip": "Search MCP servers", "settings.mcp.searchNpx": "Search MCP", "settings.mcp.servers": "MCP Servers", "settings.mcp.shortTitle": "MCP", "settings.mcp.sse": "Server-Sent Events (sse)", "settings.mcp.startError": "Start failed", "settings.mcp.stdio": "Standard Input/Output (stdio)", "settings.mcp.streamableHttp": "Streamable HTTP (streamableHttp)", "settings.mcp.sync.error": "Sync MCP Servers error", "settings.mcp.sync.noServersAvailable": "No MCP servers available", "settings.mcp.sync.success": "Sync MCP Servers successful", "settings.mcp.sync.tokenPlaceholder": "Enter API token here", "settings.mcp.sync.tokenRequired": "API Token is required", "settings.mcp.sync.unauthorized": "Sync Unauthorized", "settings.mcp.system": "System", "settings.mcp.tabs.description": "Description", "settings.mcp.tabs.general": "General", "settings.mcp.tabs.prompts": "Prompts", "settings.mcp.tabs.resources": "Resources", "settings.mcp.tabs.tools": "Tools", "settings.mcp.templates.title": "Resource templates", "settings.mcp.timeout": "Timeout", "settings.mcp.timeoutTooltip": "Timeout in seconds for requests to this server, default is 60 seconds", "settings.mcp.title": "MCP Servers", "settings.mcp.tools.autoApprove.label": "Auto Approve", "settings.mcp.tools.autoApprove.tooltip.disabled": "Tool will require manual approval before running", "settings.mcp.tools.autoApprove.tooltip.enabled": "Tool will run automatically without confirmation", "settings.mcp.tools.autoApprove.tooltip.howToEnable": "Enable the tool first to use auto-approve", "settings.mcp.tools.availableTools": "Available Tools", "settings.mcp.tools.enable": "Enable Tool", "settings.mcp.tools.inputSchema.enum.allowedValues": "Allowed Values", "settings.mcp.tools.inputSchema.label": "Input Schema", "settings.mcp.tools.noToolsAvailable": "No tools available", "settings.mcp.type": "Type", "settings.mcp.types.inMemory": "Built-in", "settings.mcp.types.sse": "SSE", "settings.mcp.types.stdio": "STDIO", "settings.mcp.types.streamableHttp": "Streamable HTTP", "settings.mcp.updateError": "Failed to update server", "settings.mcp.updateSuccess": "Server updated successfully", "settings.mcp.url": "URL", "settings.menuGroups.automation": "Efficiency", "settings.menuGroups.capabilities": "Tools", "settings.menuGroups.personal": "Preferences", "settings.menuGroups.quickAccess": "Quick Access", "settings.menuGroups.system": "System", "settings.messages.grid_popover_trigger.click": "Click to display", "settings.messages.grid_popover_trigger.hover": "Hover to display", "settings.messages.grid_popover_trigger.label": "Grid detail trigger", "settings.messages.input.confirm_delete_message": "Confirm before deleting messages", "settings.messages.input.enable_quick_triggers": "Enable / to open the input quick panel", "settings.messages.input.newline_shortcuts": "Line break shortcut", "settings.messages.input.paste_long_text_as_file": "Paste long text as file", "settings.messages.input.paste_long_text_threshold": "Paste long text length", "settings.messages.input.send_shortcuts": "Send shortcuts", "settings.messages.input.show_estimated_tokens": "Show estimated tokens", "settings.messages.input.steer_shortcuts": "Steer shortcut", "settings.messages.input.steer_shortcuts_hint": "While an Agent is running, this sends your message into the current turn right away to steer it; the send shortcut queues it until the turn ends.", "settings.messages.input.title": "Input Settings", "settings.messages.layout.conversation": "Conversation view", "settings.messages.layout.work": "Work view", "settings.messages.markdown_rendering_input_message": "Markdown render input message", "settings.messages.navigation.anchor": "Message Anchor", "settings.messages.navigation.buttons": "Navigation Buttons", "settings.messages.navigation.label": "Navigation bar", "settings.messages.navigation.none": "None", "settings.messages.show_message_outline": "Show message outline", "settings.messages.title": "Message Settings", "settings.messages.use_serif_font": "Use serif font", "settings.messages.wide_mode": "Wide layout mode", "settings.miniApps.cache_change_notice": "Changes will take effect when the number of open mini apps reaches the set value", "settings.miniApps.cache_description": "Set the maximum number of active mini apps to keep in memory", "settings.miniApps.cache_title": "Mini App Cache Limit", "settings.miniApps.check_updates_on_open.description": "Checks an installed mini app for updates each time you open it; nothing is applied without your confirmation", "settings.miniApps.check_updates_on_open.title": "Check for updates when opening", "settings.miniApps.custom.edit_title": "Edit Custom Mini App", "settings.miniApps.custom.logo_file": "Upload Logo File", "settings.miniApps.custom.logo_upload_error": "Failed to upload logo.", "settings.miniApps.custom.logo_upload_label": "Upload Logo", "settings.miniApps.custom.name": "Name", "settings.miniApps.custom.name_placeholder": "Enter name", "settings.miniApps.custom.remove_confirm_description": "Delete custom mini app \"{{name}}\"? This action cannot be undone.", "settings.miniApps.custom.remove_confirm_title": "Delete custom mini app?", "settings.miniApps.custom.remove_error": "Failed to remove custom mini app.", "settings.miniApps.custom.remove_success": "Custom mini app removed successfully.", "settings.miniApps.custom.save_error": "Failed to save custom mini app.", "settings.miniApps.custom.save_success": "Custom mini app saved successfully.", "settings.miniApps.custom.title": "Custom", "settings.miniApps.custom.url": "URL", "settings.miniApps.custom.url_invalid": "Enter a valid http, https, or file URL.", "settings.miniApps.custom.url_placeholder": "Enter URL", "settings.miniApps.disabled": "Hidden Mini Apps", "settings.miniApps.display_title": "Mini App Display Settings", "settings.miniApps.empty": "Click the hide icon on an app on the left and it will move here", "settings.miniApps.group.display": "Display management", "settings.miniApps.group.preferences": "Preferences", "settings.miniApps.hide_app": "Hide {{name}}", "settings.miniApps.open_link_external.description": "Opens new-window links in your default browser", "settings.miniApps.open_link_external.title": "Open new-window links in browser", "settings.miniApps.region.auto": "Auto detect", "settings.miniApps.region.cn": "China", "settings.miniApps.region.description": "Filtering unsupported mini-programs based on the region", "settings.miniApps.region.global": "Global", "settings.miniApps.region.title": "Mini Program filter", "settings.miniApps.reset_tooltip": "Reset to default", "settings.miniApps.show_app": "Show {{name}}", "settings.miniApps.visible": "Visible Mini Apps", "settings.model": "Default Model", "settings.models.add.add_model": "Add Model", "settings.models.add.capabilities.label": "Model Capabilities", "settings.models.add.context_window.label": "Context window", "settings.models.add.context_window.placeholder": "e.g. 128000", "settings.models.add.endpoint_type.label": "Endpoint Type", "settings.models.add.endpoint_type.placeholder": "Select endpoint type", "settings.models.add.endpoint_type.required": "Please select an endpoint type", "settings.models.add.endpoint_type.tooltip": "Select the API endpoint type format", "settings.models.add.group_name.label": "Group Name", "settings.models.add.group_name.placeholder": "e.g. ChatGPT", "settings.models.add.input_modalities.label": "Input Modalities", "settings.models.add.max_input_tokens.label": "Max input tokens", "settings.models.add.max_input_tokens.placeholder": "e.g. 128000", "settings.models.add.max_output_tokens.label": "Max output tokens", "settings.models.add.max_output_tokens.placeholder": "e.g. 65536", "settings.models.add.model_id.label": "Model ID", "settings.models.add.model_id.placeholder": "e.g. gpt-5.5", "settings.models.add.model_id.required": "Please enter the model ID", "settings.models.add.model_name.label": "Model Name", "settings.models.add.model_name.placeholder": "e.g. GPT-5.5", "settings.models.add.model_type.label": "Model Type", "settings.models.add.purpose.chat.description": "Use the provider's text API", "settings.models.add.purpose.chat.label": "Chat", "settings.models.add.purpose.chat_protocol": "Chat protocol", "settings.models.add.purpose.description": "Choose how this model is used", "settings.models.add.purpose.image_edit.description": "Accept an input image and return an edited image", "settings.models.add.purpose.image_edit.label": "Image editing", "settings.models.add.purpose.image_generation.description": "Generate images from a prompt", "settings.models.add.purpose.image_generation.label": "Image generation", "settings.models.add.purpose.label": "Model purpose", "settings.models.add.quick_presets": "Quick presets", "settings.models.add.supported_text_delta.label": "Support incremental text output", "settings.models.add.supported_text_delta.tooltip": "The model returns text incrementally, rather than all at once. Enabled by default, if the model does not support it, please disable this option", "settings.models.api_key": "API Key", "settings.models.base_url": "Base URL", "settings.models.bulk_disable": "Disable all", "settings.models.bulk_enable": "Enable all", "settings.models.check.all": "All", "settings.models.check.all_models_disclaimer": "Checking all models sends many real requests to the selected models and API keys, which may incur high charges in a short time. Confirm before starting. Image, video, audio generation, speech-to-text, and text-to-speech models are skipped.", "settings.models.check.button_caption": "Model Check", "settings.models.check.checking": "Checking…", "settings.models.check.concurrent_hint": "Models run concurrently; API keys for each model are always checked concurrently.", "settings.models.check.disclaimer": "Model Check sends real requests to the selected models and API keys. Requests may incur charges. Image, video, audio generation, speech-to-text, and text-to-speech models are skipped.", "settings.models.check.enable_concurrent": "Concurrent", "settings.models.check.failed": "Failed", "settings.models.check.failed_to_start": "Failed to start model check", "settings.models.check.generation_output_audio": "audio", "settings.models.check.generation_output_image": "an image", "settings.models.check.generation_output_video": "a video", "settings.models.check.key_scope": "Key(s)", "settings.models.check.keys_failed_count": "{{failed}}/{{total}} keys failed", "settings.models.check.latency": "{{latency}} ms", "settings.models.check.model_button_caption": "Check all models", "settings.models.check.model_scope": "Models to check", "settings.models.check.model_status_failed_one": "{{count}} model completely inaccessible", "settings.models.check.model_status_failed_other": "{{count}} models completely inaccessible", "settings.models.check.model_status_partial_one": "{{count}} model had inaccessible keys", "settings.models.check.model_status_partial_other": "{{count}} models had inaccessible keys", "settings.models.check.model_status_passed_one": "{{count}} model passed model checks", "settings.models.check.model_status_passed_other": "{{count}} models passed model checks", "settings.models.check.model_status_skipped_one": "{{count}} model skipped", "settings.models.check.model_status_skipped_other": "{{count}} models skipped", "settings.models.check.model_status_summary": "{{provider}}: {{summary}}", "settings.models.check.no_results": "No results", "settings.models.check.passed": "Passed", "settings.models.check.provider_auth": "Provider authentication", "settings.models.check.select_api_key": "Select the API key to use", "settings.models.check.single": "Single", "settings.models.check.skip_reason_generation_cost": "Checking this model would generate {{output}} and consume quota, so it is skipped by default.", "settings.models.check.skip_reason_unsupported_probe": "This model type does not have a low-cost model check yet, so it is skipped by default.", "settings.models.check.start": "Start", "settings.models.check.status_checking": "Checking…", "settings.models.check.status_skipped": "Skipped", "settings.models.check.timeout": "Timeout", "settings.models.check.timeout_unit": "s", "settings.models.check.title": "Model Check", "settings.models.check.toggle_key": "Toggle {{name}} enabled state", "settings.models.collapse_all": "Collapse all", "settings.models.context_management.compress_enabled": "Auto compress", "settings.models.context_management.compress_enabled_description": "Summarize older turns automatically when nearing the context window. Assistants can override this", "settings.models.context_management.compress_model": "Compression model", "settings.models.context_management.compress_model_follow": "Follow current model", "settings.models.context_management.compress_threshold": "Compression trigger threshold", "settings.models.context_management.compress_threshold_description": "Compress once the conversation passes this percentage of the available input context (the model context window minus the reserved output). Assistants can override this", "settings.models.context_management.enabled": "Enable context management", "settings.models.context_management.enabled_description": "Manage conversation context automatically: offload oversized tool outputs and compress history near the window limit. When off, nothing is managed and over-window requests fail", "settings.models.context_management.max_messages": "Recent messages kept", "settings.models.context_management.max_messages_description": "Send only the most recent messages; earlier ones are excluded from context. Leave empty for no limit. Assistants can override this", "settings.models.context_management.max_messages_unlimited": "Unlimited", "settings.models.context_management.scope_description": "Applies only to assistant conversations in Cherry Studio. Assistants can override these settings individually.", "settings.models.context_management.title": "Context Management", "settings.models.context_management.truncate_threshold": "Tool-output truncation threshold (chars)", "settings.models.context_management.truncate_threshold_description": "Tool outputs beyond this many characters are offloaded to a file and truncated; the model can read them back on demand. Assistants can override this", "settings.models.default_assistant_model": "Default Assistant Model", "settings.models.default_assistant_model_description": "Used when an assistant has no model.", "settings.models.docs": "Model docs", "settings.models.edit.classification_save_hint": "Settings may come from the model catalog. Changes are saved immediately. Preset input modalities matching the catalog continue to follow its updates; differing values are saved as overrides. Custom models save the displayed input modalities explicitly. Only enable inputs your provider supports.", "settings.models.empty": "Select a model", "settings.models.empty_hint": "Click Sync models above to add models.", "settings.models.enabled_models": "Enabled", "settings.models.expand_all": "Expand all", "settings.models.filter.label": "Filter models", "settings.models.filter.scroll_left": "Scroll model types left", "settings.models.filter.scroll_right": "Scroll model types right", "settings.models.list_title": "Models", "settings.models.manage.add_listed.label": "Add all models", "settings.models.manage.add_partial_failure": "Partial success: {{added}} model(s) added, {{failed}} failed", "settings.models.manage.add_success_enable_failed": "Models were added, but the provider could not be enabled.", "settings.models.manage.add_whole_group": "Add the whole group", "settings.models.manage.clean_stale_models": "Clean stale models", "settings.models.manage.clean_stale_success": "Cleaned {{count}} stale model(s)", "settings.models.manage.default_model_cannot_remove": "Default model can't be deleted.", "settings.models.manage.drawer_title": "Model management", "settings.models.manage.model_in_use_by_knowledge_base": "This model is used by a knowledge base and cannot be deleted.", "settings.models.manage.models_not_listed": "{{count}} model(s) could not be listed.", "settings.models.manage.operation_failed": "Model operation failed.", "settings.models.manage.remove_listed": "Remove all models", "settings.models.manage.remove_model": "Delete model", "settings.models.manage.remove_skipped_default_in_use": "Skipped {{count}} default model(s)", "settings.models.manage.remove_whole_group": "Delete group", "settings.models.manage.search_models_placeholder": "Search models…", "settings.models.manage.stale_badge": "Stale", "settings.models.manage.stale_filter": "Stale", "settings.models.manage.sync_apply_default_in_use": "Some models are in use as the default model and cannot be removed.", "settings.models.manage.sync_pull_failed": "Failed to pull models.", "settings.models.more_actions": "More model list actions", "settings.models.painting_model": "Painting Model", "settings.models.painting_model_description": "Model used for image generation", "settings.models.provider_id": "Provider ID", "settings.models.provider_key_add_confirm": "Do you want to add the API key for {{provider}}?", "settings.models.provider_key_add_failed_by_invalid_data": "Failed to add provider API key, data format error", "settings.models.provider_key_added": "Successfully added API key for {{provider}}", "settings.models.provider_key_already_exists": "{{provider}} already has this API key. It will not be added again.", "settings.models.provider_key_confirm_title": "Add {{provider}} API Key", "settings.models.provider_name": "Provider Name", "settings.models.quick_assistant_default_tag": "Default", "settings.models.quick_assistant_response_settings": "Response Settings", "settings.models.quick_assistant_selection": "Select Assistant", "settings.models.quick_assistant_usage_method": "Usage Method", "settings.models.quick_model.description": "Model used for simple tasks such as conversation naming and keyword extraction", "settings.models.quick_model.label": "Quick Model", "settings.models.quick_model.setting_title": "Quick model setup", "settings.models.quick_model.tooltip": "Choose a lightweight model and avoid reasoning models.", "settings.models.retry.backoff": "Exponential backoff", "settings.models.retry.description": "Retry chat, embedding, and rerank calls; chat can fall back to other models", "settings.models.retry.fallback_models": "Fallback models", "settings.models.retry.fallback_models_count": "{{count}} models selected", "settings.models.retry.fallback_models_description": "Models tried in order when the primary model fails", "settings.models.retry.max_attempts": "Max retry attempts", "settings.models.retry.tooltip": "Retryable errors retry the current model up to the configured limit. If it still fails, or the error is not retryable, fallback models are tried once each in order. With multiple API keys for the same model, 401/429 errors switch to the next key first. Retries and fallbacks only apply before content starts streaming.", "settings.models.toolbar.pull_short": "Sync models", "settings.models.topic_naming.auto": "Conversation Auto Naming", "settings.models.topic_naming.label": "Conversation naming", "settings.models.topic_naming.prompt": "Conversation Naming Prompt", "settings.models.translate_model": "Translate Model", "settings.models.translate_model_description": "Model used for translation service", "settings.models.use_assistant": "Use Assistant", "settings.models.use_model": "Default Model", "settings.moresetting.label": "More Settings", "settings.notification.assistant": "Conversation Completion Notifications", "settings.notification.backup": "Backup Message", "settings.notification.knowledge_embed": "KnowledgeBase Message", "settings.notification.mini_app": "Mini App Notifications (all apps)", "settings.notification.title": "Notifications", "settings.notification.update": "App Update", "settings.openai.title": "OpenAI Settings", "settings.power.prevent_sleep_when_busy": "Keep the system awake while tasks are running", "settings.privacy.enable_privacy_mode": "Anonymous reporting of errors and statistics", "settings.privacy.title": "Privacy Settings", "settings.profile.title": "Personal Information", "settings.prompts.add": "Add Prompt", "settings.prompts.binding.bind": "Bind prompt", "settings.prompts.binding.globalDescription": "Global prompts are available in every conversation and managed in Settings.", "settings.prompts.binding.manageTargets": "Manage targets for {{title}}", "settings.prompts.binding.noLinked": "No prompts linked", "settings.prompts.binding.noMore": "No more prompts available", "settings.prompts.binding.noTargets": "No targets available", "settings.prompts.binding.remove": "Remove prompt {{title}}", "settings.prompts.binding.search": "Search prompts", "settings.prompts.binding.searchTargets": "Search assistants or agents", "settings.prompts.binding.tabTitle": "Prompts", "settings.prompts.binding.targetCount": "{{count}} targets", "settings.prompts.binding.unassigned": "Not assigned", "settings.prompts.contentLabel": "Content", "settings.prompts.contentPlaceholder": "Enter prompt content", "settings.prompts.delete": "Delete Prompt", "settings.prompts.deleteConfirm": "This cannot be undone.", "settings.prompts.deleteGlobalConfirm": "This removes it from every context and cannot be undone.", "settings.prompts.deleteRestrictedConfirm": "This removes it from every linked context and cannot be undone.", "settings.prompts.deleteSharedConfirm": "This removes it from {{count}} linked contexts and cannot be undone.", "settings.prompts.edit": "Edit Prompt", "settings.prompts.errors.bindFailed": "Failed to link prompt", "settings.prompts.errors.createFailed": "Failed to create prompt", "settings.prompts.errors.deleteFailed": "Failed to delete prompt", "settings.prompts.errors.loadFailed": "Failed to load prompts", "settings.prompts.errors.reorderFailed": "Failed to reorder prompts", "settings.prompts.errors.unbindFailed": "Failed to unlink prompt", "settings.prompts.errors.updateFailed": "Failed to update prompt", "settings.prompts.manageCurrentAgent": "Manage Current Agent Prompts", "settings.prompts.manageCurrentAssistant": "Manage Current Assistant Prompts", "settings.prompts.manageGlobal": "Manage Global Prompts", "settings.prompts.noPrompts": "No prompts", "settings.prompts.reorder": "Drag to reorder {{title}}", "settings.prompts.searchPlaceholder": "Search prompt titles or content", "settings.prompts.title": "Prompts", "settings.prompts.titleLabel": "Title", "settings.prompts.titlePlaceholder": "Enter a title", "settings.prompts.variablePlaceholder": "${variable}", "settings.prompts.visibility.global.badge": "Global", "settings.prompts.visibility.global.label": "Use globally", "settings.prompts.visibility.makeGlobalConfirmDescription": "Making this prompt global keeps it available everywhere, but permanently removes its {{count}} context links and their ordering. Continue?", "settings.prompts.visibility.makeGlobalConfirmTitle": "Make prompt global?", "settings.prompts.visibility.restricted.badge": "Selected", "settings.provider.add.button_title": "Add Provider", "settings.provider.add.name.label": "Provider Name", "settings.provider.add.name.placeholder": "Example: OpenAI", "settings.provider.add.name.required": "Please enter the provider name", "settings.provider.add.title": "Add Provider", "settings.provider.add.type": "Provider Type", "settings.provider.anthropic_api_host": "Anthropic API Host", "settings.provider.anthropic_api_host_preview": "Anthropic preview: {{url}}", "settings.provider.anthropic_api_host_tooltip": "Use only when the provider offers a Claude-compatible base URL.", "settings.provider.api.key.check.latency": "Latency", "settings.provider.api.key.error.duplicate": "API key already exists", "settings.provider.api.key.error.empty": "API key cannot be empty", "settings.provider.api.key.list.open": "Open Management Interface", "settings.provider.api.key.list.title": "API Key Management", "settings.provider.api.key.new_key.placeholder": "Enter API key", "settings.provider.api.options.anthropic_cache.cache_last_n": "Cache Last N Messages", "settings.provider.api.options.anthropic_cache.cache_last_n_help": "Cache the last N conversation messages (excluding system messages)", "settings.provider.api.options.anthropic_cache.cache_system": "Cache System Message", "settings.provider.api.options.anthropic_cache.cache_system_help": "Whether to cache the system prompt", "settings.provider.api.options.anthropic_cache.cache_ttl": "Cache Duration", "settings.provider.api.options.anthropic_cache.cache_ttl_1h": "1 hour", "settings.provider.api.options.anthropic_cache.cache_ttl_5m": "5 minutes", "settings.provider.api.options.anthropic_cache.cache_ttl_help": "Keep prompt caches for 5 minutes or 1 hour. One-hour cache writes cost more.", "settings.provider.api.options.anthropic_cache.token_threshold": "Cache Token Threshold", "settings.provider.api.options.anthropic_cache.token_threshold_help": "Messages exceeding this token count will be cached. Set to 0 to disable caching.", "settings.provider.api.options.developer_role.help": "Does the provider support messages with role: \"developer\"?", "settings.provider.api.options.developer_role.label": "Support Developer Message", "settings.provider.api.options.enable_thinking.help": "Does the provider support controlling the reasoning of models like Qwen3 via the enable_thinking parameter?", "settings.provider.api.options.enable_thinking.label": "Support enable_thinking", "settings.provider.api.options.label": "API Settings", "settings.provider.api.options.reasoning_summary.help": "Send reasoning.summary to this Responses endpoint. Enable only when the server accepts this OpenAI parameter.", "settings.provider.api.options.reasoning_summary.label": "Support reasoning summary", "settings.provider.api.options.stream_options.help": "Does the provider support the stream_options parameter?", "settings.provider.api.options.stream_options.label": "Support stream_options", "settings.provider.api.url.preview": "Preview: {{url}}", "settings.provider.api.url.reset": "Reset", "settings.provider.api.url.tip": "Add # at the end to disable the automatically appended API version.", "settings.provider.api_host": "API Host", "settings.provider.api_host_drawer_hint": "Custom API request URL; leave empty when the catalog default applies.", "settings.provider.api_host_no_valid": "API address is invalid", "settings.provider.api_host_placeholder": "Not configured", "settings.provider.api_host_preview": "Preview: {{url}}", "settings.provider.api_host_tooltip": "Override only when your provider requires a custom OpenAI-compatible endpoint.", "settings.provider.api_key.copy": "Copy", "settings.provider.api_key.enabled_suffix": "enabled", "settings.provider.api_key.hide_key": "Hide key", "settings.provider.api_key.label": "API Key", "settings.provider.api_key.label_placeholder": "Label", "settings.provider.api_key.list_description": "Manage multiple API keys for this provider", "settings.provider.api_key.placeholder": "Enter API key", "settings.provider.api_key.save_failed": "Failed to save API keys", "settings.provider.api_key.show_key": "Show key", "settings.provider.api_key.tip": "Add one API key at a time", "settings.provider.api_key.unnamed": "API Key", "settings.provider.api_setup.add_key": "Add API key", "settings.provider.api_setup.add_model_manually": "Add model manually", "settings.provider.api_setup.back_to_models": "Back to model selection", "settings.provider.api_setup.check_failed": "The model request failed", "settings.provider.api_setup.continue_models": "Continue adding models", "settings.provider.api_setup.deselect_all": "Deselect all", "settings.provider.api_setup.done": "Done", "settings.provider.api_setup.edit_key": "Edit key", "settings.provider.api_setup.enable_failed": "The model check passed, but the provider could not be enabled", "settings.provider.api_setup.keys_placeholder": "Enter API key", "settings.provider.api_setup.manual_description": "Automatic checking is unavailable for the selected models. The models were added, but the provider remains off. Enable the provider manually after confirming the configuration is correct.", "settings.provider.api_setup.models_empty_hint": "Your API key is saved. Choose at least one model to finish setup.", "settings.provider.api_setup.models_title": "Choose models", "settings.provider.api_setup.next": "Next", "settings.provider.api_setup.no_models": "The provider returned no available models.", "settings.provider.api_setup.progress.add_models": "Add selected models", "settings.provider.api_setup.progress.check_model": "Verify model access", "settings.provider.api_setup.progress.check_model_named": "Verify {{model}}", "settings.provider.api_setup.progress.enable_provider": "Enable provider", "settings.provider.api_setup.save_and_close": "Save and close", "settings.provider.api_setup.select_model": "Select {{model}}", "settings.provider.api_setup.skip": "Skip", "settings.provider.api_setup.verify_and_enable": "Verify and enable", "settings.provider.api_version": "API Version", "settings.provider.aws-bedrock.access_key_id": "AWS Access Key ID", "settings.provider.aws-bedrock.access_key_id_help": "Your AWS Access Key ID for accessing AWS Bedrock services", "settings.provider.aws-bedrock.api_key": "Bedrock API Key", "settings.provider.aws-bedrock.api_key_help": "Your AWS Bedrock API Key for authentication", "settings.provider.aws-bedrock.auth_type": "Authentication Type", "settings.provider.aws-bedrock.auth_type_api_key": "Bedrock API Key", "settings.provider.aws-bedrock.auth_type_help": "Choose between IAM credentials or Bedrock API Key authentication", "settings.provider.aws-bedrock.auth_type_iam": "IAM Credentials", "settings.provider.aws-bedrock.description": "AWS Bedrock is Amazon's fully managed foundation model service that supports various advanced large language models", "settings.provider.aws-bedrock.region": "AWS Region", "settings.provider.aws-bedrock.region_help": "Your AWS service region, e.g., us-east-1", "settings.provider.aws-bedrock.region_required": "Enter an AWS region before saving", "settings.provider.aws-bedrock.secret_access_key": "AWS Secret Access Key", "settings.provider.aws-bedrock.secret_access_key_help": "Your AWS Secret Access Key, please keep it secure", "settings.provider.aws-bedrock.title": "AWS Bedrock Configuration", "settings.provider.azure.apiversion.tip": "The API version of Azure OpenAI, if you want to use Response API, please enter the v1 version", "settings.provider.balance": "Balance", "settings.provider.base_url.invalid": "Enter a valid HTTP or HTTPS URL", "settings.provider.base_url.label": "Base URL", "settings.provider.base_url.placeholder": "Base URL: https://example.com", "settings.provider.base_url.required": "Please enter the Base URL", "settings.provider.basic_auth.label": "HTTP authentication", "settings.provider.basic_auth.password.label": "Password", "settings.provider.basic_auth.password.tip": "Enter your password", "settings.provider.basic_auth.tip": "Applicable to instances deployed remotely (see the documentation). Currently, only the Basic scheme (RFC 7617) is supported.", "settings.provider.basic_auth.user_name.label": "Username", "settings.provider.basic_auth.user_name.tip": "Left empty to disable", "settings.provider.billing.add_period": "Add period", "settings.provider.billing.default_multiplier": "Default multiplier", "settings.provider.billing.description": "Configure local cost estimates for this provider group. Changes apply to future calls only.", "settings.provider.billing.end": "End time", "settings.provider.billing.hour": "Hour", "settings.provider.billing.invalid": "Enter a valid value.", "settings.provider.billing.invalid_schedule": "Enable time-based pricing to fix the invalid saved periods.", "settings.provider.billing.invalid_zone": "Select a valid UTC offset.", "settings.provider.billing.model": "Model", "settings.provider.billing.multiplier": "Multiplier", "settings.provider.billing.multiplier_help": "Replaces the default multiplier. 0 means free; unknown prices remain unpriced.", "settings.provider.billing.overlap": "Periods must not overlap.", "settings.provider.billing.period": "Period", "settings.provider.billing.preview": "Unit price preview", "settings.provider.billing.reported_first": "Provider-reported cost takes priority.", "settings.provider.billing.same_time": "Start and end must differ.", "settings.provider.billing.schedule": "Time-based pricing", "settings.provider.billing.start": "Start time", "settings.provider.billing.time_help": "Daily HH:00 intervals include the start and exclude the end. End before start crosses midnight. 00:00–24:00 covers the full day. Gaps use the default multiplier.", "settings.provider.billing.time_zone": "UTC offset", "settings.provider.billing.title": "Cost calculation", "settings.provider.billing.unpriced": "Unable to estimate", "settings.provider.bills": "Fee Bills", "settings.provider.charge": "Balance Recharge", "settings.provider.check": "Check", "settings.provider.check_all_keys": "Check All Keys", "settings.provider.check_multiple_keys": "Check Multiple API Keys", "settings.provider.cherry_cloud.logged_in": "Logged in", "settings.provider.cherry_cloud.login": "Login", "settings.provider.cherry_cloud.logout": "Log out", "settings.provider.cherry_cloud.logout_confirm_account": "Signed in as {{displayName}}", "settings.provider.cherry_cloud.logout_confirm_description": "You'll need to sign in again to keep using Cherry Cloud.", "settings.provider.cherry_cloud.logout_confirm_title": "Log out?", "settings.provider.cherry_cloud.logout_failed": "Could not log out. Please try again.", "settings.provider.cherry_cloud.sign_in_failed": "Sign-in failed. Please try again.", "settings.provider.cherry_cloud.signing_in": "Waiting for browser authorization…", "settings.provider.cherry_cloud.title": "Cherry Cloud", "settings.provider.cherry_cloud.upgrade_required": "Your Cherry Studio version is no longer supported. Please update Cherry Studio before signing in.", "settings.provider.cherryin.api_host.acceleration": "Acceleration domain", "settings.provider.cherryin.api_host.international": "International domain", "settings.provider.claude_code.agent_only_note": "The Claude Code provider is available to Agents only — it can't be used in chat or assistants.", "settings.provider.claude_code.description": "Sign in with your Claude subscription", "settings.provider.claude_code.description_detail": "This provider reuses the Claude Code CLI login (Claude Pro/Max) and is only available to Agents. Open a terminal and run `claude /login` to sign in.", "settings.provider.claude_code.launch_failed": "Failed to open the terminal. Run `claude /login` manually to sign in.", "settings.provider.claude_code.legal_link": "Legal & Compliance", "settings.provider.claude_code.logged_in": "Signed in to Claude Code", "settings.provider.claude_code.logged_in_detail": "Agents will use your Claude Code CLI subscription credentials.", "settings.provider.claude_code.open_terminal": "Open terminal to sign in", "settings.provider.claude_code.recheck": "Recheck", "settings.provider.codex.account": "Account: {{accountId}}", "settings.provider.codex.description": "Sign in with your ChatGPT subscription", "settings.provider.codex.description_detail": "This provider uses your ChatGPT Plus/Pro login (OAuth) to access OpenAI Codex models. Your browser will open to complete sign-in.", "settings.provider.codex.logged_in": "Signed in to OpenAI Codex", "settings.provider.codex.sign_in_button": "Sign in with ChatGPT", "settings.provider.codex.sign_in_failed": "Sign-in failed. Please try again.", "settings.provider.codex.sign_in_success": "Signed in to OpenAI Codex", "settings.provider.codex.signing_in": "Waiting for browser…", "settings.provider.copilot.add_request_header": "Add header", "settings.provider.copilot.auth_failed": "Github Copilot authentication failed.", "settings.provider.copilot.auth_success": "GitHub Copilot authentication successful.", "settings.provider.copilot.auth_success_title": "Certification successful.", "settings.provider.copilot.code_copied": "Authorization code automatically copied to clipboard", "settings.provider.copilot.code_failed": "Failed to obtain Device Code, please try again.", "settings.provider.copilot.code_generated_desc": "Please copy the device code into the browser link below.", "settings.provider.copilot.code_generated_title": "Obtain Device Code", "settings.provider.copilot.connect": "Connect to Github", "settings.provider.copilot.custom_headers": "Custom request header", "settings.provider.copilot.description": "Your GitHub account needs to subscribe to Copilot.", "settings.provider.copilot.description_detail": "GitHub Copilot is an AI-powered code assistant that requires a valid GitHub Copilot subscription to use", "settings.provider.copilot.expand": "Expand", "settings.provider.copilot.header_field_name": "Header", "settings.provider.copilot.header_field_value": "Value", "settings.provider.copilot.header_name_placeholder": "Header name", "settings.provider.copilot.header_value_placeholder": "Header value", "settings.provider.copilot.headers_description": "Custom request headers (JSON format)", "settings.provider.copilot.headers_json_placeholder": "{\n \"X-Custom-Header\": \"value\"\n}", "settings.provider.copilot.invalid_json": "JSON format error", "settings.provider.copilot.login": "Log in to Github", "settings.provider.copilot.logout": "Exit GitHub", "settings.provider.copilot.logout_failed": "Exit failed, please try again.", "settings.provider.copilot.logout_success": "Successfully logged out.", "settings.provider.copilot.model_setting": "Model settings", "settings.provider.copilot.open_verification_first": "Please click the link above to access the verification page.", "settings.provider.copilot.open_verification_page": "Open Authorization Page", "settings.provider.copilot.rate_limit": "Rate limiting", "settings.provider.copilot.start_auth": "Start Authorization", "settings.provider.copilot.step_authorize": "Open Authorization Page", "settings.provider.copilot.step_authorize_desc": "Complete authorization on GitHub", "settings.provider.copilot.step_authorize_detail": "Click the button below to open GitHub authorization page, then enter the copied authorization code", "settings.provider.copilot.step_connect": "Complete Connection", "settings.provider.copilot.step_connect_desc": "Confirm connection to GitHub", "settings.provider.copilot.step_connect_detail": "After completing authorization on GitHub page, click this button to complete the connection", "settings.provider.copilot.step_copy_code": "Copy Authorization Code", "settings.provider.copilot.step_copy_code_desc": "Copy device authorization code", "settings.provider.copilot.step_copy_code_detail": "Authorization code has been automatically copied, you can also copy it manually", "settings.provider.copilot.step_get_code": "Get Authorization Code", "settings.provider.copilot.step_get_code_desc": "Generate device authorization code", "settings.provider.copilot.toggle_headers_editor_json": "Switch to JSON editor", "settings.provider.copilot.toggle_headers_editor_list": "Switch to header list", "settings.provider.create_custom.endpoint_fields.default_chat": "Default", "settings.provider.create_custom.endpoint_fields.label": "Endpoint settings", "settings.provider.create_custom.endpoint_fields.more": "More options", "settings.provider.create_custom.endpoint_fields.more_configured": "{{count}} configured", "settings.provider.create_custom.endpoint_fields.set_default_chat": "Set as default", "settings.provider.create_custom.endpoint_fields.text_endpoint_required": "Configure at least one text endpoint", "settings.provider.create_custom.endpoint_fields.url_help": "Enter the API root URL to preview the final request path", "settings.provider.create_custom.preset_instance.description": "For Coding Plan services, multiple accounts, or project isolation; configure each Base URL and API key independently", "settings.provider.create_custom.preset_instance.empty": "No matching Provider presets", "settings.provider.create_custom.preset_instance.placeholder": "Create from a Provider preset…", "settings.provider.create_custom.preset_instance.search_placeholder": "Search Provider presets", "settings.provider.create_custom.preset_instance.title": "Start from a preset (optional)", "settings.provider.create_custom.request_preview": "Request path: {{path}}", "settings.provider.create_custom.title": "Add Custom Provider", "settings.provider.delete.content": "Are you sure you want to delete this provider?", "settings.provider.delete.header": "Delete {{key}}", "settings.provider.delete.title": "Delete Provider", "settings.provider.dmxapi.platform_enterprise": "ssvip.DMXAPI.com (Enterprise)", "settings.provider.dmxapi.platform_international": "www.DMXAPI.com (International)", "settings.provider.dmxapi.platform_official": "www.DMXAPI.cn (CNY)", "settings.provider.dmxapi.select_platform": "Select the platform", "settings.provider.docs_check": "Check", "settings.provider.docs_more_details": "for more details", "settings.provider.doubao.ark_api_docs": "Ark API docs", "settings.provider.doubao.ark_model_console": "Ark model console", "settings.provider.doubao.setup_guide": "Doubao models in Cherry Studio are served through Volcengine Ark. There is no separate Doubao API — use an Ark API key and your model endpoint IDs from the Ark console.", "settings.provider.doubao.setup_guide_detail": "Sign in to Volcengine Ark, create an API key, and enable the Doubao models you need. Use each model's inference endpoint ID as the model name in Cherry Studio (add models manually when the catalog list is empty). Cherry Studio sends requests to https://ark.cn-beijing.volces.com/api/v3/ using Chat Completions or Responses, depending on the model.", "settings.provider.duplicate.add_another": "Add {{name}} instance", "settings.provider.duplicate.drawer_title": "Add {{name}} instance", "settings.provider.duplicate.fill_after_create": "Authentication fields can be filled after create", "settings.provider.duplicate.menu_label": "Add instance", "settings.provider.enable_failed_after_connection": "Connection succeeded, but the provider could not be enabled.", "settings.provider.filter.agent": "Agent Supported", "settings.provider.filter.all": "All Providers", "settings.provider.filter.disabled": "Disabled Only", "settings.provider.filter.enabled": "Enabled Only", "settings.provider.filter.label": "Filter providers", "settings.provider.filter_agent": "Filter Agent Supported Providers", "settings.provider.get_api_key": "Get API Key", "settings.provider.grok_cli.description": "Sign in with your SuperGrok subscription", "settings.provider.grok_cli.description_detail": "This provider uses your xAI SuperGrok login (OAuth) to access Grok CLI models (Grok Build, Composer). Your browser will open to complete sign-in.", "settings.provider.grok_cli.logged_in": "Signed in to Grok CLI", "settings.provider.grok_cli.sign_in_button": "Sign in with xAI", "settings.provider.grok_cli.sign_in_failed": "Sign-in failed. Please try again.", "settings.provider.grok_cli.sign_in_success": "Signed in to Grok CLI", "settings.provider.grok_cli.signing_in": "Waiting for browser…", "settings.provider.image_endpoints.image_edit_base_url.help": "Used for /images/edits; leave blank to use the default chat endpoint Base URL", "settings.provider.image_endpoints.image_edit_base_url.label": "Image Edit Base URL", "settings.provider.image_endpoints.image_generation_base_url.help": "Used for /images/generations; leave blank to use the default chat endpoint Base URL", "settings.provider.image_endpoints.image_generation_base_url.label": "Image Generation Base URL", "settings.provider.logo_upload_failed": "Failed to process the selected image", "settings.provider.misc": "Other", "settings.provider.more_endpoints.add": "Add Endpoint", "settings.provider.more_endpoints.anthropic": "Anthropic", "settings.provider.more_endpoints.gemini": "Gemini", "settings.provider.more_endpoints.openai_chat": "OpenAI", "settings.provider.more_endpoints.openai_responses": "OpenAI Responses", "settings.provider.more_endpoints.toggle": "More Endpoints", "settings.provider.no_models_for_check": "No models available for checking (e.g. chat models)", "settings.provider.not_checked": "Not Checked", "settings.provider.notes.markdown_editor_default_value": "Preview area", "settings.provider.notes.placeholder": "Enter Markdown content...", "settings.provider.notes.title": "Model Notes", "settings.provider.oauth.balance": "Balance", "settings.provider.oauth.balance_error": "Failed to fetch balance", "settings.provider.oauth.button": "Login with {{provider}}", "settings.provider.oauth.cherryIn.description": "Login to CherryIN using OAuth 2.0", "settings.provider.oauth.cherryIn.logged_in": "Logged in via OAuth", "settings.provider.oauth.cherryIn.login_button": "Authorize with CherryIN", "settings.provider.oauth.cherryIn.logout_button": "Logout", "settings.provider.oauth.cherryIn.not_logged_in": "Not logged in", "settings.provider.oauth.cherryIn.register_account": "Create account", "settings.provider.oauth.cherryIn.service_attribution": "This service is provided by open.cherryin.ai", "settings.provider.oauth.cherryIn.tagline": "After you sign in, you can use all model services", "settings.provider.oauth.cherryIn.title": "OAuth Login", "settings.provider.oauth.cherryIn.use_api_key": "Use API key instead", "settings.provider.oauth.connect": "Connect {{provider}}", "settings.provider.oauth.description": "This service is provided by {{provider}}", "settings.provider.oauth.error": "Authentication failed", "settings.provider.oauth.logged_in": "Logged in", "settings.provider.oauth.logout": "Logout", "settings.provider.oauth.logout_confirm": "Are you sure you want to logout?", "settings.provider.oauth.logout_success": "Successfully logged out", "settings.provider.oauth.logout_warning": "Logged out locally, but server token revocation may have failed", "settings.provider.oauth.official_website": "Official Website", "settings.provider.oauth.provided_by": "Provided by", "settings.provider.oauth.provided_by_suffix": "", "settings.provider.oauth.requests": "Requests", "settings.provider.oauth.topup": "Top Up", "settings.provider.oauth.usage_title": "Usage", "settings.provider.oauth.usage_unit": "tokens", "settings.provider.remove_duplicate_keys": "Remove Duplicate Keys", "settings.provider.remove_invalid_keys": "Remove Invalid Keys", "settings.provider.reorder_failed": "Failed to reorder providers", "settings.provider.request_configuration": "Request configuration", "settings.provider.request_configuration_tooltip": "Configure API Host and custom request headers", "settings.provider.save_failed": "Failed to save provider settings", "settings.provider.search": "Search Providers...", "settings.provider.search_placeholder": "Search model id or name", "settings.provider.section.account": "Account", "settings.provider.section.configuration": "Configuration", "settings.provider.title": "Model Provider", "settings.provider.vertex_ai.api_host_help": "The API host for Vertex AI, not recommended to fill in, generally applicable to reverse proxy", "settings.provider.vertex_ai.documentation": "View official documentation for more configuration details:", "settings.provider.vertex_ai.learn_more": "Learn More", "settings.provider.vertex_ai.location": "Location", "settings.provider.vertex_ai.location_help": "Vertex AI service location, e.g., us-central1. This field is not read from the Service Account JSON and must be entered manually.", "settings.provider.vertex_ai.location_placeholder": "Select Vertex AI location", "settings.provider.vertex_ai.project_id": "Project ID", "settings.provider.vertex_ai.project_id_help": "Your Google Cloud project ID", "settings.provider.vertex_ai.project_id_placeholder": "your-google-cloud-project-id", "settings.provider.vertex_ai.select_location": "Select location", "settings.provider.vertex_ai.service_account.auth_success": "Service Account authenticated successfully", "settings.provider.vertex_ai.service_account.client_email": "Client Email", "settings.provider.vertex_ai.service_account.client_email_help": "The client_email field from the JSON key file downloaded from Google Cloud Console", "settings.provider.vertex_ai.service_account.client_email_placeholder": "Enter Service Account client email", "settings.provider.vertex_ai.service_account.description": "Use Service Account for authentication, suitable for environments where ADC is not available", "settings.provider.vertex_ai.service_account.incomplete_config": "Please complete all required Vertex AI settings first", "settings.provider.vertex_ai.service_account.json_input": "Service Account JSON", "settings.provider.vertex_ai.service_account.json_input_help": "Paste the complete JSON key content. After parsing, only project_id, client_email, and private_key are saved, and the raw JSON is cleared.", "settings.provider.vertex_ai.service_account.json_input_placeholder": "Paste the complete Service Account JSON key content", "settings.provider.vertex_ai.service_account.json_parse_error": "Failed to parse Service Account JSON. Please confirm the format is correct.", "settings.provider.vertex_ai.service_account.json_parse_success": "Service Account JSON parsed", "settings.provider.vertex_ai.service_account.private_key": "Private Key", "settings.provider.vertex_ai.service_account.private_key_help": "The private_key field from the JSON key file downloaded from Google Cloud Console", "settings.provider.vertex_ai.service_account.private_key_placeholder": "Enter Service Account private key", "settings.provider.vertex_ai.service_account.title": "Service Account Configuration", "settings.provider.vertex_ai.service_account.toggle_client_email_visibility": "Toggle client email visibility", "settings.provider.vertex_ai.service_account.toggle_private_key_visibility": "Toggle private key visibility", "settings.provider.vertex_ai.service_account.toggle_project_id_visibility": "Toggle project ID visibility", "settings.proxy.address": "Proxy Address", "settings.proxy.bypass": "Bypass Rules", "settings.proxy.mode.custom": "Custom Proxy", "settings.proxy.mode.none": "No Proxy", "settings.proxy.mode.system": "System Proxy", "settings.proxy.mode.title": "Proxy Mode", "settings.proxy.tip": "Supports wildcard matching (*.test.com, 192.168.0.0/16)", "settings.quickAssistant.click_tray_to_show": "Click the tray icon to start", "settings.quickAssistant.enable_quick_assistant": "Enable Quick Assistant", "settings.quickAssistant.read_clipboard_at_startup": "Read clipboard at startup", "settings.quickAssistant.title": "Quick Assistant", "settings.quickAssistant.use_shortcut_to_show": "Right-click the tray icon or use shortcuts to start", "settings.quickPanel.back": "Back", "settings.quickPanel.close": "Close", "settings.quickPanel.confirm": "Confirm", "settings.quickPanel.mcp.agentEmpty": "No MCP servers configured for this agent", "settings.quickPanel.mcp.assistantEmpty": "No MCP servers configured for this assistant", "settings.quickPanel.mcp.autoEmpty": "No enabled MCP servers", "settings.quickPanel.mcp.description": "View current MCP server status", "settings.quickPanel.mcp.disabled": "MCP is disabled for this assistant", "settings.quickPanel.mcp.manageCurrentAgent": "Manage Current Agent MCP Servers", "settings.quickPanel.mcp.manageCurrentAssistant": "Manage Current Assistant MCP Servers", "settings.quickPanel.mcp.manageGlobal": "Manage Global MCP Servers", "settings.quickPanel.multiple": "Multiple Select", "settings.quickPanel.noResult": "No matching items", "settings.quickPanel.page": "Page", "settings.quickPanel.scope.currentAgent": "Current Agent", "settings.quickPanel.scope.currentAssistant": "Current Assistant", "settings.quickPanel.scope.global": "Global", "settings.quickPanel.select": "Select", "settings.quickPanel.title": "Input Quick Panel", "settings.scheduledTasks.agentCreate": "Create with Agent", "settings.scheduledTasks.allAgents": "All Agents", "settings.scheduledTasks.allStatuses": "All statuses", "settings.scheduledTasks.clearFilters": "Clear filters", "settings.scheduledTasks.createDescription": "Set what the Agent should do and when it should run.", "settings.scheduledTasks.createTitle": "New scheduled task", "settings.scheduledTasks.editDescription": "Update what the Agent should do and when it should run.", "settings.scheduledTasks.editTitle": "Edit scheduled task", "settings.scheduledTasks.filterAgent": "Filter by Agent", "settings.scheduledTasks.filterStatus": "Filter by status", "settings.scheduledTasks.manualCreate": "Create manually", "settings.scheduledTasks.newTask": "New", "settings.scheduledTasks.noAgents": "No agents found. Create an agent first to add scheduled tasks.", "settings.scheduledTasks.noAgentsTitle": "No Agents", "settings.scheduledTasks.noMatches": "Try a different search or filter.", "settings.scheduledTasks.noMatchesTitle": "No matching tasks", "settings.scheduledTasks.noTasks": "Create a task and let an Agent run it on schedule.", "settings.scheduledTasks.noTasksTitle": "No scheduled tasks", "settings.scheduledTasks.notFoundDescription": "This task may have been deleted, or the link is invalid.", "settings.scheduledTasks.notFoundTitle": "Task not found", "settings.scheduledTasks.paginationLabel": "Scheduled tasks pagination", "settings.scheduledTasks.paginationStatus": "Page {{page}} of {{pageCount}} · {{total}} tasks", "settings.scheduledTasks.search": "Search scheduled tasks", "settings.scheduledTasks.searchPlaceholder": "Search tasks or Agents", "settings.scheduledTasks.title": "Scheduled Tasks", "settings.scheduledTasks.validation.agent": "Select an Agent.", "settings.scheduledTasks.validation.name": "Enter a task name.", "settings.scheduledTasks.validation.prompt": "Enter a task prompt.", "settings.screenshot.enable.description": "Capture the screen with a global shortcut, then select an area, annotate it, and copy or save the result.", "settings.screenshot.enable.title": "Enable Screenshot", "settings.screenshot.ocr.auto.description": "Recognize text in the captured screen so that it can be selected and copied.", "settings.screenshot.ocr.auto.title": "Recognize Text Automatically", "settings.screenshot.ocr.model.downloading": "Downloading the text recognition model", "settings.screenshot.ocr.model.link": "Manage local models", "settings.screenshot.ocr.model.ready": "Text recognition is ready", "settings.screenshot.ocr.model.unavailable": "Text recognition needs the local OCR model.", "settings.screenshot.ocr.title": "Text Recognition", "settings.screenshot.permission.denied_hint": "Screen recording permission was denied. Allow Cherry Studio under Privacy & Security > Screen & System Audio Recording in System Settings.", "settings.screenshot.permission.grant": "Grant Permission", "settings.screenshot.permission.open_settings": "Open System Settings", "settings.screenshot.permission.prompt_unavailable_hint": "The system permission dialog did not appear. Allow Cherry Studio manually under Privacy & Security > Screen & System Audio Recording in System Settings.", "settings.screenshot.permission.request_hint": "macOS requires screen recording permission before the screen can be captured.", "settings.screenshot.permission.restart": "Restart Now", "settings.screenshot.permission.restart_hint": "Screen recording permission was granted. Restart the app for it to take effect.", "settings.screenshot.permission.title": "Screen Recording Permission", "settings.screenshot.shortcut.description": "Screenshot is triggered by a global shortcut.", "settings.screenshot.shortcut.disabled": "Off", "settings.screenshot.shortcut.link": "Set shortcut", "settings.screenshot.shortcut.title": "Shortcut", "settings.screenshot.shortcut.unset": "Not set", "settings.screenshot.title": "Screenshot", "settings.search.noResults": "No matching settings", "settings.search.placeholder": "Search settings", "settings.search.results": "Settings search results", "settings.shortcuts.all_disable": "Disable All", "settings.shortcuts.all_enable": "Enable All", "settings.shortcuts.bind_first_to_enable": "Bind a shortcut first to change its enabled state", "settings.shortcuts.categories.all": "All", "settings.shortcuts.categories.assistant": "AI Tools", "settings.shortcuts.categories.chat": "Messages", "settings.shortcuts.categories.general": "General", "settings.shortcuts.categories.topic": "Conversations", "settings.shortcuts.close_tab": "Close Tab", "settings.shortcuts.close_window": "Close Window", "settings.shortcuts.conflict_with": "Already used by \"{{name}}\"", "settings.shortcuts.copy_last_message": "Copy Last Message", "settings.shortcuts.edit_last_user_message": "Edit Last User Message", "settings.shortcuts.empty": "No shortcuts are available in this group", "settings.shortcuts.exit_fullscreen": "Exit Fullscreen", "settings.shortcuts.focus_input": "Focus Input", "settings.shortcuts.new_topic": "New Conversation", "settings.shortcuts.next_tab": "Next Tab", "settings.shortcuts.occupied_by_other_application": "This shortcut is already used by the system or another application", "settings.shortcuts.press_shortcut": "Press Shortcut", "settings.shortcuts.prev_tab": "Previous Tab", "settings.shortcuts.print": "Print", "settings.shortcuts.quick_assistant": "Quick Assistant", "settings.shortcuts.rename_topic": "Rename Conversation", "settings.shortcuts.reset": "Reset", "settings.shortcuts.reset_defaults_confirm": "Are you sure you want to reset all shortcuts?", "settings.shortcuts.reset_defaults_failed": "Failed to reset shortcuts to defaults", "settings.shortcuts.reset_to_default": "Reset to Default", "settings.shortcuts.save_failed": "Failed to save shortcut", "settings.shortcuts.save_failed_with_name": "Failed to save shortcut: {{name}}", "settings.shortcuts.screenshot_capture": "Take Screenshot", "settings.shortcuts.search_message": "Search Message", "settings.shortcuts.search_message_in_chat": "Search Message in Current Chat", "settings.shortcuts.search_placeholder": "Search shortcuts...", "settings.shortcuts.select_model": "Select Model", "settings.shortcuts.selection_assistant_select_text": "Selection Assistant: Select Text", "settings.shortcuts.selection_assistant_toggle": "Toggle Selection Assistant", "settings.shortcuts.show_app": "Show/Hide App", "settings.shortcuts.show_settings": "Open Settings", "settings.shortcuts.title": "Keyboard Shortcuts", "settings.shortcuts.toggle_left_sidebar": "Toggle Left Sidebar", "settings.shortcuts.toggle_new_context": "Clear Context", "settings.shortcuts.toggle_right_sidebar": "Toggle Right Sidebar", "settings.shortcuts.zoom_in": "Zoom In", "settings.shortcuts.zoom_out": "Zoom Out", "settings.shortcuts.zoom_reset": "Reset Zoom", "settings.skills.batchInstallComplete": "Installed {{count}} skills", "settings.skills.batchInstallPartialFailed": "Installed {{success}}/{{total}} skills, {{failed}} failed", "settings.skills.batchInstallQueued": "Queued", "settings.skills.creatorUnavailable": "The built-in skill creator is unavailable", "settings.skills.editor.conflict": "File changed outside Cherry Studio", "settings.skills.editor.discardAndContinue": "Discard draft and continue", "settings.skills.editor.edit": "Edit", "settings.skills.editor.keepDraft": "Keep current draft", "settings.skills.editor.leaveBlockedDescription": "The draft could not be saved or synchronized safely. Retry, keep it here, or discard it before continuing.", "settings.skills.editor.leaveBlockedTitle": "Unresolved Skill edits", "settings.skills.editor.loadFailed": "File could not be loaded for editing", "settings.skills.editor.preview": "Preview", "settings.skills.editor.reload": "Reload", "settings.skills.editor.saveFailed": "Save failed", "settings.skills.editor.saved": "Saved", "settings.skills.editor.saving": "Saving", "settings.skills.editor.syncFailed": "Saved, but synchronization failed", "settings.skills.editor.syncing": "Synchronizing", "settings.skills.editor.unsupported.encoding": "This file is not editable UTF-8 text", "settings.skills.editor.unsupported.mixed-line-endings": "Files with mixed line endings are preview only", "settings.skills.editor.unsupported.size": "Files larger than 2 MiB are preview only", "settings.skills.enableToTry.confirm": "Enable and try", "settings.skills.enableToTry.description": "{{name}} must be globally enabled before Cherry Assistant can use it.", "settings.skills.enableToTry.title": "Enable this Skill?", "settings.skills.globalToggle": "Globally enable skill {{name}}", "settings.skills.install": "Install", "settings.skills.installFailed": "Failed to install skill: {{name}}", "settings.skills.installFromDirectory": "Install from directory", "settings.skills.installFromZip": "Install from ZIP file", "settings.skills.installSuccess": "Skill installed: {{name}}", "settings.skills.installed": "Installed", "settings.skills.intentInvalid": "This Skill is no longer available", "settings.skills.invalidFormat": "Only ZIP files and directories are supported", "settings.skills.launchDraft": "Use the {{name}} Skill to help me with this task.", "settings.skills.launchFailed": "Could not try {{name}}", "settings.skills.notFound": "Skill not found", "settings.skills.readOnly": "Read only", "settings.skills.remote.applyFailed": "Failed to update the Skill", "settings.skills.remote.check": "Check for updates", "settings.skills.remote.checkFailed": "Failed to check for Skill updates", "settings.skills.remote.checking": "Checking for updates", "settings.skills.remote.overwriteWarning": "This Skill has local edits. Updating will replace the complete local folder with the remote version.", "settings.skills.remote.staleDescription": "The local or remote files changed after the last check. Cherry Studio is checking again.", "settings.skills.remote.staleTitle": "Update changed", "settings.skills.remote.unknownVersion": "unknown version", "settings.skills.remote.unsupported.missing_provenance": "Reinstall this Skill from an exact marketplace result before updating it.", "settings.skills.remote.unsupported.not_remote": "This Skill was not installed from a remote marketplace.", "settings.skills.remote.unsupportedTitle": "Remote update unavailable", "settings.skills.remote.upToDate": "This Skill is up to date", "settings.skills.remote.upToDateWithLocalChanges": "The remote Skill is up to date; your local edits are preserved", "settings.skills.remote.update": "Update", "settings.skills.remote.updateAvailableDescription": "Remote version {{version}} is available.", "settings.skills.remote.updateAvailableTitle": "Skill update available", "settings.skills.remote.updated": "Skill updated", "settings.skills.source.builtin": "Built-in", "settings.skills.source.local": "Local", "settings.skills.source.marketplace": "Marketplace", "settings.skills.source.system": "System import", "settings.skills.source.zip": "ZIP", "settings.skills.tabs.builtin": "Built-in", "settings.skills.tabs.system": "System", "settings.skills.title": "Skills", "settings.skills.toggleFailed": "Failed to update the global state of skill {{name}}", "settings.skills.tryNow": "Try now", "settings.skills.viewSource": "View Source", "settings.subscription.card_label": "Subscription", "settings.subscription.go_to_subscribe": "Subscribe", "settings.subscription.limit_daily": "Daily limit", "settings.subscription.limit_days": "{{count}}-day limit", "settings.subscription.limit_hours": "{{count}}-hour limit", "settings.subscription.limit_weekly": "Weekly limit", "settings.subscription.load_failed": "Unable to load subscription usage", "settings.subscription.loading": "Loading subscription usage...", "settings.subscription.manage": "Manage subscription", "settings.subscription.next_recovery": "Next recovery: {{time}}", "settings.subscription.no_plan": "No paid subscription", "settings.subscription.no_quota": "No quota configured", "settings.subscription.remaining": "{{percent}}% remaining", "settings.subscription.sign_in": "Sign in", "settings.subscription.sign_in_required": "Sign in to view your subscription and quota.", "settings.subscription.subscribe": "Subscribe", "settings.subscription.subscribe_hint": "Subscribe to a paid plan to view quota usage.", "settings.subscription.title": "Subscription & Usage", "settings.subscription.usage": "Usage", "settings.subscription.view_usage": "View usage", "settings.system.title": "System", "settings.theme.color_primary": "Primary Color", "settings.theme.dark": "Dark", "settings.theme.light": "Light", "settings.theme.system": "System", "settings.theme.title": "Theme", "settings.theme.window.style.opaque": "Opaque Window", "settings.theme.window.style.title": "Window Style", "settings.theme.window.style.transparent": "Transparent Window", "settings.title": "Settings", "settings.tool.file_processing.actions.set_as_default": "Set as default", "settings.tool.file_processing.errors.invalid_api_host": "Invalid API host", "settings.tool.file_processing.errors.load_processors_failed": "Failed to load available processors", "settings.tool.file_processing.errors.save_failed": "Save failed", "settings.tool.file_processing.features.document_to_markdown.title": "Document Processing", "settings.tool.file_processing.features.document_to_markdown.tooltip": "Used to parse documents for knowledge bases", "settings.tool.file_processing.features.image_to_text.title": "OCR", "settings.tool.file_processing.features.image_to_text.tooltip": "Used to recognize text in images", "settings.tool.file_processing.fields.api_base_url": "API Base URL", "settings.tool.file_processing.fields.api_key": "API Key", "settings.tool.file_processing.fields.api_keys_placeholder": "Separate multiple keys with commas", "settings.tool.file_processing.fields.languages": "Languages", "settings.tool.file_processing.processors.doc2x.description": "Advanced file restoration engine.", "settings.tool.file_processing.processors.doc2x.name": "Doc2x", "settings.tool.file_processing.processors.local_document.description": "Converts PDFs to Markdown entirely on this machine. Documents with a text layer are parsed directly; scans fall back to the local OCR model.", "settings.tool.file_processing.processors.local_document.name": "Local Document", "settings.tool.file_processing.processors.local_paddleocr.description": "PaddleOCR (PP-OCRv6 medium) running inside the app — fully offline, no API key, and recognition happens on a background thread so the UI stays responsive.", "settings.tool.file_processing.processors.local_paddleocr.name": "Local PaddleOCR", "settings.tool.file_processing.processors.local_paddleocr.status.local": "Runs fully on your device", "settings.tool.file_processing.processors.mineru.description": "OpenDataLab's open-source high-quality PDF extraction tool.", "settings.tool.file_processing.processors.mineru.name": "MinerU", "settings.tool.file_processing.processors.mistral.description": "File parsing and understanding service.", "settings.tool.file_processing.processors.mistral.name": "Mistral", "settings.tool.file_processing.processors.open_mineru.description": "Self-hostable MinerU service for teams that want more control over the processing pipeline.", "settings.tool.file_processing.processors.open_mineru.name": "Open MinerU", "settings.tool.file_processing.processors.ovocr.description": "Intel OpenVINO OCR engine that runs locally with NPU acceleration.", "settings.tool.file_processing.processors.ovocr.name": "Intel OV OCR", "settings.tool.file_processing.processors.paddleocr.deployment.description": "You can deploy PaddleOCR locally with the officially supported Docker image, then enter the API address here.", "settings.tool.file_processing.processors.paddleocr.deployment.docs": "View Docker deployment docs", "settings.tool.file_processing.processors.paddleocr.description": "Baidu PaddleOCR recognition system.", "settings.tool.file_processing.processors.paddleocr.fields.parse_model": "Parse Model", "settings.tool.file_processing.processors.paddleocr.name": "PaddleOCR", "settings.tool.file_processing.processors.system.description": "Native operating system OCR engine.", "settings.tool.file_processing.processors.system.name": "System OCR", "settings.tool.file_processing.processors.system.status.available": "Detected available macOS Live Text / Windows OCR engine.", "settings.tool.file_processing.processors.system.status.no_configuration": "System OCR calls the native system engine directly. It is fastest, but accuracy depends on the OS version.", "settings.tool.file_processing.processors.tesseract.description": "Google's open-source OCR engine that runs fully locally.", "settings.tool.file_processing.processors.tesseract.name": "Tesseract OCR", "settings.tool.websearch.blacklist": "Blacklist", "settings.tool.websearch.blacklist_invalid_entries": "Invalid blacklist entries: {{entries}}", "settings.tool.websearch.blacklist_tooltip": "Please use the following format (separated by newlines)\nPattern matching: *://*.example.com/*\nRegular expression: /example\\.(net|org)/", "settings.tool.websearch.check": "Check", "settings.tool.websearch.check_failed": "Verification failed", "settings.tool.websearch.check_success": "Verification successful", "settings.tool.websearch.compression.cutoff.limit.label": "Cutoff Limit", "settings.tool.websearch.compression.cutoff.limit.placeholder": "Enter length", "settings.tool.websearch.compression.cutoff.limit.tooltip": "Limit the content length of search results, content exceeding the limit will be truncated (e.g., 2000 characters)", "settings.tool.websearch.compression.method.cutoff": "Cutoff", "settings.tool.websearch.compression.method.label": "Compression Method", "settings.tool.websearch.compression.method.none": "None", "settings.tool.websearch.errors.save_failed": "Save failed", "settings.tool.websearch.errors.zhipu_sync_failed": "Failed to sync Zhipu API key to Web Search. Please re-save the key or check Web Search settings.", "settings.tool.websearch.fetch_urls_provider": "URL fetch provider", "settings.tool.websearch.model_tools_preferred.description": "Prefer model-native web search and URL fetching, with automatic fallback to the services above when unavailable.", "settings.tool.websearch.model_tools_preferred.label": "Prefer model-native web tools", "settings.tool.websearch.provider_description.bocha": "Chinese AI search API with real-time web and structured results.", "settings.tool.websearch.provider_description.crawl4ai": "Self-hosted Crawl4AI browser crawler for Markdown page content.", "settings.tool.websearch.provider_description.duckduckgo": "Free built-in keyword search powered by DuckDuckGo's HTML endpoint. No API key required.", "settings.tool.websearch.provider_description.exa": "Neural search API for AI apps, tuned for semantic web retrieval.", "settings.tool.websearch.provider_description.exa_mcp": "Expose Exa search to agents through the Exa MCP Server.", "settings.tool.websearch.provider_description.fetch": "Built-in URL fetch provider. Fetches web page content from a URL to enrich search results.", "settings.tool.websearch.provider_description.firecrawl": "Firecrawl crawler and search service, optimized to turn websites into Markdown.", "settings.tool.websearch.provider_description.jina": "Jina Reader search and read APIs for retrieving clean web content.", "settings.tool.websearch.provider_description.parallel": "Web search API for AI agents, returning ranked links and token-dense excerpts.", "settings.tool.websearch.provider_description.querit": "Querit search and contents APIs for AI apps, retrieving web results and page content.", "settings.tool.websearch.provider_description.searxng": "Self-hostable free internet metasearch engine across many sources.", "settings.tool.websearch.provider_description.serply": "Serply search API returning Google results as structured JSON for AI apps.", "settings.tool.websearch.provider_description.tavily": "Search engine optimized for LLMs.", "settings.tool.websearch.provider_description.zhipu": "Zhipu GLM Web Search for live web retrieval and current information.", "settings.tool.websearch.search_max_result.label": "Number of search results", "settings.tool.websearch.search_max_result.tooltip": "When search result compression is disabled, the number of results may be too large, which may lead to insufficient tokens", "settings.tool.websearch.search_provider": "Search service provider", "settings.tool.websearch.search_provider_placeholder": "Choose a search service provider.", "settings.tool.websearch.set_as_default": "Set as Default", "settings.tool.websearch.title": "Web Search", "settings.topic.position.label": "Conversation position", "settings.topic.position.left": "Left", "settings.topic.position.right": "Right", "settings.translate.custom.delete.description": "Are you sure you want to delete?", "settings.translate.custom.delete.title": "Delete custom language", "settings.translate.custom.error.add": "Failed to add", "settings.translate.custom.error.delete": "Deletion failed", "settings.translate.custom.error.langCode.builtin": "The language has built-in support", "settings.translate.custom.error.langCode.empty": "Language code is empty", "settings.translate.custom.error.langCode.exists": "The language already exists", "settings.translate.custom.error.langCode.invalid": "Invalid language code", "settings.translate.custom.error.update": "Update failed", "settings.translate.custom.error.value.empty": "Language name cannot be empty", "settings.translate.custom.langCode.help": "[language+region] format, [2-3 lowercase letters]-[2-3 lowercase letters]", "settings.translate.custom.langCode.label": "Language code", "settings.translate.custom.langCode.placeholder": "en-us", "settings.translate.custom.success.add": "Added successfully", "settings.translate.custom.success.delete": "Deleted successfully", "settings.translate.custom.success.update": "Update successful", "settings.translate.custom.value.label": "Language name", "settings.translate.custom.value.placeholder": "English", "settings.translate.prompt": "Translation prompt", "settings.translate.title": "Translation settings", "settings.tray.onclose": "Minimize to Tray on Close", "settings.tray.show": "Show Tray Icon", "settings.usage.cards.activeDays": "Active days", "settings.usage.cards.cacheHitRate": "Cache hit rate", "settings.usage.cards.cacheObservedTokens": "Observable input: {{tokens}}", "settings.usage.cards.cacheStartsWithNewRequests": "Starts with new requests", "settings.usage.cards.dailyAverage": "Daily average", "settings.usage.cards.explicitApiKey": "Selected key", "settings.usage.cards.lastPeriod": "vs last period", "settings.usage.cards.matchedApiKey": "Matched override", "settings.usage.cards.none": "N/A", "settings.usage.cards.peakDay": "Peak day", "settings.usage.cards.providerAuth": "Provider auth", "settings.usage.cards.streak": "Longest streak: {{days}} days", "settings.usage.cards.topModel": "Top model", "settings.usage.cards.totalCost": "Total cost", "settings.usage.cards.totalRequests": "Requests", "settings.usage.cards.totalTokens": "Total tokens", "settings.usage.cards.unattributedApiKey": "Unattributed request", "settings.usage.cards.unattributedSource": "Unattributed source", "settings.usage.chart.bar": "Bar", "settings.usage.chart.line": "Line", "settings.usage.chart.pie": "Pie", "settings.usage.currency": "Currency", "settings.usage.empty.description": "Usage appears after supported AI requests create usage records.", "settings.usage.empty.title": "No usage yet", "settings.usage.explore.analysis": "Analysis", "settings.usage.explore.chart": "Chart", "settings.usage.explore.entries": "Requests", "settings.usage.explore.granularity": "Granularity", "settings.usage.explore.groupBy": "Group by", "settings.usage.explore.loadMore": "Load more", "settings.usage.explore.loading": "Loading...", "settings.usage.explore.metric": "Metric", "settings.usage.explore.noBreakdown": "No breakdown data", "settings.usage.explore.noBreakdownDescription": "Try a broader window or a different provider.", "settings.usage.explore.noEntries": "No entries", "settings.usage.explore.noEntriesDescription": "Try a broader window or a different provider.", "settings.usage.explore.top": "Top", "settings.usage.explore.totalEntries_one": "{{count}} entry", "settings.usage.explore.totalEntries_other": "{{count}} entries", "settings.usage.groupBy.apiKey": "API key", "settings.usage.groupBy.model": "Model", "settings.usage.groupBy.provider": "Provider", "settings.usage.groupBy.source": "Source", "settings.usage.heatmap.title": "Daily activity", "settings.usage.metric.cost": "Cost", "settings.usage.metric.requests": "Requests", "settings.usage.metric.tokens": "Tokens", "settings.usage.overview.title": "Overview", "settings.usage.rollup.daily": "Daily", "settings.usage.rollup.monthly": "Monthly", "settings.usage.rollup.total": "Total", "settings.usage.rollup.weekly": "Weekly", "settings.usage.summary": "{{window}} / {{tokens}} tokens / {{requests}} requests", "settings.usage.table.cost": "Cost", "settings.usage.table.date": "Date", "settings.usage.table.model": "Model", "settings.usage.table.source": "Source", "settings.usage.table.tokens": "Tokens", "settings.usage.table.tps": "TPS", "settings.usage.table.tpsValue": "{{value}} tok/s", "settings.usage.table.ttft": "TTFT", "settings.usage.table.unpriced": "Unable to estimate", "settings.usage.title": "Usage", "settings.usage.tooltip.cost": "Cost {{value}}", "settings.usage.tooltip.requests_one": "{{count}} request", "settings.usage.tooltip.requests_other": "{{count}} requests", "settings.usage.tooltip.tokens": "{{value}} tokens", "settings.usage.window.30d": "Last 30 days", "settings.usage.window.365d": "Last year", "settings.usage.window.90d": "Last 90 days", "settings.use_system_title_bar.confirm.content": "Changing the title bar style requires restarting the app to take effect. Do you want to restart now?", "settings.use_system_title_bar.confirm.title": "Restart Required", "settings.use_system_title_bar.title": "Use System Title Bar (Linux)", "settings.voice.action.discard": "Discard", "settings.voice.action.insert_recovery": "Insert transcript", "settings.voice.action.open_settings": "Open Voice Settings", "settings.voice.action.pause": "Pause", "settings.voice.action.play_preview": "Preview voice", "settings.voice.action.resume": "Resume", "settings.voice.action.retry": "Retry transcription", "settings.voice.action.stop_recording": "Stop recording", "settings.voice.action.transcribe": "Transcribe", "settings.voice.auto_read.description": "Read new assistant responses aloud when voice playback is available.", "settings.voice.auto_read.disclosure.content": "Auto-read uses only the local system speech service. Response text stays on this device and is not sent to a remote voice provider.", "settings.voice.auto_read.disclosure.title": "Enable local auto-read?", "settings.voice.auto_read.label": "Automatically read responses", "settings.voice.automatic": "Automatic", "settings.voice.description": "Configure local speech recognition and speech playback.", "settings.voice.dictation.elapsed": "{{seconds}} s", "settings.voice.dictation.phase.failed": "Transcription failed", "settings.voice.dictation.phase.recorded": "Ready to transcribe", "settings.voice.dictation.phase.recording": "Recording", "settings.voice.dictation.phase.recovery": "Transcript ready to recover", "settings.voice.dictation.phase.starting": "Starting microphone", "settings.voice.dictation.phase.stopping": "Finishing recording", "settings.voice.dictation.phase.transcribing": "Transcribing", "settings.voice.language.auto_detect": "Automatic detection", "settings.voice.language.follow_interface": "Follow interface ({{language}})", "settings.voice.language.world": "world", "settings.voice.microphone.denied": "Microphone access is unavailable", "settings.voice.microphone.label": "Microphone", "settings.voice.microphone.level": "Input level", "settings.voice.microphone.listening": "Speak to check the input level. No audio is saved.", "settings.voice.microphone.open_settings": "Open microphone settings", "settings.voice.microphone.permission_required": "Start a microphone test to show available devices.", "settings.voice.microphone.stop_test": "Stop test", "settings.voice.microphone.system_default": "Follow system default", "settings.voice.microphone.test": "Test microphone", "settings.voice.microphone.unnamed": "Microphone {{number}}", "settings.voice.model.apple_asr": "Apple System Speech Recognition", "settings.voice.model.apple_tts": "Apple System Speech", "settings.voice.model.funasr": "FunASR Nano", "settings.voice.model.kokoro_tts": "Kokoro v1.1 (Chinese + English)", "settings.voice.model.qwen3_tts": "Qwen3-TTS CustomVoice (8-bit)", "settings.voice.model.windows_asr": "Windows System Speech Recognition", "settings.voice.model.windows_tts": "Windows System Speech", "settings.voice.playback.error.aborted": "Voice playback was canceled.", "settings.voice.playback.error.busy": "Voice is busy with another local operation.", "settings.voice.playback.long_text.description": "This response has {{count}} readable characters. Continue with local playback?", "settings.voice.playback.long_text.title": "Read long response?", "settings.voice.playback.source": "Voice playback", "settings.voice.playback.state.failed": "Playback failed", "settings.voice.playback.state.generating": "Preparing audio", "settings.voice.playback.state.paused": "Paused", "settings.voice.playback.state.playing": "Playing", "settings.voice.playback.state.ready": "Ready to play", "settings.voice.playback.title": "Voice playback controls", "settings.voice.recognition.language": "Recognition language", "settings.voice.recognition.model": "Recognition model", "settings.voice.recognition.title": "Speech recognition", "settings.voice.resources.open_settings": "Open system voice settings", "settings.voice.resources.remove_description": "Speech recognition using this model will be unavailable until you download it again. Your model selection will be kept.", "settings.voice.resources.remove_title": "Remove speech recognition model?", "settings.voice.speech.language": "Speech language", "settings.voice.speech.language_default": "Language default · {{name}}", "settings.voice.speech.model": "Speech model", "settings.voice.speech.sample": "Hello, this is a preview of the voice used to read your responses.", "settings.voice.speech.speed": "Speech speed", "settings.voice.speech.title": "Text to speech", "settings.voice.speech.voice": "Speech voice", "settings.voice.status.asset_required": "Speech resources must be installed for this language.", "settings.voice.status.download_failed": "The model download failed. Try again.", "settings.voice.status.downloading_percent": "Downloading {{percent}}%", "settings.voice.status.failed": "Unavailable", "settings.voice.status.installing": "Installing", "settings.voice.status.label": "Status", "settings.voice.status.microphone_permission": "Microphone permission was denied.", "settings.voice.status.microphone_unavailable": "The selected microphone is unavailable.", "settings.voice.status.microphone_unreadable": "The microphone could not be opened. It may be in use.", "settings.voice.status.model_load_failed": "The local speech model could not be loaded.", "settings.voice.status.model_required": "Download a speech recognition model in Local Models.", "settings.voice.status.no_speech": "No speech was detected. Check your microphone and record again.", "settings.voice.status.not_installed": "Additional speech assets are required", "settings.voice.status.operation_failed": "The voice operation failed. Try again.", "settings.voice.status.ready": "Ready", "settings.voice.status.recording_failed": "Recording failed. Please try again.", "settings.voice.status.timeout": "Speech recognition timed out. Try again.", "settings.voice.status.unconfigured": "Not configured", "settings.voice.status.unsupported": "Not supported on this system", "settings.voice.status.voice_unavailable": "The selected system voice is unavailable.", "settings.voice.status.worker_crashed": "The local speech process stopped unexpectedly. Try again.", "settings.voice.title": "Voice", "settings.zoom.title": "Page Zoom", "sidebar.account_menu": "Account menu", "sidebar.resource_missing": "Resource not found", "sidebar.resource_unavailable": "Resource temporarily unavailable", "subWindow.back_to_main": "Back to Main Window", "subWindow.pin": "Keep on Top", "subWindow.unpin": "Cancel Keep on Top", "tab.close": "Close Tab", "tab.close_others": "Close Other Tabs", "tab.close_to_right": "Close Tabs to the Right", "tab.move_to_first": "Move to First", "tab.open_in_new_window": "Open in New Window", "tab.pin": "Pin Tab", "tab.unpin": "Unpin Tab", "title.apps": "Apps", "title.chat": "Chat", "title.code": "Code Mate", "title.files": "Files", "title.home": "Home", "title.knowledge": "Knowledge Base", "title.launchpad": "Launchpad", "title.mcp-servers": "MCP Servers", "title.notes": "Notes", "title.openclaw": "OpenClaw", "title.paintings": "Paintings", "title.settings": "Settings", "title.translate": "Translate", "title.work": "Work", "toast.error.billing": "Open billing", "toast.error.configure": "Open provider settings", "toast.error.mcp": "View MCP server", "toast.error.retry": "Retry", "toast.error.retry_after": "Retry in {{seconds}} seconds", "toast.error.switchModel": "Switch model", "toast.error.trimContext": "Trim context", "trace.agent": "Agent", "trace.backList": "Back To List", "trace.cachedTokens": "Cached", "trace.endTime": "End Time", "trace.inputs": "Inputs", "trace.label": "Call Chain", "trace.model": "Model", "trace.name": "Node Name", "trace.noTraceList": "No trace information found", "trace.operation": "Operation", "trace.outputs": "Outputs", "trace.pollError": "Polling failed", "trace.reasoningTokens": "Reasoning", "trace.requestHeaders": "Request Headers", "trace.requestMethod": "Request Method", "trace.requestUrl": "Request URL", "trace.responseHeaders": "Response Headers", "trace.responseStatus": "Response Status", "trace.serverDescription": "Server Description", "trace.serverName": "Server Name", "trace.serverType": "Server Type", "trace.spanDetail": "Span Details", "trace.spendTime": "Spend Time", "trace.startTime": "Start Time", "trace.status": "Status", "trace.tag": "Tag", "trace.tokenUsage": "Token Usage", "trace.toolCalls": "Tool Calls", "translate.alter_language": "Alternative Language", "translate.any.language": "Any language", "translate.bidirectional_hint": "Automatically detects the input language and translates between these two languages. No manual switching needed.", "translate.button.translate": "Translate", "translate.close": "Close", "translate.closed": "Translation closed", "translate.complete": "Translation completed", "translate.copied": "Translation content copied", "translate.custom.label": "Custom language", "translate.detect.method.algo.label": "algorithm", "translate.detect.method.algo.tip": "Using the franc library for language detection", "translate.detect.method.auto.label": "Automatic", "translate.detect.method.auto.tip": "Automatically select the appropriate detection method", "translate.detect.method.label": "Automatic detection method", "translate.detect.method.llm.label": "LLM", "translate.detect.method.llm.tip": "Using the quick model for language detection consumes fewer tokens.", "translate.detect.method.tip": "Method used when automatically detecting the input language", "translate.detected.language": "Auto Detect", "translate.detected_source": "Detected", "translate.detecting": "Detecting...", "translate.empty": "Translation content is empty", "translate.error.auto_copy_failed": "Failed to auto-copy translation result", "translate.error.detect.empty": "Detected language is empty", "translate.error.detect.invalid": "Detected language is not supported", "translate.error.detect.qwen_mt": "QwenMT model cannot be used for language detection", "translate.error.empty": "The translation result is empty content", "translate.error.failed": "Translation failed", "translate.error.languages_load_failed": "Failed to load translate languages. Some features may be unavailable.", "translate.error.not_configured": "Translation model is not configured", "translate.files.drag_text": "Drop here", "translate.files.error.check_type": "An error occurred while checking the file type", "translate.files.error.multiple": "Multiple file uploads are not allowed", "translate.files.error.ocr": "Failed to recognize image text", "translate.files.error.too_large": "File too large", "translate.files.error.unknown": "Failed to read file content", "translate.files.ocr_completed": "Image OCR complete", "translate.files.reading": "Reading file content...", "translate.files.upload": "Drop or click to upload image/document", "translate.history.back": "Back to list", "translate.history.clear": "Clear History", "translate.history.clear_description": "Clear history will delete all translation history and reclaim the translated files it produced, continue?", "translate.history.copy_target": "Copy result", "translate.history.delete": "Delete translation history", "translate.history.delete_description": "Delete this translation history record? For a file translation the translated file is reclaimed too. This action cannot be undone.", "translate.history.empty": "No translation history", "translate.history.error.add": "Failed to add translation history", "translate.history.error.clear": "Failed to clear translation history", "translate.history.error.delete": "Deletion failed", "translate.history.error.load": "Failed to load translation history", "translate.history.error.save": "Failed to save translation history", "translate.history.file.action_failed": "Could not complete that action on the file", "translate.history.file.badge": "File translation", "translate.history.file.export": "Save translated file as…", "translate.history.file.open": "Open translated file", "translate.history.file.preview": "Side-by-side preview", "translate.history.file.reveal": "Show in folder", "translate.history.file.source": "Source file", "translate.history.file.target": "Translated file", "translate.history.file.unavailable": "The files of this translation are no longer available", "translate.history.filter.starred": "Only starred", "translate.history.reuse": "Reuse", "translate.history.source": "Source", "translate.history.star": "Favorite", "translate.history.success.add": "Saved to history", "translate.history.success.clear": "History cleared", "translate.history.success.delete": "Deleted", "translate.history.success.update": "Saved", "translate.history.target": "Target", "translate.history.title": "Translation History", "translate.info.aborted": "Translation aborted", "translate.input.placeholder": "Enter text...", "translate.language.not_pair": "Source language is different from the set language", "translate.language.same": "Source and target languages are the same", "translate.language_settings": "Language Settings", "translate.output.placeholder": "Translation", "translate.pdf.action.close": "Close PDF translation", "translate.pdf.action.export": "Export translated PDF", "translate.pdf.action.install_babeldoc": "Install BabelDOC", "translate.pdf.action.update_babeldoc": "Update BabelDOC", "translate.pdf.dependency.checking": "Checking BabelDOC...", "translate.pdf.dependency.description": "Install the BabelDOC plugin to translate PDFs while preserving their original layout.", "translate.pdf.dependency.installing": "Installing BabelDOC...", "translate.pdf.dependency.outdated_description": "Update BabelDOC to continue translating PDFs with layout preservation.", "translate.pdf.dependency.outdated_title": "BabelDOC update required", "translate.pdf.dependency.title": "PDF detected", "translate.pdf.error.generic": "Something went wrong during translation. Please try again.", "translate.pdf.error.ocr_required": "Scanned PDFs are not supported yet.", "translate.pdf.error.persist_failed": "The PDF was translated, but the result could not be saved. Please try again.", "translate.pdf.error.title": "PDF translation failed", "translate.pdf.export_failed": "Failed to export translated PDF", "translate.pdf.pane.translated": "Translated PDF", "translate.pdf.pane.translated_text": "Translation", "translate.pdf.progress.analyzing": "Analyzing document layout", "translate.pdf.progress.checking_assets": "Checking PDF processing resources", "translate.pdf.progress.downloading_assets": "Downloading PDF processing resources...", "translate.pdf.progress.extracting_terms": "Extracting document terminology", "translate.pdf.progress.loading_model": "Loading PDF processing model", "translate.pdf.progress.parsing": "Parsing PDF document", "translate.pdf.progress.percent": "{{progress}}%", "translate.pdf.progress.preparing": "Initializing PDF translation", "translate.pdf.progress.preparing_hint": "The first initialization may take about 2 minutes; later runs are usually faster", "translate.pdf.progress.rendering": "Rendering translated PDF", "translate.pdf.progress.translating": "Translating content", "translate.pdf.progress.typesetting": "Typesetting translated PDF", "translate.pdf.progress.value": "{{stage}}, stage {{stageProgress}}%, overall {{overallProgress}}%", "translate.pdf.ready.description": "Select a target language and start translation.", "translate.pdf.ready.title": "Ready to translate", "translate.pdf.success": "Translated PDF generated", "translate.preferred_target": "Preferred Target", "translate.processing": "Translation in progress...", "translate.settings.autoCopy": "Copy after translation ", "translate.settings.bidirectional": "Bidirectional Translation Settings", "translate.settings.bidirectional_tip": "When enabled, only bidirectional translation between source and target languages is supported", "translate.settings.model_params": "Model Parameters", "translate.settings.model_placeholder": "Select translation model", "translate.settings.preview": "Markdown Preview", "translate.settings.scroll_sync": "Scroll Sync Settings", "translate.settings.title": "Translation Settings", "translate.source_language": "Source Language", "translate.stop": "Stop Translation", "translate.target_language": "Target Language", "translate.title": "Translation", "translate.translate_to": "Translate to", "update.install": "Install", "update.later": "Later", "update.message": "New version {{version}} is ready, do you want to install it now?", "update.noReleaseNotes": "No release notes", "update.saveDataError": "Failed to save data, please try again.", "update.title": "Update", "webview.annotation.cancel": "Cancel", "webview.annotation.clear": "Clear annotations", "webview.annotation.clear_description": "This removes every annotation from the current page.", "webview.annotation.clear_title": "Clear all annotations?", "webview.annotation.copied": "Annotations copied", "webview.annotation.copy": "Copy annotations as Markdown", "webview.annotation.copy_failed": "Failed to copy annotations", "webview.annotation.count_one": "{{count}} annotation", "webview.annotation.count_other": "{{count}} annotations", "webview.annotation.delete": "Delete", "webview.annotation.disable_mode": "Stop annotating", "webview.annotation.edit": "Edit annotation", "webview.annotation.element_unavailable": "This element can't be annotated. Select a nearby element.", "webview.annotation.enable_mode": "Annotate page", "webview.annotation.placeholder": "Describe what should change or what you noticed…", "webview.annotation.save": "Save", "webview.browser.dismiss_import": "Don't show again", "webview.browser.import_hint": "Bring your history and website data from another browser.", "webview.browser.load_failed": "This page could not be loaded. Check that the local server is still running.", "webview.browser.loading": "Loading page…", "webview.navigation.address": "Web address", "webview.navigation.address_placeholder": "Enter a URL", "webview.navigation.back": "Back", "webview.navigation.forward": "Forward", "webview.navigation.history_placeholder": "Search history or enter a URL", "webview.navigation.invalid_address": "Enter a valid HTTP, HTTPS, or file URL", "webview.navigation.load_failed": "Failed to load the page", "webview.navigation.open_external": "Open in external browser", "webview.navigation.reload": "Reload" }