<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="uk_UA">
<context>
    <name>BottomBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="50"/>
        <source>Attach file to message</source>
        <translation>Прикріпити файл до повідомлення</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="63"/>
        <source>Attach image to message</source>
        <translation>Прикріпити зображення до повідомлення</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="76"/>
        <source>Link file to context</source>
        <translation>Прив&apos;язати файл до контексту</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="82"/>
        <source>Sync open files</source>
        <translation>Синхронізувати відкриті файли</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="85"/>
        <source>Automatically synchronize currently opened files with the model context</source>
        <translation>Автоматично синхронізувати відкриті файли з контекстом моделі</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="108"/>
        <source>Compressing...</source>
        <translation>Стиснення...</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="118"/>
        <source>Cancel</source>
        <translation>Скасувати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="122"/>
        <source>Cancel compression</source>
        <translation>Скасувати стиснення</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="130"/>
        <source>Compress</source>
        <translation>Стиснути</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="139"/>
        <source>Compress chat (create summarized copy using LLM)</source>
        <translation>Стиснути чат (створити стислу копію за допомогою LLM)</translation>
    </message>
</context>
<context>
    <name>ChatItem</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="159"/>
        <source>↑ %1 (cached %2)</source>
        <translation>↑ %1 (кешовано %2)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="160"/>
        <source>↑ %1</source>
        <translation>↑ %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="166"/>
        <source>↓ %1 (reasoning %2)</source>
        <translation>↓ %1 (міркування %2)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="167"/>
        <source>↓ %1</source>
        <translation>↓ %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="172"/>
        <source>Σ %1</source>
        <translation>Σ %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="210"/>
        <source>Reset chat to this message and edit</source>
        <translation>Скинути чат до цього повідомлення та редагувати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="310"/>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="402"/>
        <source>Click: Open in Qt Creator
Shift+Click: Open in System Editor</source>
        <translation>Клік: Відкрити в Qt Creator
Shift+Клік: Відкрити в системному редакторі</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="366"/>
        <source>Failed to load image</source>
        <translation>Не вдалося завантажити зображення</translation>
    </message>
