Files
QodeAssist/resources/translations/QodeAssist_zh_CN.ts

4132 lines
191 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>BottomBar</name>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="50"/>
<source>Attach file to message</source>
<translation>附加文件到消息</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="63"/>
<source>Attach image to message</source>
<translation>附加图片到消息</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="76"/>
<source>Link file to context</source>
<translation>将文件链接到上下文</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="82"/>
<source>Sync open files</source>
<translation>同步打开的文件</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="85"/>
<source>Automatically synchronize currently opened files with the model context</source>
<translation>自动将当前打开的文件与模型上下文同步</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="108"/>
<source>Compressing...</source>
<translation>压缩中...</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="118"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="122"/>
<source>Cancel compression</source>
<translation>取消压缩</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="130"/>
<source>Compress</source>
<translation>压缩</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="139"/>
<source>Compress chat (create summarized copy using LLM)</source>
<translation>压缩聊天(使用 LLM 创建摘要副本)</translation>
</message>
</context>
<context>
<name>ChatItem</name>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="159"/>
<source>↑ %1 (cached %2)</source>
<translation>↑ %1 (已缓存 %2)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="160"/>
<source>↑ %1</source>
<translation>↑ %1</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="166"/>
<source>↓ %1 (reasoning %2)</source>
<translation>↓ %1 (推理 %2)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="167"/>
<source>↓ %1</source>
<translation>↓ %1</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="172"/>
<source>Σ %1</source>
<translation>Σ %1</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="210"/>
<source>Reset chat to this message and edit</source>
<translation>将聊天重置到此消息并编辑</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="310"/>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="402"/>
<source>Click: Open in Qt Creator
Shift+Click: Open in System Editor</source>
<translation>点击:在 Qt Creator 中打开
Shift+点击:在系统编辑器中打开</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="366"/>
<source>Failed to load image</source>
<translation>加载图片失败</translation>
</message>
</context>
<context>
<name>CodeBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="62"/>
<source>Code (%1)</source>
<translation>代码 (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="63"/>
<source>Code</source>
<translation>代码</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="105"/>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="136"/>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="147"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
<source>Collapse</source>
<translation>折叠</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
<source>Expand</source>
<translation>展开</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="140"/>
<source>Copied</source>
<translation>已复制</translation>
</message>
</context>
<context>
<name>ContextViewer</name>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="54"/>
<source>Chat Context</source>
<translation>聊天上下文</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="62"/>
<source>Refresh</source>
<translation>刷新</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="67"/>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="97"/>
<source>Base System Prompt</source>
<translation>基础系统提示词</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
<source>Active</source>
<translation>已激活</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
<source>Empty</source>
<translation></translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="125"/>
<source>No system prompt configured</source>
<translation>未配置系统提示词</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="146"/>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="235"/>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="377"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="152"/>
<source>Edit in Settings</source>
<translation>在设置中编辑</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="166"/>
<source>Agent Role</source>
<translation>智能体角色</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="221"/>
<source>No role selected. Using base system prompt only.</source>
<translation>未选择角色。仅使用基础系统提示词。</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="241"/>
<source>Manage Roles</source>
<translation>管理角色</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="255"/>
<source>Project Rules</source>
<translation>项目规则</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
<source>%1 active</source>
<translation>%1 已激活</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
<source>None</source>
<translation></translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="282"/>
<source>Rules (%1)</source>
<translation>规则 (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="369"/>
<source>Content</source>
<translation>内容</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="415"/>
<source>No project rules found.
Create .md files in .qodeassist/rules/common/ or .qodeassist/rules/chat/</source>
<translation>未找到项目规则。
请在 .qodeassist/rules/common/ 或 .qodeassist/rules/chat/ 中创建 .md 文件</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="430"/>
<source>Open Rules Folder</source>
<translation>打开规则文件夹</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="450"/>
<source>Final prompt: Base System Prompt + Agent Role + Project Info + Project Rules + Linked Files</source>
<translation>最终提示词:基础系统提示词 + 智能体角色 + 项目信息 + 项目规则 + 链接的文件</translation>
</message>
</context>
<context>
<name>DiffStatistics</name>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="40"/>
<source>+%1 lines, -%2 lines</source>
<translation>+%1 行,-%2 行</translation>
</message>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="42"/>
<source>+%1 lines</source>
<translation>+%1 行</translation>
</message>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="44"/>
<source>-%1 lines</source>
<translation>-%1 行</translation>
</message>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="46"/>
<source>No changes</source>
<translation>无变更</translation>
</message>
</context>
<context>
<name>FileEditBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="76"/>
<source>ARCHIVED</source>
<translation>已归档</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="77"/>
<source>APPLIED</source>
<translation>已应用</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="78"/>
<source>REJECTED</source>
<translation>已拒绝</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="79"/>
<source>PENDING</source>
<translation>待处理</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
<source>Replace</source>
<translation>替换</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
<source>Append</source>
<translation>追加</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="202"/>
<source>%1: %2 (+%3 -%4)</source>
<translation>%1: %2 (+%3 -%4)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="208"/>
<source>%1: %2 (+%3)</source>
<translation>%1: %2 (+%3)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="264"/>
<source>Open file in editor and navigate to changes</source>
<translation>在编辑器中打开文件并跳转到变更</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="364"/>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="423"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="374"/>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="433"/>
<source>Collapse</source>
<translation>折叠</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="374"/>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="433"/>
<source>Expand</source>
<translation>展开</translation>
</message>
</context>
<context>
<name>FileEditsActionBar</name>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="81"/>
<source>File Edit in Current Message</source>
<translation>当前消息中的文件编辑</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="82"/>
<source>%1 File Edits in Current Message</source>
<translation>当前消息中的 %1 个文件编辑</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="93"/>
<source>%1 applied</source>
<translation>%1 已应用</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="96"/>
<source>%1 pending</source>
<translation>%1 待处理</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="99"/>
<source>%1 rejected</source>
<translation>%1 已拒绝</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="118"/>
<source>Apply All (%1)</source>
<translation>全部应用 (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="119"/>
<source>Reapply All (%1)</source>
<translation>全部重新应用 (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="124"/>
<source>Apply all pending and rejected edits in this message</source>
<translation>应用此消息中所有待处理和已拒绝的编辑</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="125"/>
<source>Reapply all rejected edits in this message</source>
<translation>重新应用此消息中所有已拒绝的编辑</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="135"/>
<source>Undo All (%1)</source>
<translation>全部撤销 (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="139"/>
<source>Undo all applied edits in this message</source>
<translation>撤销此消息中所有已应用的编辑</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="62"/>
<location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="75"/>
<source>Template Not Found</source>
<translation>未找到模板</translation>
</message>
<message>
<location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="63"/>
<location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="76"/>
<source>Template &apos;%1&apos; was not found or has been updated. Please re-set new one.</source>
<translation>未找到模板 &apos;%1&apos; 或模板已更新。请重新设置新模板。</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="595"/>
<source>Providers</source>
<translation>提供商</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="262"/>
<source>Agents</source>
<translation>智能体</translation>
</message>
<message>
<location filename="../../ChatView/ChatConfigurationController.cpp" line="58"/>
<location filename="../../ChatView/ChatConfigurationController.cpp" line="71"/>
<source>Current Settings</source>
<translation>当前设置</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::ChatCompressor</name>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="30"/>
<source>Compression already in progress</source>
<translation>压缩已在进行中</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="35"/>
<source>No chat file to compress</source>
<translation>没有可压缩的聊天文件</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="40"/>
<source>Chat is empty, nothing to compress</source>
<translation>聊天为空,无内容可压缩</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="48"/>
<source>No provider available</source>
<translation>无可用的提供商</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="57"/>
<source>No template available</source>
<translation>无可用的模板</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="99"/>
<source>Compression cancelled</source>
<translation>压缩已取消</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="122"/>
<source>Failed to save compressed chat</source>
<translation>保存压缩后的聊天失败</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="137"/>
<source>Compression failed: %1</source>
<translation>压缩失败:%1</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::ChatFileManager</name>
<message>
<location filename="../../ChatView/ChatFileManager.cpp" line="33"/>
<source>File is not accessible: %1</source>
<translation>文件不可访问:%1</translation>
</message>
<message>
<location filename="../../ChatView/ChatFileManager.cpp" line="45"/>
<source>Failed to copy file: %1</source>
<translation>复制文件失败:%1</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::ChatHistoryStore</name>
<message>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="121"/>
<source>Save Chat History</source>
<translation>保存聊天历史</translation>
</message>
<message>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="124"/>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="151"/>
<source>JSON files (*.json)</source>
<translation>JSON 文件 (*.json)</translation>
</message>
<message>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="148"/>
<source>Load Chat History</source>
<translation>加载聊天历史</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::ChatRootView</name>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="285"/>
<source>Chat compressed successfully!</source>
<translation>聊天压缩成功!</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="508"/>
<source>This chat file is already in use by another QodeAssist chat session.</source>
<translation>此聊天文件已被另一个 QodeAssist 聊天会话使用。</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="527"/>
<source>This chat is already open in another QodeAssist chat session.</source>
<translation>此聊天已在另一个 QodeAssist 聊天会话中打开。</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="605"/>
<location filename="../../ChatView/ChatRootView.cpp" line="653"/>
<source>Select Files to Attach</source>
<translation>选择要附加的文件</translation>
</message>
<message numerus="yes">
<location filename="../../ChatView/ChatRootView.cpp" line="689"/>
<source>Images automatically moved to Attach zone (%n file(s))</source>
<translation>
<numerusform>图片已自动移至附加区域 (%n 个文件)</numerusform>
</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="713"/>
<source>Select Images to Attach</source>
<translation>选择要附加的图片</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="715"/>
<source>Images (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</source>
<translation>图片 (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="1280"/>
<source>Compression is already in progress</source>
<translation>压缩已在进行中</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="1286"/>
<source>No chat file to compress. Please save the chat first.</source>
<translation>没有可压缩的聊天文件。请先保存聊天。</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::NavigationPanel</name>
<message>
<location filename="../../chat/NavigationPanel.cpp" line="21"/>
<source>QodeAssist Chat</source>
<translation>QodeAssist 聊天</translation>
</message>
</context>
<context>
<name>QodeAssist::EditorChatButton</name>
<message>
<location filename="../../widgets/EditorChatButton.cpp" line="48"/>
<source>Open QodeAssist Chat</source>
<translation>打开 QodeAssist 聊天</translation>
</message>
</context>
<context>
<name>QodeAssist::Mcp::McpServerManager</name>
<message>
<location filename="../../mcp/McpServerManager.cpp" line="80"/>
<source>QodeAssist MCP server exposing Qt Creator project tools.</source>
<translation>QodeAssist MCP 服务器,暴露 Qt Creator 项目工具。</translation>
</message>
</context>
<context>
<name>QodeAssist::QodeAssistClient</name>
<message>
<location filename="../../QodeAssistClient.cpp" line="379"/>
<source>Code completion failed: %1</source>
<translation>代码补全失败:%1</translation>
</message>
<message>
<location filename="../../QodeAssistClient.cpp" line="523"/>
<source>Quick refactor failed</source>
<translation>快速重构失败</translation>
</message>
<message>
<location filename="../../QodeAssistClient.cpp" line="524"/>
<source>Quick refactor failed: %1</source>
<translation>快速重构失败:%1</translation>
</message>
</context>
<context>
<name>QodeAssist::RefactorWidget</name>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="176"/>
<source>◄ Original</source>
<translation>◄ 原始</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="186"/>
<source>Refactored ►</source>
<translation>重构后 ►</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="215"/>
<source>✓ Apply (⌘+Enter)</source>
<translation>✓ 应用 (⌘+Enter)</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="217"/>
<source>✓ Apply (Ctrl+Enter)</source>
<translation>✓ 应用 (Ctrl+Enter)</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="223"/>
<source>✗ Decline (Esc)</source>
<translation>✗ 拒绝 (Esc)</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentDetailPane</name>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="84"/>
<source>Open in editor</source>
<translation>在编辑器中打开</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="85"/>
<source>Duplicate…</source>
<translation>复制…</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="86"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="127"/>
<source>Identity</source>
<translation>标识</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="129"/>
<source>Extends:</source>
<translation>继承自:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="143"/>
<source>Name:</source>
<translation>名称:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="153"/>
<source>Description:</source>
<translation>描述:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="154"/>
<source>Tags:</source>
<translation>标签:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="155"/>
<source>Comma-separated. Free-form — used to filter and group the agent list.</source>
<translation>逗号分隔,自由格式 — 用于筛选和分组智能体列表。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="159"/>
<source>System role</source>
<translation>系统角色</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="161"/>
<source>Prepended to every request as the system message.</source>
<translation>作为系统消息添加到每个请求的开头。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="168"/>
<source>Context</source>
<translation>上下文</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="170"/>
<source>Jinja2 template rendered with ContextManager bindings into the agent.context system-prompt layer. Empty = no context block.</source>
<translation>使用 ContextManager 绑定渲染的 Jinja2 模板,作为 agent.context 系统提示词层。留空 = 无上下文块。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="179"/>
<source>Connection</source>
<translation>连接</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="191"/>
<source>Provider:</source>
<translation>提供商:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="192"/>
<source>The provider instance this agent uses. URL is inherited from the instance.</source>
<translation>此智能体使用的提供商实例。URL 从实例继承。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="194"/>
<source>Endpoint:</source>
<translation>端点:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="195"/>
<source>Appended to the provider&apos;s URL. Blank uses the provider default.</source>
<translation>附加到提供商 URL 之后。留空则使用提供商默认值。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="197"/>
<source>Model:</source>
<translation>模型:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="208"/>
<source>Match</source>
<translation>匹配</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="210"/>
<source>When a feature slot has multiple bound agents, the first whose match rules satisfy the current context wins.</source>
<translation>当一个功能槽绑定了多个智能体时,匹配规则满足当前上下文的第一个智能体胜出。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="217"/>
<source>File patterns:</source>
<translation>文件模式:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="218"/>
<source>Globs, comma-separated. Empty matches every file.</source>
<translation>Glob 表达式,逗号分隔。留空匹配所有文件。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="222"/>
<source>Template</source>
<translation>模板</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="224"/>
<source>Jinja2 template (via inja) rendered to the request body. Built-in context: ctx.prefix, ctx.suffix, ctx.history, ctx.system_prompt, agent.model.</source>
<translation>Jinja2 模板(通过 inja)渲染到请求体。内置上下文:ctx.prefix、ctx.suffix、ctx.history、ctx.system_prompt、agent.model。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="233"/>
<source>message_format:</source>
<translation>message_format:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="237"/>
<source>Load errors</source>
<translation>加载错误</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="246"/>
<location filename="../../settings/AgentDetailPane.cpp" line="257"/>
<source>▸ Show raw TOML</source>
<translation>▸ 显示原始 TOML</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="257"/>
<source>▾ Hide raw TOML</source>
<translation>▾ 隐藏原始 TOML</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="312"/>
<source>No description provided.</source>
<translation>未提供描述。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="344"/>
<source>%1 (missing — not in provider library)</source>
<translation>%1 (缺失 — 不在提供商库中)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="352"/>
<source>(provider default)</source>
<translation>(提供商默认)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="358"/>
<source># effective request line
(unknown — provider instance not found)</source>
<translation># 有效请求行
(未知 — 未找到提供商实例)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="360"/>
<source>effective request line</source>
<translation>有效请求行</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="363"/>
<source>(no system role set)</source>
<translation>(未设置系统角色)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="365"/>
<source>(no context block)</source>
<translation>(无上下文块)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="368"/>
<source>(matches every file)</source>
<translation>(匹配所有文件)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="371"/>
<source>(inherited from parent / none)</source>
<translation>(从父级继承 / 无)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="382"/>
<source>(truncated at %1 bytes)</source>
<translation>(在 %1 字节处截断)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="385"/>
<source>(source file is empty)</source>
<translation>(源文件为空)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="388"/>
<source>(source file unavailable: %1)</source>
<translation>(源文件不可用:%1)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="394"/>
<source>Bundled agents are read-only — duplicate to edit.</source>
<translation>捆绑的智能体为只读 — 请复制后再编辑。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="398"/>
<source>Bundled agents cannot be deleted.</source>
<translation>捆绑的智能体无法删除。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="407"/>
<source>Select an agent</source>
<translation>选择一个智能体</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="409"/>
<source>Pick an agent from the list to see its details.</source>
<translation>从列表中选择一个智能体以查看其详情。</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="437"/>
<source>error: %1</source>
<translation>错误:%1</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="439"/>
<source>warning: %1</source>
<translation>警告:%1</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentListPane</name>
<message>
<location filename="../../settings/AgentListPane.cpp" line="35"/>
<source>Filter agents…</source>
<translation>筛选智能体…</translation>
</message>
<message>
<location filename="../../settings/AgentListPane.cpp" line="186"/>
<source>User</source>
<translation>用户</translation>
</message>
<message>
<location filename="../../settings/AgentListPane.cpp" line="190"/>
<source>Bundled</source>
<translation>捆绑</translation>
</message>
<message>
<location filename="../../settings/AgentListPane.cpp" line="194"/>
<source>No agents match these filters.</source>
<translation>没有智能体符合这些筛选条件。</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentRoleDialog</name>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="24"/>
<source>Add Agent Role</source>
<translation>添加智能体角色</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="26"/>
<source>Duplicate Agent Role</source>
<translation>复制智能体角色</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="28"/>
<source>Edit Agent Role</source>
<translation>编辑智能体角色</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="42"/>
<source>e.g., Developer, Code Reviewer</source>
<translation>例如:Developer、Code Reviewer</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="43"/>
<source>Name:</source>
<translation>名称:</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="46"/>
<source>e.g., developer, code_reviewer</source>
<translation>例如:developer、code_reviewer</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="47"/>
<source>ID:</source>
<translation>ID:</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="50"/>
<source>Brief description of this role...</source>
<translation>对此角色的简短描述...</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="52"/>
<source>Description:</source>
<translation>描述:</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="56"/>
<source>System Prompt:</source>
<translation>系统提示词:</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="61"/>
<source>You are an expert in...
Your role is to:
- Task 1
- Task 2
- Task 3</source>
<translation>你是 ... 方面的专家
你的职责是:
- 任务 1
- 任务 2
- 任务 3</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="75"/>
<source>ID cannot be changed for existing roles</source>
<translation>已存在角色的 ID 无法更改</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentsWidget</name>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="69"/>
<source>Agents</source>
<translation>智能体</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="75"/>
<source>Reload from disk</source>
<translation>从磁盘重新加载</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="76"/>
<source>Open agents folder</source>
<translation>打开智能体文件夹</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="189"/>
<location filename="../../settings/AgentsSettingsPage.cpp" line="197"/>
<location filename="../../settings/AgentsSettingsPage.cpp" line="203"/>
<source>Open agent</source>
<translation>打开智能体</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="190"/>
<source>&apos;%1&apos; is bundled with the plugin and read-only.
Use Duplicate to create an editable user copy.</source>
<translation>&apos;%1&apos; 是随插件捆绑的只读项。
请使用复制功能创建可编辑的用户副本。</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="198"/>
<source>Agent &apos;%1&apos; has no editable source file.</source>
<translation>智能体 &apos;%1&apos; 没有可编辑的源文件。</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="204"/>
<source>Could not open %1.</source>
<translation>无法打开 %1。</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="212"/>
<source>Duplicate</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="228"/>
<location filename="../../settings/AgentsSettingsPage.cpp" line="236"/>
<source>Delete Agent</source>
<translation>删除智能体</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="229"/>
<source>Delete agent &apos;%1&apos;?
This will remove the file:
%2</source>
<translation>删除智能体 &apos;%1&apos;?
这将删除文件:
%2</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="237"/>
<source>Could not delete the agent file:
%1</source>
<translation>无法删除智能体文件:
%1</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::McpClientsListAspect</name>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="72"/>
<source>Connected.</source>
<translation>已连接。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="74"/>
<source>Connecting…</source>
<translation>连接中…</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="76"/>
<source>Failed.</source>
<translation>失败。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="77"/>
<source>Failed: %1</source>
<translation>失败:%1</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="81"/>
<source>Disabled.</source>
<translation>已禁用。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="129"/>
<source>everything (reference test server)</source>
<translation>everything (参考测试服务器)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="138"/>
<source>filesystem (local files)</source>
<translation>filesystem (本地文件)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="149"/>
<source>memory (in-memory key-value)</source>
<translation>memory (内存键值)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="158"/>
<source>git (local git ops)</source>
<translation>git (本地 git 操作)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="167"/>
<source>time (system clock)</source>
<translation>time (系统时钟)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="176"/>
<source>qtcreator (Qt Creator&apos;s built-in MCP server)</source>
<translation>qtcreator (Qt Creator 内置 MCP 服务器)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="185"/>
<source>qt-docs (Qt documentation)</source>
<translation>qt-docs (Qt 文档)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="193"/>
<source>remote (SSE / HTTP)</source>
<translation>remote (SSE / HTTP)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="232"/>
<source>Server reports no tools.</source>
<translation>服务器报告无可用工具。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="245"/>
<source>Tools</source>
<translation>工具</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="271"/>
<source>Enable / disable this MCP server</source>
<translation>启用 / 禁用此 MCP 服务器</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="285"/>
<source>Remove this server from the config.</source>
<translation>从配置中移除此服务器。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="313"/>
<source>Remove server</source>
<translation>移除服务器</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="314"/>
<source>Remove server &apos;%1&apos; from the config?</source>
<translation>从配置中移除服务器 &apos;%1&apos;?</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="346"/>
<source>Open Config</source>
<translation>打开配置</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="348"/>
<source>Refresh MCP List</source>
<translation>刷新 MCP 列表</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="359"/>
<source>Note: restart Qt Creator to apply MCP changes to already-opened chats and running sessions.</source>
<translation>注意:重启 Qt Creator 以将 MCP 变更应用到已打开的聊天和正在运行的会话。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="376"/>
<source>Quick Setup</source>
<translation>快速设置</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="379"/>
<source>Pick a preset to append a ready-made server entry to the config (auto-suffixed if the name is taken).</source>
<translation>选择预设以将现成的服务器条目追加到配置(若名称已被占用则自动添加后缀)。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="382"/>
<source>-- Select Preset --</source>
<translation>-- 选择预设 --</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="410"/>
<source>No servers configured. Add a preset below or edit the JSON.</source>
<translation>未配置任何服务器。请在下方添加预设或编辑 JSON。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="415"/>
<source>0 server(s) defined.</source>
<translation>已定义 0 个服务器。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="429"/>
<source>%1 server(s) defined, %2 enabled.</source>
<translation>已定义 %1 个服务器,已启用 %2 个。</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="475"/>
<source>MCP configuration</source>
<translation>MCP 配置</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="476"/>
<source>Failed to write %1:
%2</source>
<translation>写入 %1 失败:
%2</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::ProviderDetailPane</name>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="42"/>
<source>Edit…</source>
<translation>编辑…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="44"/>
<source>Open in editor</source>
<translation>在编辑器中打开</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="46"/>
<source>Open this provider&apos;s TOML file in Qt Creator. Bundled providers are read-only — duplicate first.</source>
<translation>在 Qt Creator 中打开此提供商的 TOML 文件。捆绑提供商为只读 — 请先复制。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="48"/>
<source>Duplicate…</source>
<translation>复制…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="49"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="50"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="51"/>
<source>Save</source>
<translation>保存</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="105"/>
<source>Identity</source>
<translation>标识</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="117"/>
<source>Name:</source>
<translation>名称:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="118"/>
<source>Client API:</source>
<translation>客户端 API:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="119"/>
<source>The client API this provider speaks. Cannot be changed after creation.</source>
<translation>此提供商使用的客户端 API。创建后无法更改。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="121"/>
<source>Description:</source>
<translation>描述:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="124"/>
<source>Endpoint</source>
<translation>端点</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="131"/>
<source>URL:</source>
<translation>URL:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="132"/>
<source>Base URL. Agents append their endpoint path (e.g. /chat/completions) to this.</source>
<translation>基础 URL。智能体将其端点路径(例如 /chat/completions)追加在此之后。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="144"/>
<source>Credentials</source>
<translation>凭证</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="147"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="316"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="370"/>
<source>Enter API key…</source>
<translation>输入 API 密钥…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="151"/>
<source>Show / hide API key</source>
<translation>显示 / 隐藏 API 密钥</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="155"/>
<source>Save key</source>
<translation>保存密钥</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="157"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="158"/>
<source>Erase the stored API key for this provider</source>
<translation>清除此提供商已存储的 API 密钥</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="190"/>
<source>API key:</source>
<translation>API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="194"/>
<source>Launch</source>
<translation>启动</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="204"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="410"/>
<source>idle</source>
<translation>空闲</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="205"/>
<source>Start</source>
<translation>启动</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="206"/>
<source>Stop</source>
<translation>停止</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="207"/>
<source>Restart</source>
<translation>重启</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="224"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
<source>▸ Show launch terminal</source>
<translation>▸ 显示启动终端</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
<source>▾ Hide launch terminal</source>
<translation>▾ 隐藏启动终端</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="253"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
<source>▸ Show raw TOML</source>
<translation>▸ 显示原始 TOML</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
<source>▾ Hide raw TOML</source>
<translation>▾ 隐藏原始 TOML</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="295"/>
<source>No description provided.</source>
<translation>未提供描述。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="309"/>
<source>— not required (local provider)</source>
<translation>— 不需要(本地提供商)</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="310"/>
<source>This provider type does not use a key.</source>
<translation>此类型的提供商不使用密钥。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="312"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="366"/>
<source>Stored — enter a new key to replace it.</source>
<translation>已存储 — 输入新密钥以替换。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="313"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="367"/>
<source>A key is stored. Type a new key and press Save key to replace it, or Clear to erase it.</source>
<translation>已存储一个密钥。输入新密钥并点击保存密钥进行替换,或点击清除将其删除。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="317"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="371"/>
<source>No key stored yet. Type a key and press Save key.</source>
<translation>尚未存储密钥。请输入密钥并点击保存密钥。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="338"/>
<source>Select a provider</source>
<translation>选择一个提供商</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="389"/>
<source>No [launch] block. This provider is treated as external — the plugin will not spawn or supervise any process. Add a [launch] block to the TOML to have the plugin manage a local server here.</source>
<translation>无 [launch] 块。此提供商被视为外部提供商 — 插件不会启动或管理任何进程。请在 TOML 中添加 [launch] 块以让插件在此管理本地服务器。</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="400"/>
<source> &lt;span style=&apos;color:gray&apos;&gt;(detached — survives Qt Creator restart)&lt;/span&gt;</source>
<translation> &lt;span style=&apos;color:gray&apos;&gt;(已分离 — 可在 Qt Creator 重启后继续运行)&lt;/span&gt;</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="411"/>
<source>starting…</source>
<translation>启动中…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="412"/>
<source>probing…</source>
<translation>探测中…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="413"/>
<source>ready</source>
<translation>就绪</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="414"/>
<source>stopping…</source>
<translation>停止中…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="416"/>
<source>failed</source>
<translation>失败</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="417"/>
<source>failed — %1</source>
<translation>失败 — %1</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::ProvidersPageWidget</name>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="76"/>
<source>Providers</source>
<translation>提供商</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="92"/>
<source>Filter providers…</source>
<translation>筛选提供商…</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="136"/>
<source>Open in editor</source>
<translation>在编辑器中打开</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="137"/>
<source>Bundled providers are read-only. Use Duplicate to create an editable user copy first.</source>
<translation>捆绑提供商为只读。请先使用复制功能创建可编辑的用户副本。</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="278"/>
<source>No user instances yet.</source>
<translation>尚无用户实例。</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="279"/>
<source>No bundled instances loaded.</source>
<translation>未加载任何捆绑实例。</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="289"/>
<source>User</source>
<translation>用户</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="290"/>
<source>Bundled</source>
<translation>捆绑</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="325"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="331"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="343"/>
<source>Duplicate provider</source>
<translation>复制提供商</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="326"/>
<source>Name for the new provider:</source>
<translation>新提供商的名称:</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="332"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="402"/>
<source>An instance named &apos;%1&apos; already exists.</source>
<translation>名为 &apos;%1&apos; 的实例已存在。</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="362"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="367"/>
<source>Delete provider</source>
<translation>删除提供商</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="363"/>
<source>Delete user provider &apos;%1&apos;?
File: %2</source>
<translation>删除用户提供商 &apos;%1&apos;?
文件:%2</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="368"/>
<source>Failed to delete file:
%1</source>
<translation>删除文件失败:
%1</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="395"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="401"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="408"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="423"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="431"/>
<source>Save</source>
<translation>保存</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
<source>Name cannot be empty.</source>
<translation>名称不能为空。</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="410"/>
<source>Save anyway?</source>
<translation>仍要保存?</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="432"/>
<source>Saved to:
%1
but could not remove the old file:
%2
Two provider files now describe this instance — delete the old file manually to avoid a duplicate-name error.</source>
<translation>已保存到:
%1
但无法删除旧文件:
%2
现在有两个提供商文件描述同一实例 — 请手动删除旧文件以避免名称冲突错误。</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="471"/>
<source>Clear API key</source>
<translation>清除 API 密钥</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="472"/>
<source>Erase the stored API key for &apos;%1&apos;?</source>
<translation>清除 &apos;%1&apos; 已存储的 API 密钥?</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::TagFilterStrip</name>
<message>
<location filename="../../settings/TagFilterStrip.cpp" line="115"/>
<source>FILTER BY TAG</source>
<translation>按标签筛选</translation>
</message>
<message>
<location filename="../../settings/TagFilterStrip.cpp" line="120"/>
<source>clear</source>
<translation>清除</translation>
</message>
</context>
<context>
<name>QodeAssist::Tools::TodoTool</name>
<message>
<location filename="../../tools/TodoTool.cpp" line="100"/>
<source>Error: &apos;tasks&apos; parameter (array) is required for &apos;add&apos; operation. Example: {&quot;operation&quot;: &quot;add&quot;, &quot;tasks&quot;: [&quot;Task 1&quot;, &quot;Task 2&quot;]}</source>
<translation>错误:&apos;add&apos; 操作需要 &apos;tasks&apos; 参数(数组)。示例:{&quot;operation&quot;: &quot;add&quot;, &quot;tasks&quot;: [&quot;Task 1&quot;, &quot;Task 2&quot;]}</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="107"/>
<source>Error: &apos;tasks&apos; array cannot be empty. Provide at least one task.</source>
<translation>错误:&apos;tasks&apos; 数组不能为空。请至少提供一个任务。</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="120"/>
<source>Error: All tasks in &apos;tasks&apos; array are empty strings.</source>
<translation>错误:&apos;tasks&apos; 数组中所有任务均为空字符串。</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="128"/>
<source>Error: &apos;todo_ids&apos; parameter (array) is required for &apos;complete&apos; operation. Example: {&quot;operation&quot;: &quot;complete&quot;, &quot;todo_ids&quot;: [1, 2, 3]}</source>
<translation>错误:&apos;complete&apos; 操作需要 &apos;todo_ids&apos; 参数(数组)。示例:{&quot;operation&quot;: &quot;complete&quot;, &quot;todo_ids&quot;: [1, 2, 3]}</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="135"/>
<source>Error: &apos;todo_ids&apos; array cannot be empty. Provide at least one ID.</source>
<translation>错误:&apos;todo_ids&apos; 数组不能为空。请至少提供一个 ID。</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="148"/>
<source>Error: All IDs in &apos;todo_ids&apos; array are invalid. IDs must be positive integers.</source>
<translation>错误:&apos;todo_ids&apos; 数组中所有 ID 均无效。ID 必须为正整数。</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="159"/>
<source>Error: Unknown operation &apos;%1&apos;. Valid operations: &apos;add&apos;, &apos;complete&apos;, &apos;list&apos;</source>
<translation>错误:未知操作 &apos;%1&apos;。有效操作:&apos;add&apos;&apos;complete&apos;&apos;list&apos;</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="192"/>
<source>✓ Added 1 new task</source>
<translation>✓ 已添加 1 个新任务</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="193"/>
<source>✓ Added %1 new tasks</source>
<translation>✓ 已添加 %1 个新任务</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="203"/>
<source>Error: No todos found in this session</source>
<translation>错误:此会话中未找到待办事项</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="228"/>
<source>✓ Marked 1 task as completed</source>
<translation>✓ 已将 1 个任务标记为已完成</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="229"/>
<source>✓ Marked %1 tasks as completed</source>
<translation>✓ 已将 %1 个任务标记为已完成</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="234"/>
<source>⚠ %1 already completed</source>
<translation>⚠ %1 已完成</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="238"/>
<source>❌ Not found: %1</source>
<translation>❌ 未找到:%1</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="255"/>
<source>📋 TODO List: (empty)</source>
<translation>📋 待办列表:(空)</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="264"/>
<source>📋 TODO List:</source>
<translation>📋 待办列表:</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="287"/>
<location filename="../../tools/TodoTool.cpp" line="329"/>
<source>Progress: %1/%2 completed (%3%)</source>
<translation>进度:%1/%2 已完成 (%3%)</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="296"/>
<location filename="../../tools/TodoTool.cpp" line="316"/>
<source>📋 All tasks completed! 🎉</source>
<translation>📋 所有任务已完成!🎉</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="321"/>
<source>📋 Remaining tasks:</source>
<translation>📋 剩余任务:</translation>
</message>
</context>
<context>
<name>QodeAssist::UpdateDialog</name>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="19"/>
<source>QodeAssist Update</source>
<translation>QodeAssist 更新</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="27"/>
<source>QodeAssist is an open-source project that helps
developers write better code. If you find it useful, please</source>
<translation>QodeAssist 是一个帮助开发者
写出更好代码的开源项目。如果您觉得它有用,请</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="54"/>
<source>QodeAssistUpdater - convenient tool for plugin installation and updates</source>
<translation>QodeAssistUpdater - 便捷的插件安装与更新工具</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="60"/>
<source>Download QodeAssistUpdater</source>
<translation>下载 QodeAssistUpdater</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="70"/>
<location filename="../../settings/UpdateDialog.cpp" line="127"/>
<source>A new version of QodeAssist is available!</source>
<translation>QodeAssist 有新版本可用!</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="76"/>
<location filename="../../settings/UpdateDialog.cpp" line="128"/>
<source>Version %1 is now available - you have %2</source>
<translation>版本 %1 现已可用 - 您当前为 %2</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="80"/>
<source>Release Notes:</source>
<translation>发行说明:</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="89"/>
<source>Open Release Page</source>
<translation>打开发行页面</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="92"/>
<source>Open Plugin Folder</source>
<translation>打开插件文件夹</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="95"/>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="121"/>
<source>QodeAssist is up to date</source>
<translation>QodeAssist 已是最新版本</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="123"/>
<source>You are using the latest version: %1</source>
<translation>您正在使用最新版本:%1</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="135"/>
<source>No release notes available. Check the release page for more information.</source>
<translation>无可用的发行说明。请查看发行页面以获取更多信息。</translation>
</message>
</context>
<context>
<name>QodeAssist::UpdateStatusWidget</name>
<message>
<location filename="../../UpdateStatusWidget.cpp" line="28"/>
<source>Update</source>
<translation>更新</translation>
</message>
<message>
<location filename="../../UpdateStatusWidget.cpp" line="45"/>
<source>New version: v%1</source>
<translation>新版本:v%1</translation>
</message>
<message>
<location filename="../../UpdateStatusWidget.cpp" line="48"/>
<source>Check update information</source>
<translation>查看更新信息</translation>
</message>
</context>
<context>
<name>QtC::QodeAssist</name>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="141"/>
<source>Cannot create user provider folder:
%1</source>
<translation>无法创建用户提供商文件夹:
%1</translation>
</message>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="147"/>
<source>Cannot pick a free filename in:
%1</source>
<translation>无法在以下位置选取空闲文件名:
%1</translation>
</message>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="153"/>
<source>Cannot write %1:
%2</source>
<translation>无法写入 %1:
%2</translation>
</message>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="159"/>
<source>Write failed for %1:
%2</source>
<translation>写入 %1 失败:
%2</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="79"/>
<location filename="../../settings/GeneralSettings.cpp" line="86"/>
<location filename="../../settings/GeneralSettings.cpp" line="93"/>
<source>Quick Setup</source>
<translation>快速设置</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="82"/>
<location filename="../../settings/GeneralSettings.cpp" line="89"/>
<location filename="../../settings/GeneralSettings.cpp" line="96"/>
<location filename="../../settings/SettingsTr.hpp" line="81"/>
<source>Configure API Key</source>
<translation>配置 API 密钥</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="83"/>
<location filename="../../settings/GeneralSettings.cpp" line="90"/>
<location filename="../../settings/GeneralSettings.cpp" line="97"/>
<source>Open Provider Settings to configure API keys</source>
<translation>打开提供商设置以配置 API 密钥</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="129"/>
<location filename="../../settings/GeneralSettings.cpp" line="208"/>
<location filename="../../settings/GeneralSettings.cpp" line="245"/>
<source>Load configuration (includes predefined cloud models)</source>
<translation>加载配置(包含预定义的云端模型)</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="251"/>
<location filename="../../settings/GeneralSettings.cpp" line="255"/>
<location filename="../../settings/GeneralSettings.cpp" line="259"/>
<source>Show template information</source>
<translation>显示模板信息</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="522"/>
<source>Template Information</source>
<translation>模板信息</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="523"/>
<source>Template</source>
<translation>模板</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="526"/>
<source>Description:</source>
<translation>描述:</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="744"/>
<source>Failed to save configuration. Check logs for details.</source>
<translation>保存配置失败。请查看日志了解详情。</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="785"/>
<source>[Preset] configurations are predefined cloud models ready to use.</source>
<translation>[Preset] 配置为可直接使用的预定义云端模型。</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="832"/>
<source>Predefined configurations cannot be deleted.</source>
<translation>预定义配置无法删除。</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="850"/>
<source>Failed to delete configuration.</source>
<translation>删除配置失败。</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="912"/>
<source>-- Select Preset --</source>
<translation>-- 选择预设 --</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="11"/>
<location filename="../../settings/ProjectSettings.cpp" line="22"/>
<location filename="../../settings/ProjectSettings.cpp" line="23"/>
<source>Enable QodeAssist</source>
<translation>启用 QodeAssist</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="12"/>
<source>General</source>
<translation>常规</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="14"/>
<location filename="../../settings/CodeCompletionSettings.cpp" line="346"/>
<location filename="../../settings/ToolsSettings.cpp" line="167"/>
<location filename="../../settings/McpSettings.cpp" line="79"/>
<location filename="../../settings/ProviderSettings.cpp" line="126"/>
<source>Reset Page to Defaults</source>
<translation>将本页重置为默认值</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="15"/>
<source>Check Update</source>
<translation>检查更新</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="16"/>
<source>Select...</source>
<translation>选择...</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="17"/>
<source>Provider:</source>
<translation>提供商:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="18"/>
<source>Model:</source>
<translation>模型:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="19"/>
<source>Template:</source>
<translation>模板:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="20"/>
<source>URL:</source>
<translation>URL:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="21"/>
<source>Status:</source>
<translation>状态:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="22"/>
<source>Test</source>
<translation>测试</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="23"/>
<source>Enable Logging</source>
<translation>启用日志</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="25"/>
<source>Log messages are visible in General Messages pane</source>
<translation>日志消息可在常规消息面板中查看</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="27"/>
<source>Check for updates when Qt Creator starts</source>
<translation>Qt Creator 启动时检查更新</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="28"/>
<source>Enable Chat(If you have performance issues try disabling this, need restart QtC)</source>
<translation>启用聊天(如有性能问题请尝试禁用,需要重启 Qt Creator)</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="31"/>
<source>Custom endpoint:</source>
<translation>自定义端点:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="33"/>
<location filename="../../settings/CodeCompletionSettings.cpp" line="27"/>
<location filename="../../settings/CodeCompletionSettings.cpp" line="543"/>
<source>Code Completion</source>
<translation>代码补全</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="34"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="30"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="391"/>
<source>Chat Assistant</source>
<translation>聊天助手</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="35"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="27"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="400"/>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="85"/>
<source>Quick Refactor</source>
<translation>快速重构</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="36"/>
<source>Chat Compression</source>
<translation>聊天压缩</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="37"/>
<source>Agent Pipelines</source>
<translation>智能体流水线</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="38"/>
<source>Inline completions while you type. Matchers run on every request.</source>
<translation>在您输入时进行内联补全。匹配器在每次请求时运行。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="41"/>
<source>Conversational assistant in the QodeAssist panel.</source>
<translation>QodeAssist 面板中的会话式助手。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="43"/>
<source>Used when a chat conversation needs to be summarised to stay within context.</source>
<translation>当需要对聊天对话进行摘要以保持在上下文范围内时使用。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="46"/>
<source>Inline editor-driven refactors via the Quick Refactor action.</source>
<translation>通过快速重构动作进行编辑器内的内联重构。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="48"/>
<location filename="../../settings/CodeCompletionSettings.cpp" line="465"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="348"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="356"/>
<location filename="../../settings/ToolsSettings.cpp" line="235"/>
<location filename="../../settings/McpSettings.cpp" line="148"/>
<location filename="../../settings/ProviderSettings.cpp" line="199"/>
<source>Reset Settings</source>
<translation>重置设置</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="49"/>
<location filename="../../settings/CodeCompletionSettings.cpp" line="466"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="349"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="357"/>
<location filename="../../settings/ToolsSettings.cpp" line="236"/>
<location filename="../../settings/McpSettings.cpp" line="149"/>
<location filename="../../settings/ProviderSettings.cpp" line="200"/>
<source>Are you sure you want to reset all settings to default values?</source>
<translation>您确定要将所有设置重置为默认值吗?</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="52"/>
<source>Current template description:</source>
<translation>当前模板描述:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="54"/>
<source>Connection Error</source>
<translation>连接错误</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="56"/>
<source>Unable to retrieve the list of models from the server.</source>
<translation>无法从服务器获取模型列表。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="57"/>
<source>Please verify the following:
- Server is running and accessible
- URL is correct
- Provider is properly configured
- API key is correctly set (if required)
You can try selecting a different provider or changing the URL:</source>
<translation>请检查以下内容:
- 服务器正在运行且可访问
- URL 正确
- 提供商配置正确
- API 密钥已正确设置(如有需要)
您可以尝试选择其他提供商或更改 URL:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="65"/>
<source>Select Provider</source>
<translation>选择提供商</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="66"/>
<source>Select URL</source>
<translation>选择 URL</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="67"/>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="68"/>
<source>Model Selection</source>
<translation>模型选择</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="69"/>
<source>Select from previously used models or enter a new model name.
If entering a new model name:
• For providers with automatic listing - ensure the model is installed
• For providers without listing support - check provider&apos;s documentation
• Make sure the model name matches exactly</source>
<translation>从之前使用过的模型中选择,或输入新的模型名称。
如果输入新的模型名称:
• 对于支持自动列出的提供商 - 请确保模型已安装
• 对于不支持列出的提供商 - 请查阅提供商文档
• 请确保模型名称完全匹配</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="76"/>
<source>Model name:</source>
<translation>模型名称:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="77"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="78"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="80"/>
<source>Enter Model Manually</source>
<translation>手动输入模型</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="82"/>
<source>URL Selection</source>
<translation>URL 选择</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="83"/>
<source>Select from the list of default and previously used URLs, or enter a custom one.
Please ensure the selected URL is accessible and the service is running.</source>
<translation>从默认或之前使用过的 URL 列表中选择,或输入自定义 URL。
请确保所选 URL 可访问且服务正在运行。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="88"/>
<source>Use default provider URL or from history</source>
<translation>使用默认提供商 URL 或历史 URL</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="89"/>
<source>Enter custom URL</source>
<translation>输入自定义 URL</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="91"/>
<source>Enter Model Name Manually</source>
<translation>手动输入模型名称</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="93"/>
<source>Auto Completion Settings</source>
<translation>自动补全设置</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="96"/>
<source>Add new preset for language</source>
<translation>为语言添加新预设</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="98"/>
<source>Save Config...</source>
<translation>保存配置...</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="99"/>
<source>Load Config...</source>
<translation>加载配置...</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="100"/>
<source>Open Folder</source>
<translation>打开文件夹</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="101"/>
<source>Save Configuration</source>
<translation>保存配置</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="102"/>
<source>Load Configuration</source>
<translation>加载配置</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="103"/>
<source>Configuration name:</source>
<translation>配置名称:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="104"/>
<source>Select Configuration</source>
<translation>选择配置</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="105"/>
<source>No saved configurations found.</source>
<translation>未找到已保存的配置。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="106"/>
<source>Configuration saved successfully.</source>
<translation>配置保存成功。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="107"/>
<source>Configuration loaded successfully.</source>
<translation>配置加载成功。</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="108"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="60"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="109"/>
<source>Are you sure you want to delete this configuration?</source>
<translation>您确定要删除此配置吗?</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="31"/>
<source>Enable Auto Complete</source>
<translation>启用自动补全</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="36"/>
<source>Enable Multiline Completion</source>
<translation>启用多行补全</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="38"/>
<source>Text output proccessing mode:</source>
<translation>文本输出处理模式:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="46"/>
<source>Auto: Automatically detects codeblock and applies processing when found, other text as comments
Force Processing: Always processes text with codeblock formatting and other text as comments
Raw Text: Shows unprocessed text without any formatting</source>
<translation>自动:自动检测代码块并在发现时应用处理,其他文本作为注释
强制处理:始终以代码块格式处理文本,其他文本作为注释
原始文本:显示未处理的文本,不进行任何格式化</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="52"/>
<source>Completion trigger mode:</source>
<translation>补全触发模式:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="59"/>
<source>Hint-based: Shows a hint when typing, press Tab to request completion
Automatic: Automatically requests completion after typing threshold</source>
<translation>基于提示:输入时显示提示,按 Tab 请求补全
自动:在达到输入阈值后自动请求补全</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="62"/>
<source>Completion mode:</source>
<translation>补全模式:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="69"/>
<source>Automatic: requests completion while typing (with smart context gates).
Manual: no auto-triggering; invoke via the &apos;Request QodeAssist Suggestion&apos; shortcut (default Ctrl+Alt+Q, reconfigurable in Preferences &gt; Keyboard).</source>
<translation>自动:在输入时请求补全(带智能上下文门控)。
手动:不自动触发;通过 &apos;请求 QodeAssist 建议&apos; 快捷键调用(默认 Ctrl+Alt+Q,可在首选项 &gt; 键盘中重新配置)。</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="74"/>
<source>Smart context-aware triggering</source>
<translation>智能上下文感知触发</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="77"/>
<source>When enabled, auto-completion is suppressed in places where Qt Creator&apos;s built-in completion is usually stronger (middle of an identifier, right after &apos;.&apos;, &apos;-&gt;&apos;, &apos;::&apos;) and is triggered more eagerly after structural characters like &apos;(&apos;, &apos;,&apos;, &apos;{&apos;, &apos;=&apos; and on fresh indented lines.</source>
<translation>启用后,在 Qt Creator 内置补全通常更强的位置(标识符中间,&apos;.&apos;&apos;-&gt;&apos;&apos;::&apos; 之后)抑制自动补全,而在 &apos;(&apos;&apos;,&apos;&apos;{&apos;&apos;=&apos; 等结构性字符之后以及新缩进行上更积极地触发。</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="83"/>
<source>Don&apos;t dismiss Qt Creator&apos;s completion popup</source>
<translation>不关闭 Qt Creator 的补全弹窗</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="86"/>
<source>When enabled, an AI completion arriving while Qt Creator&apos;s own completion popup is already visible will not force it closed. The LLM suggestion still appears inline.</source>
<translation>启用后,当 Qt Creator 自身的补全弹窗已显示时到达的 AI 补全不会强制关闭该弹窗。LLM 建议仍以内联方式显示。</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="91"/>
<source>Cancel in-flight request on new input</source>
<translation>在新输入时取消进行中的请求</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="94"/>
<source>When enabled, every new keystroke cancels any completion request already in flight and restarts the debounce timer. Useful for slow local models where an outdated answer is rarely worth waiting for.
When disabled (default), the in-flight request is kept; when the answer arrives, the plugin compares it with characters typed in the meantime and either trims the matching prefix or drops the answer.</source>
<translation>启用后,每次新按键都会取消任何进行中的补全请求并重启防抖定时器。对于过时答案很少值得等待的慢速本地模型非常有用。
禁用时(默认),进行中的请求会保留;答案到达时,插件会将其与同时输入的字符进行比较,然后修剪匹配的前缀或丢弃答案。</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="102"/>
<source>with delay(ms)</source>
<translation>延迟(毫秒)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="104"/>
<source>Delay before sending the completion request.
(Only for Automatic trigger mode)</source>
<translation>发送补全请求前的延迟。
(仅适用于自动触发模式)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="110"/>
<source>AI suggestion triggers after typing</source>
<translation>AI 建议在输入后触发</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="112"/>
<source>The number of characters that need to be typed within the typing interval before an AI suggestion request is sent automatically.
(Only for Automatic trigger mode)</source>
<translation>在输入间隔内需要输入的字符数,达到后自动发送 AI 建议请求。
(仅适用于自动触发模式)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="119"/>
<source>character(s) within(ms)</source>
<translation>字符,时间窗口(毫秒)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="121"/>
<source>The time window (in milliseconds) during which the character threshold must be met to trigger an AI suggestion request automatically.
(Only for Automatic trigger mode)</source>
<translation>在该时间窗口内(毫秒)必须达到字符阈值才会自动触发 AI 建议请求。
(仅适用于自动触发模式)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="128"/>
<source>Hint shows after typing</source>
<translation>输入后显示提示</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="130"/>
<source>The number of characters that need to be typed before the hint widget appears (only for Hint-based trigger mode).</source>
<translation>需要输入的字符数,达到后显示提示部件(仅适用于基于提示的触发模式)。</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="136"/>
<source>Hint auto-hide timeout (ms)</source>
<translation>提示自动隐藏超时(毫秒)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="138"/>
<source>Time in milliseconds after which the hint widget will automatically hide (only for Hint-based trigger mode).</source>
<translation>提示部件自动隐藏的时间(毫秒)(仅适用于基于提示的触发模式)。</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="143"/>
<source>Trigger key:</source>
<translation>触发键:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="154"/>
<source>Key to press for requesting completion when hint is visible.
Space is recommended as least conflicting with context menu.
(Only for Hint-based trigger mode)</source>
<translation>提示可见时用于请求补全的按键。
推荐使用空格键,与上下文菜单冲突最小。
(仅适用于基于提示的触发模式)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="160"/>
<source>Ignore spaces and tabs in character count</source>
<translation>在字符计数中忽略空格和制表符</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="163"/>
<source>When enabled, spaces and tabs are not counted towards the character threshold for triggering completions. This helps trigger completions based on actual code characters only.</source>
<translation>启用后,空格和制表符不计入触发补全的字符阈值。这有助于仅基于实际代码字符触发补全。</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="169"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="67"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="31"/>
<source>Temperature:</source>
<translation>温度:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="175"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="73"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="37"/>
<source>Max Tokens:</source>
<translation>最大 Token 数:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="182"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="80"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="44"/>
<source>Top P:</source>
<translation>Top P:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="191"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="89"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="53"/>
<source>Top K:</source>
<translation>Top K:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="199"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="97"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="61"/>
<source>Presence Penalty:</source>
<translation>存在惩罚:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="208"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="106"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="70"/>
<source>Frequency Penalty:</source>
<translation>频率惩罚:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="217"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="147"/>
<source>Read Full File</source>
<translation>读取整个文件</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="220"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="150"/>
<source>Read Strings Before Cursor:</source>
<translation>读取光标前的字符串数:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="228"/>
<source>Read Strings After Cursor:</source>
<translation>读取光标后的字符串数:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="234"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="116"/>
<source>Use System Prompt</source>
<translation>使用系统提示词</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="245"/>
<source>Use special system prompt and user message for non FIM models</source>
<translation>为非 FIM 模型使用特殊的系统提示词和用户消息</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="249"/>
<source>System prompt for non FIM models:</source>
<translation>非 FIM 模型的系统提示词:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="274"/>
<source>User message for non FIM models:</source>
<translation>非 FIM 模型的用户消息:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="281"/>
<source>Additional Programming Languages for handling: Example: rust,//,rust rs,rs</source>
<translation>需要处理的附加编程语言:示例:rust,//,rust rs,rs</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="282"/>
<source>Specify additional programming languages in format: name,comment_style,model_names,extensions
Example: rust,//,rust rs,rs
Fields: language name, comment prefix, names from LLM (space-separated), file extensions (space-separated)</source>
<translation>按以下格式指定附加编程语言:name,comment_style,model_names,extensions
示例:rust,//,rust rs,rs
字段:语言名称、注释前缀、LLM 中的名称(空格分隔)、文件扩展名(空格分隔)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="290"/>
<source>Show progress indicator during code completion</source>
<translation>在代码补全期间显示进度指示器</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="294"/>
<source>Abort existing assist on new completion request</source>
<translation>在新的补全请求时中止已有的辅助</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="296"/>
<source>When enabled, cancels any active Qt Creator code assist popup before requesting LLM completion.
(Only for Automatic trigger mode)</source>
<translation>启用后,在请求 LLM 补全之前取消任何活动的 Qt Creator 代码辅助弹窗。
(仅适用于自动触发模式)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="302"/>
<source>Include context from open files</source>
<translation>包含来自打开文件的上下文</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="307"/>
<source>Max Changes Cache Size:</source>
<translation>最大变更缓存大小:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="316"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="129"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="80"/>
<source>Time to suspend Ollama after completion request (in minutes), Only Ollama, -1 to disable</source>
<translation>补全请求后挂起 Ollama 的时间(分钟),仅 Ollama,-1 为禁用</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="323"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="136"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="88"/>
<source>Context Window:</source>
<translation>上下文窗口:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="329"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="167"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="127"/>
<source>Reasoning effort:</source>
<translation>推理强度:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="338"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="176"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="136"/>
<source>Constrains effort on reasoning for OpenAI gpt-5 and o-series models:
None: No reasoning (gpt-5.1 only)
Minimal: Minimal reasoning effort (o-series only)
Low: Low reasoning effort
Medium: Balanced reasoning (default for most models)
High: Maximum reasoning effort (gpt-5-pro only supports this)
Note: Reducing effort = faster responses + fewer tokens</source>
<translation>限制 OpenAI gpt-5 和 o 系列模型的推理强度:
None:无推理(仅 gpt-5.1)
Minimal:最小推理强度(仅 o 系列)
Low:低推理强度
Medium:平衡推理(大多数模型的默认值)
High:最大推理强度(仅 gpt-5-pro 支持)
注意:降低强度 = 更快响应 + 更少 Token</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="383"/>
<source>Prompts for FIM models</source>
<translation>FIM 模型的提示词</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="385"/>
<source>Prompts for Non FIM models</source>
<translation>非 FIM 模型的提示词</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="416"/>
<source>General Settings</source>
<translation>常规设置</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="418"/>
<source>Automatic Trigger Mode</source>
<translation>自动触发模式</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="420"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="316"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="278"/>
<source>General Parameters</source>
<translation>常规参数</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="425"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="320"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="282"/>
<source>Advanced Parameters</source>
<translation>高级参数</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="428"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="323"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="288"/>
<source>Context Settings</source>
<translation>上下文设置</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="430"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="312"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="286"/>
<source>OpenAI Responses API</source>
<translation>OpenAI Responses API</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="432"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="328"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="294"/>
<location filename="../../settings/ProviderSettings.cpp" line="152"/>
<source>Ollama Settings</source>
<translation>Ollama 设置</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="33"/>
<source>Sync open files with assistant by default</source>
<translation>默认将打开的文件与助手同步</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="38"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="185"/>
<source>Enable autosave when message received</source>
<translation>收到消息时启用自动保存</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="41"/>
<source>Enable chat in bottom toolbar</source>
<translation>在底部工具栏启用聊天</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="45"/>
<source>Enable chat in navigation panel</source>
<translation>在导航面板启用聊天</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="49"/>
<source>Enable tools/function calling</source>
<translation>启用工具/函数调用</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="50"/>
<source>When enabled, AI can use tools to read files, search project, and build code</source>
<translation>启用后,AI 可使用工具读取文件、搜索项目并构建代码</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="54"/>
<source>Auto-compress chat when session tokens exceed:</source>
<translation>会话 Token 数超过以下值时自动压缩聊天:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="55"/>
<source>After each assistant response, if the running session token total exceeds the threshold, the chat is summarized and a new compressed chat is started automatically. The original chat is preserved on disk.</source>
<translation>每次助手响应后,如果当前会话的 Token 总数超过阈值,聊天将被摘要并自动开启一个新的压缩聊天。原始聊天会保留在磁盘上。</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="142"/>
<source>Enable extended thinking mode.</source>
<translation>启用扩展思考模式。</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="144"/>
<source>Enable extended thinking mode for complex reasoning tasks.This provides step-by-step reasoning before the final answer.Temperature is 1.0 accordingly API requirement</source>
<translation>为复杂推理任务启用扩展思考模式。该模式在最终答案前提供分步推理。根据 API 要求,温度为 1.0。</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="150"/>
<source>Thinking budget tokens:</source>
<translation>思考预算 Token 数:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="152"/>
<source>Maximum number of tokens Claude can use for internal reasoning. Larger budgets improve quality but increase latency. Minimum: 1024, Recommended: 10000-16000.</source>
<translation>Claude 可用于内部推理的最大 Token 数。更大的预算可提升质量但会增加延迟。最小值:1024,推荐:10000-16000。</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="158"/>
<source>Thinking mode max output tokens:</source>
<translation>思考模式最大输出 Token 数:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="160"/>
<source>Maximum number of tokens for the final response when thinking mode is enabled. Set to -1 to use the default max tokens setting. Recommended: 4096-16000.</source>
<translation>启用思考模式时最终响应的最大 Token 数。设为 -1 则使用默认最大 Token 设置。推荐:4096-16000。</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="188"/>
<source>Text Font:</source>
<translation>文本字体:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="197"/>
<source>Text Font Size:</source>
<translation>文本字号:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="201"/>
<source>Code Font:</source>
<translation>代码字体:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="232"/>
<source>Code Font Size:</source>
<translation>代码字号:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="236"/>
<source>Text Format:</source>
<translation>文本格式:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="244"/>
<source>Chat Renderer:</source>
<translation>聊天渲染器:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="297"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="329"/>
<source>Chat Settings</source>
<translation>聊天设置</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="304"/>
<location filename="../../settings/ToolsSettings.cpp" line="27"/>
<location filename="../../settings/ToolsSettings.cpp" line="190"/>
<location filename="../../settings/ToolsSettings.cpp" line="269"/>
<source>Tools</source>
<translation>工具</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="308"/>
<source>Extended Thinking (Claude)</source>
<translation>扩展思考 (Claude)</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="405"/>
<source>Agent Roles</source>
<translation>智能体角色</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="93"/>
<source>Enable Tools</source>
<translation>启用工具</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="95"/>
<source>Enable AI tools/functions for quick refactoring (allows reading project files, searching code, etc.)</source>
<translation>为快速重构启用 AI 工具/函数(允许读取项目文件、搜索代码等)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="101"/>
<source>Enable Thinking Mode</source>
<translation>启用思考模式</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="103"/>
<source>Enable extended thinking mode for complex refactoring tasks (supported by compatible models like Claude and Google AI)</source>
<translation>为复杂重构任务启用扩展思考模式(由 Claude 和 Google AI 等兼容模型支持)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="109"/>
<source>Thinking Budget Tokens:</source>
<translation>思考预算 Token 数:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="111"/>
<source>Number of tokens allocated for thinking process. Use -1 for dynamic thinking (model decides), 0 to disable, or positive value for custom budget</source>
<translation>分配给思考过程的 Token 数。使用 -1 表示动态思考(由模型决定),0 表示禁用,正值表示自定义预算</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="118"/>
<source>Thinking Max Output Tokens:</source>
<translation>思考最大输出 Token 数:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="120"/>
<source>Maximum output tokens when thinking mode is enabled (includes thinking + response)</source>
<translation>启用思考模式时的最大输出 Token 数(包括思考 + 响应)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="154"/>
<source>Lines Before Cursor/Selection:</source>
<translation>光标/选择前的行数:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="156"/>
<source>Number of lines to include before cursor or selection for context</source>
<translation>作为上下文包含在光标或选择之前的行数</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="161"/>
<source>Lines After Cursor/Selection:</source>
<translation>光标/选择后的行数:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="163"/>
<source>Number of lines to include after cursor or selection for context</source>
<translation>作为上下文包含在光标或选择之后的行数</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="168"/>
<source>Display Mode:</source>
<translation>显示模式:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="170"/>
<source>Choose how to display refactoring suggestions:
- Inline Widget: Shows refactor in a widget overlay with Apply/Decline buttons (default)
- Qt Creator Suggestion: Uses Qt Creator&apos;s built-in suggestion system</source>
<translation>选择如何显示重构建议:
- 内联部件:在带有应用/拒绝按钮的部件覆盖层中显示重构(默认)
- Qt Creator 建议:使用 Qt Creator 内置的建议系统</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="175"/>
<source>Inline Widget</source>
<translation>内联部件</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="176"/>
<source>Qt Creator Suggestion</source>
<translation>Qt Creator 建议</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="180"/>
<source>Widget Orientation:</source>
<translation>部件方向:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="182"/>
<source>Choose default orientation for refactor widget:
- Horizontal: Original and refactored code side by side (default)
- Vertical: Original and refactored code stacked vertically</source>
<translation>选择重构部件的默认方向:
- 水平:原始代码和重构后代码并排显示(默认)
- 垂直:原始代码和重构后代码垂直堆叠</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="186"/>
<source>Horizontal</source>
<translation>水平</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="187"/>
<source>Vertical</source>
<translation>垂直</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="191"/>
<source>Widget Minimum Width:</source>
<translation>部件最小宽度:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="192"/>
<source>Minimum width for the refactor widget (in pixels)</source>
<translation>重构部件的最小宽度(像素)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="197"/>
<source>Widget Maximum Width:</source>
<translation>部件最大宽度:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="198"/>
<source>Maximum width for the refactor widget (in pixels)</source>
<translation>重构部件的最大宽度(像素)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="203"/>
<source>Widget Minimum Height:</source>
<translation>部件最小高度:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="204"/>
<source>Minimum height for the refactor widget (in pixels)</source>
<translation>重构部件的最小高度(像素)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="209"/>
<source>Widget Maximum Height:</source>
<translation>部件最大高度:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="210"/>
<source>Maximum height for the refactor widget (in pixels)</source>
<translation>重构部件的最大高度(像素)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="215"/>
<source>System Prompt:</source>
<translation>系统提示词:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="224"/>
<source>Include context from open files in quick refactor</source>
<translation>在快速重构中包含来自打开文件的上下文</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="284"/>
<source>Tools Settings</source>
<translation>工具设置</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="290"/>
<source>Display Settings</source>
<translation>显示设置</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="292"/>
<source>Prompt Settings</source>
<translation>提示词设置</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="30"/>
<source>Allow file access outside project</source>
<translation>允许访问项目外的文件</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="32"/>
<source>Allow tools to read, write, and create files outside the project scope (system headers, Qt files, external libraries).</source>
<translation>允许工具读取、写入和创建项目范围之外的文件(系统头文件、Qt 文件、外部库)。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="37"/>
<source>Automatically apply file edits</source>
<translation>自动应用文件编辑</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="39"/>
<source>When enabled, file edits suggested by AI are applied immediately. When disabled, each edit is staged for manual approval.</source>
<translation>启用后,AI 建议的文件编辑会立即应用。禁用后,每项编辑都会暂存以待手动批准。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="44"/>
<source>Max tool continuations:</source>
<translation>最大工具连续次数:</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="46"/>
<source>Maximum number of consecutive tool-use rounds in a single request. Each round lets the model call tools and receive results before continuing. Higher values allow more complex multi-step tasks but increase token usage.</source>
<translation>单次请求中连续使用工具的最大轮数。每一轮允许模型调用工具并接收结果后继续。更高的值可支持更复杂的多步任务,但会增加 Token 用量。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="53"/>
<source>List Project Files</source>
<translation>列出项目文件</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="55"/>
<source>Lists every source file tracked by the active Qt Creator project(s).</source>
<translation>列出活动 Qt Creator 项目跟踪的每个源文件。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="59"/>
<source>Find File</source>
<translation>查找文件</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="61"/>
<source>Locates a file in the project by name or partial path. Returns paths only, without file content.</source>
<translation>按名称或部分路径在项目中定位文件。仅返回路径,不返回文件内容。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="66"/>
<source>Read File</source>
<translation>读取文件</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="68"/>
<source>Reads the content of a file by absolute path or path relative to the project root.</source>
<translation>按绝对路径或相对于项目根目录的路径读取文件内容。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="72"/>
<source>Search in Project</source>
<translation>在项目中搜索</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="74"/>
<source>Searches project files for text occurrences or C++ symbol definitions.</source>
<translation>在项目文件中搜索文本出现或 C++ 符号定义。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="78"/>
<source>Create New File</source>
<translation>创建新文件</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="80"/>
<source>Creates a new empty file at the given absolute path, making missing directories.</source>
<translation>在指定的绝对路径处创建新的空文件,并创建缺失的目录。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="84"/>
<location filename="../../settings/ToolsSettings.cpp" line="212"/>
<source>Edit File</source>
<translation>编辑文件</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="86"/>
<source>Applies find-and-replace edits to files. See &quot;Automatically apply file edits&quot; to control whether edits apply immediately or wait for review.</source>
<translation>对文件应用查找替换编辑。请参阅 &quot;自动应用文件编辑&quot; 以控制编辑是立即应用还是等待审阅。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="91"/>
<source>Build Project</source>
<translation>构建项目</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="93"/>
<source>Triggers a build of the active Qt Creator project and reports the result.</source>
<translation>触发活动 Qt Creator 项目的构建并报告结果。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="97"/>
<source>Get Issues List</source>
<translation>获取问题列表</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="99"/>
<source>Reads compiler/clang diagnostics from Qt Creator&apos;s Issues panel.</source>
<translation>从 Qt Creator 的问题面板读取编译器/clang 诊断信息。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="103"/>
<location filename="../../settings/ToolsSettings.cpp" line="215"/>
<source>Execute Terminal Command</source>
<translation>执行终端命令</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="105"/>
<source>Runs a command from the OS-specific allowed list below, in the project directory.</source>
<translation>在项目目录中运行下方特定操作系统允许列表中的命令。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="109"/>
<source>Todo</source>
<translation>待办</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="111"/>
<source>Lets the AI maintain a session-scoped todo list for multi-step workflows.</source>
<translation>让 AI 为多步工作流维护一个会话范围的待办列表。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="115"/>
<source>Read Original History (Pre-Compression)</source>
<translation>读取原始历史(压缩前)</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="117"/>
<source>Lets the AI read the original, full chat history from before the conversation was compressed into a summary. Useful when a detail is missing from the summary currently in context. Has no effect if the chat was never compressed.</source>
<translation>让 AI 读取在对话被压缩为摘要之前的原始完整聊天历史。当当前上下文中的摘要缺少某些细节时很有用。如果聊天从未被压缩,则此功能无效。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="123"/>
<source>Load Skill</source>
<translation>加载技能</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="125"/>
<source>Lets the AI load the full instructions of a skill on demand. The Available Skills catalog in the system prompt lists each skill; this tool pulls a skill&apos;s complete instructions into context when needed.</source>
<translation>让 AI 按需加载技能的完整指令。系统提示词中的可用技能目录列出了每个技能;此工具在需要时将技能的完整指令拉入上下文。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="131"/>
<source>Allowed Commands (Linux)</source>
<translation>允许的命令 (Linux)</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="133"/>
<source>Comma-separated list of terminal commands that AI is allowed to execute on Linux. Example: git, ls, cat, grep, find, cmake</source>
<translation>允许 AI 在 Linux 上执行的终端命令列表,以逗号分隔。示例:git、ls、cat、grep、find、cmake</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="141"/>
<source>Allowed Commands (macOS)</source>
<translation>允许的命令 (macOS)</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="143"/>
<source>Comma-separated list of terminal commands that AI is allowed to execute on macOS. Example: git, ls, cat, grep, find, cmake</source>
<translation>允许 AI 在 macOS 上执行的终端命令列表,以逗号分隔。示例:git、ls、cat、grep、find、cmake</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="151"/>
<source>Allowed Commands (Windows)</source>
<translation>允许的命令 (Windows)</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="153"/>
<source>Comma-separated list of terminal commands that AI is allowed to execute on Windows. Example: git, dir, type, findstr, where, cmake</source>
<translation>允许 AI 在 Windows 上执行的终端命令列表,以逗号分隔。示例:git、dir、type、findstr、where、cmake</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="160"/>
<source>Command Timeout (seconds)</source>
<translation>命令超时(秒)</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="162"/>
<source>Maximum time in seconds to wait for a terminal command to complete. Increase for long-running commands like builds.</source>
<translation>等待终端命令完成的最长时间(秒)。对于构建等长时间运行的命令请增大此值。</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="206"/>
<source>Tool Settings</source>
<translation>工具设置</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="55"/>
<location filename="../../settings/SkillsSettings.cpp" line="104"/>
<location filename="../../settings/SkillsSettings.cpp" line="127"/>
<location filename="../../settings/ProjectSettingsPanel.cpp" line="96"/>
<source>Skills</source>
<translation>技能</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="58"/>
<source>Enable skills</source>
<translation>启用技能</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="60"/>
<source>Discover Agent Skills from the configured skill directories and expose them to the chat assistant. Each skill is a folder containing a SKILL.md file.</source>
<translation>从已配置的技能目录中发现智能体技能并将其暴露给聊天助手。每个技能是一个包含 SKILL.md 文件的文件夹。</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="69"/>
<source>Global skill directories:</source>
<translation>全局技能目录:</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="72"/>
<source>Absolute paths scanned for skills, one per line. Each path is a directory whose subfolders contain SKILL.md files. A leading ~ expands to your home directory. Lets QodeAssist pick up skills shared with other agents (e.g. ~/.claude/skills).</source>
<translation>用于扫描技能的绝对路径,每行一个。每个路径是一个其子文件夹包含 SKILL.md 文件的目录。前导 ~ 将展开为您的主目录。让 QodeAssist 能够使用与其他智能体共享的技能(例如 ~/.claude/skills)。</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="97"/>
<location filename="../../settings/ProjectSettingsPanel.cpp" line="86"/>
<source>No skills discovered.</source>
<translation>未发现任何技能。</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="110"/>
<source>Skill Directories</source>
<translation>技能目录</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="113"/>
<source>Discovered global skills:</source>
<translation>已发现的全局技能:</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="38"/>
<location filename="../../settings/McpSettings.cpp" line="341"/>
<source>MCP</source>
<translation>MCP</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="41"/>
<source>Enable MCP server</source>
<translation>启用 MCP 服务器</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="43"/>
<source>Expose QodeAssist tools to external MCP clients over HTTP. Which tools are visible is controlled on the client side.</source>
<translation>通过 HTTP 将 QodeAssist 工具暴露给外部 MCP 客户端。哪些工具可见由客户端控制。</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="48"/>
<source>Server port</source>
<translation>服务器端口</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="50"/>
<source>TCP port the MCP server listens on (localhost only). Requires restart of the server after change.</source>
<translation>MCP 服务器监听的 TCP 端口(仅限 localhost)。更改后需要重启服务器。</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="56"/>
<source>Connect to external MCP servers</source>
<translation>连接到外部 MCP 服务器</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="58"/>
<source>Connect to MCP servers listed in mcp-server.json and expose their tools to chat/quick-refactor/code-completion. Toggling this off disconnects all currently running MCP client sessions.</source>
<translation>连接到 mcp-server.json 中列出的 MCP 服务器,并将其工具暴露给聊天/快速重构/代码补全。关闭此项将断开所有当前正在运行的 MCP 客户端会话。</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="64"/>
<source>Extra PATH for stdio servers</source>
<translation>stdio 服务器的额外 PATH</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="67"/>
<source>Directories to prepend to PATH when launching stdio MCP servers. Useful when Qt Creator is started from the dock and doesn&apos;t see Homebrew, nvm, uv, etc. Separate multiple entries with &apos;%1&apos;. Per-server &apos;env&apos; overrides in mcp-server.json still win.</source>
<translation>启动 stdio MCP 服务器时要添加到 PATH 前面的目录。当从 Dock 启动 Qt Creator 而看不到 Homebrew、nvm、uv 等时很有用。多个条目使用 &apos;%1&apos; 分隔。mcp-server.json 中每个服务器的 &apos;env&apos; 覆盖仍然优先。</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="80"/>
<source>How to connect...</source>
<translation>如何连接...</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="93"/>
<source>Server</source>
<translation>服务器</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="100"/>
<source>Clients</source>
<translation>客户端</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="211"/>
<source>Connect to QodeAssist MCP</source>
<translation>连接到 QodeAssist MCP</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="215"/>
<source>Server URL: &lt;code&gt;%1&lt;/code&gt;. If your MCP client speaks HTTP/SSE natively, use the &lt;b&gt;Direct&lt;/b&gt; tab. If it only speaks stdio (e.g. Claude Desktop), use the &lt;b&gt;Bridge&lt;/b&gt; tab.</source>
<translation>服务器 URL:&lt;code&gt;%1&lt;/code&gt;。如果您的 MCP 客户端原生支持 HTTP/SSE,请使用 &lt;b&gt;直连&lt;/b&gt; 选项卡。如果它仅支持 stdio(例如 Claude Desktop),请使用 &lt;b&gt;桥接&lt;/b&gt; 选项卡。</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="242"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="265"/>
<source>&lt;b&gt;Claude Code&lt;/b&gt; (CLI): run once —</source>
<translation>&lt;b&gt;Claude Code&lt;/b&gt; (CLI):运行一次 —</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="271"/>
<source>&lt;b&gt;VS Code&lt;/b&gt;: save as &lt;code&gt;.vscode/mcp.json&lt;/code&gt; in the workspace:</source>
<translation>&lt;b&gt;VS Code&lt;/b&gt;:在工作区中另存为 &lt;code&gt;.vscode/mcp.json&lt;/code&gt;:</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="279"/>
<source>Any other client that reads an &lt;code&gt;mcpServers&lt;/code&gt; JSON block:</source>
<translation>任何其他读取 &lt;code&gt;mcpServers&lt;/code&gt; JSON 块的客户端:</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="287"/>
<source>Direct (HTTP/SSE)</source>
<translation>直连 (HTTP/SSE)</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="296"/>
<source>&lt;b&gt;1.&lt;/b&gt; Download &lt;code&gt;mcp-bridge&lt;/code&gt; for your OS from &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;.</source>
<translation>&lt;b&gt;1.&lt;/b&gt;&lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt; 下载适用于您操作系统的 &lt;code&gt;mcp-bridge&lt;/code&gt;</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="306"/>
<source>&lt;b&gt;2.&lt;/b&gt; Save the following as &lt;code&gt;mcp-bridge.json&lt;/code&gt;:</source>
<translation>&lt;b&gt;2.&lt;/b&gt; 将以下内容保存为 &lt;code&gt;mcp-bridge.json&lt;/code&gt;:</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="312"/>
<source>&lt;b&gt;3.&lt;/b&gt; Point the stdio-only client at the bridge. Example for &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:</source>
<translation>&lt;b&gt;3.&lt;/b&gt; 将仅支持 stdio 的客户端指向桥接。&lt;code&gt;claude_desktop_config.json&lt;/code&gt; 的示例:</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="321"/>
<source>Bridge (stdio)</source>
<translation>桥接 (stdio)</translation>
</message>
<message>
<location filename="../../settings/ProjectSettings.cpp" line="28"/>
<source>Chat History Path:</source>
<translation>聊天历史路径:</translation>
</message>
<message>
<location filename="../../settings/ProjectSettings.cpp" line="36"/>
<source>Skill directories:</source>
<translation>技能目录:</translation>
</message>
<message>
<location filename="../../settings/ProjectSettings.cpp" line="39"/>
<source>Project-relative subdirectories scanned for Agent Skills, one per line. Resolved against the project root. These take priority over the global skill directories when a skill name appears in both.</source>
<translation>用于扫描智能体技能的项目相对子目录,每行一个。相对于项目根目录解析。当一个技能名称同时出现在两处时,这些目录优先于全局技能目录。</translation>
</message>
<message>
<location filename="../../settings/ProjectSettingsPanel.cpp" line="99"/>
<source>Discovered project skills:</source>
<translation>已发现的项目技能:</translation>
</message>
<message>
<location filename="../../settings/ProjectSettingsPanel.cpp" line="115"/>
<source>QodeAssist</source>
<translation>QodeAssist</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="27"/>
<location filename="../../settings/ProviderSettings.cpp" line="224"/>
<source>Provider Settings</source>
<translation>提供商设置</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="31"/>
<source>OpenRouter API Key:</source>
<translation>OpenRouter API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="33"/>
<location filename="../../settings/ProviderSettings.cpp" line="42"/>
<location filename="../../settings/ProviderSettings.cpp" line="51"/>
<location filename="../../settings/ProviderSettings.cpp" line="77"/>
<location filename="../../settings/ProviderSettings.cpp" line="86"/>
<location filename="../../settings/ProviderSettings.cpp" line="94"/>
<location filename="../../settings/ProviderSettings.cpp" line="103"/>
<location filename="../../settings/ProviderSettings.cpp" line="112"/>
<location filename="../../settings/ProviderSettings.cpp" line="121"/>
<source>Enter your API key here</source>
<translation>在此输入您的 API 密钥</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="40"/>
<source>OpenAI Compatible API Key:</source>
<translation>OpenAI 兼容 API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="49"/>
<source>Claude API Key:</source>
<translation>Claude API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="57"/>
<source>Enable prompt caching</source>
<translation>启用提示词缓存</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="59"/>
<source>Marks the system prompt, tool definitions, and stable chat history with cache_control so Anthropic caches the request prefix (5-minute TTL). Reduces cost and latency on repeated turns.</source>
<translation>使用 cache_control 标记系统提示词、工具定义和稳定的聊天历史,以便 Anthropic 缓存请求前缀(5 分钟 TTL)。可降低重复轮次的成本和延迟。</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="66"/>
<source>Use 1h cache TTL (beta)</source>
<translation>使用 1 小时缓存 TTL (beta)</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="68"/>
<source>Requests Anthropic&apos;s 1-hour cache TTL instead of the default 5 minutes. Sends the extended-cache-ttl-2025-04-11 beta header.</source>
<translation>请求 Anthropic 1 小时的缓存 TTL,而不是默认的 5 分钟。发送 extended-cache-ttl-2025-04-11 beta 标头。</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="75"/>
<source>OpenAI API Key:</source>
<translation>OpenAI API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="84"/>
<source>Mistral AI API Key:</source>
<translation>Mistral AI API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="92"/>
<source>Codestral API Key:</source>
<translation>Codestral API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="101"/>
<source>Google AI API Key:</source>
<translation>Google AI API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="110"/>
<source>Ollama(Bearer) API Key:</source>
<translation>Ollama (Bearer) API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="119"/>
<source>llama.cpp API Key:</source>
<translation>llama.cpp API 密钥:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="138"/>
<source>OpenRouter Settings</source>
<translation>OpenRouter 设置</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="140"/>
<source>OpenAI Settings</source>
<translation>OpenAI 设置</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="142"/>
<source>OpenAI Compatible Settings</source>
<translation>OpenAI 兼容设置</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="145"/>
<source>Claude Settings</source>
<translation>Claude 设置</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="148"/>
<source>Mistral AI Settings</source>
<translation>Mistral AI 设置</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="150"/>
<source>Google AI Settings</source>
<translation>Google AI 设置</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="154"/>
<source>llama.cpp Settings</source>
<translation>llama.cpp 设置</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="28"/>
<source>Agent roles define different system prompts for specific tasks.</source>
<translation>智能体角色为特定任务定义不同的系统提示词。</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="32"/>
<source>Open Roles Folder...</source>
<translation>打开角色文件夹...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="48"/>
<source>Add...</source>
<translation>添加...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="52"/>
<source>Edit...</source>
<translation>编辑...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="56"/>
<source>Duplicate...</source>
<translation>复制...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="83"/>
<source>(Built-in role)</source>
<translation>(内置角色)</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="118"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="192"/>
<source>Role Already Exists</source>
<translation>角色已存在</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="119"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="193"/>
<source>A role with ID &apos;%1&apos; already exists. Please use a different ID.</source>
<translation>ID 为 &apos;%1&apos; 的角色已存在。请使用其他 ID。</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="492"/>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="521"/>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="554"/>
<source>Error</source>
<translation>错误</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
<source>Failed to save role &apos;%1&apos;.</source>
<translation>保存角色 &apos;%1&apos; 失败。</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="144"/>
<source>Cannot Edit Built-in Role</source>
<translation>无法编辑内置角色</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="145"/>
<source>Built-in roles cannot be edited. You can duplicate this role and modify the copy.</source>
<translation>内置角色无法编辑。您可以复制此角色并修改副本。</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
<source>Failed to update role &apos;%1&apos;.</source>
<translation>更新角色 &apos;%1&apos; 失败。</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
<source>Failed to duplicate role.</source>
<translation>复制角色失败。</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
<source>Cannot Delete Built-in Role</source>
<translation>无法删除内置角色</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
<source>Built-in roles cannot be deleted.</source>
<translation>内置角色无法删除。</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="222"/>
<source>Delete Role</source>
<translation>删除角色</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="223"/>
<source>Are you sure you want to delete the role &apos;%1&apos;?</source>
<translation>您确定要删除角色 &apos;%1&apos; 吗?</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
<source>Failed to delete role &apos;%1&apos;.</source>
<translation>删除角色 &apos;%1&apos; 失败。</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="160"/>
<source>Generate QodeAssist suggestion at the current cursor position.</source>
<translation>在当前光标位置生成 QodeAssist 建议。</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="161"/>
<source>Request QodeAssist Suggestion</source>
<translation>请求 QodeAssist 建议</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="244"/>
<source>Refactor code using QodeAssist</source>
<translation>使用 QodeAssist 重构代码</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="245"/>
<source>Quick Refactor with QodeAssist</source>
<translation>使用 QodeAssist 快速重构</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="270"/>
<source>Open QodeAssist Chat as an editor tab</source>
<translation>将 QodeAssist 聊天作为编辑器标签打开</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="271"/>
<source>Show QodeAssist Chat</source>
<translation>显示 QodeAssist 聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="287"/>
<location filename="../../qodeassist.cpp" line="288"/>
<source>Close QodeAssist Chat</source>
<translation>关闭 QodeAssist 聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="297"/>
<source>Open QodeAssist Chat in Separate Window</source>
<translation>在单独窗口中打开 QodeAssist 聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="298"/>
<source>Open the QodeAssist chat in a separate window</source>
<translation>在单独窗口中打开 QodeAssist 聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="303"/>
<source>New QodeAssist Chat</source>
<translation>新建 QodeAssist 聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="304"/>
<source>Open a fresh chat in a new editor tab</source>
<translation>在新的编辑器标签中打开新聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="310"/>
<source>Send QodeAssist Chat Message</source>
<translation>发送 QodeAssist 聊天消息</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="311"/>
<source>Send the current message to the LLM</source>
<translation>将当前消息发送到 LLM</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="320"/>
<source>Clear QodeAssist Chat Session</source>
<translation>清除 QodeAssist 聊天会话</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="321"/>
<source>Clear the current chat session</source>
<translation>清除当前聊天会话</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="379"/>
<location filename="../../qodeassist.cpp" line="388"/>
<location filename="../../chat/ChatOutputPane.cpp" line="19"/>
<location filename="../../chat/ChatDocument.cpp" line="19"/>
<location filename="../../chat/ChatEditor.cpp" line="42"/>
<location filename="../../chat/ChatEditorFactory.cpp" line="18"/>
<source>QodeAssist Chat</source>
<translation>QodeAssist 聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="460"/>
<source>Chat in Bottom Panel</source>
<translation>底部面板中的聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="467"/>
<source>Chat in Sidebar</source>
<translation>侧边栏中的聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="477"/>
<source>Open Chat in Editor</source>
<translation>在编辑器中打开聊天</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="485"/>
<source>Open Chat in Separate Window</source>
<translation>在单独窗口中打开聊天</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="133"/>
<source>Select LLM Provider</source>
<translation>选择 LLM 提供商</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="133"/>
<source>Providers:</source>
<translation>提供商:</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="175"/>
<source>Select LLM Model</source>
<translation>选择 LLM 模型</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="175"/>
<source>Models:</source>
<translation>模型:</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="206"/>
<source>Select Template</source>
<translation>选择模板</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="206"/>
<source>Templates:</source>
<translation>模板:</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="117"/>
<source>Switch AI configuration</source>
<translation>切换 AI 配置</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="130"/>
<source>Enable/Disable AI Tools</source>
<translation>启用/禁用 AI 工具</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="147"/>
<source>Enable/Disable Thinking Mode</source>
<translation>启用/禁用思考模式</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="159"/>
<source>Open Quick Refactor Settings</source>
<translation>打开快速重构设置</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="167"/>
<source>Your Current Instruction:</source>
<translation>您当前的指令:</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="172"/>
<source>Type or edit your instruction...</source>
<translation>输入或编辑您的指令...</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="178"/>
<source>Or Load saved:</source>
<translation>或加载已保存:</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="185"/>
<source>Search saved instructions...</source>
<translation>搜索已保存的指令...</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="197"/>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="21"/>
<source>Add Custom Instruction</source>
<translation>添加自定义指令</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="203"/>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="30"/>
<source>Edit Custom Instruction</source>
<translation>编辑自定义指令</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="209"/>
<source>Delete Custom Instruction</source>
<translation>删除自定义指令</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="215"/>
<source>Open Instructions Folder</source>
<translation>打开指令文件夹</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="285"/>
<source>Repeat Last Instructions</source>
<translation>重复上一条指令</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="291"/>
<source>Improve Current Code</source>
<translation>改进当前代码</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="297"/>
<source>Suggest Alternative Solution</source>
<translation>建议替代方案</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="366"/>
<source>Improve the selected code by enhancing readability, efficiency, and maintainability. Follow best practices for C++/Qt and fix any potential issues.</source>
<translation>通过提升可读性、效率和可维护性来改进所选代码。遵循 C++/Qt 最佳实践并修复任何潜在问题。</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="377"/>
<source>Suggest an alternative implementation approach for the selected code. Provide a different solution that might be cleaner, more efficient, or uses different Qt/C++ patterns or idioms.</source>
<translation>为所选代码建议一种替代的实现方式。提供一种可能更简洁、更高效,或使用不同 Qt/C++ 模式或习惯用法的解决方案。</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="493"/>
<source>Failed to save custom instruction. Check logs for details.</source>
<translation>保存自定义指令失败。请查看日志了解详情。</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="505"/>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="534"/>
<source>No Instruction Selected</source>
<translation>未选择指令</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="506"/>
<source>Please select an instruction to edit.</source>
<translation>请选择要编辑的指令。</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="522"/>
<source>Failed to update custom instruction. Check logs for details.</source>
<translation>更新自定义指令失败。请查看日志了解详情。</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="535"/>
<source>Please select an instruction to delete.</source>
<translation>请选择要删除的指令。</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="541"/>
<source>Confirm Deletion</source>
<translation>确认删除</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="542"/>
<source>Are you sure you want to delete the instruction &apos;%1&apos;?</source>
<translation>您确定要删除指令 &apos;%1&apos; 吗?</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="555"/>
<source>Failed to delete custom instruction. Check logs for details.</source>
<translation>删除自定义指令失败。请查看日志了解详情。</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="593"/>
<source>Current</source>
<translation>当前</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="603"/>
<source>Current (%1)</source>
<translation>当前 (%1)</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="640"/>
<source>No Instruction</source>
<translation>无指令</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="641"/>
<source>Please type an instruction or select a saved one.</source>
<translation>请输入指令或选择一个已保存的指令。</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="46"/>
<source>Enter instruction name...</source>
<translation>输入指令名称...</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="47"/>
<source>Name:</source>
<translation>名称:</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="51"/>
<source>Instruction Body:</source>
<translation>指令正文:</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="56"/>
<source>Enter the refactoring instruction that will be sent to the LLM...</source>
<translation>输入将发送到 LLM 的重构指令...</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="59"/>
<source>Set as default instruction</source>
<translation>设为默认指令</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="61"/>
<source>This instruction will be automatically selected when opening Quick Refactor dialog</source>
<translation>打开快速重构对话框时将自动选择此指令</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
<source>Invalid Input</source>
<translation>输入无效</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
<source>Instruction name cannot be empty.</source>
<translation>指令名称不能为空。</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
<source>Instruction body cannot be empty.</source>
<translation>指令正文不能为空。</translation>
</message>
</context>
<context>
<name>RootItem</name>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="75"/>
<source>Compressing chat…</source>
<translation>正在压缩聊天…</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="100"/>
<source>next ~%1 · session ↑%2 ↓%3 ↻%4</source>
<translation>下次 ~%1 · 会话 ↑%2 ↓%3 ↻%4</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="105"/>
<source>next ~%1 · session ↑%2 ↓%3</source>
<translation>下次 ~%1 · 会话 ↑%2 ↓%3</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="110"/>
<source>next request (estimate) · session prompt ↑ / completion ↓ / cached ↻ (provider cache hits)</source>
<translation>下次请求(估算) · 会话提示词 ↑ / 补全 ↓ / 缓存 ↻ (提供商缓存命中)</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="111"/>
<source>next request (estimate) · session prompt ↑ / completion ↓</source>
<translation>下次请求(估算) · 会话提示词 ↑ / 补全 ↓</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="114"/>
<source>Сhat name: %1</source>
<translation>聊天名称:%1</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="128"/>
<source>Move this chat to an editor tab</source>
<translation>将此聊天移到编辑器标签</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="129"/>
<source>Move this chat to a separate window</source>
<translation>将此聊天移到单独窗口</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="385"/>
<source>Type your message here... (⌘+↩ to send)</source>
<translation>在此输入您的消息... (⌘+↩ 发送)</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="386"/>
<source>Type your message here... (Ctrl+Enter to send)</source>
<translation>在此输入您的消息... (Ctrl+Enter 发送)</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="483"/>
<source>Cut</source>
<translation>剪切</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="489"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="495"/>
<source>Paste</source>
<translation>粘贴</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="503"/>
<source>Select All</source>
<translation>全选</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="511"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="563"/>
<source>Send</source>
<translation>发送</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="563"/>
<location filename="../../ChatView/qml/RootItem.qml" line="565"/>
<source>Stop</source>
<translation>停止</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="564"/>
<source>Send message to LLM %1</source>
<translation>向 LLM %1 发送消息</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="650"/>
<source>Compress Chat</source>
<translation>压缩聊天</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="655"/>
<source>Create a summarized copy of this chat?
The summary will be generated by LLM and saved as a new chat file.</source>
<translation>创建此聊天的摘要副本?
摘要将由 LLM 生成并保存为新的聊天文件。</translation>
</message>
</context>
<context>
<name>SplitDropZone</name>
<message numerus="yes">
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="49"/>
<source>%n file(s) to drop</source>
<translation>
<numerusform>%n 个文件待放置</numerusform>
</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="79"/>
<source>Attach</source>
<translation>附加</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="87"/>
<source>Images &amp; Text Files</source>
<translation>图片和文本文件</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="95"/>
<source>(for one-time use)</source>
<translation>(一次性使用)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="131"/>
<source>LINK</source>
<translation>链接</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="139"/>
<source>Text Files</source>
<translation>文本文件</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="147"/>
<source>(added to context)</source>
<translation>(已添加到上下文)</translation>
</message>
</context>
<context>
<name>TextBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="27"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="33"/>
<source>Select All</source>
<translation>全选</translation>
</message>
</context>
<context>
<name>ThinkingBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="45"/>
<source>Thinking (Redacted)</source>
<translation>思考(已删减)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="46"/>
<source>Thinking</source>
<translation>思考</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="75"/>
<source>Thinking content was redacted by safety systems</source>
<translation>思考内容已被安全系统删减</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
<source>Collapse</source>
<translation>折叠</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
<source>Expand</source>
<translation>展开</translation>
</message>
</context>
<context>
<name>ToolBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="47"/>
<source>Tool: %1</source>
<translation>工具:%1</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="99"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="105"/>
<source>Select All</source>
<translation>全选</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
<source>Collapse</source>
<translation>折叠</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
<source>Expand</source>
<translation>展开</translation>
</message>
</context>
<context>
<name>TopBar</name>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="64"/>
<source>Unpin chat window</source>
<translation>取消固定聊天窗口</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="65"/>
<source>Pin chat window to the top</source>
<translation>将聊天窗口固定到顶部</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="97"/>
<source>Clean chat</source>
<translation>清空聊天</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="117"/>
<source>Open new chat in a new tab</source>
<translation>在新标签中打开新聊天</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="130"/>
<source>Switch saved AI configuration</source>
<translation>切换已保存的 AI 配置</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="143"/>
<source>Switch agent role (different system prompts)</source>
<translation>切换智能体角色(不同的系统提示词)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="170"/>
<source>Tools are disabled in General Settings</source>
<translation>工具已在常规设置中禁用</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="173"/>
<source>Tools enabled: AI can use tools to read files, search project, and build code</source>
<translation>工具已启用:AI 可使用工具读取文件、搜索项目并构建代码</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="174"/>
<source>Tools disabled: Simple conversation without tool access</source>
<translation>工具已禁用:无工具访问的简单对话</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="196"/>
<source>Thinking Mode enabled (Check model list support it)</source>
<translation>思考模式已启用(请检查模型列表是否支持)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="197"/>
<source>Thinking Mode disabled</source>
<translation>思考模式已禁用</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="198"/>
<source>Thinking Mode is not available for this provider</source>
<translation>此提供商不支持思考模式</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="215"/>
<source>Open Chat Assistant Settings</source>
<translation>打开聊天助手设置</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="266"/>
<source>Save chat to *.json file</source>
<translation>将聊天保存到 *.json 文件</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="279"/>
<source>Load chat from *.json file</source>
<translation>从 *.json 文件加载聊天</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="292"/>
<source>Show in system</source>
<translation>在系统中显示</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="309"/>
<source>View chat context (system prompt, role, rules)</source>
<translation>查看聊天上下文(系统提示词、角色、规则)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="317"/>
<source>Current amount tokens in chat and LLM limit threshold</source>
<translation>聊天中当前的 Token 数量和 LLM 限制阈值</translation>
</message>
</context>
</TS>