<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="uk_UA">
<context>
    <name>AttachedFilesPlace</name>
    <message>
        <source>Open in Qt Creator</source>
        <translation>Відкрити у Qt Creator</translation>
    </message>
    <message>
        <source>Open in External Editor</source>
        <translation>Відкрити у зовнішньому редакторі</translation>
    </message>
    <message>
        <source>Remove</source>
        <translation>Вилучити</translation>
    </message>
</context>
<context>
    <name>BottomBar</name>
    <message>
        <source>Attach file to message</source>
        <translation>Прикріпити файл до повідомлення</translation>
    </message>
    <message>
        <source>Attach image to message</source>
        <translation>Прикріпити зображення до повідомлення</translation>
    </message>
    <message>
        <source>Link file to context</source>
        <translation>Прив&apos;язати файл до контексту</translation>
    </message>
    <message>
        <source>Sync open files</source>
        <translation>Синхронізувати відкриті файли</translation>
    </message>
    <message>
        <source>Automatically synchronize currently opened files with the model context</source>
        <translation>Автоматично синхронізувати відкриті файли з контекстом моделі</translation>
    </message>
    <message>
        <source>Compressing...</source>
        <translation>Стиснення...</translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation>Скасувати</translation>
    </message>
    <message>
        <source>Cancel compression</source>
        <translation>Скасувати стиснення</translation>
    </message>
    <message>
        <source>Compress</source>
        <translation>Стиснути</translation>
    </message>
    <message>
        <source>Compress chat (create summarized copy using LLM)</source>
        <translation>Стиснути чат (створити стислу копію за допомогою LLM)</translation>
    </message>
</context>
<context>
    <name>ChatItem</name>
    <message>
        <source>↑ %1 (cached %2)</source>
        <translation>↑ %1 (кешовано %2)</translation>
    </message>
    <message>
        <source>↑ %1</source>
        <translation>↑ %1</translation>
    </message>
    <message>
        <source>↓ %1 (reasoning %2)</source>
        <translation>↓ %1 (міркування %2)</translation>
    </message>
    <message>
        <source>↓ %1</source>
        <translation>↓ %1</translation>
    </message>
    <message>
        <source>Σ %1</source>
        <translation>Σ %1</translation>
    </message>
    <message>
        <source>Reset chat to this message and edit</source>
        <translation>Скинути чат до цього повідомлення та редагувати</translation>
    </message>
    <message>
        <source>Click: Open in Qt Creator
Shift+Click: Open in System Editor</source>
        <translation>Клік: Відкрити в Qt Creator
Shift+Клік: Відкрити в системному редакторі</translation>
    </message>
    <message>
        <source>Failed to load image</source>
        <translation>Не вдалося завантажити зображення</translation>
    </message>
</context>
<context>
    <name>CodeBlock</name>
    <message>
        <source>Code (%1)</source>
        <translation>Код (%1)</translation>
    </message>
    <message>
        <source>Code</source>
        <translation>Код</translation>
    </message>
    <message>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
    <message>
        <source>Copied</source>
        <translation>Скопійовано</translation>
    </message>
</context>
<context>
    <name>ContextViewer</name>
    <message>
        <source>Chat Context</source>
        <translation>Контекст чату</translation>
    </message>
    <message>
        <source>Refresh</source>
        <translation>Оновити</translation>
    </message>
    <message>
        <source>Close</source>
        <translation>Закрити</translation>
    </message>
    <message>
        <source>Base System Prompt</source>
        <translation>Базовий системний промпт</translation>
    </message>
    <message>
        <source>Active</source>
        <translation>Активний</translation>
    </message>
    <message>
        <source>Empty</source>
        <translation>Порожньо</translation>
    </message>
    <message>
        <source>No system prompt configured</source>
        <translation>Системний промпт не налаштовано</translation>
    </message>
    <message>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <source>Edit in Settings</source>
        <translation>Редагувати в налаштуваннях</translation>
    </message>
    <message>
        <source>Agent Role</source>
        <translation>Роль агента</translation>
    </message>
    <message>
        <source>No role selected. Using base system prompt only.</source>
        <translation>Роль не обрано. Використовується лише базовий системний промпт.</translation>
    </message>
    <message>
        <source>Manage Roles</source>
        <translation>Керувати ролями</translation>
    </message>
    <message>
        <source>Project Rules</source>
        <translation>Правила проєкту</translation>
    </message>
    <message>
        <source>%1 active</source>
        <translation>%1 активних</translation>
    </message>
    <message>
        <source>None</source>
        <translation>Немає</translation>
    </message>
    <message>
        <source>Rules (%1)</source>
        <translation>Правила (%1)</translation>
    </message>
    <message>
        <source>Content</source>
        <translation>Вміст</translation>
    </message>
    <message>
        <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>
        <source>Open Rules Folder</source>
        <translation>Відкрити теку правил</translation>
    </message>
    <message>
        <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>
        <source>+%1 lines, -%2 lines</source>
        <translation>+%1 рядків, -%2 рядків</translation>
    </message>
    <message>
        <source>+%1 lines</source>
        <translation>+%1 рядків</translation>
    </message>
    <message>
        <source>-%1 lines</source>
        <translation>-%1 рядків</translation>
    </message>
    <message>
        <source>No changes</source>
        <translation>Без змін</translation>
    </message>
</context>
<context>
    <name>FileEditBlock</name>
    <message>
        <source>ARCHIVED</source>
        <translation>АРХІВОВАНО</translation>
    </message>
    <message>
        <source>APPLIED</source>
        <translation>ЗАСТОСОВАНО</translation>
    </message>
    <message>
        <source>REJECTED</source>
        <translation>ВІДХИЛЕНО</translation>
    </message>
    <message>
        <source>PENDING</source>
        <translation>ОЧІКУЄ</translation>
    </message>
    <message>
        <source>Replace</source>
        <translation>Замінити</translation>
    </message>
    <message>
        <source>Append</source>
        <translation>Додати</translation>
    </message>
    <message>
        <source>%1: %2 (+%3 -%4)</source>
        <translation>%1: %2 (+%3 -%4)</translation>
    </message>
    <message>
        <source>%1: %2 (+%3)</source>
        <translation>%1: %2 (+%3)</translation>
    </message>
    <message>
        <source>Open file in editor and navigate to changes</source>
        <translation>Відкрити файл у редакторі та перейти до змін</translation>
    </message>
    <message>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
</context>
<context>
    <name>FileEditsActionBar</name>
    <message>
        <source>File Edit in Current Message</source>
        <translation>Редагування файлу в поточному повідомленні</translation>
    </message>
    <message>
        <source>%1 File Edits in Current Message</source>
        <translation>%1 редагувань файлів у поточному повідомленні</translation>
    </message>
    <message>
        <source>%1 applied</source>
        <translation>%1 застосовано</translation>
    </message>
    <message>
        <source>%1 pending</source>
        <translation>%1 очікує</translation>
    </message>
    <message>
        <source>%1 rejected</source>
        <translation>%1 відхилено</translation>
    </message>
    <message>
        <source>Apply All (%1)</source>
        <translation>Застосувати все (%1)</translation>
    </message>
    <message>
        <source>Reapply All (%1)</source>
        <translation>Повторно застосувати все (%1)</translation>
    </message>
    <message>
        <source>Apply all pending and rejected edits in this message</source>
        <translation>Застосувати всі очікувані та відхилені редагування в цьому повідомленні</translation>
    </message>
    <message>
        <source>Reapply all rejected edits in this message</source>
        <translation>Повторно застосувати всі відхилені редагування в цьому повідомленні</translation>
    </message>
    <message>
        <source>Undo All (%1)</source>
        <translation>Скасувати все (%1)</translation>
    </message>
    <message>
        <source>Undo all applied edits in this message</source>
        <translation>Скасувати всі застосовані редагування в цьому повідомленні</translation>
    </message>
</context>
<context>
    <name>MessageNavigator</name>
    <message>
        <source>#%1  ·  %2</source>
        <translation>#%1  ·  %2</translation>
    </message>
    <message>
        <source>Jump to message #%1</source>
        <translation>Перейти до повідомлення #%1</translation>
    </message>
