Files
QodeAssist/resources/translations/QodeAssist_en.ts

4134 lines
193 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="en" sourcelanguage="en">
<context>
<name>BottomBar</name>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="50"/>
<source>Attach file to message</source>
<translation>Attach file to message</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="63"/>
<source>Attach image to message</source>
<translation>Attach image to message</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="76"/>
<source>Link file to context</source>
<translation>Link file to context</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="82"/>
<source>Sync open files</source>
<translation>Sync open files</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="85"/>
<source>Automatically synchronize currently opened files with the model context</source>
<translation>Automatically synchronize currently opened files with the model context</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="108"/>
<source>Compressing...</source>
<translation>Compressing...</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="118"/>
<source>Cancel</source>
<translation>Cancel</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="122"/>
<source>Cancel compression</source>
<translation>Cancel compression</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="130"/>
<source>Compress</source>
<translation>Compress</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/BottomBar.qml" line="139"/>
<source>Compress chat (create summarized copy using LLM)</source>
<translation>Compress chat (create summarized copy using 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 (cached %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 (reasoning %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>Reset chat to this message and edit</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>Click: Open in Qt Creator
Shift+Click: Open in System Editor</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="366"/>
<source>Failed to load image</source>
<translation>Failed to load image</translation>
</message>
</context>
<context>
<name>CodeBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="62"/>
<source>Code (%1)</source>
<translation>Code (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="63"/>
<source>Code</source>
<translation>Code</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>Copy</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
<source>Collapse</source>
<translation>Collapse</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
<source>Expand</source>
<translation>Expand</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="140"/>
<source>Copied</source>
<translation>Copied</translation>
</message>
</context>
<context>
<name>ContextViewer</name>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="54"/>
<source>Chat Context</source>
<translation>Chat Context</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="62"/>
<source>Refresh</source>
<translation>Refresh</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="67"/>
<source>Close</source>
<translation>Close</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="97"/>
<source>Base System Prompt</source>
<translation>Base System Prompt</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
<source>Active</source>
<translation>Active</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
<source>Empty</source>
<translation>Empty</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="125"/>
<source>No system prompt configured</source>
<translation>No system prompt configured</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>Copy</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="152"/>
<source>Edit in Settings</source>
<translation>Edit in Settings</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="166"/>
<source>Agent Role</source>
<translation>Agent Role</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="221"/>
<source>No role selected. Using base system prompt only.</source>
<translation>No role selected. Using base system prompt only.</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="241"/>
<source>Manage Roles</source>
<translation>Manage Roles</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="255"/>
<source>Project Rules</source>
<translation>Project Rules</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
<source>%1 active</source>
<translation>%1 active</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
<source>None</source>
<translation>None</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="282"/>
<source>Rules (%1)</source>
<translation>Rules (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="369"/>
<source>Content</source>
<translation>Content</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>No project rules found.
Create .md files in .qodeassist/rules/common/ or .qodeassist/rules/chat/</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/ContextViewer.qml" line="430"/>
<source>Open Rules Folder</source>
<translation>Open Rules Folder</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>Final prompt: Base System Prompt + Agent Role + Project Info + Project Rules + Linked Files</translation>
</message>
</context>
<context>
<name>DiffStatistics</name>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="40"/>
<source>+%1 lines, -%2 lines</source>
<translation>+%1 lines, -%2 lines</translation>
</message>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="42"/>
<source>+%1 lines</source>
<translation>+%1 lines</translation>
</message>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="44"/>
<source>-%1 lines</source>
<translation>-%1 lines</translation>
</message>
<message>
<location filename="../../widgets/DiffStatistics.hpp" line="46"/>
<source>No changes</source>
<translation>No changes</translation>
</message>
</context>
<context>
<name>FileEditBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="76"/>
<source>ARCHIVED</source>
<translation>ARCHIVED</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="77"/>
<source>APPLIED</source>
<translation>APPLIED</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="78"/>
<source>REJECTED</source>
<translation>REJECTED</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="79"/>
<source>PENDING</source>
<translation>PENDING</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
<source>Replace</source>
<translation>Replace</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
<source>Append</source>
<translation>Append</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>Open file in editor and navigate to changes</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>Copy</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>Collapse</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>Expand</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>File Edit in Current Message</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="82"/>
<source>%1 File Edits in Current Message</source>
<translation>%1 File Edits in Current Message</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="93"/>
<source>%1 applied</source>
<translation>%1 applied</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="96"/>
<source>%1 pending</source>
<translation>%1 pending</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="99"/>
<source>%1 rejected</source>
<translation>%1 rejected</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="118"/>
<source>Apply All (%1)</source>
<translation>Apply All (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="119"/>
<source>Reapply All (%1)</source>
<translation>Reapply All (%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>Apply all pending and rejected edits in this message</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="125"/>
<source>Reapply all rejected edits in this message</source>
<translation>Reapply all rejected edits in this message</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="135"/>
<source>Undo All (%1)</source>
<translation>Undo All (%1)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="139"/>
<source>Undo all applied edits in this message</source>
<translation>Undo all applied edits in this message</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>Template Not Found</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>Template &apos;%1&apos; was not found or has been updated. Please re-set new one.</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="595"/>
<source>Providers</source>
<translation>Providers</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="262"/>
<source>Agents</source>
<translation>Agents</translation>
</message>
<message>
<location filename="../../ChatView/ChatConfigurationController.cpp" line="58"/>
<location filename="../../ChatView/ChatConfigurationController.cpp" line="71"/>
<source>Current Settings</source>
<translation>Current Settings</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::ChatCompressor</name>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="30"/>
<source>Compression already in progress</source>
<translation>Compression already in progress</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="35"/>
<source>No chat file to compress</source>
<translation>No chat file to compress</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="40"/>
<source>Chat is empty, nothing to compress</source>
<translation>Chat is empty, nothing to compress</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="48"/>
<source>No provider available</source>
<translation>No provider available</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="57"/>
<source>No template available</source>
<translation>No template available</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="99"/>
<source>Compression cancelled</source>
<translation>Compression cancelled</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="122"/>
<source>Failed to save compressed chat</source>
<translation>Failed to save compressed chat</translation>
</message>
<message>
<location filename="../../ChatView/ChatCompressor.cpp" line="137"/>
<source>Compression failed: %1</source>
<translation>Compression failed: %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>File is not accessible: %1</translation>
</message>
<message>
<location filename="../../ChatView/ChatFileManager.cpp" line="45"/>
<source>Failed to copy file: %1</source>
<translation>Failed to copy file: %1</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::ChatHistoryStore</name>
<message>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="121"/>
<source>Save Chat History</source>
<translation>Save Chat History</translation>
</message>
<message>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="124"/>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="151"/>
<source>JSON files (*.json)</source>
<translation>JSON files (*.json)</translation>
</message>
<message>
<location filename="../../ChatView/ChatHistoryStore.cpp" line="148"/>
<source>Load Chat History</source>
<translation>Load Chat History</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::ChatRootView</name>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="285"/>
<source>Chat compressed successfully!</source>
<translation>Chat compressed successfully!</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>This chat file is already in use by another QodeAssist chat session.</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="527"/>
<source>This chat is already open in another QodeAssist chat session.</source>
<translation>This chat is already open in another QodeAssist chat session.</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="605"/>
<location filename="../../ChatView/ChatRootView.cpp" line="653"/>
<source>Select Files to Attach</source>
<translation>Select Files to Attach</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>Images automatically moved to Attach zone (%n file(s))</numerusform>
<numerusform>Images automatically moved to Attach zone (%n file(s))</numerusform>
</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="713"/>
<source>Select Images to Attach</source>
<translation>Select Images to Attach</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="715"/>
<source>Images (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</source>
<translation>Images (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="1280"/>
<source>Compression is already in progress</source>
<translation>Compression is already in progress</translation>
</message>
<message>
<location filename="../../ChatView/ChatRootView.cpp" line="1286"/>
<source>No chat file to compress. Please save the chat first.</source>
<translation>No chat file to compress. Please save the chat first.</translation>
</message>
</context>
<context>
<name>QodeAssist::Chat::NavigationPanel</name>
<message>
<location filename="../../chat/NavigationPanel.cpp" line="21"/>
<source>QodeAssist Chat</source>
<translation>QodeAssist Chat</translation>
</message>
</context>
<context>
<name>QodeAssist::EditorChatButton</name>
<message>
<location filename="../../widgets/EditorChatButton.cpp" line="48"/>
<source>Open QodeAssist Chat</source>
<translation>Open QodeAssist Chat</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 server exposing Qt Creator project tools.</translation>
</message>
</context>
<context>
<name>QodeAssist::QodeAssistClient</name>
<message>
<location filename="../../QodeAssistClient.cpp" line="379"/>
<source>Code completion failed: %1</source>
<translation>Code completion failed: %1</translation>
</message>
<message>
<location filename="../../QodeAssistClient.cpp" line="523"/>
<source>Quick refactor failed</source>
<translation>Quick refactor failed</translation>
</message>
<message>
<location filename="../../QodeAssistClient.cpp" line="524"/>
<source>Quick refactor failed: %1</source>
<translation>Quick refactor failed: %1</translation>
</message>
</context>
<context>
<name>QodeAssist::RefactorWidget</name>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="176"/>
<source>◄ Original</source>
<translation>◄ Original</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="186"/>
<source>Refactored ►</source>
<translation>Refactored ►</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="215"/>
<source>✓ Apply (⌘+Enter)</source>
<translation>✓ Apply (⌘+Enter)</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="217"/>
<source>✓ Apply (Ctrl+Enter)</source>
<translation>✓ Apply (Ctrl+Enter)</translation>
</message>
<message>
<location filename="../../widgets/RefactorWidget.cpp" line="223"/>
<source>✗ Decline (Esc)</source>
<translation>✗ Decline (Esc)</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentDetailPane</name>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="84"/>
<source>Open in editor</source>
<translation>Open in editor</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="85"/>
<source>Duplicate…</source>
<translation>Duplicate…</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="86"/>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="127"/>
<source>Identity</source>
<translation>Identity</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="129"/>
<source>Extends:</source>
<translation>Extends:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="143"/>
<source>Name:</source>
<translation>Name:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="153"/>
<source>Description:</source>
<translation>Description:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="154"/>
<source>Tags:</source>
<translation>Tags:</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>Comma-separated. Free-form — used to filter and group the agent list.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="159"/>
<source>System role</source>
<translation>System role</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="161"/>
<source>Prepended to every request as the system message.</source>
<translation>Prepended to every request as the system message.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="168"/>
<source>Context</source>
<translation>Context</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>Jinja2 template rendered with ContextManager bindings into the agent.context system-prompt layer. Empty = no context block.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="179"/>
<source>Connection</source>
<translation>Connection</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="191"/>
<source>Provider:</source>
<translation>Provider:</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>The provider instance this agent uses. URL is inherited from the instance.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="194"/>
<source>Endpoint:</source>
<translation>Endpoint:</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>Appended to the provider&apos;s URL. Blank uses the provider default.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="197"/>
<source>Model:</source>
<translation>Model:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="208"/>
<source>Match</source>
<translation>Match</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>When a feature slot has multiple bound agents, the first whose match rules satisfy the current context wins.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="217"/>
<source>File patterns:</source>
<translation>File patterns:</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="218"/>
<source>Globs, comma-separated. Empty matches every file.</source>
<translation>Globs, comma-separated. Empty matches every file.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="222"/>
<source>Template</source>
<translation>Template</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 template (via inja) rendered to the request body. Built-in context: 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>Load errors</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="246"/>
<location filename="../../settings/AgentDetailPane.cpp" line="257"/>
<source>▸ Show raw TOML</source>
<translation>▸ Show raw TOML</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="257"/>
<source>▾ Hide raw TOML</source>
<translation>▾ Hide raw TOML</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="312"/>
<source>No description provided.</source>
<translation>No description provided.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="344"/>
<source>%1 (missing — not in provider library)</source>
<translation>%1 (missing — not in provider library)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="352"/>
<source>(provider default)</source>
<translation>(provider default)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="358"/>
<source># effective request line
(unknown — provider instance not found)</source>
<translation># effective request line
(unknown — provider instance not found)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="360"/>
<source>effective request line</source>
<translation>effective request line</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="363"/>
<source>(no system role set)</source>
<translation>(no system role set)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="365"/>
<source>(no context block)</source>
<translation>(no context block)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="368"/>
<source>(matches every file)</source>
<translation>(matches every file)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="371"/>
<source>(inherited from parent / none)</source>
<translation>(inherited from parent / none)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="382"/>
<source>(truncated at %1 bytes)</source>
<translation>(truncated at %1 bytes)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="385"/>
<source>(source file is empty)</source>
<translation>(source file is empty)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="388"/>
<source>(source file unavailable: %1)</source>
<translation>(source file unavailable: %1)</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="394"/>
<source>Bundled agents are read-only — duplicate to edit.</source>
<translation>Bundled agents are read-only — duplicate to edit.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="398"/>
<source>Bundled agents cannot be deleted.</source>
<translation>Bundled agents cannot be deleted.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="407"/>
<source>Select an agent</source>
<translation>Select an agent</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="409"/>
<source>Pick an agent from the list to see its details.</source>
<translation>Pick an agent from the list to see its details.</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="437"/>
<source>error: %1</source>
<translation>error: %1</translation>
</message>
<message>
<location filename="../../settings/AgentDetailPane.cpp" line="439"/>
<source>warning: %1</source>
<translation>warning: %1</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentListPane</name>
<message>
<location filename="../../settings/AgentListPane.cpp" line="35"/>
<source>Filter agents…</source>
<translation>Filter agents…</translation>
</message>
<message>
<location filename="../../settings/AgentListPane.cpp" line="186"/>
<source>User</source>
<translation>User</translation>
</message>
<message>
<location filename="../../settings/AgentListPane.cpp" line="190"/>
<source>Bundled</source>
<translation>Bundled</translation>
</message>
<message>
<location filename="../../settings/AgentListPane.cpp" line="194"/>
<source>No agents match these filters.</source>
<translation>No agents match these filters.</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentRoleDialog</name>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="24"/>
<source>Add Agent Role</source>
<translation>Add Agent Role</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="26"/>
<source>Duplicate Agent Role</source>
<translation>Duplicate Agent Role</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="28"/>
<source>Edit Agent Role</source>
<translation>Edit Agent Role</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="42"/>
<source>e.g., Developer, Code Reviewer</source>
<translation>e.g., Developer, Code Reviewer</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="43"/>
<source>Name:</source>
<translation>Name:</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="46"/>
<source>e.g., developer, code_reviewer</source>
<translation>e.g., 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>Brief description of this role...</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="52"/>
<source>Description:</source>
<translation>Description:</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="56"/>
<source>System Prompt:</source>
<translation>System Prompt:</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>You are an expert in...
Your role is to:
- Task 1
- Task 2
- Task 3</translation>
</message>
<message>
<location filename="../../settings/AgentRoleDialog.cpp" line="75"/>
<source>ID cannot be changed for existing roles</source>
<translation>ID cannot be changed for existing roles</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::AgentsWidget</name>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="69"/>
<source>Agents</source>
<translation>Agents</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="75"/>
<source>Reload from disk</source>
<translation>Reload from disk</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="76"/>
<source>Open agents folder</source>
<translation>Open agents folder</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>Open agent</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; is bundled with the plugin and read-only.
Use Duplicate to create an editable user copy.</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="198"/>
<source>Agent &apos;%1&apos; has no editable source file.</source>
<translation>Agent &apos;%1&apos; has no editable source file.</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="204"/>
<source>Could not open %1.</source>
<translation>Could not open %1.</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="212"/>
<source>Duplicate</source>
<translation>Duplicate</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="228"/>
<location filename="../../settings/AgentsSettingsPage.cpp" line="236"/>
<source>Delete Agent</source>
<translation>Delete Agent</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="229"/>
<source>Delete agent &apos;%1&apos;?
This will remove the file:
%2</source>
<translation>Delete agent &apos;%1&apos;?
This will remove the file:
%2</translation>
</message>
<message>
<location filename="../../settings/AgentsSettingsPage.cpp" line="237"/>
<source>Could not delete the agent file:
%1</source>
<translation>Could not delete the agent file:
%1</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::McpClientsListAspect</name>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="72"/>
<source>Connected.</source>
<translation>Connected.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="74"/>
<source>Connecting…</source>
<translation>Connecting…</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="76"/>
<source>Failed.</source>
<translation>Failed.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="77"/>
<source>Failed: %1</source>
<translation>Failed: %1</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="81"/>
<source>Disabled.</source>
<translation>Disabled.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="129"/>
<source>everything (reference test server)</source>
<translation>everything (reference test server)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="138"/>
<source>filesystem (local files)</source>
<translation>filesystem (local files)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="149"/>
<source>memory (in-memory key-value)</source>
<translation>memory (in-memory key-value)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="158"/>
<source>git (local git ops)</source>
<translation>git (local git ops)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="167"/>
<source>time (system clock)</source>
<translation>time (system clock)</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&apos;s built-in MCP server)</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="185"/>
<source>qt-docs (Qt documentation)</source>
<translation>qt-docs (Qt documentation)</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>Server reports no tools.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="245"/>
<source>Tools</source>
<translation>Tools</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="271"/>
<source>Enable / disable this MCP server</source>
<translation>Enable / disable this MCP server</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="285"/>
<source>Remove this server from the config.</source>
<translation>Remove this server from the config.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="313"/>
<source>Remove server</source>
<translation>Remove server</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="314"/>
<source>Remove server &apos;%1&apos; from the config?</source>
<translation>Remove server &apos;%1&apos; from the config?</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="346"/>
<source>Open Config</source>
<translation>Open Config</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="348"/>
<source>Refresh MCP List</source>
<translation>Refresh MCP List</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>Note: restart Qt Creator to apply MCP changes to already-opened chats and running sessions.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="376"/>
<source>Quick Setup</source>
<translation>Quick Setup</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>Pick a preset to append a ready-made server entry to the config (auto-suffixed if the name is taken).</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="382"/>
<source>-- Select Preset --</source>
<translation>-- Select Preset --</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="410"/>
<source>No servers configured. Add a preset below or edit the JSON.</source>
<translation>No servers configured. Add a preset below or edit the JSON.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="415"/>
<source>0 server(s) defined.</source>
<translation>0 server(s) defined.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="429"/>
<source>%1 server(s) defined, %2 enabled.</source>
<translation>%1 server(s) defined, %2 enabled.</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="475"/>
<source>MCP configuration</source>
<translation>MCP configuration</translation>
</message>
<message>
<location filename="../../settings/McpClientsListAspect.cpp" line="476"/>
<source>Failed to write %1:
%2</source>
<translation>Failed to write %1:
%2</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::ProviderDetailPane</name>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="42"/>
<source>Edit…</source>
<translation>Edit…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="44"/>
<source>Open in editor</source>
<translation>Open in editor</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>Open this provider&apos;s TOML file in Qt Creator. Bundled providers are read-only — duplicate first.</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="48"/>
<source>Duplicate…</source>
<translation>Duplicate…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="49"/>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="50"/>
<source>Cancel</source>
<translation>Cancel</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="51"/>
<source>Save</source>
<translation>Save</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="105"/>
<source>Identity</source>
<translation>Identity</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="117"/>
<source>Name:</source>
<translation>Name:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="118"/>
<source>Client API:</source>
<translation>Client 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>The client API this provider speaks. Cannot be changed after creation.</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="121"/>
<source>Description:</source>
<translation>Description:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="124"/>
<source>Endpoint</source>
<translation>Endpoint</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>Base URL. Agents append their endpoint path (e.g. /chat/completions) to this.</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="144"/>
<source>Credentials</source>
<translation>Credentials</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>Enter API key…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="151"/>
<source>Show / hide API key</source>
<translation>Show / hide API key</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="155"/>
<source>Save key</source>
<translation>Save key</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="157"/>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="158"/>
<source>Erase the stored API key for this provider</source>
<translation>Erase the stored API key for this provider</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="190"/>
<source>API key:</source>
<translation>API key:</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="194"/>
<source>Launch</source>
<translation>Launch</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="204"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="410"/>
<source>idle</source>
<translation>idle</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="205"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="206"/>
<source>Stop</source>
<translation>Stop</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="207"/>
<source>Restart</source>
<translation>Restart</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="224"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
<source>▸ Show launch terminal</source>
<translation>▸ Show launch terminal</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
<source>▾ Hide launch terminal</source>
<translation>▾ Hide launch terminal</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="253"/>
<location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
<source>▸ Show raw TOML</source>
<translation>▸ Show raw TOML</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
<source>▾ Hide raw TOML</source>
<translation>▾ Hide raw TOML</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="295"/>
<source>No description provided.</source>
<translation>No description provided.</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="309"/>
<source>— not required (local provider)</source>
<translation>— not required (local provider)</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="310"/>
<source>This provider type does not use a key.</source>
<translation>This provider type does not use a key.</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>Stored — enter a new key to replace it.</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>A key is stored. Type a new key and press Save key to replace it, or Clear to erase it.</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>No key stored yet. Type a key and press Save key.</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="338"/>
<source>Select a provider</source>
<translation>Select a provider</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>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.</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;(detached — survives Qt Creator restart)&lt;/span&gt;</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="411"/>
<source>starting…</source>
<translation>starting…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="412"/>
<source>probing…</source>
<translation>probing…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="413"/>
<source>ready</source>
<translation>ready</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="414"/>
<source>stopping…</source>
<translation>stopping…</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="416"/>
<source>failed</source>
<translation>failed</translation>
</message>
<message>
<location filename="../../settings/ProviderDetailPane.cpp" line="417"/>
<source>failed — %1</source>
<translation>failed — %1</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::ProvidersPageWidget</name>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="76"/>
<source>Providers</source>
<translation>Providers</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="92"/>
<source>Filter providers…</source>
<translation>Filter providers…</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="136"/>
<source>Open in editor</source>
<translation>Open in editor</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>Bundled providers are read-only. Use Duplicate to create an editable user copy first.</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="278"/>
<source>No user instances yet.</source>
<translation>No user instances yet.</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="279"/>
<source>No bundled instances loaded.</source>
<translation>No bundled instances loaded.</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="289"/>
<source>User</source>
<translation>User</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="290"/>
<source>Bundled</source>
<translation>Bundled</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>Duplicate provider</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="326"/>
<source>Name for the new provider:</source>
<translation>Name for the new provider:</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>An instance named &apos;%1&apos; already exists.</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="362"/>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="367"/>
<source>Delete provider</source>
<translation>Delete provider</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="363"/>
<source>Delete user provider &apos;%1&apos;?
File: %2</source>
<translation>Delete user provider &apos;%1&apos;?
File: %2</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="368"/>
<source>Failed to delete file:
%1</source>
<translation>Failed to delete file:
%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>Save</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
<source>Name cannot be empty.</source>
<translation>Name cannot be empty.</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="410"/>
<source>Save anyway?</source>
<translation>Save anyway?</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>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.</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="471"/>
<source>Clear API key</source>
<translation>Clear API key</translation>
</message>
<message>
<location filename="../../settings/ProvidersSettingsPage.cpp" line="472"/>
<source>Erase the stored API key for &apos;%1&apos;?</source>
<translation>Erase the stored API key for &apos;%1&apos;?</translation>
</message>
</context>
<context>
<name>QodeAssist::Settings::TagFilterStrip</name>
<message>
<location filename="../../settings/TagFilterStrip.cpp" line="115"/>
<source>FILTER BY TAG</source>
<translation>FILTER BY TAG</translation>
</message>
<message>
<location filename="../../settings/TagFilterStrip.cpp" line="120"/>
<source>clear</source>
<translation>clear</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>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;]}</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>Error: &apos;tasks&apos; array cannot be empty. Provide at least one task.</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="120"/>
<source>Error: All tasks in &apos;tasks&apos; array are empty strings.</source>
<translation>Error: All tasks in &apos;tasks&apos; array are empty strings.</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>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]}</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>Error: &apos;todo_ids&apos; array cannot be empty. Provide at least one 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>Error: All IDs in &apos;todo_ids&apos; array are invalid. IDs must be positive integers.</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>Error: Unknown operation &apos;%1&apos;. Valid operations: &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>✓ Added 1 new task</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="193"/>
<source>✓ Added %1 new tasks</source>
<translation>✓ Added %1 new tasks</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="203"/>
<source>Error: No todos found in this session</source>
<translation>Error: No todos found in this session</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="228"/>
<source>✓ Marked 1 task as completed</source>
<translation>✓ Marked 1 task as completed</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="229"/>
<source>✓ Marked %1 tasks as completed</source>
<translation>✓ Marked %1 tasks as completed</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="234"/>
<source>⚠ %1 already completed</source>
<translation>⚠ %1 already completed</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="238"/>
<source>❌ Not found: %1</source>
<translation>❌ Not found: %1</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="255"/>
<source>📋 TODO List: (empty)</source>
<translation>📋 TODO List: (empty)</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="264"/>
<source>📋 TODO List:</source>
<translation>📋 TODO List:</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>Progress: %1/%2 completed (%3%)</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="296"/>
<location filename="../../tools/TodoTool.cpp" line="316"/>
<source>📋 All tasks completed! 🎉</source>
<translation>📋 All tasks completed! 🎉</translation>
</message>
<message>
<location filename="../../tools/TodoTool.cpp" line="321"/>
<source>📋 Remaining tasks:</source>
<translation>📋 Remaining tasks:</translation>
</message>
</context>
<context>
<name>QodeAssist::UpdateDialog</name>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="19"/>
<source>QodeAssist Update</source>
<translation>QodeAssist Update</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 is an open-source project that helps
developers write better code. If you find it useful, please</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="54"/>
<source>QodeAssistUpdater - convenient tool for plugin installation and updates</source>
<translation>QodeAssistUpdater - convenient tool for plugin installation and updates</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="60"/>
<source>Download QodeAssistUpdater</source>
<translation>Download 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>A new version of QodeAssist is available!</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>Version %1 is now available - you have %2</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="80"/>
<source>Release Notes:</source>
<translation>Release Notes:</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="89"/>
<source>Open Release Page</source>
<translation>Open Release Page</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="92"/>
<source>Open Plugin Folder</source>
<translation>Open Plugin Folder</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="95"/>
<source>Close</source>
<translation>Close</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="121"/>
<source>QodeAssist is up to date</source>
<translation>QodeAssist is up to date</translation>
</message>
<message>
<location filename="../../settings/UpdateDialog.cpp" line="123"/>
<source>You are using the latest version: %1</source>
<translation>You are using the latest version: %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>No release notes available. Check the release page for more information.</translation>
</message>
</context>
<context>
<name>QodeAssist::UpdateStatusWidget</name>
<message>
<location filename="../../UpdateStatusWidget.cpp" line="28"/>
<source>Update</source>
<translation>Update</translation>
</message>
<message>
<location filename="../../UpdateStatusWidget.cpp" line="45"/>
<source>New version: v%1</source>
<translation>New version: v%1</translation>
</message>
<message>
<location filename="../../UpdateStatusWidget.cpp" line="48"/>
<source>Check update information</source>
<translation>Check update information</translation>
</message>
</context>
<context>
<name>QtC::QodeAssist</name>
<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>Reset Page to Defaults</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>Reset Settings</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>Are you sure you want to reset all settings to default values?</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>Enable QodeAssist</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="12"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="15"/>
<source>Check Update</source>
<translation>Check Update</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="16"/>
<source>Select...</source>
<translation>Select...</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="17"/>
<source>Provider:</source>
<translation>Provider:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="18"/>
<source>Model:</source>
<translation>Model:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="19"/>
<source>Template:</source>
<translation>Template:</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>Status:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="22"/>
<source>Test</source>
<translation>Test</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="23"/>
<source>Enable Logging</source>
<translation>Enable Logging</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="25"/>
<source>Log messages are visible in General Messages pane</source>
<translation>Log messages are visible in General Messages pane</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="27"/>
<source>Check for updates when Qt Creator starts</source>
<translation>Check for updates when Qt Creator starts</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>Enable Chat(If you have performance issues try disabling this, need restart QtC)</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="31"/>
<source>Custom endpoint:</source>
<translation>Custom endpoint:</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>Code Completion</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>Chat Assistant</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="36"/>
<source>Chat Compression</source>
<translation>Chat Compression</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="37"/>
<source>Agent Pipelines</source>
<translation>Agent Pipelines</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="38"/>
<source>Inline completions while you type. Matchers run on every request.</source>
<translation>Inline completions while you type. Matchers run on every request.</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="41"/>
<source>Conversational assistant in the QodeAssist panel.</source>
<translation>Conversational assistant in the QodeAssist panel.</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>Used when a chat conversation needs to be summarised to stay within context.</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="46"/>
<source>Inline editor-driven refactors via the Quick Refactor action.</source>
<translation>Inline editor-driven refactors via the Quick Refactor action.</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="52"/>
<source>Current template description:</source>
<translation>Current template description:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="54"/>
<source>Connection Error</source>
<translation>Connection Error</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="56"/>
<source>Unable to retrieve the list of models from the server.</source>
<translation>Unable to retrieve the list of models from the server.</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>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:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="65"/>
<source>Select Provider</source>
<translation>Select Provider</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="66"/>
<source>Select URL</source>
<translation>Select URL</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="67"/>
<source>Close</source>
<translation>Close</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="68"/>
<source>Model Selection</source>
<translation>Model Selection</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>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</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="76"/>
<source>Model name:</source>
<translation>Model name:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="77"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="78"/>
<source>Cancel</source>
<translation>Cancel</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="80"/>
<source>Enter Model Manually</source>
<translation>Enter Model Manually</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="98"/>
<source>Save Config...</source>
<translation>Save Config...</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="99"/>
<source>Load Config...</source>
<translation>Load Config...</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="100"/>
<source>Open Folder</source>
<translation>Open Folder</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="101"/>
<source>Save Configuration</source>
<translation>Save Configuration</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="102"/>
<source>Load Configuration</source>
<translation>Load Configuration</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="103"/>
<source>Configuration name:</source>
<translation>Configuration name:</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="104"/>
<source>Select Configuration</source>
<translation>Select Configuration</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="105"/>
<source>No saved configurations found.</source>
<translation>No saved configurations found.</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="106"/>
<source>Configuration saved successfully.</source>
<translation>Configuration saved successfully.</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="107"/>
<source>Configuration loaded successfully.</source>
<translation>Configuration loaded successfully.</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="108"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="60"/>
<source>Delete</source>
<translation>Delete</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="109"/>
<source>Are you sure you want to delete this configuration?</source>
<translation>Are you sure you want to delete this configuration?</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>Quick Setup</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>Configure API Key</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>Open Provider Settings to configure API keys</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>Load configuration (includes predefined cloud models)</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>Show template information</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="522"/>
<source>Template Information</source>
<translation>Template Information</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="523"/>
<source>Template</source>
<translation>Template</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="526"/>
<source>Description:</source>
<translation>Description:</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="744"/>
<source>Failed to save configuration. Check logs for details.</source>
<translation>Failed to save configuration. Check logs for details.</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="785"/>
<source>[Preset] configurations are predefined cloud models ready to use.</source>
<translation>[Preset] configurations are predefined cloud models ready to use.</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="832"/>
<source>Predefined configurations cannot be deleted.</source>
<translation>Predefined configurations cannot be deleted.</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="850"/>
<source>Failed to delete configuration.</source>
<translation>Failed to delete configuration.</translation>
</message>
<message>
<location filename="../../settings/GeneralSettings.cpp" line="912"/>
<source>-- Select Preset --</source>
<translation>-- Select Preset --</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="82"/>
<source>URL Selection</source>
<translation>URL Selection</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>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.</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="88"/>
<source>Use default provider URL or from history</source>
<translation>Use default provider URL or from history</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="89"/>
<source>Enter custom URL</source>
<translation>Enter custom URL</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="91"/>
<source>Enter Model Name Manually</source>
<translation>Enter Model Name Manually</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="93"/>
<source>Auto Completion Settings</source>
<translation>Auto Completion Settings</translation>
</message>
<message>
<location filename="../../settings/SettingsTr.hpp" line="96"/>
<source>Add new preset for language</source>
<translation>Add new preset for language</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="31"/>
<source>Enable Auto Complete</source>
<translation>Enable Auto Complete</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="36"/>
<source>Enable Multiline Completion</source>
<translation>Enable Multiline Completion</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="102"/>
<source>with delay(ms)</source>
<translation>with delay(ms)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="110"/>
<source>AI suggestion triggers after typing</source>
<translation>AI suggestion triggers after typing</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="119"/>
<source>character(s) within(ms)</source>
<translation>character(s) within(ms)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="38"/>
<source>Text output proccessing mode:</source>
<translation>Text output proccessing mode:</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>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</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="52"/>
<source>Completion trigger mode:</source>
<translation>Completion trigger mode:</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>Hint-based: Shows a hint when typing, press Tab to request completion
Automatic: Automatically requests completion after typing threshold</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="62"/>
<source>Completion mode:</source>
<translation>Completion mode:</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>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).</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="74"/>
<source>Smart context-aware triggering</source>
<translation>Smart context-aware triggering</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>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.</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="83"/>
<source>Don&apos;t dismiss Qt Creator&apos;s completion popup</source>
<translation>Don&apos;t dismiss Qt Creator&apos;s completion popup</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>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.</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="91"/>
<source>Cancel in-flight request on new input</source>
<translation>Cancel in-flight request on new input</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>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.</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="104"/>
<source>Delay before sending the completion request.
(Only for Automatic trigger mode)</source>
<translation>Delay before sending the completion request.
(Only for Automatic trigger mode)</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>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)</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>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)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="128"/>
<source>Hint shows after typing</source>
<translation>Hint shows after typing</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>The number of characters that need to be typed before the hint widget appears (only for Hint-based trigger mode).</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="136"/>
<source>Hint auto-hide timeout (ms)</source>
<translation>Hint auto-hide timeout (ms)</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>Time in milliseconds after which the hint widget will automatically hide (only for Hint-based trigger mode).</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="143"/>
<source>Trigger key:</source>
<translation>Trigger key:</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>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)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="160"/>
<source>Ignore spaces and tabs in character count</source>
<translation>Ignore spaces and tabs in character count</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>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.</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>Temperature:</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>Max Tokens:</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>Presence Penalty:</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>Frequency Penalty:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="217"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="147"/>
<source>Read Full File</source>
<translation>Read Full File</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="220"/>
<location filename="../../settings/QuickRefactorSettings.cpp" line="150"/>
<source>Read Strings Before Cursor:</source>
<translation>Read Strings Before Cursor:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="228"/>
<source>Read Strings After Cursor:</source>
<translation>Read Strings After Cursor:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="234"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="116"/>
<source>Use System Prompt</source>
<translation>Use System Prompt</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="245"/>
<source>Use special system prompt and user message for non FIM models</source>
<translation>Use special system prompt and user message for non FIM models</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="249"/>
<source>System prompt for non FIM models:</source>
<translation>System prompt for non FIM models:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="274"/>
<source>User message for non FIM models:</source>
<translation>User message for non FIM models:</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="281"/>
<source>Additional Programming Languages for handling: Example: rust,//,rust rs,rs</source>
<translation>Additional Programming Languages for handling: Example: 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>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)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="290"/>
<source>Show progress indicator during code completion</source>
<translation>Show progress indicator during code completion</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="294"/>
<source>Abort existing assist on new completion request</source>
<translation>Abort existing assist on new completion request</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>When enabled, cancels any active Qt Creator code assist popup before requesting LLM completion.
(Only for Automatic trigger mode)</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="302"/>
<source>Include context from open files</source>
<translation>Include context from open files</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="307"/>
<source>Max Changes Cache Size:</source>
<translation>Max Changes Cache Size:</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/QuickRefactorSettings.cpp" line="93"/>
<source>Enable Tools</source>
<translation>Enable Tools</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>Enable AI tools/functions for quick refactoring (allows reading project files, searching code, etc.)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="101"/>
<source>Enable Thinking Mode</source>
<translation>Enable Thinking Mode</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>Enable extended thinking mode for complex refactoring tasks (supported by compatible models like Claude and Google AI)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="109"/>
<source>Thinking Budget Tokens:</source>
<translation>Thinking Budget Tokens:</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>Number of tokens allocated for thinking process. Use -1 for dynamic thinking (model decides), 0 to disable, or positive value for custom budget</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="118"/>
<source>Thinking Max Output Tokens:</source>
<translation>Thinking Max Output Tokens:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="120"/>
<source>Maximum output tokens when thinking mode is enabled (includes thinking + response)</source>
<translation>Maximum output tokens when thinking mode is enabled (includes thinking + response)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="154"/>
<source>Lines Before Cursor/Selection:</source>
<translation>Lines Before Cursor/Selection:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="156"/>
<source>Number of lines to include before cursor or selection for context</source>
<translation>Number of lines to include before cursor or selection for context</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="161"/>
<source>Lines After Cursor/Selection:</source>
<translation>Lines After Cursor/Selection:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="163"/>
<source>Number of lines to include after cursor or selection for context</source>
<translation>Number of lines to include after cursor or selection for context</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="168"/>
<source>Display Mode:</source>
<translation>Display Mode:</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>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</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="175"/>
<source>Inline Widget</source>
<translation>Inline Widget</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="176"/>
<source>Qt Creator Suggestion</source>
<translation>Qt Creator Suggestion</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="180"/>
<source>Widget Orientation:</source>
<translation>Widget Orientation:</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>Choose default orientation for refactor widget:
- Horizontal: Original and refactored code side by side (default)
- Vertical: Original and refactored code stacked vertically</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="186"/>
<source>Horizontal</source>
<translation>Horizontal</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="187"/>
<source>Vertical</source>
<translation>Vertical</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="191"/>
<source>Widget Minimum Width:</source>
<translation>Widget Minimum Width:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="192"/>
<source>Minimum width for the refactor widget (in pixels)</source>
<translation>Minimum width for the refactor widget (in pixels)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="197"/>
<source>Widget Maximum Width:</source>
<translation>Widget Maximum Width:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="198"/>
<source>Maximum width for the refactor widget (in pixels)</source>
<translation>Maximum width for the refactor widget (in pixels)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="203"/>
<source>Widget Minimum Height:</source>
<translation>Widget Minimum Height:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="204"/>
<source>Minimum height for the refactor widget (in pixels)</source>
<translation>Minimum height for the refactor widget (in pixels)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="209"/>
<source>Widget Maximum Height:</source>
<translation>Widget Maximum Height:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="210"/>
<source>Maximum height for the refactor widget (in pixels)</source>
<translation>Maximum height for the refactor widget (in pixels)</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="215"/>
<source>System Prompt:</source>
<translation>System Prompt:</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="224"/>
<source>Include context from open files in quick refactor</source>
<translation>Include context from open files in quick refactor</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="284"/>
<source>Tools Settings</source>
<translation>Tools Settings</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="290"/>
<source>Display Settings</source>
<translation>Display Settings</translation>
</message>
<message>
<location filename="../../settings/QuickRefactorSettings.cpp" line="292"/>
<source>Prompt Settings</source>
<translation>Prompt Settings</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>Time to suspend Ollama after completion request (in minutes), Only Ollama, -1 to disable</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>Context Window:</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>Reasoning effort:</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>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</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="383"/>
<source>Prompts for FIM models</source>
<translation>Prompts for FIM models</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="385"/>
<source>Prompts for Non FIM models</source>
<translation>Prompts for Non FIM models</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="416"/>
<source>General Settings</source>
<translation>General Settings</translation>
</message>
<message>
<location filename="../../settings/CodeCompletionSettings.cpp" line="418"/>
<source>Automatic Trigger Mode</source>
<translation>Automatic Trigger Mode</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>General Parameters</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>Advanced Parameters</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>Context Settings</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 Settings</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="33"/>
<source>Sync open files with assistant by default</source>
<translation>Sync open files with assistant by default</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>Enable autosave when message received</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="41"/>
<source>Enable chat in bottom toolbar</source>
<translation>Enable chat in bottom toolbar</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="45"/>
<source>Enable chat in navigation panel</source>
<translation>Enable chat in navigation panel</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="49"/>
<source>Enable tools/function calling</source>
<translation>Enable tools/function calling</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>When enabled, AI can use tools to read files, search project, and build code</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="54"/>
<source>Auto-compress chat when session tokens exceed:</source>
<translation>Auto-compress chat when session tokens exceed:</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>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.</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="142"/>
<source>Enable extended thinking mode.</source>
<translation>Enable extended thinking mode.</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>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</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="150"/>
<source>Thinking budget tokens:</source>
<translation>Thinking budget tokens:</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>Maximum number of tokens Claude can use for internal reasoning. Larger budgets improve quality but increase latency. Minimum: 1024, Recommended: 10000-16000.</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="158"/>
<source>Thinking mode max output tokens:</source>
<translation>Thinking mode max output tokens:</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>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.</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="188"/>
<source>Text Font:</source>
<translation>Text Font:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="197"/>
<source>Text Font Size:</source>
<translation>Text Font Size:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="201"/>
<source>Code Font:</source>
<translation>Code Font:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="232"/>
<source>Code Font Size:</source>
<translation>Code Font Size:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="236"/>
<source>Text Format:</source>
<translation>Text Format:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="244"/>
<source>Chat Renderer:</source>
<translation>Chat Renderer:</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="297"/>
<location filename="../../settings/ChatAssistantSettings.cpp" line="329"/>
<source>Chat Settings</source>
<translation>Chat Settings</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>Tools</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="308"/>
<source>Extended Thinking (Claude)</source>
<translation>Extended Thinking (Claude)</translation>
</message>
<message>
<location filename="../../settings/ChatAssistantSettings.cpp" line="405"/>
<source>Agent Roles</source>
<translation>Agent Roles</translation>
</message>
<message>
<location filename="../../settings/ProjectSettings.cpp" line="28"/>
<source>Chat History Path:</source>
<translation>Chat History Path:</translation>
</message>
<message>
<location filename="../../settings/ProjectSettings.cpp" line="36"/>
<source>Skill directories:</source>
<translation>Skill directories:</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>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.</translation>
</message>
<message>
<location filename="../../settings/ProjectSettingsPanel.cpp" line="99"/>
<source>Discovered project skills:</source>
<translation>Discovered project skills:</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>Provider Settings</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="31"/>
<source>OpenRouter API Key:</source>
<translation>OpenRouter API Key:</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>Enter your API key here</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="40"/>
<source>OpenAI Compatible API Key:</source>
<translation>OpenAI Compatible API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="49"/>
<source>Claude API Key:</source>
<translation>Claude API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="57"/>
<source>Enable prompt caching</source>
<translation>Enable prompt caching</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>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.</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="66"/>
<source>Use 1h cache TTL (beta)</source>
<translation>Use 1h cache 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>Requests Anthropic&apos;s 1-hour cache TTL instead of the default 5 minutes. Sends the extended-cache-ttl-2025-04-11 beta header.</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="75"/>
<source>OpenAI API Key:</source>
<translation>OpenAI API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="84"/>
<source>Mistral AI API Key:</source>
<translation>Mistral AI API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="92"/>
<source>Codestral API Key:</source>
<translation>Codestral API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="101"/>
<source>Google AI API Key:</source>
<translation>Google AI API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="110"/>
<source>Ollama(Bearer) API Key:</source>
<translation>Ollama(Bearer) API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="119"/>
<source>llama.cpp API Key:</source>
<translation>llama.cpp API Key:</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="154"/>
<source>llama.cpp Settings</source>
<translation>llama.cpp Settings</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="138"/>
<source>OpenRouter Settings</source>
<translation>OpenRouter Settings</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="140"/>
<source>OpenAI Settings</source>
<translation>OpenAI Settings</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="142"/>
<source>OpenAI Compatible Settings</source>
<translation>OpenAI Compatible Settings</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="145"/>
<source>Claude Settings</source>
<translation>Claude Settings</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="148"/>
<source>Mistral AI Settings</source>
<translation>Mistral AI Settings</translation>
</message>
<message>
<location filename="../../settings/ProviderSettings.cpp" line="150"/>
<source>Google AI Settings</source>
<translation>Google AI Settings</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="160"/>
<source>Generate QodeAssist suggestion at the current cursor position.</source>
<translation>Generate QodeAssist suggestion at the current cursor position.</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="161"/>
<source>Request QodeAssist Suggestion</source>
<translation>Request QodeAssist Suggestion</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="244"/>
<source>Refactor code using QodeAssist</source>
<translation>Refactor code using QodeAssist</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="245"/>
<source>Quick Refactor with QodeAssist</source>
<translation>Quick Refactor with QodeAssist</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="270"/>
<source>Open QodeAssist Chat as an editor tab</source>
<translation>Open QodeAssist Chat as an editor tab</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="271"/>
<source>Show QodeAssist Chat</source>
<translation>Show QodeAssist Chat</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="287"/>
<location filename="../../qodeassist.cpp" line="288"/>
<source>Close QodeAssist Chat</source>
<translation>Close QodeAssist Chat</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="297"/>
<source>Open QodeAssist Chat in Separate Window</source>
<translation>Open QodeAssist Chat in Separate Window</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="298"/>
<source>Open the QodeAssist chat in a separate window</source>
<translation>Open the QodeAssist chat in a separate window</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="303"/>
<source>New QodeAssist Chat</source>
<translation>New QodeAssist Chat</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="304"/>
<source>Open a fresh chat in a new editor tab</source>
<translation>Open a fresh chat in a new editor tab</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="310"/>
<source>Send QodeAssist Chat Message</source>
<translation>Send QodeAssist Chat Message</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="311"/>
<source>Send the current message to the LLM</source>
<translation>Send the current message to the LLM</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="320"/>
<source>Clear QodeAssist Chat Session</source>
<translation>Clear QodeAssist Chat Session</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="321"/>
<source>Clear the current chat session</source>
<translation>Clear the current chat session</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 Chat</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="460"/>
<source>Chat in Bottom Panel</source>
<translation>Chat in Bottom Panel</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="467"/>
<source>Chat in Sidebar</source>
<translation>Chat in Sidebar</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="477"/>
<source>Open Chat in Editor</source>
<translation>Open Chat in Editor</translation>
</message>
<message>
<location filename="../../qodeassist.cpp" line="485"/>
<source>Open Chat in Separate Window</source>
<translation>Open Chat in Separate Window</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="133"/>
<source>Select LLM Provider</source>
<translation>Select LLM Provider</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="133"/>
<source>Providers:</source>
<translation>Providers:</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="175"/>
<source>Select LLM Model</source>
<translation>Select LLM Model</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="175"/>
<source>Models:</source>
<translation>Models:</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="206"/>
<source>Select Template</source>
<translation>Select Template</translation>
</message>
<message>
<location filename="../../ConfigurationManager.cpp" line="206"/>
<source>Templates:</source>
<translation>Templates:</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>Quick Refactor</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="117"/>
<source>Switch AI configuration</source>
<translation>Switch AI configuration</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="130"/>
<source>Enable/Disable AI Tools</source>
<translation>Enable/Disable AI Tools</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="147"/>
<source>Enable/Disable Thinking Mode</source>
<translation>Enable/Disable Thinking Mode</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="159"/>
<source>Open Quick Refactor Settings</source>
<translation>Open Quick Refactor Settings</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="167"/>
<source>Your Current Instruction:</source>
<translation>Your Current Instruction:</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="172"/>
<source>Type or edit your instruction...</source>
<translation>Type or edit your instruction...</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="178"/>
<source>Or Load saved:</source>
<translation>Or Load saved:</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="185"/>
<source>Search saved instructions...</source>
<translation>Search saved instructions...</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="197"/>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="21"/>
<source>Add Custom Instruction</source>
<translation>Add Custom Instruction</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="203"/>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="30"/>
<source>Edit Custom Instruction</source>
<translation>Edit Custom Instruction</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="209"/>
<source>Delete Custom Instruction</source>
<translation>Delete Custom Instruction</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="215"/>
<source>Open Instructions Folder</source>
<translation>Open Instructions Folder</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="285"/>
<source>Repeat Last Instructions</source>
<translation>Repeat Last Instructions</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="291"/>
<source>Improve Current Code</source>
<translation>Improve Current Code</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="297"/>
<source>Suggest Alternative Solution</source>
<translation>Suggest Alternative Solution</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>Improve the selected code by enhancing readability, efficiency, and maintainability. Follow best practices for C++/Qt and fix any potential issues.</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>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.</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="493"/>
<source>Failed to save custom instruction. Check logs for details.</source>
<translation>Failed to save custom instruction. Check logs for details.</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="505"/>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="534"/>
<source>No Instruction Selected</source>
<translation>No Instruction Selected</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="506"/>
<source>Please select an instruction to edit.</source>
<translation>Please select an instruction to edit.</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="522"/>
<source>Failed to update custom instruction. Check logs for details.</source>
<translation>Failed to update custom instruction. Check logs for details.</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="535"/>
<source>Please select an instruction to delete.</source>
<translation>Please select an instruction to delete.</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="541"/>
<source>Confirm Deletion</source>
<translation>Confirm Deletion</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>Are you sure you want to delete the instruction &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>Failed to delete custom instruction. Check logs for details.</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="593"/>
<source>Current</source>
<translation>Current</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="603"/>
<source>Current (%1)</source>
<translation>Current (%1)</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="640"/>
<source>No Instruction</source>
<translation>No Instruction</translation>
</message>
<message>
<location filename="../../widgets/QuickRefactorDialog.cpp" line="641"/>
<source>Please type an instruction or select a saved one.</source>
<translation>Please type an instruction or select a saved one.</translation>
</message>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="141"/>
<source>Cannot create user provider folder:
%1</source>
<translation>Cannot create user provider folder:
%1</translation>
</message>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="147"/>
<source>Cannot pick a free filename in:
%1</source>
<translation>Cannot pick a free filename in:
%1</translation>
</message>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="153"/>
<source>Cannot write %1:
%2</source>
<translation>Cannot write %1:
%2</translation>
</message>
<message>
<location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="159"/>
<source>Write failed for %1:
%2</source>
<translation>Write failed for %1:
%2</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="30"/>
<source>Allow file access outside project</source>
<translation>Allow file access outside project</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>Allow tools to read, write, and create files outside the project scope (system headers, Qt files, external libraries).</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="37"/>
<source>Automatically apply file edits</source>
<translation>Automatically apply file edits</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>When enabled, file edits suggested by AI are applied immediately. When disabled, each edit is staged for manual approval.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="44"/>
<source>Max tool continuations:</source>
<translation>Max tool continuations:</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>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.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="53"/>
<source>List Project Files</source>
<translation>List Project Files</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>Lists every source file tracked by the active Qt Creator project(s).</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="59"/>
<source>Find File</source>
<translation>Find File</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>Locates a file in the project by name or partial path. Returns paths only, without file content.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="66"/>
<source>Read File</source>
<translation>Read File</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>Reads the content of a file by absolute path or path relative to the project root.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="72"/>
<source>Search in Project</source>
<translation>Search in Project</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="74"/>
<source>Searches project files for text occurrences or C++ symbol definitions.</source>
<translation>Searches project files for text occurrences or C++ symbol definitions.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="78"/>
<source>Create New File</source>
<translation>Create New File</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>Creates a new empty file at the given absolute path, making missing directories.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="84"/>
<location filename="../../settings/ToolsSettings.cpp" line="212"/>
<source>Edit File</source>
<translation>Edit File</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>Applies find-and-replace edits to files. See &quot;Automatically apply file edits&quot; to control whether edits apply immediately or wait for review.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="91"/>
<source>Build Project</source>
<translation>Build Project</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>Triggers a build of the active Qt Creator project and reports the result.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="97"/>
<source>Get Issues List</source>
<translation>Get Issues List</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="99"/>
<source>Reads compiler/clang diagnostics from Qt Creator&apos;s Issues panel.</source>
<translation>Reads compiler/clang diagnostics from Qt Creator&apos;s Issues panel.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="103"/>
<location filename="../../settings/ToolsSettings.cpp" line="215"/>
<source>Execute Terminal Command</source>
<translation>Execute Terminal Command</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>Runs a command from the OS-specific allowed list below, in the project directory.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="109"/>
<source>Todo</source>
<translation>Todo</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>Lets the AI maintain a session-scoped todo list for multi-step workflows.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="115"/>
<source>Read Original History (Pre-Compression)</source>
<translation>Read Original History (Pre-Compression)</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>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.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="123"/>
<source>Load Skill</source>
<translation>Load Skill</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>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.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="131"/>
<source>Allowed Commands (Linux)</source>
<translation>Allowed Commands (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>Comma-separated list of terminal commands that AI is allowed to execute on Linux. Example: git, ls, cat, grep, find, cmake</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="141"/>
<source>Allowed Commands (macOS)</source>
<translation>Allowed Commands (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>Comma-separated list of terminal commands that AI is allowed to execute on macOS. Example: git, ls, cat, grep, find, cmake</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="151"/>
<source>Allowed Commands (Windows)</source>
<translation>Allowed Commands (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>Comma-separated list of terminal commands that AI is allowed to execute on Windows. Example: git, dir, type, findstr, where, cmake</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="160"/>
<source>Command Timeout (seconds)</source>
<translation>Command Timeout (seconds)</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>Maximum time in seconds to wait for a terminal command to complete. Increase for long-running commands like builds.</translation>
</message>
<message>
<location filename="../../settings/ToolsSettings.cpp" line="206"/>
<source>Tool Settings</source>
<translation>Tool Settings</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>Skills</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="58"/>
<source>Enable skills</source>
<translation>Enable skills</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>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.</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="69"/>
<source>Global skill directories:</source>
<translation>Global skill directories:</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>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).</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="97"/>
<location filename="../../settings/ProjectSettingsPanel.cpp" line="86"/>
<source>No skills discovered.</source>
<translation>No skills discovered.</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="110"/>
<source>Skill Directories</source>
<translation>Skill Directories</translation>
</message>
<message>
<location filename="../../settings/SkillsSettings.cpp" line="113"/>
<source>Discovered global skills:</source>
<translation>Discovered global skills:</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>Enable MCP server</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>Expose QodeAssist tools to external MCP clients over HTTP. Which tools are visible is controlled on the client side.</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="48"/>
<source>Server port</source>
<translation>Server port</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>TCP port the MCP server listens on (localhost only). Requires restart of the server after change.</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="56"/>
<source>Connect to external MCP servers</source>
<translation>Connect to external MCP servers</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>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.</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="64"/>
<source>Extra PATH for stdio servers</source>
<translation>Extra PATH for stdio servers</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>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.</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="80"/>
<source>How to connect...</source>
<translation>How to connect...</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="93"/>
<source>Server</source>
<translation>Server</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="100"/>
<source>Clients</source>
<translation>Clients</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="211"/>
<source>Connect to QodeAssist MCP</source>
<translation>Connect to 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>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.</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="242"/>
<source>Copy</source>
<translation>Copy</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): run once —</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;: save as &lt;code&gt;.vscode/mcp.json&lt;/code&gt; in the workspace:</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>Any other client that reads an &lt;code&gt;mcpServers&lt;/code&gt; JSON block:</translation>
</message>
<message>
<location filename="../../settings/McpSettings.cpp" line="287"/>
<source>Direct (HTTP/SSE)</source>
<translation>Direct (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; Download &lt;code&gt;mcp-bridge&lt;/code&gt; for your OS from &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&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; Save the following as &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; Point the stdio-only client at the bridge. Example for &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>Bridge (stdio)</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="28"/>
<source>Agent roles define different system prompts for specific tasks.</source>
<translation>Agent roles define different system prompts for specific tasks.</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="32"/>
<source>Open Roles Folder...</source>
<translation>Open Roles Folder...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="48"/>
<source>Add...</source>
<translation>Add...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="52"/>
<source>Edit...</source>
<translation>Edit...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="56"/>
<source>Duplicate...</source>
<translation>Duplicate...</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="83"/>
<source>(Built-in role)</source>
<translation>(Built-in role)</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="118"/>
<location filename="../../settings/AgentRolesWidget.cpp" line="192"/>
<source>Role Already Exists</source>
<translation>Role Already Exists</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>A role with ID &apos;%1&apos; already exists. Please use a different 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>Error</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
<source>Failed to save role &apos;%1&apos;.</source>
<translation>Failed to save role &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="144"/>
<source>Cannot Edit Built-in Role</source>
<translation>Cannot Edit Built-in Role</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>Built-in roles cannot be edited. You can duplicate this role and modify the copy.</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
<source>Failed to update role &apos;%1&apos;.</source>
<translation>Failed to update role &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
<source>Failed to duplicate role.</source>
<translation>Failed to duplicate role.</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
<source>Cannot Delete Built-in Role</source>
<translation>Cannot Delete Built-in Role</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
<source>Built-in roles cannot be deleted.</source>
<translation>Built-in roles cannot be deleted.</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="222"/>
<source>Delete Role</source>
<translation>Delete Role</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>Are you sure you want to delete the role &apos;%1&apos;?</translation>
</message>
<message>
<location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
<source>Failed to delete role &apos;%1&apos;.</source>
<translation>Failed to delete role &apos;%1&apos;.</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="46"/>
<source>Enter instruction name...</source>
<translation>Enter instruction name...</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="47"/>
<source>Name:</source>
<translation>Name:</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="51"/>
<source>Instruction Body:</source>
<translation>Instruction Body:</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="56"/>
<source>Enter the refactoring instruction that will be sent to the LLM...</source>
<translation>Enter the refactoring instruction that will be sent to the LLM...</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="59"/>
<source>Set as default instruction</source>
<translation>Set as default instruction</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="61"/>
<source>This instruction will be automatically selected when opening Quick Refactor dialog</source>
<translation>This instruction will be automatically selected when opening Quick Refactor dialog</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
<source>Invalid Input</source>
<translation>Invalid Input</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
<source>Instruction name cannot be empty.</source>
<translation>Instruction name cannot be empty.</translation>
</message>
<message>
<location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
<source>Instruction body cannot be empty.</source>
<translation>Instruction body cannot be empty.</translation>
</message>
</context>
<context>
<name>RootItem</name>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="75"/>
<source>Compressing chat…</source>
<translation>Compressing chat…</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="100"/>
<source>next ~%1 · session ↑%2 ↓%3 ↻%4</source>
<translation>next ~%1 · session ↑%2 ↓%3 ↻%4</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="105"/>
<source>next ~%1 · session ↑%2 ↓%3</source>
<translation>next ~%1 · session ↑%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>next request (estimate) · session prompt ↑ / completion ↓ / cached ↻ (provider cache hits)</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="111"/>
<source>next request (estimate) · session prompt ↑ / completion ↓</source>
<translation>next request (estimate) · session prompt ↑ / completion ↓</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="114"/>
<source>Сhat name: %1</source>
<translation>Сhat name: %1</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="128"/>
<source>Move this chat to an editor tab</source>
<translation>Move this chat to an editor tab</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="129"/>
<source>Move this chat to a separate window</source>
<translation>Move this chat to a separate window</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="385"/>
<source>Type your message here... (⌘+↩ to send)</source>
<translation>Type your message here... (⌘+↩ to send)</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="386"/>
<source>Type your message here... (Ctrl+Enter to send)</source>
<translation>Type your message here... (Ctrl+Enter to send)</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="483"/>
<source>Cut</source>
<translation>Cut</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="489"/>
<source>Copy</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="495"/>
<source>Paste</source>
<translation>Paste</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="503"/>
<source>Select All</source>
<translation>Select All</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="511"/>
<source>Clear</source>
<translation>Clear</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="563"/>
<source>Send</source>
<translation>Send</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="563"/>
<location filename="../../ChatView/qml/RootItem.qml" line="565"/>
<source>Stop</source>
<translation>Stop</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="564"/>
<source>Send message to LLM %1</source>
<translation>Send message to LLM %1</translation>
</message>
<message>
<location filename="../../ChatView/qml/RootItem.qml" line="650"/>
<source>Compress Chat</source>
<translation>Compress Chat</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>Create a summarized copy of this chat?
The summary will be generated by LLM and saved as a new chat file.</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 file(s) to drop</numerusform>
<numerusform>%n file(s) to drop</numerusform>
</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="79"/>
<source>Attach</source>
<translation>Attach</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="87"/>
<source>Images &amp; Text Files</source>
<translation>Images &amp; Text Files</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="95"/>
<source>(for one-time use)</source>
<translation>(for one-time use)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="131"/>
<source>LINK</source>
<translation>LINK</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="139"/>
<source>Text Files</source>
<translation>Text Files</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="147"/>
<source>(added to context)</source>
<translation>(added to context)</translation>
</message>
</context>
<context>
<name>TextBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="27"/>
<source>Copy</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="33"/>
<source>Select All</source>
<translation>Select All</translation>
</message>
</context>
<context>
<name>ThinkingBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="45"/>
<source>Thinking (Redacted)</source>
<translation>Thinking (Redacted)</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="46"/>
<source>Thinking</source>
<translation>Thinking</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="75"/>
<source>Thinking content was redacted by safety systems</source>
<translation>Thinking content was redacted by safety systems</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
<source>Collapse</source>
<translation>Collapse</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
<source>Expand</source>
<translation>Expand</translation>
</message>
</context>
<context>
<name>ToolBlock</name>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="47"/>
<source>Tool: %1</source>
<translation>Tool: %1</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="99"/>
<source>Copy</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="105"/>
<source>Select All</source>
<translation>Select All</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
<source>Collapse</source>
<translation>Collapse</translation>
</message>
<message>
<location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
<source>Expand</source>
<translation>Expand</translation>
</message>
</context>
<context>
<name>TopBar</name>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="64"/>
<source>Unpin chat window</source>
<translation>Unpin chat window</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="65"/>
<source>Pin chat window to the top</source>
<translation>Pin chat window to the top</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="97"/>
<source>Clean chat</source>
<translation>Clean chat</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="117"/>
<source>Open new chat in a new tab</source>
<translation>Open new chat in a new tab</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="130"/>
<source>Switch saved AI configuration</source>
<translation>Switch saved AI configuration</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="143"/>
<source>Switch agent role (different system prompts)</source>
<translation>Switch agent role (different system prompts)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="170"/>
<source>Tools are disabled in General Settings</source>
<translation>Tools are disabled in General Settings</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>Tools enabled: AI can use tools to read files, search project, and build code</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="174"/>
<source>Tools disabled: Simple conversation without tool access</source>
<translation>Tools disabled: Simple conversation without tool access</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="196"/>
<source>Thinking Mode enabled (Check model list support it)</source>
<translation>Thinking Mode enabled (Check model list support it)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="197"/>
<source>Thinking Mode disabled</source>
<translation>Thinking Mode disabled</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="198"/>
<source>Thinking Mode is not available for this provider</source>
<translation>Thinking Mode is not available for this provider</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="215"/>
<source>Open Chat Assistant Settings</source>
<translation>Open Chat Assistant Settings</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="266"/>
<source>Save chat to *.json file</source>
<translation>Save chat to *.json file</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="279"/>
<source>Load chat from *.json file</source>
<translation>Load chat from *.json file</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="292"/>
<source>Show in system</source>
<translation>Show in system</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="309"/>
<source>View chat context (system prompt, role, rules)</source>
<translation>View chat context (system prompt, role, rules)</translation>
</message>
<message>
<location filename="../../ChatView/qml/controls/TopBar.qml" line="317"/>
<source>Current amount tokens in chat and LLM limit threshold</source>
<translation>Current amount tokens in chat and LLM limit threshold</translation>
</message>
</context>
</TS>