</context>
<context>
    <name>CodeBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="62"/>
        <source>Code (%1)</source>
        <translation>Код (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="63"/>
        <source>Code</source>
        <translation>Код</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="105"/>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="136"/>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="147"/>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="140"/>
        <source>Copied</source>
        <translation>Скопійовано</translation>
    </message>
</context>
<context>
    <name>ContextViewer</name>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="54"/>
        <source>Chat Context</source>
        <translation>Контекст чату</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="62"/>
        <source>Refresh</source>
        <translation>Оновити</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="67"/>
        <source>Close</source>
        <translation>Закрити</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="97"/>
        <source>Base System Prompt</source>
        <translation>Базовий системний промпт</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
        <source>Active</source>
        <translation>Активний</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
        <source>Empty</source>
        <translation>Порожньо</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="125"/>
        <source>No system prompt configured</source>
        <translation>Системний промпт не налаштовано</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="146"/>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="235"/>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="377"/>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="152"/>
        <source>Edit in Settings</source>
        <translation>Редагувати в налаштуваннях</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="166"/>
        <source>Agent Role</source>
        <translation>Роль агента</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="221"/>
        <source>No role selected. Using base system prompt only.</source>
        <translation>Роль не обрано. Використовується лише базовий системний промпт.</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="241"/>
        <source>Manage Roles</source>
        <translation>Керувати ролями</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="255"/>
        <source>Project Rules</source>
        <translation>Правила проєкту</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
        <source>%1 active</source>
        <translation>%1 активних</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
        <source>None</source>
        <translation>Немає</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="282"/>
        <source>Rules (%1)</source>
        <translation>Правила (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="369"/>
        <source>Content</source>
        <translation>Вміст</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="415"/>
        <source>No project rules found.
Create .md files in .qodeassist/rules/common/ or .qodeassist/rules/chat/</source>
        <translation>Правила проєкту не знайдено.
Створіть .md файли в .qodeassist/rules/common/ або .qodeassist/rules/chat/</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="430"/>
        <source>Open Rules Folder</source>
        <translation>Відкрити теку правил</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="450"/>
        <source>Final prompt: Base System Prompt + Agent Role + Project Info + Project Rules + Linked Files</source>
        <translation>Кінцевий промпт: Базовий системний промпт + Роль агента + Інформація про проєкт + Правила проєкту + Прив&apos;язані файли</translation>
    </message>
</context>
<context>
    <name>DiffStatistics</name>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="40"/>
        <source>+%1 lines, -%2 lines</source>
        <translation>+%1 рядків, -%2 рядків</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="42"/>
        <source>+%1 lines</source>
        <translation>+%1 рядків</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="44"/>
        <source>-%1 lines</source>
        <translation>-%1 рядків</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="46"/>
        <source>No changes</source>
        <translation>Без змін</translation>
    </message>
</context>
<context>
    <name>FileEditBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="76"/>
        <source>ARCHIVED</source>
        <translation>АРХІВОВАНО</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="77"/>
        <source>APPLIED</source>
        <translation>ЗАСТОСОВАНО</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="78"/>
        <source>REJECTED</source>
        <translation>ВІДХИЛЕНО</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="79"/>
        <source>PENDING</source>
        <translation>ОЧІКУЄ</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
        <source>Replace</source>
        <translation>Замінити</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
        <source>Append</source>
        <translation>Додати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="202"/>
        <source>%1: %2 (+%3 -%4)</source>
        <translation>%1: %2 (+%3 -%4)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="208"/>
        <source>%1: %2 (+%3)</source>
        <translation>%1: %2 (+%3)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="264"/>
        <source>Open file in editor and navigate to changes</source>
        <translation>Відкрити файл у редакторі та перейти до змін</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="364"/>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="423"/>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="374"/>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="433"/>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="374"/>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="433"/>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
</context>
<context>
    <name>FileEditsActionBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="81"/>
        <source>File Edit in Current Message</source>
        <translation>Редагування файлу в поточному повідомленні</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="82"/>
        <source>%1 File Edits in Current Message</source>
        <translation>%1 редагувань файлів у поточному повідомленні</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="93"/>
        <source>%1 applied</source>
        <translation>%1 застосовано</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="96"/>
        <source>%1 pending</source>
        <translation>%1 очікує</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="99"/>
        <source>%1 rejected</source>
        <translation>%1 відхилено</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="118"/>
        <source>Apply All (%1)</source>
        <translation>Застосувати все (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="119"/>
        <source>Reapply All (%1)</source>
        <translation>Повторно застосувати все (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="124"/>
        <source>Apply all pending and rejected edits in this message</source>
        <translation>Застосувати всі очікувані та відхилені редагування в цьому повідомленні</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="125"/>
        <source>Reapply all rejected edits in this message</source>
        <translation>Повторно застосувати всі відхилені редагування в цьому повідомленні</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="135"/>
        <source>Undo All (%1)</source>
        <translation>Скасувати все (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="139"/>
        <source>Undo all applied edits in this message</source>
        <translation>Скасувати всі застосовані редагування в цьому повідомленні</translation>
    </message>
</context>
<context>
    <name>QObject</name>
    <message>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="62"/>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="75"/>
        <source>Template Not Found</source>
        <translation>Шаблон не знайдено</translation>
    </message>
    <message>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="63"/>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="76"/>
        <source>Template &apos;%1&apos; was not found or has been updated. Please re-set new one.</source>
        <translation>Шаблон &apos;%1&apos; не знайдено або його було оновлено. Будь ласка, оберіть новий.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="595"/>
        <source>Providers</source>
        <translation>Провайдери</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="262"/>
        <source>Agents</source>
        <translation>Агенти</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatConfigurationController.cpp" line="58"/>
        <location filename="../../ChatView/ChatConfigurationController.cpp" line="71"/>
        <source>Current Settings</source>
        <translation>Поточні налаштування</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatCompressor</name>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="30"/>
        <source>Compression already in progress</source>
        <translation>Стиснення вже виконується</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="35"/>
        <source>No chat file to compress</source>
        <translation>Немає файлу чату для стиснення</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="40"/>
        <source>Chat is empty, nothing to compress</source>
        <translation>Чат порожній, немає чого стискати</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="48"/>
        <source>No provider available</source>
        <translation>Немає доступного провайдера</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="57"/>
        <source>No template available</source>
        <translation>Немає доступного шаблону</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="99"/>
        <source>Compression cancelled</source>
        <translation>Стиснення скасовано</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="122"/>
        <source>Failed to save compressed chat</source>
        <translation>Не вдалося зберегти стиснений чат</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="137"/>
        <source>Compression failed: %1</source>
        <translation>Стиснення не вдалося: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatFileManager</name>
    <message>
        <location filename="../../ChatView/ChatFileManager.cpp" line="33"/>
        <source>File is not accessible: %1</source>
        <translation>Файл недоступний: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatFileManager.cpp" line="45"/>
        <source>Failed to copy file: %1</source>
        <translation>Не вдалося скопіювати файл: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatHistoryStore</name>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="121"/>
        <source>Save Chat History</source>
        <translation>Зберегти історію чату</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="124"/>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="151"/>
        <source>JSON files (*.json)</source>
        <translation>Файли JSON (*.json)</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="148"/>
        <source>Load Chat History</source>
        <translation>Завантажити історію чату</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatRootView</name>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="285"/>
        <source>Chat compressed successfully!</source>
        <translation>Чат успішно стиснуто!</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="508"/>
        <source>This chat file is already in use by another QodeAssist chat session.</source>
        <translation>Цей файл чату вже використовується іншою сесією чату QodeAssist.</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="527"/>
        <source>This chat is already open in another QodeAssist chat session.</source>
        <translation>Цей чат вже відкрито в іншій сесії чату QodeAssist.</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="605"/>
        <location filename="../../ChatView/ChatRootView.cpp" line="653"/>
        <source>Select Files to Attach</source>
        <translation>Оберіть файли для прикріплення</translation>
    </message>
    <message numerus="yes">
        <location filename="../../ChatView/ChatRootView.cpp" line="689"/>
        <source>Images automatically moved to Attach zone (%n file(s))</source>
        <translation>
            <numerusform>Зображення автоматично переміщено в зону прикріплення (%n файл(ів))</numerusform>
            <numerusform>Зображення автоматично переміщено в зону прикріплення (%n файл(ів))</numerusform>
            <numerusform>Зображення автоматично переміщено в зону прикріплення (%n файл(ів))</numerusform>
        </translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="713"/>
        <source>Select Images to Attach</source>
        <translation>Оберіть зображення для прикріплення</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="715"/>
        <source>Images (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</source>
        <translation>Зображення (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="1280"/>
        <source>Compression is already in progress</source>
        <translation>Стиснення вже виконується</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="1286"/>
        <source>No chat file to compress. Please save the chat first.</source>
        <translation>Немає файлу чату для стиснення. Будь ласка, спочатку збережіть чат.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::NavigationPanel</name>
    <message>
        <location filename="../../chat/NavigationPanel.cpp" line="21"/>
        <source>QodeAssist Chat</source>
        <translation>Чат QodeAssist</translation>
    </message>
</context>
<context>
    <name>QodeAssist::EditorChatButton</name>
    <message>
        <location filename="../../widgets/EditorChatButton.cpp" line="48"/>
        <source>Open QodeAssist Chat</source>
        <translation>Відкрити чат QodeAssist</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Mcp::McpServerManager</name>
    <message>
        <location filename="../../mcp/McpServerManager.cpp" line="80"/>
        <source>QodeAssist MCP server exposing Qt Creator project tools.</source>
        <translation>Сервер MCP QodeAssist, що надає інструменти проєкту Qt Creator.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::QodeAssistClient</name>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="379"/>
        <source>Code completion failed: %1</source>
        <translation>Доповнення коду не вдалося: %1</translation>
    </message>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="523"/>
        <source>Quick refactor failed</source>
        <translation>Швидкий рефакторинг не вдався</translation>
    </message>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="524"/>
        <source>Quick refactor failed: %1</source>
        <translation>Швидкий рефакторинг не вдався: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::RefactorWidget</name>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="176"/>
        <source>◄ Original</source>
        <translation>◄ Оригінал</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="186"/>
        <source>Refactored ►</source>
        <translation>Рефакторено ►</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="215"/>
        <source>✓ Apply (⌘+Enter)</source>
        <translation>✓ Застосувати (⌘+Enter)</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="217"/>
        <source>✓ Apply (Ctrl+Enter)</source>
        <translation>✓ Застосувати (Ctrl+Enter)</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="223"/>
        <source>✗ Decline (Esc)</source>
        <translation>✗ Відхилити (Esc)</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentDetailPane</name>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="84"/>
        <source>Open in editor</source>
        <translation>Відкрити в редакторі</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="85"/>
        <source>Duplicate…</source>
        <translation>Дублювати…</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="86"/>
        <source>Delete</source>
        <translation>Видалити</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="127"/>
        <source>Identity</source>
        <translation>Ідентичність</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="129"/>
        <source>Extends:</source>
        <translation>Розширює:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="143"/>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="153"/>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="154"/>
        <source>Tags:</source>
        <translation>Теги:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="155"/>
        <source>Comma-separated. Free-form — used to filter and group the agent list.</source>
        <translation>Через кому. Довільна форма — використовується для фільтрації та групування списку агентів.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="159"/>
        <source>System role</source>
        <translation>Системна роль</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="161"/>
        <source>Prepended to every request as the system message.</source>
        <translation>Додається до кожного запиту як системне повідомлення.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="168"/>
        <source>Context</source>
        <translation>Контекст</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="170"/>
        <source>Jinja2 template rendered with ContextManager bindings into the agent.context system-prompt layer. Empty = no context block.</source>
        <translation>Шаблон Jinja2, що рендериться з прив&apos;язками ContextManager у шар системного промпту agent.context. Порожньо = немає блоку контексту.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="179"/>
        <source>Connection</source>
        <translation>Підключення</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="191"/>
        <source>Provider:</source>
        <translation>Провайдер:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="192"/>
        <source>The provider instance this agent uses. URL is inherited from the instance.</source>
        <translation>Екземпляр провайдера, що використовує цей агент. URL успадковується від екземпляра.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="194"/>
        <source>Endpoint:</source>
        <translation>Кінцева точка:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="195"/>
        <source>Appended to the provider&apos;s URL. Blank uses the provider default.</source>
        <translation>Додається до URL провайдера. Порожнє значення використовує типове значення провайдера.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="197"/>
        <source>Model:</source>
        <translation>Модель:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="208"/>
        <source>Match</source>
        <translation>Збіг</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="210"/>
        <source>When a feature slot has multiple bound agents, the first whose match rules satisfy the current context wins.</source>
        <translation>Коли слот функції має кілька прив&apos;язаних агентів, перемагає перший, чиї правила збігу задовольняють поточний контекст.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="217"/>
        <source>File patterns:</source>
        <translation>Шаблони файлів:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="218"/>
        <source>Globs, comma-separated. Empty matches every file.</source>
        <translation>Glob-шаблони через кому. Порожнє значення збігається з кожним файлом.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="222"/>
        <source>Template</source>
        <translation>Шаблон</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="224"/>
        <source>Jinja2 template (via inja) rendered to the request body. Built-in context: ctx.prefix, ctx.suffix, ctx.history, ctx.system_prompt, agent.model.</source>
        <translation>Шаблон Jinja2 (через inja), що рендериться в тіло запиту. Вбудований контекст: ctx.prefix, ctx.suffix, ctx.history, ctx.system_prompt, agent.model.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="233"/>
        <source>message_format:</source>
        <translation>message_format:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="237"/>
        <source>Load errors</source>
        <translation>Помилки завантаження</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="246"/>
        <location filename="../../settings/AgentDetailPane.cpp" line="257"/>
        <source>▸ Show raw TOML</source>
        <translation>▸ Показати сирий TOML</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="257"/>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Сховати сирий TOML</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="312"/>
        <source>No description provided.</source>
        <translation>Опис не надано.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="344"/>
        <source>%1  (missing — not in provider library)</source>
        <translation>%1  (відсутній — немає в бібліотеці провайдера)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="352"/>
        <source>(provider default)</source>
        <translation>(типове значення провайдера)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="358"/>
        <source># effective request line
(unknown — provider instance not found)</source>
        <translation># фактичний рядок запиту
(невідомо — екземпляр провайдера не знайдено)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="360"/>
        <source>effective request line</source>
        <translation>фактичний рядок запиту</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="363"/>
        <source>(no system role set)</source>
        <translation>(системну роль не встановлено)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="365"/>
        <source>(no context block)</source>
        <translation>(немає блоку контексту)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="368"/>
        <source>(matches every file)</source>
        <translation>(збігається з кожним файлом)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="371"/>
        <source>(inherited from parent / none)</source>
        <translation>(успадковано від батька / немає)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="382"/>
        <source>(truncated at %1 bytes)</source>
        <translation>(обрізано на %1 байтах)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="385"/>
        <source>(source file is empty)</source>
        <translation>(вихідний файл порожній)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="388"/>
        <source>(source file unavailable: %1)</source>
        <translation>(вихідний файл недоступний: %1)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="394"/>
        <source>Bundled agents are read-only — duplicate to edit.</source>
        <translation>Вбудовані агенти доступні лише для читання — дублюйте для редагування.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="398"/>
        <source>Bundled agents cannot be deleted.</source>
        <translation>Вбудовані агенти не можна видалити.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="407"/>
        <source>Select an agent</source>
        <translation>Оберіть агента</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="409"/>
        <source>Pick an agent from the list to see its details.</source>
        <translation>Оберіть агента зі списку, щоб побачити його деталі.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="437"/>
        <source>error: %1</source>
        <translation>помилка: %1</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="439"/>
        <source>warning: %1</source>
        <translation>попередження: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentListPane</name>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="35"/>
        <source>Filter agents…</source>
        <translation>Фільтрувати агентів…</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="186"/>
        <source>User</source>
        <translation>Користувач</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="190"/>
        <source>Bundled</source>
        <translation>Вбудовані</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="194"/>
        <source>No agents match these filters.</source>
        <translation>Жоден агент не відповідає цим фільтрам.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentRoleDialog</name>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="24"/>
        <source>Add Agent Role</source>
        <translation>Додати роль агента</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="26"/>
        <source>Duplicate Agent Role</source>
        <translation>Дублювати роль агента</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="28"/>
        <source>Edit Agent Role</source>
        <translation>Редагувати роль агента</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="42"/>
        <source>e.g., Developer, Code Reviewer</source>
        <translation>напр., Розробник, Рев&apos;ювер коду</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="43"/>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="46"/>
        <source>e.g., developer, code_reviewer</source>
        <translation>напр., developer, code_reviewer</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="47"/>
        <source>ID:</source>
        <translation>ID:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="50"/>
        <source>Brief description of this role...</source>
        <translation>Короткий опис цієї ролі...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="52"/>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="56"/>
        <source>System Prompt:</source>
        <translation>Системний промпт:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="61"/>
        <source>You are an expert in...

Your role is to:
- Task 1
- Task 2
- Task 3</source>
        <translation>Ви експерт у...

Ваша роль:
- Завдання 1
- Завдання 2
- Завдання 3</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="75"/>
        <source>ID cannot be changed for existing roles</source>
        <translation>ID не можна змінити для існуючих ролей</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentsWidget</name>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="69"/>
        <source>Agents</source>
        <translation>Агенти</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="75"/>
        <source>Reload from disk</source>
        <translation>Перезавантажити з диска</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="76"/>
        <source>Open agents folder</source>
        <translation>Відкрити теку агентів</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="189"/>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="197"/>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="203"/>
        <source>Open agent</source>
        <translation>Відкрити агента</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="190"/>
        <source>&apos;%1&apos; is bundled with the plugin and read-only.
Use Duplicate to create an editable user copy.</source>
        <translation>&apos;%1&apos; входить до складу плагіна та доступний лише для читання.
Використайте Дублювати, щоб створити редаговану копію користувача.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="198"/>
        <source>Agent &apos;%1&apos; has no editable source file.</source>
        <translation>Агент &apos;%1&apos; не має редагованого вихідного файлу.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="204"/>
        <source>Could not open %1.</source>
        <translation>Не вдалося відкрити %1.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="212"/>
        <source>Duplicate</source>
        <translation>Дублювати</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="228"/>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="236"/>
        <source>Delete Agent</source>
        <translation>Видалити агента</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="229"/>
        <source>Delete agent &apos;%1&apos;?

This will remove the file:
%2</source>
        <translation>Видалити агента &apos;%1&apos;?

Це видалить файл:
%2</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="237"/>
        <source>Could not delete the agent file:
%1</source>
        <translation>Не вдалося видалити файл агента:
%1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::McpClientsListAspect</name>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="72"/>
        <source>Connected.</source>
        <translation>Підключено.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="74"/>
        <source>Connecting…</source>
        <translation>Підключення…</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="76"/>
        <source>Failed.</source>
        <translation>Помилка.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="77"/>
        <source>Failed: %1</source>
        <translation>Помилка: %1</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="81"/>
        <source>Disabled.</source>
        <translation>Вимкнено.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="129"/>
        <source>everything (reference test server)</source>
        <translation>everything (еталонний тестовий сервер)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="138"/>
        <source>filesystem (local files)</source>
        <translation>filesystem (локальні файли)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="149"/>
        <source>memory (in-memory key-value)</source>
        <translation>memory (ключ-значення в пам&apos;яті)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="158"/>
        <source>git (local git ops)</source>
        <translation>git (локальні операції git)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="167"/>
        <source>time (system clock)</source>
        <translation>time (системний годинник)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="176"/>
        <source>qtcreator (Qt Creator&apos;s built-in MCP server)</source>
        <translation>qtcreator (вбудований сервер MCP Qt Creator)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="185"/>
        <source>qt-docs (Qt documentation)</source>
        <translation>qt-docs (документація Qt)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="193"/>
        <source>remote (SSE / HTTP)</source>
        <translation>remote (SSE / HTTP)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="232"/>
        <source>Server reports no tools.</source>
        <translation>Сервер не повідомляє про інструменти.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="245"/>
        <source>Tools</source>
        <translation>Інструменти</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="271"/>
        <source>Enable / disable this MCP server</source>
        <translation>Увімкнути / вимкнути цей сервер MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="285"/>
        <source>Remove this server from the config.</source>
        <translation>Видалити цей сервер з конфігурації.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="313"/>
        <source>Remove server</source>
        <translation>Видалити сервер</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="314"/>
        <source>Remove server &apos;%1&apos; from the config?</source>
        <translation>Видалити сервер &apos;%1&apos; з конфігурації?</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="346"/>
        <source>Open Config</source>
        <translation>Відкрити конфігурацію</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="348"/>
        <source>Refresh MCP List</source>
        <translation>Оновити список MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="359"/>
        <source>Note: restart Qt Creator to apply MCP changes to already-opened chats and running sessions.</source>
        <translation>Примітка: перезапустіть Qt Creator, щоб застосувати зміни MCP до вже відкритих чатів та запущених сесій.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="376"/>
        <source>Quick Setup</source>
        <translation>Швидке налаштування</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="379"/>
        <source>Pick a preset to append a ready-made server entry to the config (auto-suffixed if the name is taken).</source>
        <translation>Оберіть пресет, щоб додати готовий запис сервера до конфігурації (з автоматичним суфіксом, якщо ім&apos;я зайняте).</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="382"/>
        <source>-- Select Preset --</source>
        <translation>-- Оберіть пресет --</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="410"/>
        <source>No servers configured. Add a preset below or edit the JSON.</source>
        <translation>Жодного сервера не налаштовано. Додайте пресет нижче або відредагуйте JSON.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="415"/>
        <source>0 server(s) defined.</source>
        <translation>Визначено 0 серверів.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="429"/>
        <source>%1 server(s) defined, %2 enabled.</source>
        <translation>Визначено %1 серверів, %2 увімкнено.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="475"/>
        <source>MCP configuration</source>
        <translation>Конфігурація MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="476"/>
        <source>Failed to write %1:
%2</source>
        <translation>Не вдалося записати %1:
%2</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProviderDetailPane</name>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="42"/>
        <source>Edit…</source>
        <translation>Редагувати…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="44"/>
        <source>Open in editor</source>
        <translation>Відкрити в редакторі</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="46"/>
        <source>Open this provider&apos;s TOML file in Qt Creator. Bundled providers are read-only — duplicate first.</source>
        <translation>Відкрити TOML файл цього провайдера в Qt Creator. Вбудовані провайдери доступні лише для читання — спочатку дублюйте.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="48"/>
        <source>Duplicate…</source>
        <translation>Дублювати…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="49"/>
        <source>Delete</source>
        <translation>Видалити</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="50"/>
        <source>Cancel</source>
        <translation>Скасувати</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="51"/>
        <source>Save</source>
        <translation>Зберегти</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="105"/>
        <source>Identity</source>
        <translation>Ідентичність</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="117"/>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="118"/>
        <source>Client API:</source>
        <translation>Клієнтський API:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="119"/>
        <source>The client API this provider speaks. Cannot be changed after creation.</source>
        <translation>Клієнтський API, яким користується цей провайдер. Не можна змінити після створення.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="121"/>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="124"/>
        <source>Endpoint</source>
        <translation>Кінцева точка</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="131"/>
        <source>URL:</source>
        <translation>URL:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="132"/>
        <source>Base URL. Agents append their endpoint path (e.g. /chat/completions) to this.</source>
        <translation>Базовий URL. Агенти додають до нього свій шлях кінцевої точки (напр. /chat/completions).</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="144"/>
        <source>Credentials</source>
        <translation>Облікові дані</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="147"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="316"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="370"/>
        <source>Enter API key…</source>
        <translation>Введіть ключ API…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="151"/>
        <source>Show / hide API key</source>
        <translation>Показати / сховати ключ API</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="155"/>
        <source>Save key</source>
        <translation>Зберегти ключ</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="157"/>
        <source>Clear</source>
        <translation>Очистити</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="158"/>
        <source>Erase the stored API key for this provider</source>
        <translation>Видалити збережений ключ API для цього провайдера</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="190"/>
        <source>API key:</source>
        <translation>Ключ API:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="194"/>
        <source>Launch</source>
        <translation>Запуск</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="204"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="410"/>
        <source>idle</source>
        <translation>очікування</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="205"/>
        <source>Start</source>
        <translation>Запустити</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="206"/>
        <source>Stop</source>
        <translation>Зупинити</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="207"/>
        <source>Restart</source>
        <translation>Перезапустити</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="224"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
        <source>▸ Show launch terminal</source>
        <translation>▸ Показати термінал запуску</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
        <source>▾ Hide launch terminal</source>
        <translation>▾ Сховати термінал запуску</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="253"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
        <source>▸ Show raw TOML</source>
        <translation>▸ Показати сирий TOML</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Сховати сирий TOML</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="295"/>
        <source>No description provided.</source>
        <translation>Опис не надано.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="309"/>
        <source>— not required (local provider)</source>
        <translation>— не потрібно (локальний провайдер)</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="310"/>
        <source>This provider type does not use a key.</source>
        <translation>Цей тип провайдера не використовує ключ.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="312"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="366"/>
        <source>Stored — enter a new key to replace it.</source>
        <translation>Збережено — введіть новий ключ для заміни.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="313"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="367"/>
        <source>A key is stored. Type a new key and press Save key to replace it, or Clear to erase it.</source>
        <translation>Ключ збережено. Введіть новий ключ та натисніть Зберегти ключ для заміни, або Очистити для видалення.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="317"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="371"/>
        <source>No key stored yet. Type a key and press Save key.</source>
        <translation>Ключ ще не збережено. Введіть ключ та натисніть Зберегти ключ.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="338"/>
        <source>Select a provider</source>
        <translation>Оберіть провайдера</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="389"/>
        <source>No [launch] block. This provider is treated as external — the plugin will not spawn or supervise any process. Add a [launch] block to the TOML to have the plugin manage a local server here.</source>
        <translation>Немає блоку [launch]. Цей провайдер розглядається як зовнішній — плагін не буде запускати або контролювати жоден процес. Додайте блок [launch] до TOML, щоб плагін керував локальним сервером тут.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="400"/>
        <source> &lt;span style=&apos;color:gray&apos;&gt;(detached — survives Qt Creator restart)&lt;/span&gt;</source>
        <translation> &lt;span style=&apos;color:gray&apos;&gt;(відокремлено — переживає перезапуск Qt Creator)&lt;/span&gt;</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="411"/>
        <source>starting…</source>
        <translation>запуск…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="412"/>
        <source>probing…</source>
        <translation>перевірка…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="413"/>
        <source>ready</source>
        <translation>готово</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="414"/>
        <source>stopping…</source>
        <translation>зупинка…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="416"/>
        <source>failed</source>
        <translation>помилка</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="417"/>
        <source>failed — %1</source>
        <translation>помилка — %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProvidersPageWidget</name>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="76"/>
        <source>Providers</source>
        <translation>Провайдери</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="92"/>
        <source>Filter providers…</source>
        <translation>Фільтрувати провайдерів…</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="136"/>
        <source>Open in editor</source>
        <translation>Відкрити в редакторі</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="137"/>
        <source>Bundled providers are read-only. Use Duplicate to create an editable user copy first.</source>
        <translation>Вбудовані провайдери доступні лише для читання. Спочатку використайте Дублювати, щоб створити редаговану копію користувача.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="278"/>
        <source>No user instances yet.</source>
        <translation>Ще немає екземплярів користувача.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="279"/>
        <source>No bundled instances loaded.</source>
        <translation>Жодного вбудованого екземпляра не завантажено.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="289"/>
        <source>User</source>
        <translation>Користувач</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="290"/>
        <source>Bundled</source>
        <translation>Вбудовані</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="325"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="331"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="343"/>
        <source>Duplicate provider</source>
        <translation>Дублювати провайдера</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="326"/>
        <source>Name for the new provider:</source>
        <translation>Ім&apos;я для нового провайдера:</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="332"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="402"/>
        <source>An instance named &apos;%1&apos; already exists.</source>
        <translation>Екземпляр з ім&apos;ям &apos;%1&apos; вже існує.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="362"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="367"/>
        <source>Delete provider</source>
        <translation>Видалити провайдера</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="363"/>
        <source>Delete user provider &apos;%1&apos;?

File: %2</source>
        <translation>Видалити провайдера користувача &apos;%1&apos;?

Файл: %2</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="368"/>
        <source>Failed to delete file:
%1</source>
        <translation>Не вдалося видалити файл:
%1</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="395"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="401"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="408"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="423"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="431"/>
        <source>Save</source>
        <translation>Зберегти</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
        <source>Name cannot be empty.</source>
        <translation>Ім&apos;я не може бути порожнім.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="410"/>
        <source>Save anyway?</source>
        <translation>Зберегти все одно?</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="432"/>
        <source>Saved to:
%1

but could not remove the old file:
%2

Two provider files now describe this instance — delete the old file manually to avoid a duplicate-name error.</source>
        <translation>Збережено до:
%1

але не вдалося видалити старий файл:
%2

Два файли провайдера тепер описують цей екземпляр — видаліть старий файл вручну, щоб уникнути помилки дублювання імені.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="471"/>
        <source>Clear API key</source>
        <translation>Очистити ключ API</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="472"/>
        <source>Erase the stored API key for &apos;%1&apos;?</source>
        <translation>Видалити збережений ключ API для &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>ФІЛЬТР ЗА ТЕГОМ</translation>
    </message>
    <message>
        <location filename="../../settings/TagFilterStrip.cpp" line="120"/>
        <source>clear</source>
        <translation>очистити</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Tools::TodoTool</name>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="100"/>
        <source>Error: &apos;tasks&apos; parameter (array) is required for &apos;add&apos; operation. Example: {&quot;operation&quot;: &quot;add&quot;, &quot;tasks&quot;: [&quot;Task 1&quot;, &quot;Task 2&quot;]}</source>
        <translation>Помилка: параметр &apos;tasks&apos; (масив) обов&apos;язковий для операції &apos;add&apos;. Приклад: {&quot;operation&quot;: &quot;add&quot;, &quot;tasks&quot;: [&quot;Task 1&quot;, &quot;Task 2&quot;]}</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="107"/>
        <source>Error: &apos;tasks&apos; array cannot be empty. Provide at least one task.</source>
        <translation>Помилка: масив &apos;tasks&apos; не може бути порожнім. Надайте принаймні одне завдання.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="120"/>
        <source>Error: All tasks in &apos;tasks&apos; array are empty strings.</source>
        <translation>Помилка: усі завдання в масиві &apos;tasks&apos; є порожніми рядками.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="128"/>
        <source>Error: &apos;todo_ids&apos; parameter (array) is required for &apos;complete&apos; operation. Example: {&quot;operation&quot;: &quot;complete&quot;, &quot;todo_ids&quot;: [1, 2, 3]}</source>
        <translation>Помилка: параметр &apos;todo_ids&apos; (масив) обов&apos;язковий для операції &apos;complete&apos;. Приклад: {&quot;operation&quot;: &quot;complete&quot;, &quot;todo_ids&quot;: [1, 2, 3]}</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="135"/>
        <source>Error: &apos;todo_ids&apos; array cannot be empty. Provide at least one ID.</source>
        <translation>Помилка: масив &apos;todo_ids&apos; не може бути порожнім. Надайте принаймні один ID.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="148"/>
        <source>Error: All IDs in &apos;todo_ids&apos; array are invalid. IDs must be positive integers.</source>
        <translation>Помилка: усі ID в масиві &apos;todo_ids&apos; недійсні. ID мають бути додатними цілими числами.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="159"/>
        <source>Error: Unknown operation &apos;%1&apos;. Valid operations: &apos;add&apos;, &apos;complete&apos;, &apos;list&apos;</source>
        <translation>Помилка: невідома операція &apos;%1&apos;. Дійсні операції: &apos;add&apos;, &apos;complete&apos;, &apos;list&apos;</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="192"/>
        <source>✓ Added 1 new task</source>
        <translation>✓ Додано 1 нове завдання</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="193"/>
        <source>✓ Added %1 new tasks</source>
        <translation>✓ Додано %1 нових завдань</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="203"/>
        <source>Error: No todos found in this session</source>
        <translation>Помилка: завдань не знайдено в цій сесії</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="228"/>
        <source>✓ Marked 1 task as completed</source>
        <translation>✓ Позначено 1 завдання як виконане</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="229"/>
        <source>✓ Marked %1 tasks as completed</source>
        <translation>✓ Позначено %1 завдань як виконані</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="234"/>
        <source>⚠ %1 already completed</source>
        <translation>⚠ %1 вже виконано</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="238"/>
        <source>❌ Not found: %1</source>
        <translation>❌ Не знайдено: %1</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="255"/>
        <source>📋 TODO List: (empty)</source>
        <translation>📋 Список TODO: (порожній)</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="264"/>
        <source>📋 TODO List:</source>
        <translation>📋 Список TODO:</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="287"/>
        <location filename="../../tools/TodoTool.cpp" line="329"/>
        <source>Progress: %1/%2 completed (%3%)</source>
        <translation>Прогрес: %1/%2 виконано (%3%)</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="296"/>
        <location filename="../../tools/TodoTool.cpp" line="316"/>
        <source>📋 All tasks completed! 🎉</source>
        <translation>📋 Усі завдання виконано! 🎉</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="321"/>
        <source>📋 Remaining tasks:</source>
        <translation>📋 Завдання, що залишилися:</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateDialog</name>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="19"/>
        <source>QodeAssist Update</source>
        <translation>Оновлення QodeAssist</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="27"/>
        <source>QodeAssist is an open-source project that helps
developers write better code. If you find it useful, please</source>
        <translation>QodeAssist — це проєкт з відкритим кодом, що допомагає
розробникам писати кращий код. Якщо він вам корисний, будь ласка</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="54"/>
        <source>QodeAssistUpdater - convenient tool for plugin installation and updates</source>
        <translation>QodeAssistUpdater — зручний інструмент для встановлення та оновлення плагіна</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="60"/>
        <source>Download QodeAssistUpdater</source>
        <translation>Завантажити QodeAssistUpdater</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="70"/>
        <location filename="../../settings/UpdateDialog.cpp" line="127"/>
        <source>A new version of QodeAssist is available!</source>
        <translation>Доступна нова версія QodeAssist!</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="76"/>
        <location filename="../../settings/UpdateDialog.cpp" line="128"/>
        <source>Version %1 is now available - you have %2</source>
        <translation>Доступна версія %1 — у вас встановлено %2</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="80"/>
        <source>Release Notes:</source>
        <translation>Примітки до випуску:</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="89"/>
        <source>Open Release Page</source>
        <translation>Відкрити сторінку випуску</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="92"/>
        <source>Open Plugin Folder</source>
        <translation>Відкрити теку плагіна</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="95"/>
        <source>Close</source>
        <translation>Закрити</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="121"/>
        <source>QodeAssist is up to date</source>
        <translation>QodeAssist оновлено до останньої версії</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="123"/>
        <source>You are using the latest version: %1</source>
        <translation>Ви використовуєте останню версію: %1</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="135"/>
        <source>No release notes available. Check the release page for more information.</source>
        <translation>Примітки до випуску недоступні. Перевірте сторінку випуску для отримання додаткової інформації.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateStatusWidget</name>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="28"/>
        <source>Update</source>
        <translation>Оновити</translation>
    </message>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="45"/>
        <source>New version: v%1</source>
        <translation>Нова версія: v%1</translation>
    </message>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="48"/>
        <source>Check update information</source>
        <translation>Перевірити інформацію про оновлення</translation>
    </message>
</context>
<context>
    <name>QtC::QodeAssist</name>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="141"/>
        <source>Cannot create user provider folder:
%1</source>
        <translation>Не вдалося створити теку провайдера користувача:
%1</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="147"/>
        <source>Cannot pick a free filename in:
%1</source>
        <translation>Не вдалося обрати вільне ім&apos;я файлу в:
%1</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="153"/>
        <source>Cannot write %1:
%2</source>
        <translation>Не вдалося записати %1:
%2</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="159"/>
        <source>Write failed for %1:
%2</source>
        <translation>Запис не вдався для %1:
%2</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="79"/>
        <location filename="../../settings/GeneralSettings.cpp" line="86"/>
        <location filename="../../settings/GeneralSettings.cpp" line="93"/>
        <source>Quick Setup</source>
        <translation>Швидке налаштування</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="82"/>
        <location filename="../../settings/GeneralSettings.cpp" line="89"/>
        <location filename="../../settings/GeneralSettings.cpp" line="96"/>
        <location filename="../../settings/SettingsTr.hpp" line="81"/>
        <source>Configure API Key</source>
        <translation>Налаштувати ключ API</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="83"/>
        <location filename="../../settings/GeneralSettings.cpp" line="90"/>
        <location filename="../../settings/GeneralSettings.cpp" line="97"/>
        <source>Open Provider Settings to configure API keys</source>
        <translation>Відкрити налаштування провайдера для налаштування ключів API</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="129"/>
        <location filename="../../settings/GeneralSettings.cpp" line="208"/>
        <location filename="../../settings/GeneralSettings.cpp" line="245"/>
        <source>Load configuration (includes predefined cloud models)</source>
        <translation>Завантажити конфігурацію (включає попередньо визначені хмарні моделі)</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="251"/>
        <location filename="../../settings/GeneralSettings.cpp" line="255"/>
        <location filename="../../settings/GeneralSettings.cpp" line="259"/>
        <source>Show template information</source>
        <translation>Показати інформацію про шаблон</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="522"/>
        <source>Template Information</source>
        <translation>Інформація про шаблон</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="523"/>
        <source>Template</source>
        <translation>Шаблон</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="526"/>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="744"/>
        <source>Failed to save configuration. Check logs for details.</source>
        <translation>Не вдалося зберегти конфігурацію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="785"/>
        <source>[Preset] configurations are predefined cloud models ready to use.</source>
        <translation>[Preset] конфігурації — це попередньо визначені хмарні моделі, готові до використання.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="832"/>
        <source>Predefined configurations cannot be deleted.</source>
        <translation>Попередньо визначені конфігурації не можна видалити.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="850"/>
        <source>Failed to delete configuration.</source>
        <translation>Не вдалося видалити конфігурацію.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="912"/>
        <source>-- Select Preset --</source>
        <translation>-- Оберіть пресет --</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="11"/>
        <location filename="../../settings/ProjectSettings.cpp" line="22"/>
        <location filename="../../settings/ProjectSettings.cpp" line="23"/>
        <source>Enable QodeAssist</source>
        <translation>Увімкнути QodeAssist</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="12"/>
        <source>General</source>
        <translation>Загальні</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="14"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="346"/>
        <location filename="../../settings/ToolsSettings.cpp" line="167"/>
        <location filename="../../settings/McpSettings.cpp" line="79"/>
        <location filename="../../settings/ProviderSettings.cpp" line="126"/>
        <source>Reset Page to Defaults</source>
        <translation>Скинути сторінку до типових значень</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="15"/>
        <source>Check Update</source>
        <translation>Перевірити оновлення</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="16"/>
        <source>Select...</source>
        <translation>Обрати...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="17"/>
        <source>Provider:</source>
        <translation>Провайдер:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="18"/>
        <source>Model:</source>
        <translation>Модель:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="19"/>
        <source>Template:</source>
        <translation>Шаблон:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="20"/>
        <source>URL:</source>
        <translation>URL:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="21"/>
        <source>Status:</source>
        <translation>Статус:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="22"/>
        <source>Test</source>
        <translation>Тест</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="23"/>
        <source>Enable Logging</source>
        <translation>Увімкнути журналювання</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="25"/>
        <source>Log messages are visible in General Messages pane</source>
        <translation>Повідомлення журналу видно в панелі General Messages</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="27"/>
        <source>Check for updates when Qt Creator starts</source>
        <translation>Перевіряти оновлення при запуску Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="28"/>
        <source>Enable Chat(If you have performance issues try disabling this, need restart QtC)</source>
        <translation>Увімкнути чат (Якщо у вас є проблеми з продуктивністю, спробуйте вимкнути це, потрібен перезапуск QtC)</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="31"/>
        <source>Custom endpoint:</source>
        <translation>Власна кінцева точка:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="33"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="27"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="543"/>
        <source>Code Completion</source>
        <translation>Доповнення коду</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="34"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="30"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="391"/>
        <source>Chat Assistant</source>
        <translation>Асистент чату</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="35"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="27"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="400"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="85"/>
        <source>Quick Refactor</source>
        <translation>Швидкий рефакторинг</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="36"/>
        <source>Chat Compression</source>
        <translation>Стиснення чату</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="37"/>
        <source>Agent Pipelines</source>
        <translation>Пайплайни агентів</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="38"/>
        <source>Inline completions while you type. Matchers run on every request.</source>
        <translation>Вбудовані доповнення під час введення. Матчери виконуються при кожному запиті.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="41"/>
        <source>Conversational assistant in the QodeAssist panel.</source>
        <translation>Розмовний асистент на панелі QodeAssist.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="43"/>
        <source>Used when a chat conversation needs to be summarised to stay within context.</source>
        <translation>Використовується, коли розмова в чаті потребує підсумування для збереження в межах контексту.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="46"/>
        <source>Inline editor-driven refactors via the Quick Refactor action.</source>
        <translation>Вбудовані рефакторинги, керовані редактором, через дію Швидкий рефакторинг.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="48"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="465"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="348"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="356"/>
        <location filename="../../settings/ToolsSettings.cpp" line="235"/>
        <location filename="../../settings/McpSettings.cpp" line="148"/>
        <location filename="../../settings/ProviderSettings.cpp" line="199"/>
        <source>Reset Settings</source>
        <translation>Скинути налаштування</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="49"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="466"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="349"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="357"/>
        <location filename="../../settings/ToolsSettings.cpp" line="236"/>
        <location filename="../../settings/McpSettings.cpp" line="149"/>
        <location filename="../../settings/ProviderSettings.cpp" line="200"/>
        <source>Are you sure you want to reset all settings to default values?</source>
        <translation>Ви впевнені, що хочете скинути всі налаштування до типових значень?</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="52"/>
        <source>Current template description:</source>
        <translation>Опис поточного шаблону:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="54"/>
        <source>Connection Error</source>
        <translation>Помилка підключення</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="56"/>
        <source>Unable to retrieve the list of models from the server.</source>
        <translation>Не вдалося отримати список моделей з сервера.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="57"/>
        <source>Please verify the following:
- Server is running and accessible
- URL is correct
- Provider is properly configured
- API key is correctly set (if required)

You can try selecting a different provider or changing the URL:</source>
        <translation>Будь ласка, перевірте наступне:
- Сервер запущено та доступний
- URL правильний
- Провайдер правильно налаштовано
- Ключ API правильно встановлено (якщо потрібно)

Ви можете спробувати обрати іншого провайдера або змінити URL:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="65"/>
        <source>Select Provider</source>
        <translation>Обрати провайдера</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="66"/>
        <source>Select URL</source>
        <translation>Обрати URL</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="67"/>
        <source>Close</source>
        <translation>Закрити</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="68"/>
        <source>Model Selection</source>
        <translation>Вибір моделі</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="69"/>
        <source>Select from previously used models or enter a new model name.

If entering a new model name:
• For providers with automatic listing - ensure the model is installed
• For providers without listing support - check provider&apos;s documentation
• Make sure the model name matches exactly</source>
        <translation>Оберіть з раніше використаних моделей або введіть нове ім&apos;я моделі.

Якщо вводите нове ім&apos;я моделі:
• Для провайдерів з автоматичним переліком — переконайтеся, що модель встановлено
• Для провайдерів без підтримки переліку — перевірте документацію провайдера
• Переконайтеся, що ім&apos;я моделі точно збігається</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="76"/>
        <source>Model name:</source>
        <translation>Ім&apos;я моделі:</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>Скасувати</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="80"/>
        <source>Enter Model Manually</source>
        <translation>Ввести модель вручну</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="82"/>
        <source>URL Selection</source>
        <translation>Вибір URL</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="83"/>
        <source>Select from the list of default and previously used URLs, or enter a custom one.
Please ensure the selected URL is accessible and the service is running.</source>
        <translation>Оберіть зі списку типових та раніше використаних URL, або введіть власний.
Будь ласка, переконайтеся, що обраний URL доступний і служба запущена.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="88"/>
        <source>Use default provider URL or from history</source>
        <translation>Використати типовий URL провайдера або з історії</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="89"/>
        <source>Enter custom URL</source>
        <translation>Ввести власний URL</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="91"/>
        <source>Enter Model Name Manually</source>
        <translation>Ввести ім&apos;я моделі вручну</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="93"/>
        <source>Auto Completion Settings</source>
        <translation>Налаштування автодоповнення</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="96"/>
        <source>Add new preset for language</source>
        <translation>Додати новий пресет для мови</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="98"/>
        <source>Save Config...</source>
        <translation>Зберегти конфігурацію...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="99"/>
        <source>Load Config...</source>
        <translation>Завантажити конфігурацію...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="100"/>
        <source>Open Folder</source>
        <translation>Відкрити теку</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="101"/>
        <source>Save Configuration</source>
        <translation>Зберегти конфігурацію</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="102"/>
        <source>Load Configuration</source>
        <translation>Завантажити конфігурацію</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="103"/>
        <source>Configuration name:</source>
        <translation>Назва конфігурації:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="104"/>
        <source>Select Configuration</source>
        <translation>Обрати конфігурацію</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="105"/>
        <source>No saved configurations found.</source>
        <translation>Збережених конфігурацій не знайдено.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="106"/>
        <source>Configuration saved successfully.</source>
        <translation>Конфігурацію успішно збережено.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="107"/>
        <source>Configuration loaded successfully.</source>
        <translation>Конфігурацію успішно завантажено.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="108"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="60"/>
        <source>Delete</source>
        <translation>Видалити</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="109"/>
        <source>Are you sure you want to delete this configuration?</source>
        <translation>Ви впевнені, що хочете видалити цю конфігурацію?</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="31"/>
        <source>Enable Auto Complete</source>
        <translation>Увімкнути автодоповнення</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="36"/>
        <source>Enable Multiline Completion</source>
        <translation>Увімкнути багаторядкове доповнення</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="38"/>
        <source>Text output proccessing mode:</source>
        <translation>Режим обробки текстового виводу:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="46"/>
        <source>Auto: Automatically detects codeblock and applies processing when found, other text as comments
Force Processing: Always processes text with codeblock formatting and other text as comments
Raw Text: Shows unprocessed text without any formatting</source>
        <translation>Авто: Автоматично виявляє блок коду та застосовує обробку при знаходженні, інший текст як коментарі
Примусова обробка: Завжди обробляє текст з форматуванням блоку коду та інший текст як коментарі
Сирий текст: Показує необроблений текст без будь-якого форматування</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="52"/>
        <source>Completion trigger mode:</source>
        <translation>Режим тригера доповнення:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="59"/>
        <source>Hint-based: Shows a hint when typing, press Tab to request completion
Automatic: Automatically requests completion after typing threshold</source>
        <translation>На основі підказки: Показує підказку при введенні, натисніть Tab для запиту доповнення
Автоматичний: Автоматично запитує доповнення після порога введення</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="62"/>
        <source>Completion mode:</source>
        <translation>Режим доповнення:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="69"/>
        <source>Automatic: requests completion while typing (with smart context gates).
Manual: no auto-triggering; invoke via the &apos;Request QodeAssist Suggestion&apos; shortcut (default Ctrl+Alt+Q, reconfigurable in Preferences &gt; Keyboard).</source>
        <translation>Автоматичний: запитує доповнення під час введення (з розумними контекстними воротами).
Ручний: без автоматичного спрацювання; викликайте через комбінацію &apos;Запит пропозиції QodeAssist&apos; (типово Ctrl+Alt+Q, налаштовується у Preferences &gt; Keyboard).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="74"/>
        <source>Smart context-aware triggering</source>
        <translation>Розумне контекстно-залежне спрацювання</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="77"/>
        <source>When enabled, auto-completion is suppressed in places where Qt Creator&apos;s built-in completion is usually stronger (middle of an identifier, right after &apos;.&apos;, &apos;-&gt;&apos;, &apos;::&apos;) and is triggered more eagerly after structural characters like &apos;(&apos;, &apos;,&apos;, &apos;{&apos;, &apos;=&apos; and on fresh indented lines.</source>
        <translation>Коли увімкнено, автодоповнення придушується в місцях, де вбудоване доповнення Qt Creator зазвичай сильніше (середина ідентифікатора, одразу після &apos;.&apos;, &apos;-&gt;&apos;, &apos;::&apos;), і спрацьовує охочіше після структурних символів, як-от &apos;(&apos;, &apos;,&apos;, &apos;{&apos;, &apos;=&apos; та на нових рядках з відступом.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="83"/>
        <source>Don&apos;t dismiss Qt Creator&apos;s completion popup</source>
        <translation>Не закривати спливаюче вікно доповнення Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="86"/>
        <source>When enabled, an AI completion arriving while Qt Creator&apos;s own completion popup is already visible will not force it closed. The LLM suggestion still appears inline.</source>
        <translation>Коли увімкнено, доповнення AI, що надходить, поки спливаюче вікно доповнення Qt Creator вже видно, не закриватиме його примусово. Пропозиція LLM все одно з&apos;являється вбудовано.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="91"/>
        <source>Cancel in-flight request on new input</source>
        <translation>Скасовувати поточний запит при новому введенні</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="94"/>
        <source>When enabled, every new keystroke cancels any completion request already in flight and restarts the debounce timer. Useful for slow local models where an outdated answer is rarely worth waiting for.
When disabled (default), the in-flight request is kept; when the answer arrives, the plugin compares it with characters typed in the meantime and either trims the matching prefix or drops the answer.</source>
        <translation>Коли увімкнено, кожне нове натискання клавіші скасовує будь-який запит доповнення, що вже виконується, та перезапускає таймер дебаунсу. Корисно для повільних локальних моделей, де застарілу відповідь рідко варто чекати.
Коли вимкнено (типово), поточний запит зберігається; коли надходить відповідь, плагін порівнює її з символами, введеними тим часом, і або обрізає відповідний префікс, або відкидає відповідь.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="102"/>
        <source>with delay(ms)</source>
        <translation>із затримкою (мс)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="104"/>
        <source>Delay before sending the completion request.
(Only for Automatic trigger mode)</source>
        <translation>Затримка перед надсиланням запиту доповнення.
(Лише для автоматичного режиму тригера)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="110"/>
        <source>AI suggestion triggers after typing</source>
        <translation>Пропозиція AI спрацьовує після введення</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="112"/>
        <source>The number of characters that need to be typed within the typing interval before an AI suggestion request is sent automatically.
(Only for Automatic trigger mode)</source>
        <translation>Кількість символів, які потрібно ввести протягом інтервалу введення, перед автоматичним надсиланням запиту пропозиції AI.
(Лише для автоматичного режиму тригера)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="119"/>
        <source>character(s) within(ms)</source>
        <translation>символів за (мс)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="121"/>
        <source>The time window (in milliseconds) during which the character threshold must be met to trigger an AI suggestion request automatically.
(Only for Automatic trigger mode)</source>
        <translation>Часове вікно (в мілісекундах), протягом якого має бути досягнуто порога символів для автоматичного запуску запиту пропозиції AI.
(Лише для автоматичного режиму тригера)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="128"/>
        <source>Hint shows after typing</source>
        <translation>Підказка показується після введення</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="130"/>
        <source>The number of characters that need to be typed before the hint widget appears (only for Hint-based trigger mode).</source>
        <translation>Кількість символів, які потрібно ввести, перш ніж з&apos;явиться віджет підказки (лише для режиму тригера на основі підказки).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="136"/>
        <source>Hint auto-hide timeout (ms)</source>
        <translation>Тайм-аут автоматичного приховування підказки (мс)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="138"/>
        <source>Time in milliseconds after which the hint widget will automatically hide (only for Hint-based trigger mode).</source>
        <translation>Час у мілісекундах, через який віджет підказки автоматично сховається (лише для режиму тригера на основі підказки).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="143"/>
        <source>Trigger key:</source>
        <translation>Клавіша тригера:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="154"/>
        <source>Key to press for requesting completion when hint is visible.
Space is recommended as least conflicting with context menu.
(Only for Hint-based trigger mode)</source>
        <translation>Клавіша для натискання для запиту доповнення, коли підказка видима.
Пробіл рекомендується як найменш конфліктуючий з контекстним меню.
(Лише для режиму тригера на основі підказки)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="160"/>
        <source>Ignore spaces and tabs in character count</source>
        <translation>Ігнорувати пробіли та табуляції при підрахунку символів</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="163"/>
        <source>When enabled, spaces and tabs are not counted towards the character threshold for triggering completions. This helps trigger completions based on actual code characters only.</source>
        <translation>Коли увімкнено, пробіли та табуляції не враховуються в порозі символів для запуску доповнень. Це допомагає запускати доповнення лише на основі фактичних символів коду.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="169"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="67"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="31"/>
        <source>Temperature:</source>
        <translation>Температура:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="175"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="73"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="37"/>
        <source>Max Tokens:</source>
        <translation>Макс. токенів:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="182"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="80"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="44"/>
        <source>Top P:</source>
        <translation>Top P:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="191"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="89"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="53"/>
        <source>Top K:</source>
        <translation>Top K:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="199"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="97"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="61"/>
        <source>Presence Penalty:</source>
        <translation>Штраф за присутність:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="208"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="106"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="70"/>
        <source>Frequency Penalty:</source>
        <translation>Штраф за частоту:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="217"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="147"/>
        <source>Read Full File</source>
        <translation>Читати повний файл</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="220"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="150"/>
        <source>Read Strings Before Cursor:</source>
        <translation>Читати рядки перед курсором:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="228"/>
        <source>Read Strings After Cursor:</source>
        <translation>Читати рядки після курсора:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="234"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="116"/>
        <source>Use System Prompt</source>
        <translation>Використовувати системний промпт</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="245"/>
        <source>Use special system prompt and user message for non FIM models</source>
        <translation>Використовувати спеціальний системний промпт та повідомлення користувача для не-FIM моделей</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="249"/>
        <source>System prompt for non FIM models:</source>
        <translation>Системний промпт для не-FIM моделей:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="274"/>
        <source>User message for non FIM models:</source>
        <translation>Повідомлення користувача для не-FIM моделей:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="281"/>
        <source>Additional Programming Languages for handling: Example: rust,//,rust rs,rs</source>
        <translation>Додаткові мови програмування для обробки: Приклад: rust,//,rust rs,rs</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="282"/>
        <source>Specify additional programming languages in format: name,comment_style,model_names,extensions
Example: rust,//,rust rs,rs
Fields: language name, comment prefix, names from LLM (space-separated), file extensions (space-separated)</source>
        <translation>Вкажіть додаткові мови програмування у форматі: ім&apos;я,стиль_коментаря,імена_моделей,розширення
Приклад: rust,//,rust rs,rs
Поля: назва мови, префікс коментаря, імена з LLM (через пробіл), розширення файлів (через пробіл)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="290"/>
        <source>Show progress indicator during code completion</source>
        <translation>Показувати індикатор прогресу під час доповнення коду</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="294"/>
        <source>Abort existing assist on new completion request</source>
        <translation>Перервати існуючу допомогу при новому запиті доповнення</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="296"/>
        <source>When enabled, cancels any active Qt Creator code assist popup before requesting LLM completion.
(Only for Automatic trigger mode)</source>
        <translation>Коли увімкнено, скасовує будь-яке активне спливаюче вікно допомоги коду Qt Creator перед запитом доповнення LLM.
(Лише для автоматичного режиму тригера)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="302"/>
        <source>Include context from open files</source>
        <translation>Включати контекст з відкритих файлів</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="307"/>
        <source>Max Changes Cache Size:</source>
        <translation>Макс. розмір кешу змін:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="316"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="129"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="80"/>
        <source>Time to suspend Ollama after completion request (in minutes), Only Ollama,  -1 to disable</source>
        <translation>Час призупинення Ollama після запиту доповнення (у хвилинах), лише Ollama, -1 для вимкнення</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="323"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="136"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="88"/>
        <source>Context Window:</source>
        <translation>Вікно контексту:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="329"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="167"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="127"/>
        <source>Reasoning effort:</source>
        <translation>Зусилля міркування:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="338"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="176"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="136"/>
        <source>Constrains effort on reasoning for OpenAI gpt-5 and o-series models:

None: No reasoning (gpt-5.1 only)
Minimal: Minimal reasoning effort (o-series only)
Low: Low reasoning effort
Medium: Balanced reasoning (default for most models)
High: Maximum reasoning effort (gpt-5-pro only supports this)

Note: Reducing effort = faster responses + fewer tokens</source>
        <translation>Обмежує зусилля на міркування для моделей OpenAI gpt-5 та o-серії:

None: Без міркування (лише gpt-5.1)
Minimal: Мінімальне зусилля міркування (лише o-серія)
Low: Низьке зусилля міркування
Medium: Збалансоване міркування (типово для більшості моделей)
High: Максимальне зусилля міркування (підтримує лише gpt-5-pro)

Примітка: Зменшення зусилля = швидші відповіді + менше токенів</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="383"/>
        <source>Prompts for FIM models</source>
        <translation>Промпти для FIM моделей</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="385"/>
        <source>Prompts for Non FIM models</source>
        <translation>Промпти для не-FIM моделей</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="416"/>
        <source>General Settings</source>
        <translation>Загальні налаштування</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="418"/>
        <source>Automatic Trigger Mode</source>
        <translation>Автоматичний режим тригера</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="420"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="316"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="278"/>
        <source>General Parameters</source>
        <translation>Загальні параметри</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="425"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="320"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="282"/>
        <source>Advanced Parameters</source>
        <translation>Розширені параметри</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="428"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="323"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="288"/>
        <source>Context Settings</source>
        <translation>Налаштування контексту</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="430"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="312"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="286"/>
        <source>OpenAI Responses API</source>
        <translation>OpenAI Responses API</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="432"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="328"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="294"/>
        <location filename="../../settings/ProviderSettings.cpp" line="152"/>
        <source>Ollama Settings</source>
        <translation>Налаштування Ollama</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="33"/>
        <source>Sync open files with assistant by default</source>
        <translation>Синхронізувати відкриті файли з асистентом за замовчуванням</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="38"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="185"/>
        <source>Enable autosave when message received</source>
        <translation>Увімкнути автозбереження при отриманні повідомлення</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="41"/>
        <source>Enable chat in bottom toolbar</source>
        <translation>Увімкнути чат у нижній панелі інструментів</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="45"/>
        <source>Enable chat in navigation panel</source>
        <translation>Увімкнути чат у навігаційній панелі</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="49"/>
        <source>Enable tools/function calling</source>
        <translation>Увімкнути виклик інструментів/функцій</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="50"/>
        <source>When enabled, AI can use tools to read files, search project, and build code</source>
        <translation>Коли увімкнено, AI може використовувати інструменти для читання файлів, пошуку в проєкті та збирання коду</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="54"/>
        <source>Auto-compress chat when session tokens exceed:</source>
        <translation>Автоматично стискати чат, коли токени сесії перевищують:</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>Після кожної відповіді асистента, якщо загальна кількість токенів поточної сесії перевищує поріг, чат підсумовується і автоматично запускається новий стиснений чат. Оригінальний чат зберігається на диску.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="142"/>
        <source>Enable extended thinking mode.</source>
        <translation>Увімкнути режим розширеного мислення.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="144"/>
        <source>Enable extended thinking mode for complex reasoning tasks.This provides step-by-step reasoning before the final answer.Temperature is 1.0 accordingly API requirement</source>
        <translation>Увімкнути режим розширеного мислення для складних завдань міркування. Це забезпечує покрокове міркування перед фінальною відповіддю. Температура встановлена в 1.0 відповідно до вимог API</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="150"/>
        <source>Thinking budget tokens:</source>
        <translation>Бюджет токенів мислення:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="152"/>
        <source>Maximum number of tokens Claude can use for internal reasoning. Larger budgets improve quality but increase latency. Minimum: 1024, Recommended: 10000-16000.</source>
        <translation>Максимальна кількість токенів, які Claude може використати для внутрішнього міркування. Більші бюджети покращують якість, але збільшують затримку. Мінімум: 1024, рекомендовано: 10000-16000.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="158"/>
        <source>Thinking mode max output tokens:</source>
        <translation>Макс. вихідні токени режиму мислення:</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>Максимальна кількість токенів для фінальної відповіді, коли увімкнено режим мислення. Встановіть -1 для використання типового налаштування макс. токенів. Рекомендовано: 4096-16000.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="188"/>
        <source>Text Font:</source>
        <translation>Шрифт тексту:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="197"/>
        <source>Text Font Size:</source>
        <translation>Розмір шрифту тексту:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="201"/>
        <source>Code Font:</source>
        <translation>Шрифт коду:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="232"/>
        <source>Code Font Size:</source>
        <translation>Розмір шрифту коду:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="236"/>
        <source>Text Format:</source>
        <translation>Формат тексту:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="244"/>
        <source>Chat Renderer:</source>
        <translation>Рендерер чату:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="297"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="329"/>
        <source>Chat Settings</source>
        <translation>Налаштування чату</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="304"/>
        <location filename="../../settings/ToolsSettings.cpp" line="27"/>
        <location filename="../../settings/ToolsSettings.cpp" line="190"/>
        <location filename="../../settings/ToolsSettings.cpp" line="269"/>
        <source>Tools</source>
        <translation>Інструменти</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="308"/>
        <source>Extended Thinking (Claude)</source>
        <translation>Розширене мислення (Claude)</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="405"/>
        <source>Agent Roles</source>
        <translation>Ролі агентів</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="93"/>
        <source>Enable Tools</source>
        <translation>Увімкнути інструменти</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="95"/>
        <source>Enable AI tools/functions for quick refactoring (allows reading project files, searching code, etc.)</source>
        <translation>Увімкнути інструменти/функції AI для швидкого рефакторингу (дозволяє читати файли проєкту, шукати в коді тощо)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="101"/>
        <source>Enable Thinking Mode</source>
        <translation>Увімкнути режим мислення</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="103"/>
        <source>Enable extended thinking mode for complex refactoring tasks (supported by compatible models like Claude and Google AI)</source>
        <translation>Увімкнути режим розширеного мислення для складних завдань рефакторингу (підтримується сумісними моделями, як-от Claude та Google AI)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="109"/>
        <source>Thinking Budget Tokens:</source>
        <translation>Бюджет токенів мислення:</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>Кількість токенів, виділених для процесу мислення. Використовуйте -1 для динамічного мислення (модель вирішує), 0 для вимкнення, або додатне значення для власного бюджету</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="118"/>
        <source>Thinking Max Output Tokens:</source>
        <translation>Макс. вихідні токени мислення:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="120"/>
        <source>Maximum output tokens when thinking mode is enabled (includes thinking + response)</source>
        <translation>Максимальна кількість вихідних токенів, коли увімкнено режим мислення (включає мислення + відповідь)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="154"/>
        <source>Lines Before Cursor/Selection:</source>
        <translation>Рядки перед курсором/виділенням:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="156"/>
        <source>Number of lines to include before cursor or selection for context</source>
        <translation>Кількість рядків, які слід включити перед курсором або виділенням для контексту</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="161"/>
        <source>Lines After Cursor/Selection:</source>
        <translation>Рядки після курсора/виділення:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="163"/>
        <source>Number of lines to include after cursor or selection for context</source>
        <translation>Кількість рядків, які слід включити після курсора або виділення для контексту</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="168"/>
        <source>Display Mode:</source>
        <translation>Режим відображення:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="170"/>
        <source>Choose how to display refactoring suggestions:
- Inline Widget: Shows refactor in a widget overlay with Apply/Decline buttons (default)
- Qt Creator Suggestion: Uses Qt Creator&apos;s built-in suggestion system</source>
        <translation>Оберіть, як відображати пропозиції рефакторингу:
- Вбудований віджет: Показує рефакторинг у накладці-віджеті з кнопками Застосувати/Відхилити (типово)
- Пропозиція Qt Creator: Використовує вбудовану систему пропозицій Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="175"/>
        <source>Inline Widget</source>
        <translation>Вбудований віджет</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="176"/>
        <source>Qt Creator Suggestion</source>
        <translation>Пропозиція Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="180"/>
        <source>Widget Orientation:</source>
        <translation>Орієнтація віджета:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="182"/>
        <source>Choose default orientation for refactor widget:
- Horizontal: Original and refactored code side by side (default)
- Vertical: Original and refactored code stacked vertically</source>
        <translation>Оберіть типову орієнтацію для віджета рефакторингу:
- Горизонтальна: Оригінальний та рефакторений код поруч (типово)
- Вертикальна: Оригінальний та рефакторений код один над одним</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="186"/>
        <source>Horizontal</source>
        <translation>Горизонтальна</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="187"/>
        <source>Vertical</source>
        <translation>Вертикальна</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="191"/>
        <source>Widget Minimum Width:</source>
        <translation>Мінімальна ширина віджета:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="192"/>
        <source>Minimum width for the refactor widget (in pixels)</source>
        <translation>Мінімальна ширина для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="197"/>
        <source>Widget Maximum Width:</source>
        <translation>Максимальна ширина віджета:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="198"/>
        <source>Maximum width for the refactor widget (in pixels)</source>
        <translation>Максимальна ширина для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="203"/>
        <source>Widget Minimum Height:</source>
        <translation>Мінімальна висота віджета:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="204"/>
        <source>Minimum height for the refactor widget (in pixels)</source>
        <translation>Мінімальна висота для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="209"/>
        <source>Widget Maximum Height:</source>
        <translation>Максимальна висота віджета:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="210"/>
        <source>Maximum height for the refactor widget (in pixels)</source>
        <translation>Максимальна висота для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="215"/>
        <source>System Prompt:</source>
        <translation>Системний промпт:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="224"/>
        <source>Include context from open files in quick refactor</source>
        <translation>Включати контекст з відкритих файлів у швидкий рефакторинг</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="284"/>
        <source>Tools Settings</source>
        <translation>Налаштування інструментів</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="290"/>
        <source>Display Settings</source>
        <translation>Налаштування відображення</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="292"/>
        <source>Prompt Settings</source>
        <translation>Налаштування промпта</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="30"/>
        <source>Allow file access outside project</source>
        <translation>Дозволити доступ до файлів поза проєктом</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="32"/>
        <source>Allow tools to read, write, and create files outside the project scope (system headers, Qt files, external libraries).</source>
        <translation>Дозволити інструментам читати, записувати та створювати файли поза межами проєкту (системні заголовки, файли Qt, зовнішні бібліотеки).</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="37"/>
        <source>Automatically apply file edits</source>
        <translation>Автоматично застосовувати редагування файлів</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="39"/>
        <source>When enabled, file edits suggested by AI are applied immediately. When disabled, each edit is staged for manual approval.</source>
        <translation>Коли увімкнено, редагування файлів, запропоновані AI, застосовуються негайно. Коли вимкнено, кожне редагування підготовлюється для ручного схвалення.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="44"/>
        <source>Max tool continuations:</source>
        <translation>Макс. продовжень інструментів:</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="46"/>
        <source>Maximum number of consecutive tool-use rounds in a single request. Each round lets the model call tools and receive results before continuing. Higher values allow more complex multi-step tasks but increase token usage.</source>
        <translation>Максимальна кількість послідовних раундів використання інструментів в одному запиті. Кожен раунд дозволяє моделі викликати інструменти та отримувати результати перед продовженням. Вищі значення дозволяють складніші багатокрокові завдання, але збільшують використання токенів.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="53"/>
        <source>List Project Files</source>
        <translation>Перелічити файли проєкту</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="55"/>
        <source>Lists every source file tracked by the active Qt Creator project(s).</source>
        <translation>Перелічує кожен вихідний файл, що відстежується активним(и) проєктом(ами) Qt Creator.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="59"/>
        <source>Find File</source>
        <translation>Знайти файл</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="61"/>
        <source>Locates a file in the project by name or partial path. Returns paths only, without file content.</source>
        <translation>Знаходить файл у проєкті за іменем або частковим шляхом. Повертає лише шляхи, без вмісту файлу.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="66"/>
        <source>Read File</source>
        <translation>Читати файл</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="68"/>
        <source>Reads the content of a file by absolute path or path relative to the project root.</source>
        <translation>Читає вміст файлу за абсолютним шляхом або шляхом відносно кореня проєкту.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="72"/>
        <source>Search in Project</source>
        <translation>Шукати в проєкті</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="74"/>
        <source>Searches project files for text occurrences or C++ symbol definitions.</source>
        <translation>Шукає в файлах проєкту входження тексту або визначення символів C++.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="78"/>
        <source>Create New File</source>
        <translation>Створити новий файл</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="80"/>
        <source>Creates a new empty file at the given absolute path, making missing directories.</source>
        <translation>Створює новий порожній файл за вказаним абсолютним шляхом, створюючи відсутні теки.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="84"/>
        <location filename="../../settings/ToolsSettings.cpp" line="212"/>
        <source>Edit File</source>
        <translation>Редагувати файл</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="86"/>
        <source>Applies find-and-replace edits to files. See &quot;Automatically apply file edits&quot; to control whether edits apply immediately or wait for review.</source>
        <translation>Застосовує редагування пошуку-та-заміни до файлів. Див. &quot;Автоматично застосовувати редагування файлів&quot; для контролю того, чи редагування застосовуються негайно, чи чекають на огляд.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="91"/>
        <source>Build Project</source>
        <translation>Зібрати проєкт</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="93"/>
        <source>Triggers a build of the active Qt Creator project and reports the result.</source>
        <translation>Запускає збирання активного проєкту Qt Creator і повідомляє результат.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="97"/>
        <source>Get Issues List</source>
        <translation>Отримати список проблем</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="99"/>
        <source>Reads compiler/clang diagnostics from Qt Creator&apos;s Issues panel.</source>
        <translation>Читає діагностику компілятора/clang з панелі Issues Qt Creator.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="103"/>
        <location filename="../../settings/ToolsSettings.cpp" line="215"/>
        <source>Execute Terminal Command</source>
        <translation>Виконати команду терміналу</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="105"/>
        <source>Runs a command from the OS-specific allowed list below, in the project directory.</source>
        <translation>Виконує команду з нижчевказаного списку дозволених для конкретної ОС, у каталозі проєкту.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="109"/>
        <source>Todo</source>
        <translation>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>Дозволяє AI підтримувати список todo в межах сесії для багатокрокових робочих процесів.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="115"/>
        <source>Read Original History (Pre-Compression)</source>
        <translation>Читати оригінальну історію (до стиснення)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="117"/>
        <source>Lets the AI read the original, full chat history from before the conversation was compressed into a summary. Useful when a detail is missing from the summary currently in context. Has no effect if the chat was never compressed.</source>
        <translation>Дозволяє AI читати оригінальну, повну історію чату до того, як розмову було стиснуто в резюме. Корисно, коли деталь відсутня в резюме, яке зараз у контексті. Не має ефекту, якщо чат ніколи не стискався.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="123"/>
        <source>Load Skill</source>
        <translation>Завантажити навичку</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="125"/>
        <source>Lets the AI load the full instructions of a skill on demand. The Available Skills catalog in the system prompt lists each skill; this tool pulls a skill&apos;s complete instructions into context when needed.</source>
        <translation>Дозволяє AI завантажувати повні інструкції навички за запитом. Каталог доступних навичок у системному промпті перелічує кожну навичку; цей інструмент підтягує повні інструкції навички в контекст за потреби.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="131"/>
        <source>Allowed Commands (Linux)</source>
        <translation>Дозволені команди (Linux)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="133"/>
        <source>Comma-separated list of terminal commands that AI is allowed to execute on Linux. Example: git, ls, cat, grep, find, cmake</source>
        <translation>Список команд терміналу через кому, які AI дозволено виконувати на Linux. Приклад: git, ls, cat, grep, find, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="141"/>
        <source>Allowed Commands (macOS)</source>
        <translation>Дозволені команди (macOS)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="143"/>
        <source>Comma-separated list of terminal commands that AI is allowed to execute on macOS. Example: git, ls, cat, grep, find, cmake</source>
        <translation>Список команд терміналу через кому, які AI дозволено виконувати на macOS. Приклад: git, ls, cat, grep, find, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="151"/>
        <source>Allowed Commands (Windows)</source>
        <translation>Дозволені команди (Windows)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="153"/>
        <source>Comma-separated list of terminal commands that AI is allowed to execute on Windows. Example: git, dir, type, findstr, where, cmake</source>
        <translation>Список команд терміналу через кому, які AI дозволено виконувати на Windows. Приклад: git, dir, type, findstr, where, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="160"/>
        <source>Command Timeout (seconds)</source>
        <translation>Тайм-аут команди (секунди)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="162"/>
        <source>Maximum time in seconds to wait for a terminal command to complete. Increase for long-running commands like builds.</source>
        <translation>Максимальний час у секундах для очікування завершення команди терміналу. Збільшіть для довготривалих команд, як-от збирання.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="206"/>
        <source>Tool Settings</source>
        <translation>Налаштування інструменту</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="55"/>
        <location filename="../../settings/SkillsSettings.cpp" line="104"/>
        <location filename="../../settings/SkillsSettings.cpp" line="127"/>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="96"/>
        <source>Skills</source>
        <translation>Навички</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="58"/>
        <source>Enable skills</source>
        <translation>Увімкнути навички</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="60"/>
        <source>Discover Agent Skills from the configured skill directories and expose them to the chat assistant. Each skill is a folder containing a SKILL.md file.</source>
        <translation>Виявляти навички агента з налаштованих каталогів навичок та надавати їх асистенту чату. Кожна навичка — це тека, що містить файл SKILL.md.</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="69"/>
        <source>Global skill directories:</source>
        <translation>Глобальні каталоги навичок:</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="72"/>
        <source>Absolute paths scanned for skills, one per line. Each path is a directory whose subfolders contain SKILL.md files. A leading ~ expands to your home directory. Lets QodeAssist pick up skills shared with other agents (e.g. ~/.claude/skills).</source>
        <translation>Абсолютні шляхи, що скануються на наявність навичок, один на рядок. Кожен шлях — це каталог, чиї підтеки містять файли SKILL.md. Початковий ~ розгортається до вашого домашнього каталогу. Дозволяє QodeAssist підбирати навички, спільні з іншими агентами (напр. ~/.claude/skills).</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="97"/>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="86"/>
        <source>No skills discovered.</source>
        <translation>Жодної навички не виявлено.</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="110"/>
        <source>Skill Directories</source>
        <translation>Каталоги навичок</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="113"/>
        <source>Discovered global skills:</source>
        <translation>Виявлені глобальні навички:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="38"/>
        <location filename="../../settings/McpSettings.cpp" line="341"/>
        <source>MCP</source>
        <translation>MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="41"/>
        <source>Enable MCP server</source>
        <translation>Увімкнути сервер MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="43"/>
        <source>Expose QodeAssist tools to external MCP clients over HTTP. Which tools are visible is controlled on the client side.</source>
        <translation>Надавати інструменти QodeAssist зовнішнім клієнтам MCP через HTTP. Які інструменти видимі, контролюється на стороні клієнта.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="48"/>
        <source>Server port</source>
        <translation>Порт сервера</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="50"/>
        <source>TCP port the MCP server listens on (localhost only). Requires restart of the server after change.</source>
        <translation>TCP-порт, на якому слухає сервер MCP (лише localhost). Вимагає перезапуску сервера після зміни.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="56"/>
        <source>Connect to external MCP servers</source>
        <translation>Підключатися до зовнішніх серверів MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="58"/>
        <source>Connect to MCP servers listed in mcp-server.json and expose their tools to chat/quick-refactor/code-completion. Toggling this off disconnects all currently running MCP client sessions.</source>
        <translation>Підключатися до серверів MCP, перелічених у mcp-server.json, та надавати їхні інструменти для чату/швидкого рефакторингу/доповнення коду. Вимкнення цієї опції відключає всі поточні сесії клієнтів MCP.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="64"/>
        <source>Extra PATH for stdio servers</source>
        <translation>Додатковий PATH для stdio-серверів</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>Каталоги для додавання на початок PATH при запуску stdio-серверів MCP. Корисно, коли Qt Creator запускається з доку та не бачить Homebrew, nvm, uv тощо. Розділяйте кілька записів за допомогою &apos;%1&apos;. Перевизначення &apos;env&apos; для кожного сервера в mcp-server.json все одно мають пріоритет.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="80"/>
        <source>How to connect...</source>
        <translation>Як підключитися...</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="93"/>
        <source>Server</source>
        <translation>Сервер</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="100"/>
        <source>Clients</source>
        <translation>Клієнти</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="211"/>
        <source>Connect to QodeAssist MCP</source>
        <translation>Підключитися до QodeAssist MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="215"/>
        <source>Server URL: &lt;code&gt;%1&lt;/code&gt;. If your MCP client speaks HTTP/SSE natively, use the &lt;b&gt;Direct&lt;/b&gt; tab. If it only speaks stdio (e.g. Claude Desktop), use the &lt;b&gt;Bridge&lt;/b&gt; tab.</source>
        <translation>URL сервера: &lt;code&gt;%1&lt;/code&gt;. Якщо ваш клієнт MCP нативно говорить HTTP/SSE, використовуйте вкладку &lt;b&gt;Direct&lt;/b&gt;. Якщо він говорить лише stdio (напр. Claude Desktop), використовуйте вкладку &lt;b&gt;Bridge&lt;/b&gt;.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="242"/>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="265"/>
        <source>&lt;b&gt;Claude Code&lt;/b&gt; (CLI): run once —</source>
        <translation>&lt;b&gt;Claude Code&lt;/b&gt; (CLI): виконайте один раз —</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="271"/>
        <source>&lt;b&gt;VS Code&lt;/b&gt;: save as &lt;code&gt;.vscode/mcp.json&lt;/code&gt; in the workspace:</source>
        <translation>&lt;b&gt;VS Code&lt;/b&gt;: збережіть як &lt;code&gt;.vscode/mcp.json&lt;/code&gt; у робочій області:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="279"/>
        <source>Any other client that reads an &lt;code&gt;mcpServers&lt;/code&gt; JSON block:</source>
        <translation>Будь-який інший клієнт, що читає JSON-блок &lt;code&gt;mcpServers&lt;/code&gt;:</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; Завантажте &lt;code&gt;mcp-bridge&lt;/code&gt; для вашої ОС з &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; Збережіть наступне як &lt;code&gt;mcp-bridge.json&lt;/code&gt;:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="312"/>
        <source>&lt;b&gt;3.&lt;/b&gt; Point the stdio-only client at the bridge. Example for &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:</source>
        <translation>&lt;b&gt;3.&lt;/b&gt; Направте stdio-клієнта на міст. Приклад для &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="321"/>
        <source>Bridge (stdio)</source>
        <translation>Bridge (stdio)</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettings.cpp" line="28"/>
        <source>Chat History Path:</source>
        <translation>Шлях історії чату:</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettings.cpp" line="36"/>
        <source>Skill directories:</source>
        <translation>Каталоги навичок:</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettings.cpp" line="39"/>
        <source>Project-relative subdirectories scanned for Agent Skills, one per line. Resolved against the project root. These take priority over the global skill directories when a skill name appears in both.</source>
        <translation>Підкаталоги відносно проєкту, що скануються на наявність навичок агента, один на рядок. Розв&apos;язуються відносно кореня проєкту. Вони мають пріоритет над глобальними каталогами навичок, коли ім&apos;я навички з&apos;являється в обох.</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="99"/>
        <source>Discovered project skills:</source>
        <translation>Виявлені навички проєкту:</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="115"/>
        <source>QodeAssist</source>
        <translation>QodeAssist</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="27"/>
        <location filename="../../settings/ProviderSettings.cpp" line="224"/>
        <source>Provider Settings</source>
        <translation>Налаштування провайдера</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="31"/>
        <source>OpenRouter API Key:</source>
        <translation>Ключ API OpenRouter:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="33"/>
        <location filename="../../settings/ProviderSettings.cpp" line="42"/>
        <location filename="../../settings/ProviderSettings.cpp" line="51"/>
        <location filename="../../settings/ProviderSettings.cpp" line="77"/>
        <location filename="../../settings/ProviderSettings.cpp" line="86"/>
        <location filename="../../settings/ProviderSettings.cpp" line="94"/>
        <location filename="../../settings/ProviderSettings.cpp" line="103"/>
        <location filename="../../settings/ProviderSettings.cpp" line="112"/>
        <location filename="../../settings/ProviderSettings.cpp" line="121"/>
        <source>Enter your API key here</source>
        <translation>Введіть ваш ключ API тут</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="40"/>
        <source>OpenAI Compatible API Key:</source>
        <translation>Ключ API OpenAI Compatible:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="49"/>
        <source>Claude API Key:</source>
        <translation>Ключ API Claude:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="57"/>
        <source>Enable prompt caching</source>
        <translation>Увімкнути кешування промптів</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="59"/>
        <source>Marks the system prompt, tool definitions, and stable chat history with cache_control so Anthropic caches the request prefix (5-minute TTL). Reduces cost and latency on repeated turns.</source>
        <translation>Позначає системний промпт, визначення інструментів та стабільну історію чату за допомогою cache_control, щоб Anthropic кешував префікс запиту (TTL 5 хвилин). Зменшує вартість та затримку при повторних запитах.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="66"/>
        <source>Use 1h cache TTL (beta)</source>
        <translation>Використовувати 1-годинний TTL кешу (бета)</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>Запитує 1-годинний TTL кешу Anthropic замість типових 5 хвилин. Надсилає бета-заголовок extended-cache-ttl-2025-04-11.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="75"/>
        <source>OpenAI API Key:</source>
        <translation>Ключ API OpenAI:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="84"/>
        <source>Mistral AI API Key:</source>
        <translation>Ключ API Mistral AI:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="92"/>
        <source>Codestral API Key:</source>
        <translation>Ключ API Codestral:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="101"/>
        <source>Google AI API Key:</source>
        <translation>Ключ API Google AI:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="110"/>
        <source>Ollama(Bearer) API Key:</source>
        <translation>Ключ API Ollama(Bearer):</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="119"/>
        <source>llama.cpp API Key:</source>
        <translation>Ключ API llama.cpp:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="138"/>
        <source>OpenRouter Settings</source>
        <translation>Налаштування OpenRouter</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="140"/>
        <source>OpenAI Settings</source>
        <translation>Налаштування OpenAI</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="142"/>
        <source>OpenAI Compatible Settings</source>
        <translation>Налаштування OpenAI Compatible</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="145"/>
        <source>Claude Settings</source>
        <translation>Налаштування Claude</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="148"/>
        <source>Mistral AI Settings</source>
        <translation>Налаштування Mistral AI</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="150"/>
        <source>Google AI Settings</source>
        <translation>Налаштування Google AI</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="154"/>
        <source>llama.cpp Settings</source>
        <translation>Налаштування llama.cpp</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="28"/>
        <source>Agent roles define different system prompts for specific tasks.</source>
        <translation>Ролі агентів визначають різні системні промпти для конкретних завдань.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="32"/>
        <source>Open Roles Folder...</source>
        <translation>Відкрити теку ролей...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="48"/>
        <source>Add...</source>
        <translation>Додати...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="52"/>
        <source>Edit...</source>
        <translation>Редагувати...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="56"/>
        <source>Duplicate...</source>
        <translation>Дублювати...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="83"/>
        <source>(Built-in role)</source>
        <translation>(Вбудована роль)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="118"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="192"/>
        <source>Role Already Exists</source>
        <translation>Роль вже існує</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="119"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="193"/>
        <source>A role with ID &apos;%1&apos; already exists. Please use a different ID.</source>
        <translation>Роль з ID &apos;%1&apos; вже існує. Будь ласка, використайте інший ID.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="492"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="521"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="554"/>
        <source>Error</source>
        <translation>Помилка</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
        <source>Failed to save role &apos;%1&apos;.</source>
        <translation>Не вдалося зберегти роль &apos;%1&apos;.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="144"/>
        <source>Cannot Edit Built-in Role</source>
        <translation>Не можна редагувати вбудовану роль</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="145"/>
        <source>Built-in roles cannot be edited. You can duplicate this role and modify the copy.</source>
        <translation>Вбудовані ролі не можна редагувати. Ви можете дублювати цю роль та змінити копію.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
        <source>Failed to update role &apos;%1&apos;.</source>
        <translation>Не вдалося оновити роль &apos;%1&apos;.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
        <source>Failed to duplicate role.</source>
        <translation>Не вдалося дублювати роль.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
        <source>Cannot Delete Built-in Role</source>
        <translation>Не можна видалити вбудовану роль</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
        <source>Built-in roles cannot be deleted.</source>
        <translation>Вбудовані ролі не можна видалити.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="222"/>
        <source>Delete Role</source>
        <translation>Видалити роль</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="223"/>
        <source>Are you sure you want to delete the role &apos;%1&apos;?</source>
        <translation>Ви впевнені, що хочете видалити роль &apos;%1&apos;?</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
        <source>Failed to delete role &apos;%1&apos;.</source>
        <translation>Не вдалося видалити роль &apos;%1&apos;.</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="160"/>
        <source>Generate QodeAssist suggestion at the current cursor position.</source>
        <translation>Згенерувати пропозицію QodeAssist у поточній позиції курсора.</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="161"/>
        <source>Request QodeAssist Suggestion</source>
        <translation>Запит пропозиції QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="244"/>
        <source>Refactor code using QodeAssist</source>
        <translation>Рефакторити код за допомогою QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="245"/>
        <source>Quick Refactor with QodeAssist</source>
        <translation>Швидкий рефакторинг з QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="270"/>
        <source>Open QodeAssist Chat as an editor tab</source>
        <translation>Відкрити чат QodeAssist як вкладку редактора</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="271"/>
        <source>Show QodeAssist Chat</source>
        <translation>Показати чат QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="287"/>
        <location filename="../../qodeassist.cpp" line="288"/>
        <source>Close QodeAssist Chat</source>
        <translation>Закрити чат QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="297"/>
        <source>Open QodeAssist Chat in Separate Window</source>
        <translation>Відкрити чат QodeAssist в окремому вікні</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="298"/>
        <source>Open the QodeAssist chat in a separate window</source>
        <translation>Відкрити чат QodeAssist в окремому вікні</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="303"/>
        <source>New QodeAssist Chat</source>
        <translation>Новий чат QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="304"/>
        <source>Open a fresh chat in a new editor tab</source>
        <translation>Відкрити свіжий чат у новій вкладці редактора</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="310"/>
        <source>Send QodeAssist Chat Message</source>
        <translation>Надіслати повідомлення чату QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="311"/>
        <source>Send the current message to the LLM</source>
        <translation>Надіслати поточне повідомлення до LLM</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="320"/>
        <source>Clear QodeAssist Chat Session</source>
        <translation>Очистити сесію чату QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="321"/>
        <source>Clear the current chat session</source>
        <translation>Очистити поточну сесію чату</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="379"/>
        <location filename="../../qodeassist.cpp" line="388"/>
        <location filename="../../chat/ChatOutputPane.cpp" line="19"/>
        <location filename="../../chat/ChatDocument.cpp" line="19"/>
        <location filename="../../chat/ChatEditor.cpp" line="42"/>
        <location filename="../../chat/ChatEditorFactory.cpp" line="18"/>
        <source>QodeAssist Chat</source>
        <translation>Чат QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="460"/>
        <source>Chat in Bottom Panel</source>
        <translation>Чат у нижній панелі</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="467"/>
        <source>Chat in Sidebar</source>
        <translation>Чат у бічній панелі</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="477"/>
        <source>Open Chat in Editor</source>
        <translation>Відкрити чат у редакторі</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="485"/>
        <source>Open Chat in Separate Window</source>
        <translation>Відкрити чат в окремому вікні</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="133"/>
        <source>Select LLM Provider</source>
        <translation>Обрати провайдера LLM</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="133"/>
        <source>Providers:</source>
        <translation>Провайдери:</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="175"/>
        <source>Select LLM Model</source>
        <translation>Обрати модель LLM</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="175"/>
        <source>Models:</source>
        <translation>Моделі:</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="206"/>
        <source>Select Template</source>
        <translation>Обрати шаблон</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="206"/>
        <source>Templates:</source>
        <translation>Шаблони:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="117"/>
        <source>Switch AI configuration</source>
        <translation>Перемкнути конфігурацію AI</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="130"/>
        <source>Enable/Disable AI Tools</source>
        <translation>Увімкнути/Вимкнути інструменти AI</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="147"/>
        <source>Enable/Disable Thinking Mode</source>
        <translation>Увімкнути/Вимкнути режим мислення</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="159"/>
        <source>Open Quick Refactor Settings</source>
        <translation>Відкрити налаштування швидкого рефакторингу</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="167"/>
        <source>Your Current Instruction:</source>
        <translation>Ваша поточна інструкція:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="172"/>
        <source>Type or edit your instruction...</source>
        <translation>Введіть або відредагуйте вашу інструкцію...</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="178"/>
        <source>Or Load saved:</source>
        <translation>Або завантажте збережену:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="185"/>
        <source>Search saved instructions...</source>
        <translation>Шукати збережені інструкції...</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="197"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="21"/>
        <source>Add Custom Instruction</source>
        <translation>Додати власну інструкцію</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="203"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="30"/>
        <source>Edit Custom Instruction</source>
        <translation>Редагувати власну інструкцію</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="209"/>
        <source>Delete Custom Instruction</source>
        <translation>Видалити власну інструкцію</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="215"/>
        <source>Open Instructions Folder</source>
        <translation>Відкрити теку інструкцій</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="285"/>
        <source>Repeat Last Instructions</source>
        <translation>Повторити останні інструкції</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="291"/>
        <source>Improve Current Code</source>
        <translation>Покращити поточний код</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="297"/>
        <source>Suggest Alternative Solution</source>
        <translation>Запропонувати альтернативне рішення</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="366"/>
        <source>Improve the selected code by enhancing readability, efficiency, and maintainability. Follow best practices for C++/Qt and fix any potential issues.</source>
        <translation>Покращіть обраний код, підвищуючи читабельність, ефективність та зручність обслуговування. Дотримуйтесь найкращих практик для C++/Qt та виправте будь-які потенційні проблеми.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="377"/>
        <source>Suggest an alternative implementation approach for the selected code. Provide a different solution that might be cleaner, more efficient, or uses different Qt/C++ patterns or idioms.</source>
        <translation>Запропонуйте альтернативний підхід до реалізації обраного коду. Надайте інше рішення, яке може бути чистішим, ефективнішим або використовує інші патерни чи ідіоми Qt/C++.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="493"/>
        <source>Failed to save custom instruction. Check logs for details.</source>
        <translation>Не вдалося зберегти власну інструкцію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="505"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="534"/>
        <source>No Instruction Selected</source>
        <translation>Інструкцію не обрано</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="506"/>
        <source>Please select an instruction to edit.</source>
        <translation>Будь ласка, оберіть інструкцію для редагування.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="522"/>
        <source>Failed to update custom instruction. Check logs for details.</source>
        <translation>Не вдалося оновити власну інструкцію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="535"/>
        <source>Please select an instruction to delete.</source>
        <translation>Будь ласка, оберіть інструкцію для видалення.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="541"/>
        <source>Confirm Deletion</source>
        <translation>Підтвердити видалення</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="542"/>
        <source>Are you sure you want to delete the instruction &apos;%1&apos;?</source>
        <translation>Ви впевнені, що хочете видалити інструкцію &apos;%1&apos;?</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="555"/>
        <source>Failed to delete custom instruction. Check logs for details.</source>
        <translation>Не вдалося видалити власну інструкцію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="593"/>
        <source>Current</source>
        <translation>Поточна</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="603"/>
        <source>Current (%1)</source>
        <translation>Поточна (%1)</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="640"/>
        <source>No Instruction</source>
        <translation>Немає інструкції</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="641"/>
        <source>Please type an instruction or select a saved one.</source>
        <translation>Будь ласка, введіть інструкцію або оберіть збережену.</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="46"/>
        <source>Enter instruction name...</source>
        <translation>Введіть ім&apos;я інструкції...</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="47"/>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="51"/>
        <source>Instruction Body:</source>
        <translation>Тіло інструкції:</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="56"/>
        <source>Enter the refactoring instruction that will be sent to the LLM...</source>
        <translation>Введіть інструкцію рефакторингу, яка буде надіслана до LLM...</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="59"/>
        <source>Set as default instruction</source>
        <translation>Встановити як типову інструкцію</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="61"/>
        <source>This instruction will be automatically selected when opening Quick Refactor dialog</source>
        <translation>Ця інструкція буде автоматично обрана при відкритті діалогу швидкого рефакторингу</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
        <source>Invalid Input</source>
        <translation>Недійсне введення</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
        <source>Instruction name cannot be empty.</source>
        <translation>Ім&apos;я інструкції не може бути порожнім.</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
        <source>Instruction body cannot be empty.</source>
        <translation>Тіло інструкції не може бути порожнім.</translation>
    </message>
</context>
<context>
    <name>RootItem</name>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="75"/>
        <source>Compressing chat…</source>
        <translation>Стиснення чату…</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="100"/>
        <source>next ~%1  ·  session ↑%2 ↓%3 ↻%4</source>
        <translation>наступний ~%1  ·  сесія ↑%2 ↓%3 ↻%4</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="105"/>
        <source>next ~%1  ·  session ↑%2 ↓%3</source>
        <translation>наступний ~%1  ·  сесія ↑%2 ↓%3</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="110"/>
        <source>next request (estimate)  ·  session prompt ↑ / completion ↓ / cached ↻ (provider cache hits)</source>
        <translation>наступний запит (оцінка)  ·  промпт сесії ↑ / доповнення ↓ / кешовано ↻ (попадання в кеш провайдера)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="111"/>
        <source>next request (estimate)  ·  session prompt ↑ / completion ↓</source>
        <translation>наступний запит (оцінка)  ·  промпт сесії ↑ / доповнення ↓</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="114"/>
        <source>Сhat name: %1</source>
        <translation>Назва чату: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="128"/>
        <source>Move this chat to an editor tab</source>
        <translation>Перемістити цей чат на вкладку редактора</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="129"/>
        <source>Move this chat to a separate window</source>
        <translation>Перемістити цей чат в окреме вікно</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="385"/>
        <source>Type your message here... (⌘+↩ to send)</source>
        <translation>Введіть ваше повідомлення тут... (⌘+↩ для надсилання)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="386"/>
        <source>Type your message here... (Ctrl+Enter to send)</source>
        <translation>Введіть ваше повідомлення тут... (Ctrl+Enter для надсилання)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="483"/>
        <source>Cut</source>
        <translation>Вирізати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="489"/>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="495"/>
        <source>Paste</source>
        <translation>Вставити</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="503"/>
        <source>Select All</source>
        <translation>Виділити все</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="511"/>
        <source>Clear</source>
        <translation>Очистити</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="563"/>
        <source>Send</source>
        <translation>Надіслати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="563"/>
        <location filename="../../ChatView/qml/RootItem.qml" line="565"/>
        <source>Stop</source>
        <translation>Зупинити</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="564"/>
        <source>Send message to LLM %1</source>
        <translation>Надіслати повідомлення до LLM %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="650"/>
        <source>Compress Chat</source>
        <translation>Стиснути чат</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="655"/>
        <source>Create a summarized copy of this chat?

The summary will be generated by LLM and saved as a new chat file.</source>
        <translation>Створити стислу копію цього чату?

Резюме буде згенеровано LLM та збережено як новий файл чату.</translation>
    </message>
</context>
<context>
    <name>SplitDropZone</name>
    <message numerus="yes">
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="49"/>
        <source>%n file(s) to drop</source>
        <translation>
            <numerusform>%n файл(ів) для скидання</numerusform>
            <numerusform>%n файл(ів) для скидання</numerusform>
            <numerusform>%n файл(ів) для скидання</numerusform>
        </translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="79"/>
        <source>Attach</source>
        <translation>Прикріпити</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="87"/>
        <source>Images &amp; Text Files</source>
        <translation>Зображення &amp; текстові файли</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="95"/>
        <source>(for one-time use)</source>
        <translation>(для одноразового використання)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="131"/>
        <source>LINK</source>
        <translation>ПОСИЛАННЯ</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="139"/>
        <source>Text Files</source>
        <translation>Текстові файли</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="147"/>
        <source>(added to context)</source>
        <translation>(додано до контексту)</translation>
    </message>
</context>
<context>
    <name>TextBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="27"/>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="33"/>
        <source>Select All</source>
        <translation>Виділити все</translation>
    </message>
</context>
<context>
    <name>ThinkingBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="45"/>
        <source>Thinking (Redacted)</source>
        <translation>Мислення (відредаговано)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="46"/>
        <source>Thinking</source>
        <translation>Мислення</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="75"/>
        <source>Thinking content was redacted by safety systems</source>
        <translation>Вміст мислення було відредаговано системами безпеки</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
</context>
<context>
    <name>ToolBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="47"/>
        <source>Tool: %1</source>
        <translation>Інструмент: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="99"/>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="105"/>
        <source>Select All</source>
        <translation>Виділити все</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
</context>
<context>
    <name>TopBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="64"/>
        <source>Unpin chat window</source>
        <translation>Відкріпити вікно чату</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="65"/>
        <source>Pin chat window to the top</source>
        <translation>Закріпити вікно чату зверху</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="97"/>
        <source>Clean chat</source>
        <translation>Очистити чат</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="117"/>
        <source>Open new chat in a new tab</source>
        <translation>Відкрити новий чат у новій вкладці</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="130"/>
        <source>Switch saved AI configuration</source>
        <translation>Перемкнути збережену конфігурацію AI</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="143"/>
        <source>Switch agent role (different system prompts)</source>
        <translation>Перемкнути роль агента (різні системні промпти)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="170"/>
        <source>Tools are disabled in General Settings</source>
        <translation>Інструменти вимкнено в загальних налаштуваннях</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="173"/>
        <source>Tools enabled: AI can use tools to read files, search project, and build code</source>
        <translation>Інструменти увімкнено: AI може використовувати інструменти для читання файлів, пошуку в проєкті та збирання коду</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="174"/>
        <source>Tools disabled: Simple conversation without tool access</source>
        <translation>Інструменти вимкнено: проста розмова без доступу до інструментів</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="196"/>
        <source>Thinking Mode enabled (Check model list support it)</source>
        <translation>Режим мислення увімкнено (Перевірте, чи модель підтримує його)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="197"/>
        <source>Thinking Mode disabled</source>
        <translation>Режим мислення вимкнено</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="198"/>
        <source>Thinking Mode is not available for this provider</source>
        <translation>Режим мислення недоступний для цього провайдера</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="215"/>
        <source>Open Chat Assistant Settings</source>
        <translation>Відкрити налаштування асистента чату</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="266"/>
        <source>Save chat to *.json file</source>
        <translation>Зберегти чат у файл *.json</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="279"/>
        <source>Load chat from *.json file</source>
        <translation>Завантажити чат з файлу *.json</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="292"/>
        <source>Show in system</source>
        <translation>Показати в системі</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="309"/>
        <source>View chat context (system prompt, role, rules)</source>
        <translation>Переглянути контекст чату (системний промпт, роль, правила)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="317"/>
        <source>Current amount tokens in chat and LLM limit threshold</source>
        <translation>Поточна кількість токенів у чаті та поріг ліміту LLM</translation>
    </message>
</context>
</TS>