</context>
<context>
    <name>QObject</name>
    <message>
        <source>Template Not Found</source>
        <translation>Шаблон не знайдено</translation>
    </message>
    <message>
        <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>
        <source>Providers</source>
        <translation>Провайдери</translation>
    </message>
    <message>
        <source>Agents</source>
        <translation>Агенти</translation>
    </message>
    <message>
        <source>Current Settings</source>
        <translation>Поточні налаштування</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatCompressor</name>
    <message>
        <source>Compression already in progress</source>
        <translation>Стиснення вже виконується</translation>
    </message>
    <message>
        <source>No chat file to compress</source>
        <translation>Немає файлу чату для стиснення</translation>
    </message>
    <message>
        <source>Chat is empty, nothing to compress</source>
        <translation>Чат порожній, немає чого стискати</translation>
    </message>
    <message>
        <source>No provider available</source>
        <translation>Немає доступного провайдера</translation>
    </message>
    <message>
        <source>No template available</source>
        <translation>Немає доступного шаблону</translation>
    </message>
    <message>
        <source>Compression cancelled</source>
        <translation>Стиснення скасовано</translation>
    </message>
    <message>
        <source>Failed to save compressed chat</source>
        <translation>Не вдалося зберегти стиснений чат</translation>
    </message>
    <message>
        <source>Compression failed: %1</source>
        <translation>Стиснення не вдалося: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatFileManager</name>
    <message>
        <source>File is not accessible: %1</source>
        <translation>Файл недоступний: %1</translation>
    </message>
    <message>
        <source>Failed to copy file: %1</source>
        <translation>Не вдалося скопіювати файл: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatHistoryStore</name>
    <message>
        <source>Save Chat History</source>
        <translation>Зберегти історію чату</translation>
    </message>
    <message>
        <source>JSON files (*.json)</source>
        <translation>Файли JSON (*.json)</translation>
    </message>
    <message>
        <source>Load Chat History</source>
        <translation>Завантажити історію чату</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatRootView</name>
    <message>
        <source>Chat compressed successfully!</source>
        <translation>Чат успішно стиснуто!</translation>
    </message>
    <message>
        <source>This chat file is already in use by another QodeAssist chat session.</source>
        <translation>Цей файл чату вже використовується іншою сесією чату QodeAssist.</translation>
    </message>
    <message>
        <source>This chat is already open in another QodeAssist chat session.</source>
        <translation>Цей чат вже відкрито в іншій сесії чату QodeAssist.</translation>
    </message>
    <message>
        <source>Select Files to Attach</source>
        <translation>Оберіть файли для прикріплення</translation>
    </message>
    <message numerus="yes">
        <source>Images automatically moved to Attach zone (%n file(s))</source>
        <translation>
            <numerusform>Зображення автоматично переміщено в зону прикріплення (%n файл(ів))</numerusform>
            <numerusform>Зображення автоматично переміщено в зону прикріплення (%n файл(ів))</numerusform>
            <numerusform>Зображення автоматично переміщено в зону прикріплення (%n файл(ів))</numerusform>
        </translation>
    </message>
    <message>
        <source>Select Images to Attach</source>
        <translation>Оберіть зображення для прикріплення</translation>
    </message>
    <message>
        <source>Images (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</source>
        <translation>Зображення (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</translation>
    </message>
    <message>
        <source>Compression is already in progress</source>
        <translation>Стиснення вже виконується</translation>
    </message>
    <message>
        <source>No chat file to compress. Please save the chat first.</source>
        <translation>Немає файлу чату для стиснення. Будь ласка, спочатку збережіть чат.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::NavigationPanel</name>
    <message>
        <source>QodeAssist Chat</source>
        <translation>Чат QodeAssist</translation>
    </message>
</context>
<context>
    <name>QodeAssist::EditorChatButton</name>
    <message>
        <source>Open QodeAssist Chat</source>
        <translation>Відкрити чат QodeAssist</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Mcp::McpServerManager</name>
    <message>
        <source>QodeAssist MCP server exposing Qt Creator project tools.</source>
        <translation>Сервер MCP QodeAssist, що надає інструменти проєкту Qt Creator.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::QodeAssistClient</name>
    <message>
        <source>Code completion failed: %1</source>
        <translation>Доповнення коду не вдалося: %1</translation>
    </message>
    <message>
        <source>Quick refactor failed</source>
        <translation>Швидкий рефакторинг не вдався</translation>
    </message>
    <message>
        <source>Quick refactor failed: %1</source>
        <translation>Швидкий рефакторинг не вдався: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::RefactorWidget</name>
    <message>
        <source>◄ Original</source>
        <translation>◄ Оригінал</translation>
    </message>
    <message>
        <source>Refactored ►</source>
        <translation>Рефакторено ►</translation>
    </message>
    <message>
        <source>✓ Apply (⌘+Enter)</source>
        <translation>✓ Застосувати (⌘+Enter)</translation>
    </message>
    <message>
        <source>✓ Apply (Ctrl+Enter)</source>
        <translation>✓ Застосувати (Ctrl+Enter)</translation>
    </message>
    <message>
        <source>✗ Decline (Esc)</source>
        <translation>✗ Відхилити (Esc)</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentDetailPane</name>
    <message>
        <source>Open in editor</source>
        <translation>Відкрити в редакторі</translation>
    </message>
    <message>
        <source>Duplicate…</source>
        <translation>Дублювати…</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation>Видалити</translation>
    </message>
    <message>
        <source>Identity</source>
        <translation>Ідентичність</translation>
    </message>
    <message>
        <source>Extends:</source>
        <translation>Розширює:</translation>
    </message>
    <message>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <source>Tags:</source>
        <translation>Теги:</translation>
    </message>
    <message>
        <source>Comma-separated. Free-form — used to filter and group the agent list.</source>
        <translation>Через кому. Довільна форма — використовується для фільтрації та групування списку агентів.</translation>
    </message>
    <message>
        <source>System role</source>
        <translation>Системна роль</translation>
    </message>
    <message>
        <source>Prepended to every request as the system message.</source>
        <translation>Додається до кожного запиту як системне повідомлення.</translation>
    </message>
    <message>
        <source>Context</source>
        <translation>Контекст</translation>
    </message>
    <message>
        <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>
        <source>Connection</source>
        <translation>Підключення</translation>
    </message>
    <message>
        <source>Provider:</source>
        <translation>Провайдер:</translation>
    </message>
    <message>
        <source>The provider instance this agent uses. URL is inherited from the instance.</source>
        <translation>Екземпляр провайдера, що використовує цей агент. URL успадковується від екземпляра.</translation>
    </message>
    <message>
        <source>Endpoint:</source>
        <translation>Кінцева точка:</translation>
    </message>
    <message>
        <source>Appended to the provider&apos;s URL. Blank uses the provider default.</source>
        <translation>Додається до URL провайдера. Порожнє значення використовує типове значення провайдера.</translation>
    </message>
    <message>
        <source>Model:</source>
        <translation>Модель:</translation>
    </message>
    <message>
        <source>Match</source>
        <translation>Збіг</translation>
    </message>
    <message>
        <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>
        <source>File patterns:</source>
        <translation>Шаблони файлів:</translation>
    </message>
    <message>
        <source>Globs, comma-separated. Empty matches every file.</source>
        <translation>Glob-шаблони через кому. Порожнє значення збігається з кожним файлом.</translation>
    </message>
    <message>
        <source>Template</source>
        <translation>Шаблон</translation>
    </message>
    <message>
        <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>
        <source>message_format:</source>
        <translation>message_format:</translation>
    </message>
    <message>
        <source>Load errors</source>
        <translation>Помилки завантаження</translation>
    </message>
    <message>
        <source>▸ Show raw TOML</source>
        <translation>▸ Показати сирий TOML</translation>
    </message>
    <message>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Сховати сирий TOML</translation>
    </message>
    <message>
        <source>No description provided.</source>
        <translation>Опис не надано.</translation>
    </message>
    <message>
        <source>%1  (missing — not in provider library)</source>
        <translation>%1  (відсутній — немає в бібліотеці провайдера)</translation>
    </message>
    <message>
        <source>(provider default)</source>
        <translation>(типове значення провайдера)</translation>
    </message>
    <message>
        <source># effective request line
(unknown — provider instance not found)</source>
        <translation># фактичний рядок запиту
(невідомо — екземпляр провайдера не знайдено)</translation>
    </message>
    <message>
        <source>effective request line</source>
        <translation>фактичний рядок запиту</translation>
    </message>
    <message>
        <source>(no system role set)</source>
        <translation>(системну роль не встановлено)</translation>
    </message>
    <message>
        <source>(no context block)</source>
        <translation>(немає блоку контексту)</translation>
    </message>
    <message>
        <source>(matches every file)</source>
        <translation>(збігається з кожним файлом)</translation>
    </message>
    <message>
        <source>(inherited from parent / none)</source>
        <translation>(успадковано від батька / немає)</translation>
    </message>
    <message>
        <source>(truncated at %1 bytes)</source>
        <translation>(обрізано на %1 байтах)</translation>
    </message>
    <message>
        <source>(source file is empty)</source>
        <translation>(вихідний файл порожній)</translation>
    </message>
    <message>
        <source>(source file unavailable: %1)</source>
        <translation>(вихідний файл недоступний: %1)</translation>
    </message>
    <message>
        <source>Bundled agents are read-only — duplicate to edit.</source>
        <translation>Вбудовані агенти доступні лише для читання — дублюйте для редагування.</translation>
    </message>
    <message>
        <source>Bundled agents cannot be deleted.</source>
        <translation>Вбудовані агенти не можна видалити.</translation>
    </message>
    <message>
        <source>Select an agent</source>
        <translation>Оберіть агента</translation>
    </message>
    <message>
        <source>Pick an agent from the list to see its details.</source>
        <translation>Оберіть агента зі списку, щоб побачити його деталі.</translation>
    </message>
    <message>
        <source>error: %1</source>
        <translation>помилка: %1</translation>
    </message>
    <message>
        <source>warning: %1</source>
        <translation>попередження: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentListPane</name>
    <message>
        <source>Filter agents…</source>
        <translation>Фільтрувати агентів…</translation>
    </message>
    <message>
        <source>User</source>
        <translation>Користувач</translation>
    </message>
    <message>
        <source>Bundled</source>
        <translation>Вбудовані</translation>
    </message>
    <message>
        <source>No agents match these filters.</source>
        <translation>Жоден агент не відповідає цим фільтрам.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentRoleDialog</name>
    <message>
        <source>Add Agent Role</source>
        <translation>Додати роль агента</translation>
    </message>
    <message>
        <source>Duplicate Agent Role</source>
        <translation>Дублювати роль агента</translation>
    </message>
    <message>
        <source>Edit Agent Role</source>
        <translation>Редагувати роль агента</translation>
    </message>
    <message>
        <source>e.g., Developer, Code Reviewer</source>
        <translation>напр., Розробник, Рев&apos;ювер коду</translation>
    </message>
    <message>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <source>e.g., developer, code_reviewer</source>
        <translation>напр., developer, code_reviewer</translation>
    </message>
    <message>
        <source>ID:</source>
        <translation>ID:</translation>
    </message>
    <message>
        <source>Brief description of this role...</source>
        <translation>Короткий опис цієї ролі...</translation>
    </message>
    <message>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <source>System Prompt:</source>
        <translation>Системний промпт:</translation>
    </message>
    <message>
        <source>You are an expert in...

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

Ваша роль:
- Завдання 1
- Завдання 2
- Завдання 3</translation>
    </message>
    <message>
        <source>ID cannot be changed for existing roles</source>
        <translation>ID не можна змінити для існуючих ролей</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentsWidget</name>
    <message>
        <source>Agents</source>
        <translation>Агенти</translation>
    </message>
    <message>
        <source>Reload from disk</source>
        <translation>Перезавантажити з диска</translation>
    </message>
    <message>
        <source>Open agents folder</source>
        <translation>Відкрити теку агентів</translation>
    </message>
    <message>
        <source>Open agent</source>
        <translation>Відкрити агента</translation>
    </message>
    <message>
        <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>
        <source>Agent &apos;%1&apos; has no editable source file.</source>
        <translation>Агент &apos;%1&apos; не має редагованого вихідного файлу.</translation>
    </message>
    <message>
        <source>Could not open %1.</source>
        <translation>Не вдалося відкрити %1.</translation>
    </message>
    <message>
        <source>Duplicate</source>
        <translation>Дублювати</translation>
    </message>
    <message>
        <source>Delete Agent</source>
        <translation>Видалити агента</translation>
    </message>
    <message>
        <source>Delete agent &apos;%1&apos;?

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

Це видалить файл:
%2</translation>
    </message>
    <message>
        <source>Could not delete the agent file:
%1</source>
        <translation>Не вдалося видалити файл агента:
%1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::McpClientsListAspect</name>
    <message>
        <source>Connected.</source>
        <translation>Підключено.</translation>
    </message>
    <message>
        <source>Connecting…</source>
        <translation>Підключення…</translation>
    </message>
    <message>
        <source>Failed.</source>
        <translation>Помилка.</translation>
    </message>
    <message>
        <source>Failed: %1</source>
        <translation>Помилка: %1</translation>
    </message>
    <message>
        <source>Disabled.</source>
        <translation>Вимкнено.</translation>
    </message>
    <message>
        <source>everything (reference test server)</source>
        <translation>everything (еталонний тестовий сервер)</translation>
    </message>
    <message>
        <source>filesystem (local files)</source>
        <translation>filesystem (локальні файли)</translation>
    </message>
    <message>
        <source>memory (in-memory key-value)</source>
        <translation>memory (ключ-значення в пам&apos;яті)</translation>
    </message>
    <message>
        <source>git (local git ops)</source>
        <translation>git (локальні операції git)</translation>
    </message>
    <message>
        <source>time (system clock)</source>
        <translation>time (системний годинник)</translation>
    </message>
    <message>
        <source>qtcreator (Qt Creator&apos;s built-in MCP server)</source>
        <translation>qtcreator (вбудований сервер MCP Qt Creator)</translation>
    </message>
    <message>
        <source>qt-docs (Qt documentation)</source>
        <translation>qt-docs (документація Qt)</translation>
    </message>
    <message>
        <source>remote (SSE / HTTP)</source>
        <translation>remote (SSE / HTTP)</translation>
    </message>
    <message>
        <source>Server reports no tools.</source>
        <translation>Сервер не повідомляє про інструменти.</translation>
    </message>
    <message>
        <source>Tools</source>
        <translation>Інструменти</translation>
    </message>
    <message>
        <source>Enable / disable this MCP server</source>
        <translation>Увімкнути / вимкнути цей сервер MCP</translation>
    </message>
    <message>
        <source>Remove this server from the config.</source>
        <translation>Видалити цей сервер з конфігурації.</translation>
    </message>
    <message>
        <source>Remove server</source>
        <translation>Видалити сервер</translation>
    </message>
    <message>
        <source>Remove server &apos;%1&apos; from the config?</source>
        <translation>Видалити сервер &apos;%1&apos; з конфігурації?</translation>
    </message>
    <message>
        <source>Open Config</source>
        <translation>Відкрити конфігурацію</translation>
    </message>
    <message>
        <source>Refresh MCP List</source>
        <translation>Оновити список MCP</translation>
    </message>
    <message>
        <source>Note: restart Qt Creator to apply MCP changes to already-opened chats and running sessions.</source>
        <translation>Примітка: перезапустіть Qt Creator, щоб застосувати зміни MCP до вже відкритих чатів та запущених сесій.</translation>
    </message>
    <message>
        <source>Quick Setup</source>
        <translation>Швидке налаштування</translation>
    </message>
    <message>
        <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>
        <source>-- Select Preset --</source>
        <translation>-- Оберіть пресет --</translation>
    </message>
    <message>
        <source>No servers configured. Add a preset below or edit the JSON.</source>
        <translation>Жодного сервера не налаштовано. Додайте пресет нижче або відредагуйте JSON.</translation>
    </message>
    <message>
        <source>0 server(s) defined.</source>
        <translation>Визначено 0 серверів.</translation>
    </message>
    <message>
        <source>%1 server(s) defined, %2 enabled.</source>
        <translation>Визначено %1 серверів, %2 увімкнено.</translation>
    </message>
    <message>
        <source>MCP configuration</source>
        <translation>Конфігурація MCP</translation>
    </message>
    <message>
        <source>Failed to write %1:
%2</source>
        <translation>Не вдалося записати %1:
%2</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProviderDetailPane</name>
    <message>
        <source>Edit…</source>
        <translation>Редагувати…</translation>
    </message>
    <message>
        <source>Open in editor</source>
        <translation>Відкрити в редакторі</translation>
    </message>
    <message>
        <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>
        <source>Duplicate…</source>
        <translation>Дублювати…</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation>Видалити</translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation>Скасувати</translation>
    </message>
    <message>
        <source>Save</source>
        <translation>Зберегти</translation>
    </message>
    <message>
        <source>Identity</source>
        <translation>Ідентичність</translation>
    </message>
    <message>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <source>Client API:</source>
        <translation>Клієнтський API:</translation>
    </message>
    <message>
        <source>The client API this provider speaks. Cannot be changed after creation.</source>
        <translation>Клієнтський API, яким користується цей провайдер. Не можна змінити після створення.</translation>
    </message>
    <message>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <source>Endpoint</source>
        <translation>Кінцева точка</translation>
    </message>
    <message>
        <source>URL:</source>
        <translation>URL:</translation>
    </message>
    <message>
        <source>Base URL. Agents append their endpoint path (e.g. /chat/completions) to this.</source>
        <translation>Базовий URL. Агенти додають до нього свій шлях кінцевої точки (напр. /chat/completions).</translation>
    </message>
    <message>
        <source>Credentials</source>
        <translation>Облікові дані</translation>
    </message>
    <message>
        <source>Enter API key…</source>
        <translation>Введіть ключ API…</translation>
    </message>
    <message>
        <source>Show / hide API key</source>
        <translation>Показати / сховати ключ API</translation>
    </message>
    <message>
        <source>Save key</source>
        <translation>Зберегти ключ</translation>
    </message>
    <message>
        <source>Clear</source>
        <translation>Очистити</translation>
    </message>
    <message>
        <source>Erase the stored API key for this provider</source>
        <translation>Видалити збережений ключ API для цього провайдера</translation>
    </message>
    <message>
        <source>API key:</source>
        <translation>Ключ API:</translation>
    </message>
    <message>
        <source>Launch</source>
        <translation>Запуск</translation>
    </message>
    <message>
        <source>idle</source>
        <translation>очікування</translation>
    </message>
    <message>
        <source>Start</source>
        <translation>Запустити</translation>
    </message>
    <message>
        <source>Stop</source>
        <translation>Зупинити</translation>
    </message>
    <message>
        <source>Restart</source>
        <translation>Перезапустити</translation>
    </message>
    <message>
        <source>▸ Show launch terminal</source>
        <translation>▸ Показати термінал запуску</translation>
    </message>
    <message>
        <source>▾ Hide launch terminal</source>
        <translation>▾ Сховати термінал запуску</translation>
    </message>
    <message>
        <source>▸ Show raw TOML</source>
        <translation>▸ Показати сирий TOML</translation>
    </message>
    <message>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Сховати сирий TOML</translation>
    </message>
    <message>
        <source>No description provided.</source>
        <translation>Опис не надано.</translation>
    </message>
    <message>
        <source>— not required (local provider)</source>
        <translation>— не потрібно (локальний провайдер)</translation>
    </message>
    <message>
        <source>This provider type does not use a key.</source>
        <translation>Цей тип провайдера не використовує ключ.</translation>
    </message>
    <message>
        <source>Stored — enter a new key to replace it.</source>
        <translation>Збережено — введіть новий ключ для заміни.</translation>
    </message>
    <message>
        <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>
        <source>No key stored yet. Type a key and press Save key.</source>
        <translation>Ключ ще не збережено. Введіть ключ та натисніть Зберегти ключ.</translation>
    </message>
    <message>
        <source>Select a provider</source>
        <translation>Оберіть провайдера</translation>
    </message>
    <message>
        <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>
        <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>
        <source>starting…</source>
        <translation>запуск…</translation>
    </message>
    <message>
        <source>probing…</source>
        <translation>перевірка…</translation>
    </message>
    <message>
        <source>ready</source>
        <translation>готово</translation>
    </message>
    <message>
        <source>stopping…</source>
        <translation>зупинка…</translation>
    </message>
    <message>
        <source>failed</source>
        <translation>помилка</translation>
    </message>
    <message>
        <source>failed — %1</source>
        <translation>помилка — %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProvidersPageWidget</name>
    <message>
        <source>Providers</source>
        <translation>Провайдери</translation>
    </message>
    <message>
        <source>Filter providers…</source>
        <translation>Фільтрувати провайдерів…</translation>
    </message>
    <message>
        <source>Open in editor</source>
        <translation>Відкрити в редакторі</translation>
    </message>
    <message>
        <source>Bundled providers are read-only. Use Duplicate to create an editable user copy first.</source>
        <translation>Вбудовані провайдери доступні лише для читання. Спочатку використайте Дублювати, щоб створити редаговану копію користувача.</translation>
    </message>
    <message>
        <source>No user instances yet.</source>
        <translation>Ще немає екземплярів користувача.</translation>
    </message>
    <message>
        <source>No bundled instances loaded.</source>
        <translation>Жодного вбудованого екземпляра не завантажено.</translation>
    </message>
    <message>
        <source>User</source>
        <translation>Користувач</translation>
    </message>
    <message>
        <source>Bundled</source>
        <translation>Вбудовані</translation>
    </message>
    <message>
        <source>Duplicate provider</source>
        <translation>Дублювати провайдера</translation>
    </message>
    <message>
        <source>Name for the new provider:</source>
        <translation>Ім&apos;я для нового провайдера:</translation>
    </message>
    <message>
        <source>An instance named &apos;%1&apos; already exists.</source>
        <translation>Екземпляр з ім&apos;ям &apos;%1&apos; вже існує.</translation>
    </message>
    <message>
        <source>Delete provider</source>
        <translation>Видалити провайдера</translation>
    </message>
    <message>
        <source>Delete user provider &apos;%1&apos;?

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

Файл: %2</translation>
    </message>
    <message>
        <source>Failed to delete file:
%1</source>
        <translation>Не вдалося видалити файл:
%1</translation>
    </message>
    <message>
        <source>Save</source>
        <translation>Зберегти</translation>
    </message>
    <message>
        <source>Name cannot be empty.</source>
        <translation>Ім&apos;я не може бути порожнім.</translation>
    </message>
    <message>
        <source>Save anyway?</source>
        <translation>Зберегти все одно?</translation>
    </message>
    <message>
        <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>
        <source>Clear API key</source>
        <translation>Очистити ключ API</translation>
    </message>
    <message>
        <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>
        <source>FILTER BY TAG</source>
        <translation>ФІЛЬТР ЗА ТЕГОМ</translation>
    </message>
    <message>
        <source>clear</source>
        <translation>очистити</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Tools::TodoTool</name>
    <message>
        <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>
        <source>Error: &apos;tasks&apos; array cannot be empty. Provide at least one task.</source>
        <translation>Помилка: масив &apos;tasks&apos; не може бути порожнім. Надайте принаймні одне завдання.</translation>
    </message>
    <message>
        <source>Error: All tasks in &apos;tasks&apos; array are empty strings.</source>
        <translation>Помилка: усі завдання в масиві &apos;tasks&apos; є порожніми рядками.</translation>
    </message>
    <message>
        <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>
        <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>
        <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>
        <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>
        <source>✓ Added 1 new task</source>
        <translation>✓ Додано 1 нове завдання</translation>
    </message>
    <message>
        <source>✓ Added %1 new tasks</source>
        <translation>✓ Додано %1 нових завдань</translation>
    </message>
    <message>
        <source>Error: No todos found in this session</source>
        <translation>Помилка: завдань не знайдено в цій сесії</translation>
    </message>
    <message>
        <source>✓ Marked 1 task as completed</source>
        <translation>✓ Позначено 1 завдання як виконане</translation>
    </message>
    <message>
        <source>✓ Marked %1 tasks as completed</source>
        <translation>✓ Позначено %1 завдань як виконані</translation>
    </message>
    <message>
        <source>⚠ %1 already completed</source>
        <translation>⚠ %1 вже виконано</translation>
    </message>
    <message>
        <source>❌ Not found: %1</source>
        <translation>❌ Не знайдено: %1</translation>
    </message>
    <message>
        <source>📋 TODO List: (empty)</source>
        <translation>📋 Список TODO: (порожній)</translation>
    </message>
    <message>
        <source>📋 TODO List:</source>
        <translation>📋 Список TODO:</translation>
    </message>
    <message>
        <source>Progress: %1/%2 completed (%3%)</source>
        <translation>Прогрес: %1/%2 виконано (%3%)</translation>
    </message>
    <message>
        <source>📋 All tasks completed! 🎉</source>
        <translation>📋 Усі завдання виконано! 🎉</translation>
    </message>
    <message>
        <source>📋 Remaining tasks:</source>
        <translation>📋 Завдання, що залишилися:</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateDialog</name>
    <message>
        <source>QodeAssist Update</source>
        <translation>Оновлення QodeAssist</translation>
    </message>
    <message>
        <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>
        <source>Install via Extension Registry (recommended)</source>
        <translation>Встановлення через Extension Registry (рекомендовано)</translation>
    </message>
    <message>
        <source>In Qt Creator open Extensions → Browser tab, enable &quot;Use External Repository&quot;, add one of the URLs below and click Apply to install QodeAssist. Updates are then installed from the same screen.</source>
        <translation>У Qt Creator відкрийте Extensions → вкладку Browser, увімкніть «Use External Repository», додайте один з URL нижче й натисніть Apply, щоб встановити QodeAssist. Оновлення потім встановлюються на тому ж екрані.</translation>
    </message>
    <message>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <source>Latest (for the newest Qt Creator, always up to date)</source>
        <translation>Найновіша (для найновішого Qt Creator, завжди актуальна)</translation>
    </message>
    <message>
        <source>Only for Qt Creator %1</source>
        <translation>Лише для Qt Creator %1</translation>
    </message>
    <message>
        <source>Alternative: QodeAssistUpdater</source>
        <translation>Альтернатива: QodeAssistUpdater</translation>
    </message>
    <message>
        <source>A standalone tool for installing and updating the plugin.</source>
        <translation>Окремий інструмент для встановлення та оновлення плагіна.</translation>
    </message>
    <message>
        <source>Download QodeAssistUpdater</source>
        <translation>Завантажити QodeAssistUpdater</translation>
    </message>
    <message>
        <source>A new version of QodeAssist is available!</source>
        <translation>Доступна нова версія QodeAssist!</translation>
    </message>
    <message>
        <source>Version %1 is now available - you have %2</source>
        <translation>Доступна версія %1 — у вас встановлено %2</translation>
    </message>
    <message>
        <source>Release Notes:</source>
        <translation>Примітки до випуску:</translation>
    </message>
    <message>
        <source>Open Release Page</source>
        <translation>Відкрити сторінку випуску</translation>
    </message>
    <message>
        <source>Open Plugin Folder</source>
        <translation>Відкрити теку плагіна</translation>
    </message>
    <message>
        <source>Close</source>
        <translation>Закрити</translation>
    </message>
    <message>
        <source>QodeAssist is up to date</source>
        <translation>QodeAssist оновлено до останньої версії</translation>
    </message>
    <message>
        <source>You are using the latest version: %1</source>
        <translation>Ви використовуєте останню версію: %1</translation>
    </message>
    <message>
        <source>No release notes available. Check the release page for more information.</source>
        <translation>Примітки до випуску недоступні. Перевірте сторінку випуску для отримання додаткової інформації.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateStatusWidget</name>
    <message>
        <source>Update</source>
        <translation>Оновити</translation>
    </message>
    <message>
        <source>New version: v%1</source>
        <translation>Нова версія: v%1</translation>
    </message>
    <message>
        <source>Check update information</source>
        <translation>Перевірити інформацію про оновлення</translation>
    </message>
</context>
<context>
    <name>QtC::QodeAssist</name>
    <message>
        <source>Cannot create user provider folder:
%1</source>
        <translation>Не вдалося створити теку провайдера користувача:
%1</translation>
    </message>
    <message>
        <source>Cannot pick a free filename in:
%1</source>
        <translation>Не вдалося обрати вільне ім&apos;я файлу в:
%1</translation>
    </message>
    <message>
        <source>Cannot write %1:
%2</source>
        <translation>Не вдалося записати %1:
%2</translation>
    </message>
    <message>
        <source>Write failed for %1:
%2</source>
        <translation>Запис не вдався для %1:
%2</translation>
    </message>
    <message>
        <source>Request timeout (seconds):</source>
        <translation>Тайм-аут запиту (секунди):</translation>
    </message>
    <message>
        <source>Maximum time to wait for the model to send data before a request is aborted. Applies to all requests — chat, code completion, quick refactor and chat compression. The timer resets every time data is received, so this effectively limits the time-to-first-token and any stall between tokens. Increase it for slow or local models that need a long time to start responding. Set to 0 to disable the timeout.</source>
        <translation>Максимальний час очікування даних від моделі, після якого запит переривається. Застосовується до всіх запитів — чату, автодоповнення коду, швидкого рефакторингу та стиснення чату. Таймер скидається щоразу при отриманні даних, тому він фактично обмежує час до першого токена та будь-яку затримку між токенами. Збільште його для повільних або локальних моделей, яким потрібно багато часу, щоб почати відповідати. Встановіть 0, щоб вимкнути тайм-аут.</translation>
    </message>
    <message>
        <source>Quick Setup</source>
        <translation>Швидке налаштування</translation>
    </message>
    <message>
        <source>Configure API Key</source>
        <translation>Налаштувати ключ API</translation>
    </message>
    <message>
        <source>Open Provider Settings to configure API keys</source>
        <translation>Відкрити налаштування провайдера для налаштування ключів API</translation>
    </message>
    <message>
        <source>Load configuration (includes predefined cloud models)</source>
        <translation>Завантажити конфігурацію (включає попередньо визначені хмарні моделі)</translation>
    </message>
    <message>
        <source>Show template information</source>
        <translation>Показати інформацію про шаблон</translation>
    </message>
    <message>
        <source>Network</source>
        <translation>Мережа</translation>
    </message>
    <message>
        <source>Support the development of QodeAssist:</source>
        <translation>Підтримайте розробку QodeAssist:</translation>
    </message>
    <message>
        <source>Template Information</source>
        <translation>Інформація про шаблон</translation>
    </message>
    <message>
        <source>Template</source>
        <translation>Шаблон</translation>
    </message>
    <message>
        <source>Description:</source>
        <translation>Опис:</translation>
    </message>
    <message>
        <source>Failed to save configuration. Check logs for details.</source>
        <translation>Не вдалося зберегти конфігурацію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <source>[Preset] configurations are predefined cloud models ready to use.</source>
        <translation>[Preset] конфігурації — це попередньо визначені хмарні моделі, готові до використання.</translation>
    </message>
    <message>
        <source>Predefined configurations cannot be deleted.</source>
        <translation>Попередньо визначені конфігурації не можна видалити.</translation>
    </message>
    <message>
        <source>Failed to delete configuration.</source>
        <translation>Не вдалося видалити конфігурацію.</translation>
    </message>
    <message>
        <source>-- Select Preset --</source>
        <translation>-- Оберіть пресет --</translation>
    </message>
    <message>
        <source>Enable QodeAssist</source>
        <translation>Увімкнути QodeAssist</translation>
    </message>
    <message>
        <source>General</source>
        <translation>Загальні</translation>
    </message>
    <message>
        <source>Reset Page to Defaults</source>
        <translation>Скинути сторінку до типових значень</translation>
    </message>
    <message>
        <source>Check Update</source>
        <translation>Перевірити оновлення</translation>
    </message>
    <message>
        <source>Select...</source>
        <translation>Обрати...</translation>
    </message>
    <message>
        <source>Provider:</source>
        <translation>Провайдер:</translation>
    </message>
    <message>
        <source>Model:</source>
        <translation>Модель:</translation>
    </message>
    <message>
        <source>Template:</source>
        <translation>Шаблон:</translation>
    </message>
    <message>
        <source>URL:</source>
        <translation>URL:</translation>
    </message>
    <message>
        <source>Status:</source>
        <translation>Статус:</translation>
    </message>
    <message>
        <source>Test</source>
        <translation>Тест</translation>
    </message>
    <message>
        <source>Enable Logging</source>
        <translation>Увімкнути журналювання</translation>
    </message>
    <message>
        <source>Log messages are visible in General Messages pane</source>
        <translation>Повідомлення журналу видно в панелі General Messages</translation>
    </message>
    <message>
        <source>Check for updates when Qt Creator starts</source>
        <translation>Перевіряти оновлення при запуску Qt Creator</translation>
    </message>
    <message>
        <source>Enable Chat(If you have performance issues try disabling this, need restart QtC)</source>
        <translation>Увімкнути чат (Якщо у вас є проблеми з продуктивністю, спробуйте вимкнути це, потрібен перезапуск QtC)</translation>
    </message>
    <message>
        <source>Custom endpoint:</source>
        <translation>Власна кінцева точка:</translation>
    </message>
    <message>
        <source>Code Completion</source>
        <translation>Доповнення коду</translation>
    </message>
    <message>
        <source>Chat Assistant</source>
        <translation>Асистент чату</translation>
    </message>
    <message>
        <source>Quick Refactor</source>
        <translation>Швидкий рефакторинг</translation>
    </message>
    <message>
        <source>Chat Compression</source>
        <translation>Стиснення чату</translation>
    </message>
    <message>
        <source>Agent Pipelines</source>
        <translation>Пайплайни агентів</translation>
    </message>
    <message>
        <source>Inline completions while you type. Matchers run on every request.</source>
        <translation>Вбудовані доповнення під час введення. Матчери виконуються при кожному запиті.</translation>
    </message>
    <message>
        <source>Conversational assistant in the QodeAssist panel.</source>
        <translation>Розмовний асистент на панелі QodeAssist.</translation>
    </message>
    <message>
        <source>Used when a chat conversation needs to be summarised to stay within context.</source>
        <translation>Використовується, коли розмова в чаті потребує підсумування для збереження в межах контексту.</translation>
    </message>
    <message>
        <source>Inline editor-driven refactors via the Quick Refactor action.</source>
        <translation>Вбудовані рефакторинги, керовані редактором, через дію Швидкий рефакторинг.</translation>
    </message>
    <message>
        <source>Reset Settings</source>
        <translation>Скинути налаштування</translation>
    </message>
    <message>
        <source>Are you sure you want to reset all settings to default values?</source>
        <translation>Ви впевнені, що хочете скинути всі налаштування до типових значень?</translation>
    </message>
    <message>
        <source>Current template description:</source>
        <translation>Опис поточного шаблону:</translation>
    </message>
    <message>
        <source>Connection Error</source>
        <translation>Помилка підключення</translation>
    </message>
    <message>
        <source>Unable to retrieve the list of models from the server.</source>
        <translation>Не вдалося отримати список моделей з сервера.</translation>
    </message>
    <message>
        <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>
        <source>Select Provider</source>
        <translation>Обрати провайдера</translation>
    </message>
    <message>
        <source>Select URL</source>
        <translation>Обрати URL</translation>
    </message>
    <message>
        <source>Close</source>
        <translation>Закрити</translation>
    </message>
    <message>
        <source>Model Selection</source>
        <translation>Вибір моделі</translation>
    </message>
    <message>
        <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>
        <source>Model name:</source>
        <translation>Ім&apos;я моделі:</translation>
    </message>
    <message>
        <source>OK</source>
        <translation>OK</translation>
    </message>
    <message>
        <source>Cancel</source>
        <translation>Скасувати</translation>
    </message>
    <message>
        <source>Enter Model Manually</source>
        <translation>Ввести модель вручну</translation>
    </message>
    <message>
        <source>URL Selection</source>
        <translation>Вибір URL</translation>
    </message>
    <message>
        <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>
        <source>Use default provider URL or from history</source>
        <translation>Використати типовий URL провайдера або з історії</translation>
    </message>
    <message>
        <source>Enter custom URL</source>
        <translation>Ввести власний URL</translation>
    </message>
    <message>
        <source>Enter Model Name Manually</source>
        <translation>Ввести ім&apos;я моделі вручну</translation>
    </message>
    <message>
        <source>Auto Completion Settings</source>
        <translation>Налаштування автодоповнення</translation>
    </message>
    <message>
        <source>Add new preset for language</source>
        <translation>Додати новий пресет для мови</translation>
    </message>
    <message>
        <source>Save Config...</source>
        <translation>Зберегти конфігурацію...</translation>
    </message>
    <message>
        <source>Load Config...</source>
        <translation>Завантажити конфігурацію...</translation>
    </message>
    <message>
        <source>Open Folder</source>
        <translation>Відкрити теку</translation>
    </message>
    <message>
        <source>Save Configuration</source>
        <translation>Зберегти конфігурацію</translation>
    </message>
    <message>
        <source>Load Configuration</source>
        <translation>Завантажити конфігурацію</translation>
    </message>
    <message>
        <source>Configuration name:</source>
        <translation>Назва конфігурації:</translation>
    </message>
    <message>
        <source>Select Configuration</source>
        <translation>Обрати конфігурацію</translation>
    </message>
    <message>
        <source>No saved configurations found.</source>
        <translation>Збережених конфігурацій не знайдено.</translation>
    </message>
    <message>
        <source>Configuration saved successfully.</source>
        <translation>Конфігурацію успішно збережено.</translation>
    </message>
    <message>
        <source>Configuration loaded successfully.</source>
        <translation>Конфігурацію успішно завантажено.</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation>Видалити</translation>
    </message>
    <message>
        <source>Are you sure you want to delete this configuration?</source>
        <translation>Ви впевнені, що хочете видалити цю конфігурацію?</translation>
    </message>
    <message>
        <source>Enable Auto Complete</source>
        <translation>Увімкнути автодоповнення</translation>
    </message>
    <message>
        <source>Enable Multiline Completion</source>
        <translation>Увімкнути багаторядкове доповнення</translation>
    </message>
    <message>
        <source>Text output proccessing mode:</source>
        <translation>Режим обробки текстового виводу:</translation>
    </message>
    <message>
        <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>
        <source>Completion trigger mode:</source>
        <translation>Режим тригера доповнення:</translation>
    </message>
    <message>
        <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>
        <source>Completion mode:</source>
        <translation>Режим доповнення:</translation>
    </message>
    <message>
        <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>
        <source>Smart context-aware triggering</source>
        <translation>Розумне контекстно-залежне спрацювання</translation>
    </message>
    <message>
        <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>
        <source>Don&apos;t dismiss Qt Creator&apos;s completion popup</source>
        <translation>Не закривати спливаюче вікно доповнення Qt Creator</translation>
    </message>
    <message>
        <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>
        <source>Cancel in-flight request on new input</source>
        <translation>Скасовувати поточний запит при новому введенні</translation>
    </message>
    <message>
        <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>
        <source>with delay(ms)</source>
        <translation>із затримкою (мс)</translation>
    </message>
    <message>
        <source>Delay before sending the completion request.
(Only for Automatic trigger mode)</source>
        <translation>Затримка перед надсиланням запиту доповнення.
(Лише для автоматичного режиму тригера)</translation>
    </message>
    <message>
        <source>AI suggestion triggers after typing</source>
        <translation>Пропозиція AI спрацьовує після введення</translation>
    </message>
    <message>
        <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>
        <source>character(s) within(ms)</source>
        <translation>символів за (мс)</translation>
    </message>
    <message>
        <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>
        <source>Hint shows after typing</source>
        <translation>Підказка показується після введення</translation>
    </message>
    <message>
        <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>
        <source>Hint auto-hide timeout (ms)</source>
        <translation>Тайм-аут автоматичного приховування підказки (мс)</translation>
    </message>
    <message>
        <source>Time in milliseconds after which the hint widget will automatically hide (only for Hint-based trigger mode).</source>
        <translation>Час у мілісекундах, через який віджет підказки автоматично сховається (лише для режиму тригера на основі підказки).</translation>
    </message>
    <message>
        <source>Trigger key:</source>
        <translation>Клавіша тригера:</translation>
    </message>
    <message>
        <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>
        <source>Ignore spaces and tabs in character count</source>
        <translation>Ігнорувати пробіли та табуляції при підрахунку символів</translation>
    </message>
    <message>
        <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>
        <source>Temperature:</source>
        <translation>Температура:</translation>
    </message>
    <message>
        <source>Max Tokens:</source>
        <translation>Макс. токенів:</translation>
    </message>
    <message>
        <source>Top P:</source>
        <translation>Top P:</translation>
    </message>
    <message>
        <source>Top K:</source>
        <translation>Top K:</translation>
    </message>
    <message>
        <source>Presence Penalty:</source>
        <translation>Штраф за присутність:</translation>
    </message>
    <message>
        <source>Frequency Penalty:</source>
        <translation>Штраф за частоту:</translation>
    </message>
    <message>
        <source>Read Full File</source>
        <translation>Читати повний файл</translation>
    </message>
    <message>
        <source>Read Strings Before Cursor:</source>
        <translation>Читати рядки перед курсором:</translation>
    </message>
    <message>
        <source>Read Strings After Cursor:</source>
        <translation>Читати рядки після курсора:</translation>
    </message>
    <message>
        <source>Use System Prompt</source>
        <translation>Використовувати системний промпт</translation>
    </message>
    <message>
        <source>Use special system prompt and user message for non FIM models</source>
        <translation>Використовувати спеціальний системний промпт та повідомлення користувача для не-FIM моделей</translation>
    </message>
    <message>
        <source>System prompt for non FIM models:</source>
        <translation>Системний промпт для не-FIM моделей:</translation>
    </message>
    <message>
        <source>User message for non FIM models:</source>
        <translation>Повідомлення користувача для не-FIM моделей:</translation>
    </message>
    <message>
        <source>Additional Programming Languages for handling: Example: rust,//,rust rs,rs</source>
        <translation>Додаткові мови програмування для обробки: Приклад: rust,//,rust rs,rs</translation>
    </message>
    <message>
        <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>
        <source>Show progress indicator during code completion</source>
        <translation>Показувати індикатор прогресу під час доповнення коду</translation>
    </message>
    <message>
        <source>Abort existing assist on new completion request</source>
        <translation>Перервати існуючу допомогу при новому запиті доповнення</translation>
    </message>
    <message>
        <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>
        <source>Include context from open files</source>
        <translation>Включати контекст з відкритих файлів</translation>
    </message>
    <message>
        <source>Max Changes Cache Size:</source>
        <translation>Макс. розмір кешу змін:</translation>
    </message>
    <message>
        <source>Time to suspend Ollama after completion request (in minutes), Only Ollama,  -1 to disable</source>
        <translation>Час призупинення Ollama після запиту доповнення (у хвилинах), лише Ollama, -1 для вимкнення</translation>
    </message>
    <message>
        <source>Context Window:</source>
        <translation>Вікно контексту:</translation>
    </message>
    <message>
        <source>Reasoning effort:</source>
        <translation>Зусилля міркування:</translation>
    </message>
    <message>
        <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>
        <source>Prompts for FIM models</source>
        <translation>Промпти для FIM моделей</translation>
    </message>
    <message>
        <source>Prompts for Non FIM models</source>
        <translation>Промпти для не-FIM моделей</translation>
    </message>
    <message>
        <source>General Settings</source>
        <translation>Загальні налаштування</translation>
    </message>
    <message>
        <source>Automatic Trigger Mode</source>
        <translation>Автоматичний режим тригера</translation>
    </message>
    <message>
        <source>General Parameters</source>
        <translation>Загальні параметри</translation>
    </message>
    <message>
        <source>Advanced Parameters</source>
        <translation>Розширені параметри</translation>
    </message>
    <message>
        <source>Context Settings</source>
        <translation>Налаштування контексту</translation>
    </message>
    <message>
        <source>OpenAI Responses API</source>
        <translation>OpenAI Responses API</translation>
    </message>
    <message>
        <source>Ollama Settings</source>
        <translation>Налаштування Ollama</translation>
    </message>
    <message>
        <source>Sync open files with assistant by default</source>
        <translation>Синхронізувати відкриті файли з асистентом за замовчуванням</translation>
    </message>
    <message>
        <source>Enable autosave when message received</source>
        <translation>Увімкнути автозбереження при отриманні повідомлення</translation>
    </message>
    <message>
        <source>Enable chat in bottom toolbar</source>
        <translation>Увімкнути чат у нижній панелі інструментів</translation>
    </message>
    <message>
        <source>Enable chat in navigation panel</source>
        <translation>Увімкнути чат у навігаційній панелі</translation>
    </message>
    <message>
        <source>Enable tools/function calling</source>
        <translation>Увімкнути виклик інструментів/функцій</translation>
    </message>
    <message>
        <source>When enabled, AI can use tools to read files, search project, and build code</source>
        <translation>Коли увімкнено, AI може використовувати інструменти для читання файлів, пошуку в проєкті та збирання коду</translation>
    </message>
    <message>
        <source>Auto-compress chat when session tokens exceed:</source>
        <translation>Автоматично стискати чат, коли токени сесії перевищують:</translation>
    </message>
    <message>
        <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>
        <source>Enable extended thinking mode.</source>
        <translation>Увімкнути режим розширеного мислення.</translation>
    </message>
    <message>
        <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>
        <source>Thinking budget tokens:</source>
        <translation>Бюджет токенів мислення:</translation>
    </message>
    <message>
        <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>
        <source>Thinking mode max output tokens:</source>
        <translation>Макс. вихідні токени режиму мислення:</translation>
    </message>
    <message>
        <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>
        <source>Text Font:</source>
        <translation>Шрифт тексту:</translation>
    </message>
    <message>
        <source>Text Font Size:</source>
        <translation>Розмір шрифту тексту:</translation>
    </message>
    <message>
        <source>Code Font:</source>
        <translation>Шрифт коду:</translation>
    </message>
    <message>
        <source>Code Font Size:</source>
        <translation>Розмір шрифту коду:</translation>
    </message>
    <message>
        <source>Text Format:</source>
        <translation>Формат тексту:</translation>
    </message>
    <message>
        <source>Chat Renderer:</source>
        <translation>Рендерер чату:</translation>
    </message>
    <message>
        <source>Chat Settings</source>
        <translation>Налаштування чату</translation>
    </message>
    <message>
        <source>Tools</source>
        <translation>Інструменти</translation>
    </message>
    <message>
        <source>Extended Thinking (Claude)</source>
        <translation>Розширене мислення (Claude)</translation>
    </message>
    <message>
        <source>Agent Roles</source>
        <translation>Ролі агентів</translation>
    </message>
    <message>
        <source>Enable Tools</source>
        <translation>Увімкнути інструменти</translation>
    </message>
    <message>
        <source>Enable AI tools/functions for quick refactoring (allows reading project files, searching code, etc.)</source>
        <translation>Увімкнути інструменти/функції AI для швидкого рефакторингу (дозволяє читати файли проєкту, шукати в коді тощо)</translation>
    </message>
    <message>
        <source>Enable Thinking Mode</source>
        <translation>Увімкнути режим мислення</translation>
    </message>
    <message>
        <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>
        <source>Thinking Budget Tokens:</source>
        <translation>Бюджет токенів мислення:</translation>
    </message>
    <message>
        <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>
        <source>Thinking Max Output Tokens:</source>
        <translation>Макс. вихідні токени мислення:</translation>
    </message>
    <message>
        <source>Maximum output tokens when thinking mode is enabled (includes thinking + response)</source>
        <translation>Максимальна кількість вихідних токенів, коли увімкнено режим мислення (включає мислення + відповідь)</translation>
    </message>
    <message>
        <source>Lines Before Cursor/Selection:</source>
        <translation>Рядки перед курсором/виділенням:</translation>
    </message>
    <message>
        <source>Number of lines to include before cursor or selection for context</source>
        <translation>Кількість рядків, які слід включити перед курсором або виділенням для контексту</translation>
    </message>
    <message>
        <source>Lines After Cursor/Selection:</source>
        <translation>Рядки після курсора/виділення:</translation>
    </message>
    <message>
        <source>Number of lines to include after cursor or selection for context</source>
        <translation>Кількість рядків, які слід включити після курсора або виділення для контексту</translation>
    </message>
    <message>
        <source>Display Mode:</source>
        <translation>Режим відображення:</translation>
    </message>
    <message>
        <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>
        <source>Inline Widget</source>
        <translation>Вбудований віджет</translation>
    </message>
    <message>
        <source>Qt Creator Suggestion</source>
        <translation>Пропозиція Qt Creator</translation>
    </message>
    <message>
        <source>Widget Orientation:</source>
        <translation>Орієнтація віджета:</translation>
    </message>
    <message>
        <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>
        <source>Horizontal</source>
        <translation>Горизонтальна</translation>
    </message>
    <message>
        <source>Vertical</source>
        <translation>Вертикальна</translation>
    </message>
    <message>
        <source>Widget Minimum Width:</source>
        <translation>Мінімальна ширина віджета:</translation>
    </message>
    <message>
        <source>Minimum width for the refactor widget (in pixels)</source>
        <translation>Мінімальна ширина для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <source>Widget Maximum Width:</source>
        <translation>Максимальна ширина віджета:</translation>
    </message>
    <message>
        <source>Maximum width for the refactor widget (in pixels)</source>
        <translation>Максимальна ширина для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <source>Widget Minimum Height:</source>
        <translation>Мінімальна висота віджета:</translation>
    </message>
    <message>
        <source>Minimum height for the refactor widget (in pixels)</source>
        <translation>Мінімальна висота для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <source>Widget Maximum Height:</source>
        <translation>Максимальна висота віджета:</translation>
    </message>
    <message>
        <source>Maximum height for the refactor widget (in pixels)</source>
        <translation>Максимальна висота для віджета рефакторингу (у пікселях)</translation>
    </message>
    <message>
        <source>System Prompt:</source>
        <translation>Системний промпт:</translation>
    </message>
    <message>
        <source>Include context from open files in quick refactor</source>
        <translation>Включати контекст з відкритих файлів у швидкий рефакторинг</translation>
    </message>
    <message>
        <source>Tools Settings</source>
        <translation>Налаштування інструментів</translation>
    </message>
    <message>
        <source>Display Settings</source>
        <translation>Налаштування відображення</translation>
    </message>
    <message>
        <source>Prompt Settings</source>
        <translation>Налаштування промпта</translation>
    </message>
    <message>
        <source>Allow file access outside project</source>
        <translation>Дозволити доступ до файлів поза проєктом</translation>
    </message>
    <message>
        <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>
        <source>Automatically apply file edits</source>
        <translation>Автоматично застосовувати редагування файлів</translation>
    </message>
    <message>
        <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>
        <source>Max tool continuations:</source>
        <translation>Макс. продовжень інструментів:</translation>
    </message>
    <message>
        <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>
        <source>List Project Files</source>
        <translation>Перелічити файли проєкту</translation>
    </message>
    <message>
        <source>Lists every source file tracked by the active Qt Creator project(s).</source>
        <translation>Перелічує кожен вихідний файл, що відстежується активним(и) проєктом(ами) Qt Creator.</translation>
    </message>
    <message>
        <source>Find File</source>
        <translation>Знайти файл</translation>
    </message>
    <message>
        <source>Locates a file in the project by name or partial path. Returns paths only, without file content.</source>
        <translation>Знаходить файл у проєкті за іменем або частковим шляхом. Повертає лише шляхи, без вмісту файлу.</translation>
    </message>
    <message>
        <source>Read File</source>
        <translation>Читати файл</translation>
    </message>
    <message>
        <source>Reads the content of a file by absolute path or path relative to the project root.</source>
        <translation>Читає вміст файлу за абсолютним шляхом або шляхом відносно кореня проєкту.</translation>
    </message>
    <message>
        <source>Search in Project</source>
        <translation>Шукати в проєкті</translation>
    </message>
    <message>
        <source>Searches project files for text occurrences or C++ symbol definitions.</source>
        <translation>Шукає в файлах проєкту входження тексту або визначення символів C++.</translation>
    </message>
    <message>
        <source>Create New File</source>
        <translation>Створити новий файл</translation>
    </message>
    <message>
        <source>Creates a new empty file at the given absolute path, making missing directories.</source>
        <translation>Створює новий порожній файл за вказаним абсолютним шляхом, створюючи відсутні теки.</translation>
    </message>
    <message>
        <source>Edit File</source>
        <translation>Редагувати файл</translation>
    </message>
    <message>
        <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>
        <source>Build Project</source>
        <translation>Зібрати проєкт</translation>
    </message>
    <message>
        <source>Triggers a build of the active Qt Creator project and reports the result.</source>
        <translation>Запускає збирання активного проєкту Qt Creator і повідомляє результат.</translation>
    </message>
    <message>
        <source>Get Issues List</source>
        <translation>Отримати список проблем</translation>
    </message>
    <message>
        <source>Reads compiler/clang diagnostics from Qt Creator&apos;s Issues panel.</source>
        <translation>Читає діагностику компілятора/clang з панелі Issues Qt Creator.</translation>
    </message>
    <message>
        <source>Execute Terminal Command</source>
        <translation>Виконати команду терміналу</translation>
    </message>
    <message>
        <source>Runs a command from the OS-specific allowed list below, in the project directory.</source>
        <translation>Виконує команду з нижчевказаного списку дозволених для конкретної ОС, у каталозі проєкту.</translation>
    </message>
    <message>
        <source>Todo</source>
        <translation>Todo</translation>
    </message>
    <message>
        <source>Lets the AI maintain a session-scoped todo list for multi-step workflows.</source>
        <translation>Дозволяє AI підтримувати список todo в межах сесії для багатокрокових робочих процесів.</translation>
    </message>
    <message>
        <source>Read Original History (Pre-Compression)</source>
        <translation>Читати оригінальну історію (до стиснення)</translation>
    </message>
    <message>
        <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>
        <source>Load Skill</source>
        <translation>Завантажити навичку</translation>
    </message>
    <message>
        <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>
        <source>Allowed Commands (Linux)</source>
        <translation>Дозволені команди (Linux)</translation>
    </message>
    <message>
        <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>
        <source>Allowed Commands (macOS)</source>
        <translation>Дозволені команди (macOS)</translation>
    </message>
    <message>
        <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>
        <source>Allowed Commands (Windows)</source>
        <translation>Дозволені команди (Windows)</translation>
    </message>
    <message>
        <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>
        <source>Command Timeout (seconds)</source>
        <translation>Тайм-аут команди (секунди)</translation>
    </message>
    <message>
        <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>
        <source>Tool Settings</source>
        <translation>Налаштування інструменту</translation>
    </message>
    <message>
        <source>Skills</source>
        <translation>Навички</translation>
    </message>
    <message>
        <source>Enable skills</source>
        <translation>Увімкнути навички</translation>
    </message>
    <message>
        <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>
        <source>Global skill directories:</source>
        <translation>Глобальні каталоги навичок:</translation>
    </message>
    <message>
        <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>
        <source>No skills discovered.</source>
        <translation>Жодної навички не виявлено.</translation>
    </message>
    <message>
        <source>Skill Directories</source>
        <translation>Каталоги навичок</translation>
    </message>
    <message>
        <source>Discovered global skills:</source>
        <translation>Виявлені глобальні навички:</translation>
    </message>
    <message>
        <source>MCP</source>
        <translation>MCP</translation>
    </message>
    <message>
        <source>Enable MCP server</source>
        <translation>Увімкнути сервер MCP</translation>
    </message>
    <message>
        <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>
        <source>Server port</source>
        <translation>Порт сервера</translation>
    </message>
    <message>
        <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>
        <source>Connect to external MCP servers</source>
        <translation>Підключатися до зовнішніх серверів MCP</translation>
    </message>
    <message>
        <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>
        <source>Extra PATH for stdio servers</source>
        <translation>Додатковий PATH для stdio-серверів</translation>
    </message>
    <message>
        <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>
        <source>How to connect...</source>
        <translation>Як підключитися...</translation>
    </message>
    <message>
        <source>Server</source>
        <translation>Сервер</translation>
    </message>
    <message>
        <source>Clients</source>
        <translation>Клієнти</translation>
    </message>
    <message>
        <source>Connect to QodeAssist MCP</source>
        <translation>Підключитися до QodeAssist MCP</translation>
    </message>
    <message>
        <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>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <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>
        <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>
        <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>
        <source>Direct (HTTP/SSE)</source>
        <translation>Direct (HTTP/SSE)</translation>
    </message>
    <message>
        <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>
        <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>
        <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>
        <source>Bridge (stdio)</source>
        <translation>Bridge (stdio)</translation>
    </message>
    <message>
        <source>Chat History Path:</source>
        <translation>Шлях історії чату:</translation>
    </message>
    <message>
        <source>Skill directories:</source>
        <translation>Каталоги навичок:</translation>
    </message>
    <message>
        <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>
        <source>Discovered project skills:</source>
        <translation>Виявлені навички проєкту:</translation>
    </message>
    <message>
        <source>QodeAssist</source>
        <translation>QodeAssist</translation>
    </message>
    <message>
        <source>Provider Settings</source>
        <translation>Налаштування провайдера</translation>
    </message>
    <message>
        <source>OpenRouter API Key:</source>
        <translation>Ключ API OpenRouter:</translation>
    </message>
    <message>
        <source>Enter your API key here</source>
        <translation>Введіть ваш ключ API тут</translation>
    </message>
    <message>
        <source>OpenAI Compatible API Key:</source>
        <translation>Ключ API OpenAI Compatible:</translation>
    </message>
    <message>
        <source>Claude API Key:</source>
        <translation>Ключ API Claude:</translation>
    </message>
    <message>
        <source>Enable prompt caching</source>
        <translation>Увімкнути кешування промптів</translation>
    </message>
    <message>
        <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>
        <source>Use 1h cache TTL (beta)</source>
        <translation>Використовувати 1-годинний TTL кешу (бета)</translation>
    </message>
    <message>
        <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>
        <source>OpenAI API Key:</source>
        <translation>Ключ API OpenAI:</translation>
    </message>
    <message>
        <source>Mistral AI API Key:</source>
        <translation>Ключ API Mistral AI:</translation>
    </message>
    <message>
        <source>Codestral API Key:</source>
        <translation>Ключ API Codestral:</translation>
    </message>
    <message>
        <source>Google AI API Key:</source>
        <translation>Ключ API Google AI:</translation>
    </message>
    <message>
        <source>Ollama(Bearer) API Key:</source>
        <translation>Ключ API Ollama(Bearer):</translation>
    </message>
    <message>
        <source>llama.cpp API Key:</source>
        <translation>Ключ API llama.cpp:</translation>
    </message>
    <message>
        <source>Qwen API Key:</source>
        <translation>Ключ API Qwen:</translation>
    </message>
    <message>
        <source>DeepSeek API Key:</source>
        <translation>Ключ API DeepSeek:</translation>
    </message>
    <message>
        <source>OpenRouter Settings</source>
        <translation>Налаштування OpenRouter</translation>
    </message>
    <message>
        <source>OpenAI Settings</source>
        <translation>Налаштування OpenAI</translation>
    </message>
    <message>
        <source>OpenAI Compatible Settings</source>
        <translation>Налаштування OpenAI Compatible</translation>
    </message>
    <message>
        <source>Claude Settings</source>
        <translation>Налаштування Claude</translation>
    </message>
    <message>
        <source>Mistral AI Settings</source>
        <translation>Налаштування Mistral AI</translation>
    </message>
    <message>
        <source>Google AI Settings</source>
        <translation>Налаштування Google AI</translation>
    </message>
    <message>
        <source>llama.cpp Settings</source>
        <translation>Налаштування llama.cpp</translation>
    </message>
    <message>
        <source>Qwen (Alibaba) Settings</source>
        <translation>Налаштування Qwen (Alibaba)</translation>
    </message>
    <message>
        <source>DeepSeek Settings</source>
        <translation>Налаштування DeepSeek</translation>
    </message>
    <message>
        <source>Agent roles define different system prompts for specific tasks.</source>
        <translation>Ролі агентів визначають різні системні промпти для конкретних завдань.</translation>
    </message>
    <message>
        <source>Open Roles Folder...</source>
        <translation>Відкрити теку ролей...</translation>
    </message>
    <message>
        <source>Add...</source>
        <translation>Додати...</translation>
    </message>
    <message>
        <source>Edit...</source>
        <translation>Редагувати...</translation>
    </message>
    <message>
        <source>Duplicate...</source>
        <translation>Дублювати...</translation>
    </message>
    <message>
        <source>(Built-in role)</source>
        <translation>(Вбудована роль)</translation>
    </message>
    <message>
        <source>Role Already Exists</source>
        <translation>Роль вже існує</translation>
    </message>
    <message>
        <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>
        <source>Error</source>
        <translation>Помилка</translation>
    </message>
    <message>
        <source>Failed to save role &apos;%1&apos;.</source>
        <translation>Не вдалося зберегти роль &apos;%1&apos;.</translation>
    </message>
    <message>
        <source>Cannot Edit Built-in Role</source>
        <translation>Не можна редагувати вбудовану роль</translation>
    </message>
    <message>
        <source>Built-in roles cannot be edited. You can duplicate this role and modify the copy.</source>
        <translation>Вбудовані ролі не можна редагувати. Ви можете дублювати цю роль та змінити копію.</translation>
    </message>
    <message>
        <source>Failed to update role &apos;%1&apos;.</source>
        <translation>Не вдалося оновити роль &apos;%1&apos;.</translation>
    </message>
    <message>
        <source>Failed to duplicate role.</source>
        <translation>Не вдалося дублювати роль.</translation>
    </message>
    <message>
        <source>Cannot Delete Built-in Role</source>
        <translation>Не можна видалити вбудовану роль</translation>
    </message>
    <message>
        <source>Built-in roles cannot be deleted.</source>
        <translation>Вбудовані ролі не можна видалити.</translation>
    </message>
    <message>
        <source>Delete Role</source>
        <translation>Видалити роль</translation>
    </message>
    <message>
        <source>Are you sure you want to delete the role &apos;%1&apos;?</source>
        <translation>Ви впевнені, що хочете видалити роль &apos;%1&apos;?</translation>
    </message>
    <message>
        <source>Failed to delete role &apos;%1&apos;.</source>
        <translation>Не вдалося видалити роль &apos;%1&apos;.</translation>
    </message>
    <message>
        <source>Generate QodeAssist suggestion at the current cursor position.</source>
        <translation>Згенерувати пропозицію QodeAssist у поточній позиції курсора.</translation>
    </message>
    <message>
        <source>Request QodeAssist Suggestion</source>
        <translation>Запит пропозиції QodeAssist</translation>
    </message>
    <message>
        <source>Refactor code using QodeAssist</source>
        <translation>Рефакторити код за допомогою QodeAssist</translation>
    </message>
    <message>
        <source>Quick Refactor with QodeAssist</source>
        <translation>Швидкий рефакторинг з QodeAssist</translation>
    </message>
    <message>
        <source>Open QodeAssist Chat as an editor tab</source>
        <translation>Відкрити чат QodeAssist як вкладку редактора</translation>
    </message>
    <message>
        <source>Show QodeAssist Chat</source>
        <translation>Показати чат QodeAssist</translation>
    </message>
    <message>
        <source>Close QodeAssist Chat</source>
        <translation>Закрити чат QodeAssist</translation>
    </message>
    <message>
        <source>Open QodeAssist Chat in Separate Window</source>
        <translation>Відкрити чат QodeAssist в окремому вікні</translation>
    </message>
    <message>
        <source>Open the QodeAssist chat in a separate window</source>
        <translation>Відкрити чат QodeAssist в окремому вікні</translation>
    </message>
    <message>
        <source>New QodeAssist Chat</source>
        <translation>Новий чат QodeAssist</translation>
    </message>
    <message>
        <source>Open a fresh chat in a new editor tab</source>
        <translation>Відкрити свіжий чат у новій вкладці редактора</translation>
    </message>
    <message>
        <source>Send QodeAssist Chat Message</source>
        <translation>Надіслати повідомлення чату QodeAssist</translation>
    </message>
    <message>
        <source>Send the current message to the LLM</source>
        <translation>Надіслати поточне повідомлення до LLM</translation>
    </message>
    <message>
        <source>Clear QodeAssist Chat Session</source>
        <translation>Очистити сесію чату QodeAssist</translation>
    </message>
    <message>
        <source>Clear the current chat session</source>
        <translation>Очистити поточну сесію чату</translation>
    </message>
    <message>
        <source>QodeAssist Chat</source>
        <translation>Чат QodeAssist</translation>
    </message>
    <message>
        <source>Chat in Bottom Panel</source>
        <translation>Чат у нижній панелі</translation>
    </message>
    <message>
        <source>Chat in Sidebar</source>
        <translation>Чат у бічній панелі</translation>
    </message>
    <message>
        <source>Open Chat in Editor</source>
        <translation>Відкрити чат у редакторі</translation>
    </message>
    <message>
        <source>Open Chat in Separate Window</source>
        <translation>Відкрити чат в окремому вікні</translation>
    </message>
    <message>
        <source>Select LLM Provider</source>
        <translation>Обрати провайдера LLM</translation>
    </message>
    <message>
        <source>Providers:</source>
        <translation>Провайдери:</translation>
    </message>
    <message>
        <source>Select LLM Model</source>
        <translation>Обрати модель LLM</translation>
    </message>
    <message>
        <source>Models:</source>
        <translation>Моделі:</translation>
    </message>
    <message>
        <source>Select Template</source>
        <translation>Обрати шаблон</translation>
    </message>
    <message>
        <source>Templates:</source>
        <translation>Шаблони:</translation>
    </message>
    <message>
        <source>Switch AI configuration</source>
        <translation>Перемкнути конфігурацію AI</translation>
    </message>
    <message>
        <source>Enable/Disable AI Tools</source>
        <translation>Увімкнути/Вимкнути інструменти AI</translation>
    </message>
    <message>
        <source>Enable/Disable Thinking Mode</source>
        <translation>Увімкнути/Вимкнути режим мислення</translation>
    </message>
    <message>
        <source>Open Quick Refactor Settings</source>
        <translation>Відкрити налаштування швидкого рефакторингу</translation>
    </message>
    <message>
        <source>Your Current Instruction:</source>
        <translation>Ваша поточна інструкція:</translation>
    </message>
    <message>
        <source>Type or edit your instruction...</source>
        <translation>Введіть або відредагуйте вашу інструкцію...</translation>
    </message>
    <message>
        <source>Or Load saved:</source>
        <translation>Або завантажте збережену:</translation>
    </message>
    <message>
        <source>Search saved instructions...</source>
        <translation>Шукати збережені інструкції...</translation>
    </message>
    <message>
        <source>Add Custom Instruction</source>
        <translation>Додати власну інструкцію</translation>
    </message>
    <message>
        <source>Edit Custom Instruction</source>
        <translation>Редагувати власну інструкцію</translation>
    </message>
    <message>
        <source>Delete Custom Instruction</source>
        <translation>Видалити власну інструкцію</translation>
    </message>
    <message>
        <source>Open Instructions Folder</source>
        <translation>Відкрити теку інструкцій</translation>
    </message>
    <message>
        <source>Repeat Last Instructions</source>
        <translation>Повторити останні інструкції</translation>
    </message>
    <message>
        <source>Improve Current Code</source>
        <translation>Покращити поточний код</translation>
    </message>
    <message>
        <source>Suggest Alternative Solution</source>
        <translation>Запропонувати альтернативне рішення</translation>
    </message>
    <message>
        <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>
        <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>
        <source>Failed to save custom instruction. Check logs for details.</source>
        <translation>Не вдалося зберегти власну інструкцію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <source>No Instruction Selected</source>
        <translation>Інструкцію не обрано</translation>
    </message>
    <message>
        <source>Please select an instruction to edit.</source>
        <translation>Будь ласка, оберіть інструкцію для редагування.</translation>
    </message>
    <message>
        <source>Failed to update custom instruction. Check logs for details.</source>
        <translation>Не вдалося оновити власну інструкцію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <source>Please select an instruction to delete.</source>
        <translation>Будь ласка, оберіть інструкцію для видалення.</translation>
    </message>
    <message>
        <source>Confirm Deletion</source>
        <translation>Підтвердити видалення</translation>
    </message>
    <message>
        <source>Are you sure you want to delete the instruction &apos;%1&apos;?</source>
        <translation>Ви впевнені, що хочете видалити інструкцію &apos;%1&apos;?</translation>
    </message>
    <message>
        <source>Failed to delete custom instruction. Check logs for details.</source>
        <translation>Не вдалося видалити власну інструкцію. Перевірте журнали для деталей.</translation>
    </message>
    <message>
        <source>Current</source>
        <translation>Поточна</translation>
    </message>
    <message>
        <source>Current (%1)</source>
        <translation>Поточна (%1)</translation>
    </message>
    <message>
        <source>No Instruction</source>
        <translation>Немає інструкції</translation>
    </message>
    <message>
        <source>Please type an instruction or select a saved one.</source>
        <translation>Будь ласка, введіть інструкцію або оберіть збережену.</translation>
    </message>
    <message>
        <source>Enter instruction name...</source>
        <translation>Введіть ім&apos;я інструкції...</translation>
    </message>
    <message>
        <source>Name:</source>
        <translation>Назва:</translation>
    </message>
    <message>
        <source>Instruction Body:</source>
        <translation>Тіло інструкції:</translation>
    </message>
    <message>
        <source>Enter the refactoring instruction that will be sent to the LLM...</source>
        <translation>Введіть інструкцію рефакторингу, яка буде надіслана до LLM...</translation>
    </message>
    <message>
        <source>Set as default instruction</source>
        <translation>Встановити як типову інструкцію</translation>
    </message>
    <message>
        <source>This instruction will be automatically selected when opening Quick Refactor dialog</source>
        <translation>Ця інструкція буде автоматично обрана при відкритті діалогу швидкого рефакторингу</translation>
    </message>
    <message>
        <source>Invalid Input</source>
        <translation>Недійсне введення</translation>
    </message>
    <message>
        <source>Instruction name cannot be empty.</source>
        <translation>Ім&apos;я інструкції не може бути порожнім.</translation>
    </message>
    <message>
        <source>Instruction body cannot be empty.</source>
        <translation>Тіло інструкції не може бути порожнім.</translation>
    </message>
</context>
<context>
    <name>RootItem</name>
    <message>
        <source>Compressing chat…</source>
        <translation>Стиснення чату…</translation>
    </message>
    <message>
        <source>next ~%1  ·  session ↑%2 ↓%3 ↻%4</source>
        <translation>наступний ~%1  ·  сесія ↑%2 ↓%3 ↻%4</translation>
    </message>
    <message>
        <source>next ~%1  ·  session ↑%2 ↓%3</source>
        <translation>наступний ~%1  ·  сесія ↑%2 ↓%3</translation>
    </message>
    <message>
        <source>next request (estimate)  ·  session prompt ↑ / completion ↓ / cached ↻ (provider cache hits)</source>
        <translation>наступний запит (оцінка)  ·  промпт сесії ↑ / доповнення ↓ / кешовано ↻ (попадання в кеш провайдера)</translation>
    </message>
    <message>
        <source>next request (estimate)  ·  session prompt ↑ / completion ↓</source>
        <translation>наступний запит (оцінка)  ·  промпт сесії ↑ / доповнення ↓</translation>
    </message>
    <message>
        <source>Сhat name: %1</source>
        <translation>Назва чату: %1</translation>
    </message>
    <message>
        <source>Move this chat to an editor tab</source>
        <translation>Перемістити цей чат на вкладку редактора</translation>
    </message>
    <message>
        <source>Move this chat to a separate window</source>
        <translation>Перемістити цей чат в окреме вікно</translation>
    </message>
    <message>
        <source>Type your message here... (%1 to send)</source>
        <translation>Введіть ваше повідомлення тут... (%1 для надсилання)</translation>
    </message>
    <message>
        <source>Cut</source>
        <translation>Вирізати</translation>
    </message>
    <message>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <source>Paste</source>
        <translation>Вставити</translation>
    </message>
    <message>
        <source>Select All</source>
        <translation>Виділити все</translation>
    </message>
    <message>
        <source>Clear</source>
        <translation>Очистити</translation>
    </message>
    <message>
        <source>Send</source>
        <translation>Надіслати</translation>
    </message>
    <message>
        <source>Stop</source>
        <translation>Зупинити</translation>
    </message>
    <message>
        <source>Send message to LLM %1</source>
        <translation>Надіслати повідомлення до LLM %1</translation>
    </message>
    <message>
        <source>Compress Chat</source>
        <translation>Стиснути чат</translation>
    </message>
    <message>
        <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>
    <message>
        <source>Copied</source>
        <translation>Скопійовано</translation>
    </message>
</context>
<context>
    <name>SplitDropZone</name>
    <message numerus="yes">
        <source>%n file(s) to drop</source>
        <translation>
            <numerusform>%n файл(ів) для скидання</numerusform>
            <numerusform>%n файл(ів) для скидання</numerusform>
            <numerusform>%n файл(ів) для скидання</numerusform>
        </translation>
    </message>
    <message>
        <source>Attach</source>
        <translation>Прикріпити</translation>
    </message>
    <message>
        <source>Images &amp; Text Files</source>
        <translation>Зображення &amp; текстові файли</translation>
    </message>
    <message>
        <source>(for one-time use)</source>
        <translation>(для одноразового використання)</translation>
    </message>
    <message>
        <source>LINK</source>
        <translation>ПОСИЛАННЯ</translation>
    </message>
    <message>
        <source>Text Files</source>
        <translation>Текстові файли</translation>
    </message>
    <message>
        <source>(added to context)</source>
        <translation>(додано до контексту)</translation>
    </message>
</context>
<context>
    <name>TextBlock</name>
    <message>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <source>Select All</source>
        <translation>Виділити все</translation>
    </message>
</context>
<context>
    <name>ThinkingBlock</name>
    <message>
        <source>Thinking (Redacted)</source>
        <translation>Мислення (відредаговано)</translation>
    </message>
    <message>
        <source>Thinking</source>
        <translation>Мислення</translation>
    </message>
    <message>
        <source>Thinking content was redacted by safety systems</source>
        <translation>Вміст мислення було відредаговано системами безпеки</translation>
    </message>
    <message>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
</context>
<context>
    <name>ToolBlock</name>
    <message>
        <source>Tool: %1</source>
        <translation>Інструмент: %1</translation>
    </message>
    <message>
        <source>Copy</source>
        <translation>Копіювати</translation>
    </message>
    <message>
        <source>Select All</source>
        <translation>Виділити все</translation>
    </message>
    <message>
        <source>Collapse</source>
        <translation>Згорнути</translation>
    </message>
    <message>
        <source>Expand</source>
        <translation>Розгорнути</translation>
    </message>
</context>
<context>
    <name>TopBar</name>
    <message>
        <source>Unpin chat window</source>
        <translation>Відкріпити вікно чату</translation>
    </message>
    <message>
        <source>Pin chat window to the top</source>
        <translation>Закріпити вікно чату зверху</translation>
    </message>
    <message>
        <source>Clean chat</source>
        <translation>Очистити чат</translation>
    </message>
    <message>
        <source>Open new chat in a new tab</source>
        <translation>Відкрити новий чат у новій вкладці</translation>
    </message>
    <message>
        <source>Switch saved AI configuration</source>
        <translation>Перемкнути збережену конфігурацію AI</translation>
    </message>
    <message>
        <source>Switch agent role (different system prompts)</source>
        <translation>Перемкнути роль агента (різні системні промпти)</translation>
    </message>
    <message>
        <source>Tools are disabled in General Settings</source>
        <translation>Інструменти вимкнено в загальних налаштуваннях</translation>
    </message>
    <message>
        <source>Tools enabled: AI can use tools to read files, search project, and build code</source>
        <translation>Інструменти увімкнено: AI може використовувати інструменти для читання файлів, пошуку в проєкті та збирання коду</translation>
    </message>
    <message>
        <source>Tools disabled: Simple conversation without tool access</source>
        <translation>Інструменти вимкнено: проста розмова без доступу до інструментів</translation>
    </message>
    <message>
        <source>Thinking Mode enabled (Check model list support it)</source>
        <translation>Режим мислення увімкнено (Перевірте, чи модель підтримує його)</translation>
    </message>
    <message>
        <source>Thinking Mode disabled</source>
        <translation>Режим мислення вимкнено</translation>
    </message>
    <message>
        <source>Thinking Mode is not available for this provider</source>
        <translation>Режим мислення недоступний для цього провайдера</translation>
    </message>
    <message>
        <source>Open Chat Assistant Settings</source>
        <translation>Відкрити налаштування асистента чату</translation>
    </message>
    <message>
        <source>Save chat to *.json file</source>
        <translation>Зберегти чат у файл *.json</translation>
    </message>
    <message>
        <source>Load chat from *.json file</source>
        <translation>Завантажити чат з файлу *.json</translation>
    </message>
    <message>
        <source>Show in system</source>
        <translation>Показати в системі</translation>
    </message>
    <message>
        <source>View chat context (system prompt, role, rules)</source>
        <translation>Переглянути контекст чату (системний промпт, роль, правила)</translation>
    </message>
    <message>
        <source>Current amount tokens in chat and LLM limit threshold</source>
        <translation>Поточна кількість токенів у чаті та поріг ліміту LLM</translation>
    </message>
</context>
</TS>
