<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE">
<context>
    <name>BottomBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="50"/>
        <source>Attach file to message</source>
        <translation>Datei an Nachricht anhängen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="63"/>
        <source>Attach image to message</source>
        <translation>Bild an Nachricht anhängen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="76"/>
        <source>Link file to context</source>
        <translation>Datei mit Kontext verknüpfen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="82"/>
        <source>Sync open files</source>
        <translation>Offene Dateien synchronisieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="85"/>
        <source>Automatically synchronize currently opened files with the model context</source>
        <translation>Aktuell geöffnete Dateien automatisch mit dem Modellkontext synchronisieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="108"/>
        <source>Compressing...</source>
        <translation>Komprimiere...</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="118"/>
        <source>Cancel</source>
        <translation>Abbrechen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="122"/>
        <source>Cancel compression</source>
        <translation>Komprimierung abbrechen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="130"/>
        <source>Compress</source>
        <translation>Komprimieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="139"/>
        <source>Compress chat (create summarized copy using LLM)</source>
        <translation>Chat komprimieren (zusammengefasste Kopie mit LLM erstellen)</translation>
    </message>
</context>
<context>
    <name>ChatItem</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="159"/>
        <source>↑ %1 (cached %2)</source>
        <translation>↑ %1 (zwischengespeichert %2)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="160"/>
        <source>↑ %1</source>
        <translation>↑ %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="166"/>
        <source>↓ %1 (reasoning %2)</source>
        <translation>↓ %1 (Reasoning %2)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="167"/>
        <source>↓ %1</source>
        <translation>↓ %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="172"/>
        <source>Σ %1</source>
        <translation>Σ %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="210"/>
        <source>Reset chat to this message and edit</source>
        <translation>Chat auf diese Nachricht zurücksetzen und bearbeiten</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="310"/>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="402"/>
        <source>Click: Open in Qt Creator
Shift+Click: Open in System Editor</source>
        <translation>Klick: In Qt Creator öffnen
Umschalt+Klick: Im Systemeditor öffnen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="366"/>
        <source>Failed to load image</source>
        <translation>Bild konnte nicht geladen werden</translation>
    </message>
</context>
<context>
    <name>CodeBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="62"/>
        <source>Code (%1)</source>
        <translation>Code (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="63"/>
        <source>Code</source>
        <translation>Code</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="105"/>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="136"/>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="147"/>
        <source>Copy</source>
        <translation>Kopieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
        <source>Collapse</source>
        <translation>Einklappen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
        <source>Expand</source>
        <translation>Ausklappen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="140"/>
        <source>Copied</source>
        <translation>Kopiert</translation>
    </message>
</context>
<context>
    <name>ContextViewer</name>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="54"/>
        <source>Chat Context</source>
        <translation>Chat-Kontext</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="62"/>
        <source>Refresh</source>
        <translation>Aktualisieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="67"/>
        <source>Close</source>
        <translation>Schließen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="97"/>
        <source>Base System Prompt</source>
        <translation>Basis-System-Prompt</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
        <source>Active</source>
        <translation>Aktiv</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
        <source>Empty</source>
        <translation>Leer</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="125"/>
        <source>No system prompt configured</source>
        <translation>Kein System-Prompt konfiguriert</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="146"/>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="235"/>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="377"/>
        <source>Copy</source>
        <translation>Kopieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="152"/>
        <source>Edit in Settings</source>
        <translation>In Einstellungen bearbeiten</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="166"/>
        <source>Agent Role</source>
        <translation>Agent-Rolle</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="221"/>
        <source>No role selected. Using base system prompt only.</source>
        <translation>Keine Rolle ausgewählt. Es wird nur der Basis-System-Prompt verwendet.</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="241"/>
        <source>Manage Roles</source>
        <translation>Rollen verwalten</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="255"/>
        <source>Project Rules</source>
        <translation>Projektregeln</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
        <source>%1 active</source>
        <translation>%1 aktiv</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
        <source>None</source>
        <translation>Keine</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="282"/>
        <source>Rules (%1)</source>
        <translation>Regeln (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="369"/>
        <source>Content</source>
        <translation>Inhalt</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="415"/>
        <source>No project rules found.
Create .md files in .qodeassist/rules/common/ or .qodeassist/rules/chat/</source>
        <translation>Keine Projektregeln gefunden.
Erstellen Sie .md-Dateien in .qodeassist/rules/common/ oder .qodeassist/rules/chat/</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="430"/>
        <source>Open Rules Folder</source>
        <translation>Regelordner öffnen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="450"/>
        <source>Final prompt: Base System Prompt + Agent Role + Project Info + Project Rules + Linked Files</source>
        <translation>Endgültiger Prompt: Basis-System-Prompt + Agent-Rolle + Projektinfo + Projektregeln + Verknüpfte Dateien</translation>
    </message>
</context>
<context>
    <name>DiffStatistics</name>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="40"/>
        <source>+%1 lines, -%2 lines</source>
        <translation>+%1 Zeilen, -%2 Zeilen</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="42"/>
        <source>+%1 lines</source>
        <translation>+%1 Zeilen</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="44"/>
        <source>-%1 lines</source>
        <translation>-%1 Zeilen</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="46"/>
        <source>No changes</source>
        <translation>Keine Änderungen</translation>
    </message>
</context>
<context>
    <name>FileEditBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="76"/>
        <source>ARCHIVED</source>
        <translation>ARCHIVIERT</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="77"/>
        <source>APPLIED</source>
        <translation>ANGEWENDET</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="78"/>
        <source>REJECTED</source>
        <translation>ABGELEHNT</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="79"/>
        <source>PENDING</source>
        <translation>AUSSTEHEND</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
        <source>Replace</source>
        <translation>Ersetzen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
        <source>Append</source>
        <translation>Anhängen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="202"/>
        <source>%1: %2 (+%3 -%4)</source>
        <translation>%1: %2 (+%3 -%4)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="208"/>
        <source>%1: %2 (+%3)</source>
        <translation>%1: %2 (+%3)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="264"/>
        <source>Open file in editor and navigate to changes</source>
        <translation>Datei im Editor öffnen und zu Änderungen navigieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="364"/>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="423"/>
        <source>Copy</source>
        <translation>Kopieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="374"/>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="433"/>
        <source>Collapse</source>
        <translation>Einklappen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="374"/>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="433"/>
        <source>Expand</source>
        <translation>Ausklappen</translation>
    </message>
</context>
<context>
    <name>FileEditsActionBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="81"/>
        <source>File Edit in Current Message</source>
        <translation>Dateibearbeitung in aktueller Nachricht</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="82"/>
        <source>%1 File Edits in Current Message</source>
        <translation>%1 Dateibearbeitungen in aktueller Nachricht</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="93"/>
        <source>%1 applied</source>
        <translation>%1 angewendet</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="96"/>
        <source>%1 pending</source>
        <translation>%1 ausstehend</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="99"/>
        <source>%1 rejected</source>
        <translation>%1 abgelehnt</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="118"/>
        <source>Apply All (%1)</source>
        <translation>Alle anwenden (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="119"/>
        <source>Reapply All (%1)</source>
        <translation>Alle erneut anwenden (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="124"/>
        <source>Apply all pending and rejected edits in this message</source>
        <translation>Alle ausstehenden und abgelehnten Bearbeitungen in dieser Nachricht anwenden</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="125"/>
        <source>Reapply all rejected edits in this message</source>
        <translation>Alle abgelehnten Bearbeitungen in dieser Nachricht erneut anwenden</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="135"/>
        <source>Undo All (%1)</source>
        <translation>Alle rückgängig machen (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="139"/>
        <source>Undo all applied edits in this message</source>
        <translation>Alle angewendeten Bearbeitungen in dieser Nachricht rückgängig machen</translation>
    </message>
</context>
<context>
    <name>QObject</name>
    <message>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="62"/>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="75"/>
        <source>Template Not Found</source>
        <translation>Vorlage nicht gefunden</translation>
    </message>
    <message>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="63"/>
        <location filename="../../pluginllmcore/PromptTemplateManager.cpp" line="76"/>
        <source>Template &apos;%1&apos; was not found or has been updated. Please re-set new one.</source>
        <translation>Vorlage &apos;%1&apos; wurde nicht gefunden oder wurde aktualisiert. Bitte wählen Sie eine neue aus.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="595"/>
        <source>Providers</source>
        <translation>Anbieter</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="262"/>
        <source>Agents</source>
        <translation>Agenten</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatConfigurationController.cpp" line="58"/>
        <location filename="../../ChatView/ChatConfigurationController.cpp" line="71"/>
        <source>Current Settings</source>
        <translation>Aktuelle Einstellungen</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatCompressor</name>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="30"/>
        <source>Compression already in progress</source>
        <translation>Komprimierung läuft bereits</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="35"/>
        <source>No chat file to compress</source>
        <translation>Keine Chat-Datei zum Komprimieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="40"/>
        <source>Chat is empty, nothing to compress</source>
        <translation>Chat ist leer, nichts zu komprimieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="48"/>
        <source>No provider available</source>
        <translation>Kein Anbieter verfügbar</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="57"/>
        <source>No template available</source>
        <translation>Keine Vorlage verfügbar</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="99"/>
        <source>Compression cancelled</source>
        <translation>Komprimierung abgebrochen</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="122"/>
        <source>Failed to save compressed chat</source>
        <translation>Komprimierter Chat konnte nicht gespeichert werden</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="137"/>
        <source>Compression failed: %1</source>
        <translation>Komprimierung fehlgeschlagen: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatFileManager</name>
    <message>
        <location filename="../../ChatView/ChatFileManager.cpp" line="33"/>
        <source>File is not accessible: %1</source>
        <translation>Auf die Datei kann nicht zugegriffen werden: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatFileManager.cpp" line="45"/>
        <source>Failed to copy file: %1</source>
        <translation>Datei konnte nicht kopiert werden: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatHistoryStore</name>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="121"/>
        <source>Save Chat History</source>
        <translation>Chatverlauf speichern</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="124"/>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="151"/>
        <source>JSON files (*.json)</source>
        <translation>JSON-Dateien (*.json)</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="148"/>
        <source>Load Chat History</source>
        <translation>Chatverlauf laden</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatRootView</name>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="285"/>
        <source>Chat compressed successfully!</source>
        <translation>Chat erfolgreich komprimiert!</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="508"/>
        <source>This chat file is already in use by another QodeAssist chat session.</source>
        <translation>Diese Chat-Datei wird bereits von einer anderen QodeAssist-Chat-Sitzung verwendet.</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="527"/>
        <source>This chat is already open in another QodeAssist chat session.</source>
        <translation>Dieser Chat ist bereits in einer anderen QodeAssist-Chat-Sitzung geöffnet.</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="605"/>
        <location filename="../../ChatView/ChatRootView.cpp" line="653"/>
        <source>Select Files to Attach</source>
        <translation>Anzuhängende Dateien auswählen</translation>
    </message>
    <message numerus="yes">
        <location filename="../../ChatView/ChatRootView.cpp" line="689"/>
        <source>Images automatically moved to Attach zone (%n file(s))</source>
        <translation>
            <numerusform>Bilder automatisch in den Anhangsbereich verschoben (%n Datei(en))</numerusform>
            <numerusform>Bilder automatisch in den Anhangsbereich verschoben (%n Datei(en))</numerusform>
        </translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="713"/>
        <source>Select Images to Attach</source>
        <translation>Anzuhängende Bilder auswählen</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="715"/>
        <source>Images (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</source>
        <translation>Bilder (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="1280"/>
        <source>Compression is already in progress</source>
        <translation>Komprimierung läuft bereits</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="1286"/>
        <source>No chat file to compress. Please save the chat first.</source>
        <translation>Keine Chat-Datei zum Komprimieren. Bitte speichern Sie den Chat zuerst.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::NavigationPanel</name>
    <message>
        <location filename="../../chat/NavigationPanel.cpp" line="21"/>
        <source>QodeAssist Chat</source>
        <translation>QodeAssist Chat</translation>
    </message>
</context>
<context>
    <name>QodeAssist::EditorChatButton</name>
    <message>
        <location filename="../../widgets/EditorChatButton.cpp" line="48"/>
        <source>Open QodeAssist Chat</source>
        <translation>QodeAssist Chat öffnen</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Mcp::McpServerManager</name>
    <message>
        <location filename="../../mcp/McpServerManager.cpp" line="80"/>
        <source>QodeAssist MCP server exposing Qt Creator project tools.</source>
        <translation>QodeAssist MCP-Server, der Qt Creator-Projekttools bereitstellt.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::QodeAssistClient</name>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="379"/>
        <source>Code completion failed: %1</source>
        <translation>Code-Vervollständigung fehlgeschlagen: %1</translation>
    </message>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="523"/>
        <source>Quick refactor failed</source>
        <translation>Schnelles Refactoring fehlgeschlagen</translation>
    </message>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="524"/>
        <source>Quick refactor failed: %1</source>
        <translation>Schnelles Refactoring fehlgeschlagen: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::RefactorWidget</name>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="176"/>
        <source>◄ Original</source>
        <translation>◄ Original</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="186"/>
        <source>Refactored ►</source>
        <translation>Refaktoriert ►</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="215"/>
        <source>✓ Apply (⌘+Enter)</source>
        <translation>✓ Anwenden (⌘+Enter)</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="217"/>
        <source>✓ Apply (Ctrl+Enter)</source>
        <translation>✓ Anwenden (Strg+Enter)</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="223"/>
        <source>✗ Decline (Esc)</source>
        <translation>✗ Ablehnen (Esc)</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentDetailPane</name>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="84"/>
        <source>Open in editor</source>
        <translation>Im Editor öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="85"/>
        <source>Duplicate…</source>
        <translation>Duplizieren…</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="86"/>
        <source>Delete</source>
        <translation>Löschen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="127"/>
        <source>Identity</source>
        <translation>Identität</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="129"/>
        <source>Extends:</source>
        <translation>Erweitert:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="143"/>
        <source>Name:</source>
        <translation>Name:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="153"/>
        <source>Description:</source>
        <translation>Beschreibung:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="154"/>
        <source>Tags:</source>
        <translation>Tags:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="155"/>
        <source>Comma-separated. Free-form — used to filter and group the agent list.</source>
        <translation>Kommagetrennt. Freiform — wird zum Filtern und Gruppieren der Agentenliste verwendet.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="159"/>
        <source>System role</source>
        <translation>Systemrolle</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="161"/>
        <source>Prepended to every request as the system message.</source>
        <translation>Wird jeder Anfrage als Systemnachricht vorangestellt.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="168"/>
        <source>Context</source>
        <translation>Kontext</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="170"/>
        <source>Jinja2 template rendered with ContextManager bindings into the agent.context system-prompt layer. Empty = no context block.</source>
        <translation>Jinja2-Vorlage, die mit ContextManager-Bindungen in die agent.context-System-Prompt-Ebene gerendert wird. Leer = kein Kontextblock.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="179"/>
        <source>Connection</source>
        <translation>Verbindung</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="191"/>
        <source>Provider:</source>
        <translation>Anbieter:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="192"/>
        <source>The provider instance this agent uses. URL is inherited from the instance.</source>
        <translation>Die Anbieterinstanz, die dieser Agent verwendet. Die URL wird von der Instanz geerbt.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="194"/>
        <source>Endpoint:</source>
        <translation>Endpunkt:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="195"/>
        <source>Appended to the provider&apos;s URL. Blank uses the provider default.</source>
        <translation>Wird an die URL des Anbieters angehängt. Leer verwendet den Anbieterstandard.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="197"/>
        <source>Model:</source>
        <translation>Modell:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="208"/>
        <source>Match</source>
        <translation>Übereinstimmung</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="210"/>
        <source>When a feature slot has multiple bound agents, the first whose match rules satisfy the current context wins.</source>
        <translation>Wenn ein Feature-Slot mehrere gebundene Agenten hat, gewinnt der erste, dessen Übereinstimmungsregeln den aktuellen Kontext erfüllen.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="217"/>
        <source>File patterns:</source>
        <translation>Dateimuster:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="218"/>
        <source>Globs, comma-separated. Empty matches every file.</source>
        <translation>Globs, kommagetrennt. Leer entspricht jeder Datei.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="222"/>
        <source>Template</source>
        <translation>Vorlage</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="224"/>
        <source>Jinja2 template (via inja) rendered to the request body. Built-in context: ctx.prefix, ctx.suffix, ctx.history, ctx.system_prompt, agent.model.</source>
        <translation>Jinja2-Vorlage (über inja), die in den Anfragekörper gerendert wird. Eingebauter Kontext: ctx.prefix, ctx.suffix, ctx.history, ctx.system_prompt, agent.model.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="233"/>
        <source>message_format:</source>
        <translation>message_format:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="237"/>
        <source>Load errors</source>
        <translation>Ladefehler</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="246"/>
        <location filename="../../settings/AgentDetailPane.cpp" line="257"/>
        <source>▸ Show raw TOML</source>
        <translation>▸ Rohes TOML anzeigen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="257"/>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Rohes TOML ausblenden</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="312"/>
        <source>No description provided.</source>
        <translation>Keine Beschreibung angegeben.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="344"/>
        <source>%1  (missing — not in provider library)</source>
        <translation>%1  (fehlt — nicht in der Anbieterbibliothek)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="352"/>
        <source>(provider default)</source>
        <translation>(Anbieterstandard)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="358"/>
        <source># effective request line
(unknown — provider instance not found)</source>
        <translation># effektive Anfragezeile
(unbekannt — Anbieterinstanz nicht gefunden)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="360"/>
        <source>effective request line</source>
        <translation>effektive Anfragezeile</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="363"/>
        <source>(no system role set)</source>
        <translation>(keine Systemrolle festgelegt)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="365"/>
        <source>(no context block)</source>
        <translation>(kein Kontextblock)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="368"/>
        <source>(matches every file)</source>
        <translation>(entspricht jeder Datei)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="371"/>
        <source>(inherited from parent / none)</source>
        <translation>(vom übergeordneten Element geerbt / keine)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="382"/>
        <source>(truncated at %1 bytes)</source>
        <translation>(gekürzt bei %1 Bytes)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="385"/>
        <source>(source file is empty)</source>
        <translation>(Quelldatei ist leer)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="388"/>
        <source>(source file unavailable: %1)</source>
        <translation>(Quelldatei nicht verfügbar: %1)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="394"/>
        <source>Bundled agents are read-only — duplicate to edit.</source>
        <translation>Mitgelieferte Agenten sind schreibgeschützt — duplizieren Sie zum Bearbeiten.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="398"/>
        <source>Bundled agents cannot be deleted.</source>
        <translation>Mitgelieferte Agenten können nicht gelöscht werden.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="407"/>
        <source>Select an agent</source>
        <translation>Agent auswählen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="409"/>
        <source>Pick an agent from the list to see its details.</source>
        <translation>Wählen Sie einen Agenten aus der Liste, um seine Details anzuzeigen.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="437"/>
        <source>error: %1</source>
        <translation>Fehler: %1</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="439"/>
        <source>warning: %1</source>
        <translation>Warnung: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentListPane</name>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="35"/>
        <source>Filter agents…</source>
        <translation>Agenten filtern…</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="186"/>
        <source>User</source>
        <translation>Benutzer</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="190"/>
        <source>Bundled</source>
        <translation>Mitgeliefert</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="194"/>
        <source>No agents match these filters.</source>
        <translation>Keine Agenten entsprechen diesen Filtern.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentRoleDialog</name>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="24"/>
        <source>Add Agent Role</source>
        <translation>Agent-Rolle hinzufügen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="26"/>
        <source>Duplicate Agent Role</source>
        <translation>Agent-Rolle duplizieren</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="28"/>
        <source>Edit Agent Role</source>
        <translation>Agent-Rolle bearbeiten</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="42"/>
        <source>e.g., Developer, Code Reviewer</source>
        <translation>z. B. Entwickler, Code-Reviewer</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="43"/>
        <source>Name:</source>
        <translation>Name:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="46"/>
        <source>e.g., developer, code_reviewer</source>
        <translation>z. B. developer, code_reviewer</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="47"/>
        <source>ID:</source>
        <translation>ID:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="50"/>
        <source>Brief description of this role...</source>
        <translation>Kurze Beschreibung dieser Rolle...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="52"/>
        <source>Description:</source>
        <translation>Beschreibung:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="56"/>
        <source>System Prompt:</source>
        <translation>System-Prompt:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="61"/>
        <source>You are an expert in...

Your role is to:
- Task 1
- Task 2
- Task 3</source>
        <translation>Sie sind ein Experte für...

Ihre Rolle ist es:
- Aufgabe 1
- Aufgabe 2
- Aufgabe 3</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="75"/>
        <source>ID cannot be changed for existing roles</source>
        <translation>Die ID kann für bestehende Rollen nicht geändert werden</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentsWidget</name>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="69"/>
        <source>Agents</source>
        <translation>Agenten</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="75"/>
        <source>Reload from disk</source>
        <translation>Von Datenträger neu laden</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="76"/>
        <source>Open agents folder</source>
        <translation>Agentenordner öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="189"/>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="197"/>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="203"/>
        <source>Open agent</source>
        <translation>Agent öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="190"/>
        <source>&apos;%1&apos; is bundled with the plugin and read-only.
Use Duplicate to create an editable user copy.</source>
        <translation>&apos;%1&apos; ist im Plugin enthalten und schreibgeschützt.
Verwenden Sie Duplizieren, um eine bearbeitbare Benutzerkopie zu erstellen.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="198"/>
        <source>Agent &apos;%1&apos; has no editable source file.</source>
        <translation>Agent &apos;%1&apos; hat keine bearbeitbare Quelldatei.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="204"/>
        <source>Could not open %1.</source>
        <translation>%1 konnte nicht geöffnet werden.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="212"/>
        <source>Duplicate</source>
        <translation>Duplizieren</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="228"/>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="236"/>
        <source>Delete Agent</source>
        <translation>Agent löschen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="229"/>
        <source>Delete agent &apos;%1&apos;?

This will remove the file:
%2</source>
        <translation>Agent &apos;%1&apos; löschen?

Dies entfernt die Datei:
%2</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="237"/>
        <source>Could not delete the agent file:
%1</source>
        <translation>Die Agentendatei konnte nicht gelöscht werden:
%1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::McpClientsListAspect</name>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="72"/>
        <source>Connected.</source>
        <translation>Verbunden.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="74"/>
        <source>Connecting…</source>
        <translation>Verbinde…</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="76"/>
        <source>Failed.</source>
        <translation>Fehlgeschlagen.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="77"/>
        <source>Failed: %1</source>
        <translation>Fehlgeschlagen: %1</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="81"/>
        <source>Disabled.</source>
        <translation>Deaktiviert.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="129"/>
        <source>everything (reference test server)</source>
        <translation>alles (Referenztestserver)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="138"/>
        <source>filesystem (local files)</source>
        <translation>Dateisystem (lokale Dateien)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="149"/>
        <source>memory (in-memory key-value)</source>
        <translation>memory (In-Memory-Schlüssel-Wert)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="158"/>
        <source>git (local git ops)</source>
        <translation>git (lokale Git-Operationen)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="167"/>
        <source>time (system clock)</source>
        <translation>time (Systemuhr)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="176"/>
        <source>qtcreator (Qt Creator&apos;s built-in MCP server)</source>
        <translation>qtcreator (in Qt Creator integrierter MCP-Server)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="185"/>
        <source>qt-docs (Qt documentation)</source>
        <translation>qt-docs (Qt-Dokumentation)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="193"/>
        <source>remote (SSE / HTTP)</source>
        <translation>remote (SSE / HTTP)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="232"/>
        <source>Server reports no tools.</source>
        <translation>Server meldet keine Tools.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="245"/>
        <source>Tools</source>
        <translation>Tools</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="271"/>
        <source>Enable / disable this MCP server</source>
        <translation>Diesen MCP-Server aktivieren / deaktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="285"/>
        <source>Remove this server from the config.</source>
        <translation>Diesen Server aus der Konfiguration entfernen.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="313"/>
        <source>Remove server</source>
        <translation>Server entfernen</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="314"/>
        <source>Remove server &apos;%1&apos; from the config?</source>
        <translation>Server &apos;%1&apos; aus der Konfiguration entfernen?</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="346"/>
        <source>Open Config</source>
        <translation>Konfiguration öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="348"/>
        <source>Refresh MCP List</source>
        <translation>MCP-Liste aktualisieren</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="359"/>
        <source>Note: restart Qt Creator to apply MCP changes to already-opened chats and running sessions.</source>
        <translation>Hinweis: Starten Sie Qt Creator neu, um MCP-Änderungen auf bereits geöffnete Chats und laufende Sitzungen anzuwenden.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="376"/>
        <source>Quick Setup</source>
        <translation>Schnelleinrichtung</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="379"/>
        <source>Pick a preset to append a ready-made server entry to the config (auto-suffixed if the name is taken).</source>
        <translation>Wählen Sie eine Voreinstellung, um einen vorgefertigten Servereintrag an die Konfiguration anzuhängen (automatisch mit Suffix versehen, wenn der Name vergeben ist).</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="382"/>
        <source>-- Select Preset --</source>
        <translation>-- Voreinstellung wählen --</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="410"/>
        <source>No servers configured. Add a preset below or edit the JSON.</source>
        <translation>Keine Server konfiguriert. Fügen Sie unten eine Voreinstellung hinzu oder bearbeiten Sie das JSON.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="415"/>
        <source>0 server(s) defined.</source>
        <translation>0 Server definiert.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="429"/>
        <source>%1 server(s) defined, %2 enabled.</source>
        <translation>%1 Server definiert, %2 aktiviert.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="475"/>
        <source>MCP configuration</source>
        <translation>MCP-Konfiguration</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="476"/>
        <source>Failed to write %1:
%2</source>
        <translation>Schreiben von %1 fehlgeschlagen:
%2</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProviderDetailPane</name>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="42"/>
        <source>Edit…</source>
        <translation>Bearbeiten…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="44"/>
        <source>Open in editor</source>
        <translation>Im Editor öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="46"/>
        <source>Open this provider&apos;s TOML file in Qt Creator. Bundled providers are read-only — duplicate first.</source>
        <translation>TOML-Datei dieses Anbieters in Qt Creator öffnen. Mitgelieferte Anbieter sind schreibgeschützt — zuerst duplizieren.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="48"/>
        <source>Duplicate…</source>
        <translation>Duplizieren…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="49"/>
        <source>Delete</source>
        <translation>Löschen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="50"/>
        <source>Cancel</source>
        <translation>Abbrechen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="51"/>
        <source>Save</source>
        <translation>Speichern</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="105"/>
        <source>Identity</source>
        <translation>Identität</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="117"/>
        <source>Name:</source>
        <translation>Name:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="118"/>
        <source>Client API:</source>
        <translation>Client-API:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="119"/>
        <source>The client API this provider speaks. Cannot be changed after creation.</source>
        <translation>Die Client-API, die dieser Anbieter spricht. Kann nach der Erstellung nicht geändert werden.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="121"/>
        <source>Description:</source>
        <translation>Beschreibung:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="124"/>
        <source>Endpoint</source>
        <translation>Endpunkt</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="131"/>
        <source>URL:</source>
        <translation>URL:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="132"/>
        <source>Base URL. Agents append their endpoint path (e.g. /chat/completions) to this.</source>
        <translation>Basis-URL. Agenten hängen ihren Endpunktpfad (z. B. /chat/completions) daran an.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="144"/>
        <source>Credentials</source>
        <translation>Anmeldedaten</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="147"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="316"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="370"/>
        <source>Enter API key…</source>
        <translation>API-Schlüssel eingeben…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="151"/>
        <source>Show / hide API key</source>
        <translation>API-Schlüssel anzeigen / ausblenden</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="155"/>
        <source>Save key</source>
        <translation>Schlüssel speichern</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="157"/>
        <source>Clear</source>
        <translation>Leeren</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="158"/>
        <source>Erase the stored API key for this provider</source>
        <translation>Den gespeicherten API-Schlüssel für diesen Anbieter löschen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="190"/>
        <source>API key:</source>
        <translation>API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="194"/>
        <source>Launch</source>
        <translation>Starten</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="204"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="410"/>
        <source>idle</source>
        <translation>im Leerlauf</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="205"/>
        <source>Start</source>
        <translation>Starten</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="206"/>
        <source>Stop</source>
        <translation>Stoppen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="207"/>
        <source>Restart</source>
        <translation>Neu starten</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="224"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
        <source>▸ Show launch terminal</source>
        <translation>▸ Start-Terminal anzeigen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
        <source>▾ Hide launch terminal</source>
        <translation>▾ Start-Terminal ausblenden</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="253"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
        <source>▸ Show raw TOML</source>
        <translation>▸ Rohes TOML anzeigen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Rohes TOML ausblenden</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="295"/>
        <source>No description provided.</source>
        <translation>Keine Beschreibung angegeben.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="309"/>
        <source>— not required (local provider)</source>
        <translation>— nicht erforderlich (lokaler Anbieter)</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="310"/>
        <source>This provider type does not use a key.</source>
        <translation>Dieser Anbietertyp verwendet keinen Schlüssel.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="312"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="366"/>
        <source>Stored — enter a new key to replace it.</source>
        <translation>Gespeichert — geben Sie einen neuen Schlüssel ein, um ihn zu ersetzen.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="313"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="367"/>
        <source>A key is stored. Type a new key and press Save key to replace it, or Clear to erase it.</source>
        <translation>Ein Schlüssel ist gespeichert. Geben Sie einen neuen Schlüssel ein und drücken Sie Schlüssel speichern, um ihn zu ersetzen, oder Leeren, um ihn zu löschen.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="317"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="371"/>
        <source>No key stored yet. Type a key and press Save key.</source>
        <translation>Noch kein Schlüssel gespeichert. Geben Sie einen Schlüssel ein und drücken Sie Schlüssel speichern.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="338"/>
        <source>Select a provider</source>
        <translation>Anbieter auswählen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="389"/>
        <source>No [launch] block. This provider is treated as external — the plugin will not spawn or supervise any process. Add a [launch] block to the TOML to have the plugin manage a local server here.</source>
        <translation>Kein [launch]-Block. Dieser Anbieter wird als extern behandelt — das Plugin wird keinen Prozess starten oder überwachen. Fügen Sie der TOML einen [launch]-Block hinzu, damit das Plugin hier einen lokalen Server verwaltet.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="400"/>
        <source> &lt;span style=&apos;color:gray&apos;&gt;(detached — survives Qt Creator restart)&lt;/span&gt;</source>
        <translation> &lt;span style=&apos;color:gray&apos;&gt;(abgekoppelt — überlebt Qt Creator-Neustart)&lt;/span&gt;</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="411"/>
        <source>starting…</source>
        <translation>wird gestartet…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="412"/>
        <source>probing…</source>
        <translation>wird geprüft…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="413"/>
        <source>ready</source>
        <translation>bereit</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="414"/>
        <source>stopping…</source>
        <translation>wird gestoppt…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="416"/>
        <source>failed</source>
        <translation>fehlgeschlagen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="417"/>
        <source>failed — %1</source>
        <translation>fehlgeschlagen — %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProvidersPageWidget</name>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="76"/>
        <source>Providers</source>
        <translation>Anbieter</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="92"/>
        <source>Filter providers…</source>
        <translation>Anbieter filtern…</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="136"/>
        <source>Open in editor</source>
        <translation>Im Editor öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="137"/>
        <source>Bundled providers are read-only. Use Duplicate to create an editable user copy first.</source>
        <translation>Mitgelieferte Anbieter sind schreibgeschützt. Verwenden Sie Duplizieren, um zuerst eine bearbeitbare Benutzerkopie zu erstellen.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="278"/>
        <source>No user instances yet.</source>
        <translation>Noch keine Benutzerinstanzen.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="279"/>
        <source>No bundled instances loaded.</source>
        <translation>Keine mitgelieferten Instanzen geladen.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="289"/>
        <source>User</source>
        <translation>Benutzer</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="290"/>
        <source>Bundled</source>
        <translation>Mitgeliefert</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="325"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="331"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="343"/>
        <source>Duplicate provider</source>
        <translation>Anbieter duplizieren</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="326"/>
        <source>Name for the new provider:</source>
        <translation>Name für den neuen Anbieter:</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="332"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="402"/>
        <source>An instance named &apos;%1&apos; already exists.</source>
        <translation>Eine Instanz mit dem Namen &apos;%1&apos; existiert bereits.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="362"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="367"/>
        <source>Delete provider</source>
        <translation>Anbieter löschen</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="363"/>
        <source>Delete user provider &apos;%1&apos;?

File: %2</source>
        <translation>Benutzeranbieter &apos;%1&apos; löschen?

Datei: %2</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="368"/>
        <source>Failed to delete file:
%1</source>
        <translation>Datei konnte nicht gelöscht werden:
%1</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="395"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="401"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="408"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="423"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="431"/>
        <source>Save</source>
        <translation>Speichern</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
        <source>Name cannot be empty.</source>
        <translation>Der Name darf nicht leer sein.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="410"/>
        <source>Save anyway?</source>
        <translation>Trotzdem speichern?</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="432"/>
        <source>Saved to:
%1

but could not remove the old file:
%2

Two provider files now describe this instance — delete the old file manually to avoid a duplicate-name error.</source>
        <translation>Gespeichert unter:
%1

aber die alte Datei konnte nicht entfernt werden:
%2

Zwei Anbieterdateien beschreiben jetzt diese Instanz — löschen Sie die alte Datei manuell, um einen Namenskonflikt zu vermeiden.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="471"/>
        <source>Clear API key</source>
        <translation>API-Schlüssel löschen</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="472"/>
        <source>Erase the stored API key for &apos;%1&apos;?</source>
        <translation>Den gespeicherten API-Schlüssel für &apos;%1&apos; löschen?</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::TagFilterStrip</name>
    <message>
        <location filename="../../settings/TagFilterStrip.cpp" line="115"/>
        <source>FILTER BY TAG</source>
        <translation>NACH TAG FILTERN</translation>
    </message>
    <message>
        <location filename="../../settings/TagFilterStrip.cpp" line="120"/>
        <source>clear</source>
        <translation>leeren</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Tools::TodoTool</name>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="100"/>
        <source>Error: &apos;tasks&apos; parameter (array) is required for &apos;add&apos; operation. Example: {&quot;operation&quot;: &quot;add&quot;, &quot;tasks&quot;: [&quot;Task 1&quot;, &quot;Task 2&quot;]}</source>
        <translation>Fehler: Parameter &apos;tasks&apos; (Array) ist für &apos;add&apos;-Operation erforderlich. Beispiel: {&quot;operation&quot;: &quot;add&quot;, &quot;tasks&quot;: [&quot;Task 1&quot;, &quot;Task 2&quot;]}</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="107"/>
        <source>Error: &apos;tasks&apos; array cannot be empty. Provide at least one task.</source>
        <translation>Fehler: Das Array &apos;tasks&apos; darf nicht leer sein. Geben Sie mindestens eine Aufgabe an.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="120"/>
        <source>Error: All tasks in &apos;tasks&apos; array are empty strings.</source>
        <translation>Fehler: Alle Aufgaben im Array &apos;tasks&apos; sind leere Zeichenketten.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="128"/>
        <source>Error: &apos;todo_ids&apos; parameter (array) is required for &apos;complete&apos; operation. Example: {&quot;operation&quot;: &quot;complete&quot;, &quot;todo_ids&quot;: [1, 2, 3]}</source>
        <translation>Fehler: Parameter &apos;todo_ids&apos; (Array) ist für &apos;complete&apos;-Operation erforderlich. Beispiel: {&quot;operation&quot;: &quot;complete&quot;, &quot;todo_ids&quot;: [1, 2, 3]}</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="135"/>
        <source>Error: &apos;todo_ids&apos; array cannot be empty. Provide at least one ID.</source>
        <translation>Fehler: Das Array &apos;todo_ids&apos; darf nicht leer sein. Geben Sie mindestens eine ID an.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="148"/>
        <source>Error: All IDs in &apos;todo_ids&apos; array are invalid. IDs must be positive integers.</source>
        <translation>Fehler: Alle IDs im Array &apos;todo_ids&apos; sind ungültig. IDs müssen positive Ganzzahlen sein.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="159"/>
        <source>Error: Unknown operation &apos;%1&apos;. Valid operations: &apos;add&apos;, &apos;complete&apos;, &apos;list&apos;</source>
        <translation>Fehler: Unbekannte Operation &apos;%1&apos;. Gültige Operationen: &apos;add&apos;, &apos;complete&apos;, &apos;list&apos;</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="192"/>
        <source>✓ Added 1 new task</source>
        <translation>✓ 1 neue Aufgabe hinzugefügt</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="193"/>
        <source>✓ Added %1 new tasks</source>
        <translation>✓ %1 neue Aufgaben hinzugefügt</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="203"/>
        <source>Error: No todos found in this session</source>
        <translation>Fehler: Keine Todos in dieser Sitzung gefunden</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="228"/>
        <source>✓ Marked 1 task as completed</source>
        <translation>✓ 1 Aufgabe als erledigt markiert</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="229"/>
        <source>✓ Marked %1 tasks as completed</source>
        <translation>✓ %1 Aufgaben als erledigt markiert</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="234"/>
        <source>⚠ %1 already completed</source>
        <translation>⚠ %1 bereits erledigt</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="238"/>
        <source>❌ Not found: %1</source>
        <translation>❌ Nicht gefunden: %1</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="255"/>
        <source>📋 TODO List: (empty)</source>
        <translation>📋 TODO-Liste: (leer)</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="264"/>
        <source>📋 TODO List:</source>
        <translation>📋 TODO-Liste:</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="287"/>
        <location filename="../../tools/TodoTool.cpp" line="329"/>
        <source>Progress: %1/%2 completed (%3%)</source>
        <translation>Fortschritt: %1/%2 erledigt (%3 %)</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="296"/>
        <location filename="../../tools/TodoTool.cpp" line="316"/>
        <source>📋 All tasks completed! 🎉</source>
        <translation>📋 Alle Aufgaben erledigt! 🎉</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="321"/>
        <source>📋 Remaining tasks:</source>
        <translation>📋 Verbleibende Aufgaben:</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateDialog</name>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="19"/>
        <source>QodeAssist Update</source>
        <translation>QodeAssist-Update</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="27"/>
        <source>QodeAssist is an open-source project that helps
developers write better code. If you find it useful, please</source>
        <translation>QodeAssist ist ein Open-Source-Projekt, das
Entwicklern hilft, besseren Code zu schreiben. Wenn Sie es nützlich finden, bitte</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="54"/>
        <source>QodeAssistUpdater - convenient tool for plugin installation and updates</source>
        <translation>QodeAssistUpdater - praktisches Tool zur Plugin-Installation und für Updates</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="60"/>
        <source>Download QodeAssistUpdater</source>
        <translation>QodeAssistUpdater herunterladen</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="70"/>
        <location filename="../../settings/UpdateDialog.cpp" line="127"/>
        <source>A new version of QodeAssist is available!</source>
        <translation>Eine neue Version von QodeAssist ist verfügbar!</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="76"/>
        <location filename="../../settings/UpdateDialog.cpp" line="128"/>
        <source>Version %1 is now available - you have %2</source>
        <translation>Version %1 ist jetzt verfügbar - Sie haben %2</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="80"/>
        <source>Release Notes:</source>
        <translation>Versionshinweise:</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="89"/>
        <source>Open Release Page</source>
        <translation>Release-Seite öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="92"/>
        <source>Open Plugin Folder</source>
        <translation>Plugin-Ordner öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="95"/>
        <source>Close</source>
        <translation>Schließen</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="121"/>
        <source>QodeAssist is up to date</source>
        <translation>QodeAssist ist auf dem neuesten Stand</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="123"/>
        <source>You are using the latest version: %1</source>
        <translation>Sie verwenden die neueste Version: %1</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="135"/>
        <source>No release notes available. Check the release page for more information.</source>
        <translation>Keine Versionshinweise verfügbar. Weitere Informationen finden Sie auf der Release-Seite.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateStatusWidget</name>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="28"/>
        <source>Update</source>
        <translation>Aktualisieren</translation>
    </message>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="45"/>
        <source>New version: v%1</source>
        <translation>Neue Version: v%1</translation>
    </message>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="48"/>
        <source>Check update information</source>
        <translation>Update-Informationen prüfen</translation>
    </message>
</context>
<context>
    <name>QtC::QodeAssist</name>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="141"/>
        <source>Cannot create user provider folder:
%1</source>
        <translation>Benutzeranbieterordner kann nicht erstellt werden:
%1</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="147"/>
        <source>Cannot pick a free filename in:
%1</source>
        <translation>Es kann kein freier Dateiname gewählt werden in:
%1</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="153"/>
        <source>Cannot write %1:
%2</source>
        <translation>Kann %1 nicht schreiben:
%2</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="159"/>
        <source>Write failed for %1:
%2</source>
        <translation>Schreiben fehlgeschlagen für %1:
%2</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="79"/>
        <location filename="../../settings/GeneralSettings.cpp" line="86"/>
        <location filename="../../settings/GeneralSettings.cpp" line="93"/>
        <source>Quick Setup</source>
        <translation>Schnelleinrichtung</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="82"/>
        <location filename="../../settings/GeneralSettings.cpp" line="89"/>
        <location filename="../../settings/GeneralSettings.cpp" line="96"/>
        <location filename="../../settings/SettingsTr.hpp" line="81"/>
        <source>Configure API Key</source>
        <translation>API-Schlüssel konfigurieren</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="83"/>
        <location filename="../../settings/GeneralSettings.cpp" line="90"/>
        <location filename="../../settings/GeneralSettings.cpp" line="97"/>
        <source>Open Provider Settings to configure API keys</source>
        <translation>Anbietereinstellungen öffnen, um API-Schlüssel zu konfigurieren</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="129"/>
        <location filename="../../settings/GeneralSettings.cpp" line="208"/>
        <location filename="../../settings/GeneralSettings.cpp" line="245"/>
        <source>Load configuration (includes predefined cloud models)</source>
        <translation>Konfiguration laden (enthält vordefinierte Cloud-Modelle)</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="251"/>
        <location filename="../../settings/GeneralSettings.cpp" line="255"/>
        <location filename="../../settings/GeneralSettings.cpp" line="259"/>
        <source>Show template information</source>
        <translation>Vorlageninformationen anzeigen</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="522"/>
        <source>Template Information</source>
        <translation>Vorlageninformationen</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="523"/>
        <source>Template</source>
        <translation>Vorlage</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="526"/>
        <source>Description:</source>
        <translation>Beschreibung:</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="744"/>
        <source>Failed to save configuration. Check logs for details.</source>
        <translation>Konfiguration konnte nicht gespeichert werden. Details siehe Logs.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="785"/>
        <source>[Preset] configurations are predefined cloud models ready to use.</source>
        <translation>[Preset]-Konfigurationen sind vordefinierte, sofort einsatzbereite Cloud-Modelle.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="832"/>
        <source>Predefined configurations cannot be deleted.</source>
        <translation>Vordefinierte Konfigurationen können nicht gelöscht werden.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="850"/>
        <source>Failed to delete configuration.</source>
        <translation>Konfiguration konnte nicht gelöscht werden.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="912"/>
        <source>-- Select Preset --</source>
        <translation>-- Voreinstellung wählen --</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="11"/>
        <location filename="../../settings/ProjectSettings.cpp" line="22"/>
        <location filename="../../settings/ProjectSettings.cpp" line="23"/>
        <source>Enable QodeAssist</source>
        <translation>QodeAssist aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="12"/>
        <source>General</source>
        <translation>Allgemein</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="14"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="346"/>
        <location filename="../../settings/ToolsSettings.cpp" line="167"/>
        <location filename="../../settings/McpSettings.cpp" line="79"/>
        <location filename="../../settings/ProviderSettings.cpp" line="126"/>
        <source>Reset Page to Defaults</source>
        <translation>Seite auf Standardwerte zurücksetzen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="15"/>
        <source>Check Update</source>
        <translation>Nach Update suchen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="16"/>
        <source>Select...</source>
        <translation>Auswählen...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="17"/>
        <source>Provider:</source>
        <translation>Anbieter:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="18"/>
        <source>Model:</source>
        <translation>Modell:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="19"/>
        <source>Template:</source>
        <translation>Vorlage:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="20"/>
        <source>URL:</source>
        <translation>URL:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="21"/>
        <source>Status:</source>
        <translation>Status:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="22"/>
        <source>Test</source>
        <translation>Testen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="23"/>
        <source>Enable Logging</source>
        <translation>Logging aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="25"/>
        <source>Log messages are visible in General Messages pane</source>
        <translation>Log-Nachrichten sind im Bereich Allgemeine Meldungen sichtbar</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="27"/>
        <source>Check for updates when Qt Creator starts</source>
        <translation>Beim Start von Qt Creator nach Updates suchen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="28"/>
        <source>Enable Chat(If you have performance issues try disabling this, need restart QtC)</source>
        <translation>Chat aktivieren (Bei Leistungsproblemen versuchen Sie, dies zu deaktivieren, Neustart von QtC erforderlich)</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="31"/>
        <source>Custom endpoint:</source>
        <translation>Benutzerdefinierter Endpunkt:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="33"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="27"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="543"/>
        <source>Code Completion</source>
        <translation>Code-Vervollständigung</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="34"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="30"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="391"/>
        <source>Chat Assistant</source>
        <translation>Chat-Assistent</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="35"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="27"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="400"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="85"/>
        <source>Quick Refactor</source>
        <translation>Schnelles Refactoring</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="36"/>
        <source>Chat Compression</source>
        <translation>Chat-Komprimierung</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="37"/>
        <source>Agent Pipelines</source>
        <translation>Agent-Pipelines</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="38"/>
        <source>Inline completions while you type. Matchers run on every request.</source>
        <translation>Inline-Vervollständigungen während der Eingabe. Matcher laufen bei jeder Anfrage.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="41"/>
        <source>Conversational assistant in the QodeAssist panel.</source>
        <translation>Konversationsassistent im QodeAssist-Panel.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="43"/>
        <source>Used when a chat conversation needs to be summarised to stay within context.</source>
        <translation>Wird verwendet, wenn eine Chat-Unterhaltung zusammengefasst werden muss, um im Kontext zu bleiben.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="46"/>
        <source>Inline editor-driven refactors via the Quick Refactor action.</source>
        <translation>Inline-, editorgesteuerte Refaktorierungen über die Aktion Schnelles Refactoring.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="48"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="465"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="348"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="356"/>
        <location filename="../../settings/ToolsSettings.cpp" line="235"/>
        <location filename="../../settings/McpSettings.cpp" line="148"/>
        <location filename="../../settings/ProviderSettings.cpp" line="199"/>
        <source>Reset Settings</source>
        <translation>Einstellungen zurücksetzen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="49"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="466"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="349"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="357"/>
        <location filename="../../settings/ToolsSettings.cpp" line="236"/>
        <location filename="../../settings/McpSettings.cpp" line="149"/>
        <location filename="../../settings/ProviderSettings.cpp" line="200"/>
        <source>Are you sure you want to reset all settings to default values?</source>
        <translation>Sind Sie sicher, dass Sie alle Einstellungen auf Standardwerte zurücksetzen möchten?</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="52"/>
        <source>Current template description:</source>
        <translation>Beschreibung der aktuellen Vorlage:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="54"/>
        <source>Connection Error</source>
        <translation>Verbindungsfehler</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="56"/>
        <source>Unable to retrieve the list of models from the server.</source>
        <translation>Die Liste der Modelle konnte nicht vom Server abgerufen werden.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="57"/>
        <source>Please verify the following:
- Server is running and accessible
- URL is correct
- Provider is properly configured
- API key is correctly set (if required)

You can try selecting a different provider or changing the URL:</source>
        <translation>Bitte überprüfen Sie Folgendes:
- Server läuft und ist erreichbar
- URL ist korrekt
- Anbieter ist korrekt konfiguriert
- API-Schlüssel ist korrekt gesetzt (falls erforderlich)

Sie können versuchen, einen anderen Anbieter auszuwählen oder die URL zu ändern:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="65"/>
        <source>Select Provider</source>
        <translation>Anbieter auswählen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="66"/>
        <source>Select URL</source>
        <translation>URL auswählen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="67"/>
        <source>Close</source>
        <translation>Schließen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="68"/>
        <source>Model Selection</source>
        <translation>Modellauswahl</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="69"/>
        <source>Select from previously used models or enter a new model name.

If entering a new model name:
• For providers with automatic listing - ensure the model is installed
• For providers without listing support - check provider&apos;s documentation
• Make sure the model name matches exactly</source>
        <translation>Wählen Sie aus zuvor verwendeten Modellen oder geben Sie einen neuen Modellnamen ein.

Bei Eingabe eines neuen Modellnamens:
• Bei Anbietern mit automatischer Auflistung - stellen Sie sicher, dass das Modell installiert ist
• Bei Anbietern ohne Auflistungsunterstützung - prüfen Sie die Dokumentation des Anbieters
• Stellen Sie sicher, dass der Modellname exakt übereinstimmt</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="76"/>
        <source>Model name:</source>
        <translation>Modellname:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="77"/>
        <source>OK</source>
        <translation>OK</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="78"/>
        <source>Cancel</source>
        <translation>Abbrechen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="80"/>
        <source>Enter Model Manually</source>
        <translation>Modell manuell eingeben</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="82"/>
        <source>URL Selection</source>
        <translation>URL-Auswahl</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="83"/>
        <source>Select from the list of default and previously used URLs, or enter a custom one.
Please ensure the selected URL is accessible and the service is running.</source>
        <translation>Wählen Sie aus der Liste der Standard- und zuvor verwendeten URLs, oder geben Sie eine eigene ein.
Stellen Sie sicher, dass die ausgewählte URL erreichbar ist und der Dienst läuft.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="88"/>
        <source>Use default provider URL or from history</source>
        <translation>Standard-Anbieter-URL oder URL aus dem Verlauf verwenden</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="89"/>
        <source>Enter custom URL</source>
        <translation>Benutzerdefinierte URL eingeben</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="91"/>
        <source>Enter Model Name Manually</source>
        <translation>Modellnamen manuell eingeben</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="93"/>
        <source>Auto Completion Settings</source>
        <translation>Einstellungen für automatische Vervollständigung</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="96"/>
        <source>Add new preset for language</source>
        <translation>Neue Voreinstellung für Sprache hinzufügen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="98"/>
        <source>Save Config...</source>
        <translation>Konfiguration speichern...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="99"/>
        <source>Load Config...</source>
        <translation>Konfiguration laden...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="100"/>
        <source>Open Folder</source>
        <translation>Ordner öffnen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="101"/>
        <source>Save Configuration</source>
        <translation>Konfiguration speichern</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="102"/>
        <source>Load Configuration</source>
        <translation>Konfiguration laden</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="103"/>
        <source>Configuration name:</source>
        <translation>Konfigurationsname:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="104"/>
        <source>Select Configuration</source>
        <translation>Konfiguration auswählen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="105"/>
        <source>No saved configurations found.</source>
        <translation>Keine gespeicherten Konfigurationen gefunden.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="106"/>
        <source>Configuration saved successfully.</source>
        <translation>Konfiguration erfolgreich gespeichert.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="107"/>
        <source>Configuration loaded successfully.</source>
        <translation>Konfiguration erfolgreich geladen.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="108"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="60"/>
        <source>Delete</source>
        <translation>Löschen</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="109"/>
        <source>Are you sure you want to delete this configuration?</source>
        <translation>Sind Sie sicher, dass Sie diese Konfiguration löschen möchten?</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="31"/>
        <source>Enable Auto Complete</source>
        <translation>Automatische Vervollständigung aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="36"/>
        <source>Enable Multiline Completion</source>
        <translation>Mehrzeilige Vervollständigung aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="38"/>
        <source>Text output proccessing mode:</source>
        <translation>Verarbeitungsmodus für Textausgabe:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="46"/>
        <source>Auto: Automatically detects codeblock and applies processing when found, other text as comments
Force Processing: Always processes text with codeblock formatting and other text as comments
Raw Text: Shows unprocessed text without any formatting</source>
        <translation>Auto: Erkennt Codeblöcke automatisch und wendet bei Fund eine Verarbeitung an, anderer Text als Kommentare
Verarbeitung erzwingen: Verarbeitet Text immer mit Codeblock-Formatierung und anderen Text als Kommentare
Rohtext: Zeigt unverarbeiteten Text ohne jegliche Formatierung</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="52"/>
        <source>Completion trigger mode:</source>
        <translation>Auslösemodus für Vervollständigung:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="59"/>
        <source>Hint-based: Shows a hint when typing, press Tab to request completion
Automatic: Automatically requests completion after typing threshold</source>
        <translation>Hinweisbasiert: Zeigt einen Hinweis bei der Eingabe, drücken Sie Tab, um eine Vervollständigung anzufordern
Automatisch: Fordert automatisch eine Vervollständigung nach Erreichen des Eingabeschwellwerts an</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="62"/>
        <source>Completion mode:</source>
        <translation>Vervollständigungsmodus:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="69"/>
        <source>Automatic: requests completion while typing (with smart context gates).
Manual: no auto-triggering; invoke via the &apos;Request QodeAssist Suggestion&apos; shortcut (default Ctrl+Alt+Q, reconfigurable in Preferences &gt; Keyboard).</source>
        <translation>Automatisch: fordert Vervollständigung während der Eingabe an (mit intelligenten Kontext-Gates).
Manuell: keine automatische Auslösung; aufrufbar über den Shortcut &apos;QodeAssist-Vorschlag anfordern&apos; (Standard Strg+Alt+Q, in Einstellungen &gt; Tastatur neu konfigurierbar).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="74"/>
        <source>Smart context-aware triggering</source>
        <translation>Intelligente kontextbewusste Auslösung</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="77"/>
        <source>When enabled, auto-completion is suppressed in places where Qt Creator&apos;s built-in completion is usually stronger (middle of an identifier, right after &apos;.&apos;, &apos;-&gt;&apos;, &apos;::&apos;) and is triggered more eagerly after structural characters like &apos;(&apos;, &apos;,&apos;, &apos;{&apos;, &apos;=&apos; and on fresh indented lines.</source>
        <translation>Wenn aktiviert, wird die automatische Vervollständigung an Stellen unterdrückt, an denen die eingebaute Vervollständigung von Qt Creator üblicherweise stärker ist (mitten in einem Bezeichner, direkt nach &apos;.&apos;, &apos;-&gt;&apos;, &apos;::&apos;), und wird nach strukturellen Zeichen wie &apos;(&apos;, &apos;,&apos;, &apos;{&apos;, &apos;=&apos; sowie in frisch eingerückten Zeilen verstärkt ausgelöst.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="83"/>
        <source>Don&apos;t dismiss Qt Creator&apos;s completion popup</source>
        <translation>Vervollständigungs-Popup von Qt Creator nicht schließen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="86"/>
        <source>When enabled, an AI completion arriving while Qt Creator&apos;s own completion popup is already visible will not force it closed. The LLM suggestion still appears inline.</source>
        <translation>Wenn aktiviert, schließt eine eintreffende KI-Vervollständigung das bereits sichtbare eigene Vervollständigungs-Popup von Qt Creator nicht zwangsweise. Der LLM-Vorschlag erscheint weiterhin inline.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="91"/>
        <source>Cancel in-flight request on new input</source>
        <translation>Laufende Anfrage bei neuer Eingabe abbrechen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="94"/>
        <source>When enabled, every new keystroke cancels any completion request already in flight and restarts the debounce timer. Useful for slow local models where an outdated answer is rarely worth waiting for.
When disabled (default), the in-flight request is kept; when the answer arrives, the plugin compares it with characters typed in the meantime and either trims the matching prefix or drops the answer.</source>
        <translation>Wenn aktiviert, bricht jeder neue Tastendruck jede bereits laufende Vervollständigungsanfrage ab und startet den Debounce-Timer neu. Nützlich für langsame lokale Modelle, bei denen eine veraltete Antwort selten das Warten wert ist.
Wenn deaktiviert (Standard), wird die laufende Anfrage beibehalten; wenn die Antwort eintrifft, vergleicht das Plugin sie mit den in der Zwischenzeit eingegebenen Zeichen und schneidet entweder das übereinstimmende Präfix ab oder verwirft die Antwort.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="102"/>
        <source>with delay(ms)</source>
        <translation>mit Verzögerung (ms)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="104"/>
        <source>Delay before sending the completion request.
(Only for Automatic trigger mode)</source>
        <translation>Verzögerung vor dem Senden der Vervollständigungsanfrage.
(Nur für automatischen Auslösemodus)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="110"/>
        <source>AI suggestion triggers after typing</source>
        <translation>KI-Vorschlag wird ausgelöst nach Eingabe von</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="112"/>
        <source>The number of characters that need to be typed within the typing interval before an AI suggestion request is sent automatically.
(Only for Automatic trigger mode)</source>
        <translation>Die Anzahl der Zeichen, die innerhalb des Eingabeintervalls eingegeben werden müssen, bevor eine KI-Vorschlagsanfrage automatisch gesendet wird.
(Nur für automatischen Auslösemodus)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="119"/>
        <source>character(s) within(ms)</source>
        <translation>Zeichen innerhalb (ms)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="121"/>
        <source>The time window (in milliseconds) during which the character threshold must be met to trigger an AI suggestion request automatically.
(Only for Automatic trigger mode)</source>
        <translation>Das Zeitfenster (in Millisekunden), in dem der Zeichenschwellwert erreicht werden muss, um eine KI-Vorschlagsanfrage automatisch auszulösen.
(Nur für automatischen Auslösemodus)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="128"/>
        <source>Hint shows after typing</source>
        <translation>Hinweis wird angezeigt nach Eingabe von</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="130"/>
        <source>The number of characters that need to be typed before the hint widget appears (only for Hint-based trigger mode).</source>
        <translation>Die Anzahl der Zeichen, die eingegeben werden müssen, bevor das Hinweis-Widget erscheint (nur für hinweisbasierten Auslösemodus).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="136"/>
        <source>Hint auto-hide timeout (ms)</source>
        <translation>Zeitlimit für automatisches Ausblenden des Hinweises (ms)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="138"/>
        <source>Time in milliseconds after which the hint widget will automatically hide (only for Hint-based trigger mode).</source>
        <translation>Zeit in Millisekunden, nach der das Hinweis-Widget automatisch ausgeblendet wird (nur für hinweisbasierten Auslösemodus).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="143"/>
        <source>Trigger key:</source>
        <translation>Auslösetaste:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="154"/>
        <source>Key to press for requesting completion when hint is visible.
Space is recommended as least conflicting with context menu.
(Only for Hint-based trigger mode)</source>
        <translation>Taste, die zum Anfordern der Vervollständigung gedrückt werden soll, wenn der Hinweis sichtbar ist.
Leertaste wird empfohlen, da sie am wenigsten mit dem Kontextmenü kollidiert.
(Nur für hinweisbasierten Auslösemodus)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="160"/>
        <source>Ignore spaces and tabs in character count</source>
        <translation>Leerzeichen und Tabulatoren bei Zeichenzählung ignorieren</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="163"/>
        <source>When enabled, spaces and tabs are not counted towards the character threshold for triggering completions. This helps trigger completions based on actual code characters only.</source>
        <translation>Wenn aktiviert, werden Leerzeichen und Tabulatoren nicht auf den Zeichenschwellwert zum Auslösen von Vervollständigungen angerechnet. Dies hilft, Vervollständigungen nur basierend auf tatsächlichen Code-Zeichen auszulösen.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="169"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="67"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="31"/>
        <source>Temperature:</source>
        <translation>Temperatur:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="175"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="73"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="37"/>
        <source>Max Tokens:</source>
        <translation>Max. Token:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="182"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="80"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="44"/>
        <source>Top P:</source>
        <translation>Top P:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="191"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="89"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="53"/>
        <source>Top K:</source>
        <translation>Top K:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="199"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="97"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="61"/>
        <source>Presence Penalty:</source>
        <translation>Presence Penalty:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="208"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="106"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="70"/>
        <source>Frequency Penalty:</source>
        <translation>Frequency Penalty:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="217"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="147"/>
        <source>Read Full File</source>
        <translation>Gesamte Datei lesen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="220"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="150"/>
        <source>Read Strings Before Cursor:</source>
        <translation>Zeichenketten vor Cursor lesen:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="228"/>
        <source>Read Strings After Cursor:</source>
        <translation>Zeichenketten nach Cursor lesen:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="234"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="116"/>
        <source>Use System Prompt</source>
        <translation>System-Prompt verwenden</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="245"/>
        <source>Use special system prompt and user message for non FIM models</source>
        <translation>Speziellen System-Prompt und Benutzernachricht für Nicht-FIM-Modelle verwenden</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="249"/>
        <source>System prompt for non FIM models:</source>
        <translation>System-Prompt für Nicht-FIM-Modelle:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="274"/>
        <source>User message for non FIM models:</source>
        <translation>Benutzernachricht für Nicht-FIM-Modelle:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="281"/>
        <source>Additional Programming Languages for handling: Example: rust,//,rust rs,rs</source>
        <translation>Zusätzliche Programmiersprachen zur Behandlung: Beispiel: rust,//,rust rs,rs</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="282"/>
        <source>Specify additional programming languages in format: name,comment_style,model_names,extensions
Example: rust,//,rust rs,rs
Fields: language name, comment prefix, names from LLM (space-separated), file extensions (space-separated)</source>
        <translation>Geben Sie zusätzliche Programmiersprachen im Format an: name,comment_style,model_names,extensions
Beispiel: rust,//,rust rs,rs
Felder: Sprachname, Kommentar-Präfix, Namen vom LLM (durch Leerzeichen getrennt), Dateierweiterungen (durch Leerzeichen getrennt)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="290"/>
        <source>Show progress indicator during code completion</source>
        <translation>Fortschrittsanzeige während der Code-Vervollständigung anzeigen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="294"/>
        <source>Abort existing assist on new completion request</source>
        <translation>Bestehende Assist-Anzeige bei neuer Vervollständigungsanfrage abbrechen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="296"/>
        <source>When enabled, cancels any active Qt Creator code assist popup before requesting LLM completion.
(Only for Automatic trigger mode)</source>
        <translation>Wenn aktiviert, wird jedes aktive Code-Assist-Popup von Qt Creator abgebrochen, bevor eine LLM-Vervollständigung angefordert wird.
(Nur für automatischen Auslösemodus)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="302"/>
        <source>Include context from open files</source>
        <translation>Kontext aus geöffneten Dateien einbeziehen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="307"/>
        <source>Max Changes Cache Size:</source>
        <translation>Maximale Größe des Änderungs-Caches:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="316"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="129"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="80"/>
        <source>Time to suspend Ollama after completion request (in minutes), Only Ollama,  -1 to disable</source>
        <translation>Zeit zum Aussetzen von Ollama nach Vervollständigungsanfrage (in Minuten), nur Ollama,  -1 zum Deaktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="323"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="136"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="88"/>
        <source>Context Window:</source>
        <translation>Kontextfenster:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="329"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="167"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="127"/>
        <source>Reasoning effort:</source>
        <translation>Reasoning-Aufwand:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="338"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="176"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="136"/>
        <source>Constrains effort on reasoning for OpenAI gpt-5 and o-series models:

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

Note: Reducing effort = faster responses + fewer tokens</source>
        <translation>Schränkt den Reasoning-Aufwand für OpenAI gpt-5- und o-Serie-Modelle ein:

Kein: Kein Reasoning (nur gpt-5.1)
Minimal: Minimaler Reasoning-Aufwand (nur o-Serie)
Niedrig: Geringer Reasoning-Aufwand
Mittel: Ausgewogenes Reasoning (Standard für die meisten Modelle)
Hoch: Maximaler Reasoning-Aufwand (nur gpt-5-pro unterstützt dies)

Hinweis: Geringerer Aufwand = schnellere Antworten + weniger Token</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="383"/>
        <source>Prompts for FIM models</source>
        <translation>Prompts für FIM-Modelle</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="385"/>
        <source>Prompts for Non FIM models</source>
        <translation>Prompts für Nicht-FIM-Modelle</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="416"/>
        <source>General Settings</source>
        <translation>Allgemeine Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="418"/>
        <source>Automatic Trigger Mode</source>
        <translation>Automatischer Auslösemodus</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="420"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="316"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="278"/>
        <source>General Parameters</source>
        <translation>Allgemeine Parameter</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="425"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="320"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="282"/>
        <source>Advanced Parameters</source>
        <translation>Erweiterte Parameter</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="428"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="323"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="288"/>
        <source>Context Settings</source>
        <translation>Kontexteinstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="430"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="312"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="286"/>
        <source>OpenAI Responses API</source>
        <translation>OpenAI Responses API</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="432"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="328"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="294"/>
        <location filename="../../settings/ProviderSettings.cpp" line="152"/>
        <source>Ollama Settings</source>
        <translation>Ollama-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="33"/>
        <source>Sync open files with assistant by default</source>
        <translation>Offene Dateien standardmäßig mit Assistent synchronisieren</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="38"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="185"/>
        <source>Enable autosave when message received</source>
        <translation>Automatisches Speichern bei Nachrichtenempfang aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="41"/>
        <source>Enable chat in bottom toolbar</source>
        <translation>Chat in unterer Symbolleiste aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="45"/>
        <source>Enable chat in navigation panel</source>
        <translation>Chat in Navigationsbereich aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="49"/>
        <source>Enable tools/function calling</source>
        <translation>Tools-/Function-Calling aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="50"/>
        <source>When enabled, AI can use tools to read files, search project, and build code</source>
        <translation>Wenn aktiviert, kann die KI Tools verwenden, um Dateien zu lesen, das Projekt zu durchsuchen und Code zu bauen</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="54"/>
        <source>Auto-compress chat when session tokens exceed:</source>
        <translation>Chat automatisch komprimieren, wenn Sitzungs-Token überschreiten:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="55"/>
        <source>After each assistant response, if the running session token total exceeds the threshold, the chat is summarized and a new compressed chat is started automatically. The original chat is preserved on disk.</source>
        <translation>Nach jeder Assistentenantwort wird der Chat zusammengefasst und ein neuer komprimierter Chat automatisch gestartet, sofern die laufende Sitzungs-Token-Gesamtzahl den Schwellwert überschreitet. Der ursprüngliche Chat bleibt auf dem Datenträger erhalten.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="142"/>
        <source>Enable extended thinking mode.</source>
        <translation>Erweiterten Thinking-Modus aktivieren.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="144"/>
        <source>Enable extended thinking mode for complex reasoning tasks.This provides step-by-step reasoning before the final answer.Temperature is 1.0 accordingly API requirement</source>
        <translation>Erweiterten Thinking-Modus für komplexe Reasoning-Aufgaben aktivieren. Dies liefert ein schrittweises Reasoning vor der endgültigen Antwort. Die Temperatur beträgt gemäß API-Anforderung 1.0.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="150"/>
        <source>Thinking budget tokens:</source>
        <translation>Thinking-Budget-Token:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="152"/>
        <source>Maximum number of tokens Claude can use for internal reasoning. Larger budgets improve quality but increase latency. Minimum: 1024, Recommended: 10000-16000.</source>
        <translation>Maximale Anzahl von Token, die Claude für internes Reasoning verwenden kann. Größere Budgets verbessern die Qualität, erhöhen aber die Latenz. Minimum: 1024, empfohlen: 10000-16000.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="158"/>
        <source>Thinking mode max output tokens:</source>
        <translation>Maximale Ausgabe-Token im Thinking-Modus:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="160"/>
        <source>Maximum number of tokens for the final response when thinking mode is enabled. Set to -1 to use the default max tokens setting. Recommended: 4096-16000.</source>
        <translation>Maximale Anzahl von Token für die endgültige Antwort, wenn der Thinking-Modus aktiviert ist. Auf -1 setzen, um die Standardeinstellung für maximale Token zu verwenden. Empfohlen: 4096-16000.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="188"/>
        <source>Text Font:</source>
        <translation>Textschrift:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="197"/>
        <source>Text Font Size:</source>
        <translation>Textschriftgröße:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="201"/>
        <source>Code Font:</source>
        <translation>Codeschrift:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="232"/>
        <source>Code Font Size:</source>
        <translation>Codeschriftgröße:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="236"/>
        <source>Text Format:</source>
        <translation>Textformat:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="244"/>
        <source>Chat Renderer:</source>
        <translation>Chat-Renderer:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="297"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="329"/>
        <source>Chat Settings</source>
        <translation>Chat-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="304"/>
        <location filename="../../settings/ToolsSettings.cpp" line="27"/>
        <location filename="../../settings/ToolsSettings.cpp" line="190"/>
        <location filename="../../settings/ToolsSettings.cpp" line="269"/>
        <source>Tools</source>
        <translation>Tools</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="308"/>
        <source>Extended Thinking (Claude)</source>
        <translation>Erweitertes Thinking (Claude)</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="405"/>
        <source>Agent Roles</source>
        <translation>Agent-Rollen</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="93"/>
        <source>Enable Tools</source>
        <translation>Tools aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="95"/>
        <source>Enable AI tools/functions for quick refactoring (allows reading project files, searching code, etc.)</source>
        <translation>KI-Tools/-Funktionen für schnelles Refactoring aktivieren (ermöglicht das Lesen von Projektdateien, Codesuche usw.)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="101"/>
        <source>Enable Thinking Mode</source>
        <translation>Thinking-Modus aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="103"/>
        <source>Enable extended thinking mode for complex refactoring tasks (supported by compatible models like Claude and Google AI)</source>
        <translation>Erweiterten Thinking-Modus für komplexe Refactoring-Aufgaben aktivieren (unterstützt von kompatiblen Modellen wie Claude und Google AI)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="109"/>
        <source>Thinking Budget Tokens:</source>
        <translation>Thinking-Budget-Token:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="111"/>
        <source>Number of tokens allocated for thinking process. Use -1 for dynamic thinking (model decides), 0 to disable, or positive value for custom budget</source>
        <translation>Anzahl der für den Thinking-Prozess zugewiesenen Token. Verwenden Sie -1 für dynamisches Thinking (Modell entscheidet), 0 zum Deaktivieren oder einen positiven Wert für ein benutzerdefiniertes Budget</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="118"/>
        <source>Thinking Max Output Tokens:</source>
        <translation>Maximale Ausgabe-Token im Thinking:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="120"/>
        <source>Maximum output tokens when thinking mode is enabled (includes thinking + response)</source>
        <translation>Maximale Ausgabe-Token, wenn der Thinking-Modus aktiviert ist (umfasst Thinking + Antwort)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="154"/>
        <source>Lines Before Cursor/Selection:</source>
        <translation>Zeilen vor Cursor/Auswahl:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="156"/>
        <source>Number of lines to include before cursor or selection for context</source>
        <translation>Anzahl der Zeilen, die vor Cursor oder Auswahl für den Kontext einbezogen werden</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="161"/>
        <source>Lines After Cursor/Selection:</source>
        <translation>Zeilen nach Cursor/Auswahl:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="163"/>
        <source>Number of lines to include after cursor or selection for context</source>
        <translation>Anzahl der Zeilen, die nach Cursor oder Auswahl für den Kontext einbezogen werden</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="168"/>
        <source>Display Mode:</source>
        <translation>Anzeigemodus:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="170"/>
        <source>Choose how to display refactoring suggestions:
- Inline Widget: Shows refactor in a widget overlay with Apply/Decline buttons (default)
- Qt Creator Suggestion: Uses Qt Creator&apos;s built-in suggestion system</source>
        <translation>Wählen Sie, wie Refactoring-Vorschläge angezeigt werden sollen:
- Inline-Widget: Zeigt das Refactoring in einem Widget-Overlay mit Schaltflächen Anwenden/Ablehnen an (Standard)
- Qt Creator-Vorschlag: Verwendet das in Qt Creator integrierte Vorschlagssystem</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="175"/>
        <source>Inline Widget</source>
        <translation>Inline-Widget</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="176"/>
        <source>Qt Creator Suggestion</source>
        <translation>Qt Creator-Vorschlag</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="180"/>
        <source>Widget Orientation:</source>
        <translation>Widget-Ausrichtung:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="182"/>
        <source>Choose default orientation for refactor widget:
- Horizontal: Original and refactored code side by side (default)
- Vertical: Original and refactored code stacked vertically</source>
        <translation>Standardausrichtung für Refactoring-Widget wählen:
- Horizontal: Original- und refaktorierter Code nebeneinander (Standard)
- Vertikal: Original- und refaktorierter Code vertikal gestapelt</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="186"/>
        <source>Horizontal</source>
        <translation>Horizontal</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="187"/>
        <source>Vertical</source>
        <translation>Vertikal</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="191"/>
        <source>Widget Minimum Width:</source>
        <translation>Minimale Widget-Breite:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="192"/>
        <source>Minimum width for the refactor widget (in pixels)</source>
        <translation>Minimale Breite für das Refactoring-Widget (in Pixel)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="197"/>
        <source>Widget Maximum Width:</source>
        <translation>Maximale Widget-Breite:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="198"/>
        <source>Maximum width for the refactor widget (in pixels)</source>
        <translation>Maximale Breite für das Refactoring-Widget (in Pixel)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="203"/>
        <source>Widget Minimum Height:</source>
        <translation>Minimale Widget-Höhe:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="204"/>
        <source>Minimum height for the refactor widget (in pixels)</source>
        <translation>Minimale Höhe für das Refactoring-Widget (in Pixel)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="209"/>
        <source>Widget Maximum Height:</source>
        <translation>Maximale Widget-Höhe:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="210"/>
        <source>Maximum height for the refactor widget (in pixels)</source>
        <translation>Maximale Höhe für das Refactoring-Widget (in Pixel)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="215"/>
        <source>System Prompt:</source>
        <translation>System-Prompt:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="224"/>
        <source>Include context from open files in quick refactor</source>
        <translation>Kontext aus geöffneten Dateien in schnelles Refactoring einbeziehen</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="284"/>
        <source>Tools Settings</source>
        <translation>Tools-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="290"/>
        <source>Display Settings</source>
        <translation>Anzeigeeinstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="292"/>
        <source>Prompt Settings</source>
        <translation>Prompt-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="30"/>
        <source>Allow file access outside project</source>
        <translation>Dateizugriff außerhalb des Projekts erlauben</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="32"/>
        <source>Allow tools to read, write, and create files outside the project scope (system headers, Qt files, external libraries).</source>
        <translation>Tools erlauben, Dateien außerhalb des Projektrahmens zu lesen, zu schreiben und zu erstellen (System-Header, Qt-Dateien, externe Bibliotheken).</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="37"/>
        <source>Automatically apply file edits</source>
        <translation>Dateibearbeitungen automatisch anwenden</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="39"/>
        <source>When enabled, file edits suggested by AI are applied immediately. When disabled, each edit is staged for manual approval.</source>
        <translation>Wenn aktiviert, werden von der KI vorgeschlagene Dateibearbeitungen sofort angewendet. Wenn deaktiviert, wird jede Bearbeitung zur manuellen Genehmigung vorgemerkt.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="44"/>
        <source>Max tool continuations:</source>
        <translation>Maximale Tool-Fortsetzungen:</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="46"/>
        <source>Maximum number of consecutive tool-use rounds in a single request. Each round lets the model call tools and receive results before continuing. Higher values allow more complex multi-step tasks but increase token usage.</source>
        <translation>Maximale Anzahl aufeinanderfolgender Tool-Verwendungsrunden in einer einzelnen Anfrage. Jede Runde ermöglicht es dem Modell, Tools aufzurufen und Ergebnisse zu erhalten, bevor es fortfährt. Höhere Werte ermöglichen komplexere mehrstufige Aufgaben, erhöhen aber den Token-Verbrauch.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="53"/>
        <source>List Project Files</source>
        <translation>Projektdateien auflisten</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="55"/>
        <source>Lists every source file tracked by the active Qt Creator project(s).</source>
        <translation>Listet jede Quelldatei auf, die vom aktiven Qt Creator-Projekt verfolgt wird.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="59"/>
        <source>Find File</source>
        <translation>Datei suchen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="61"/>
        <source>Locates a file in the project by name or partial path. Returns paths only, without file content.</source>
        <translation>Findet eine Datei im Projekt anhand von Name oder Teilpfad. Gibt nur Pfade zurück, ohne Dateiinhalt.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="66"/>
        <source>Read File</source>
        <translation>Datei lesen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="68"/>
        <source>Reads the content of a file by absolute path or path relative to the project root.</source>
        <translation>Liest den Inhalt einer Datei anhand des absoluten Pfads oder eines Pfads relativ zum Projekt-Stammverzeichnis.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="72"/>
        <source>Search in Project</source>
        <translation>Im Projekt suchen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="74"/>
        <source>Searches project files for text occurrences or C++ symbol definitions.</source>
        <translation>Durchsucht Projektdateien nach Textvorkommen oder C++-Symboldefinitionen.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="78"/>
        <source>Create New File</source>
        <translation>Neue Datei erstellen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="80"/>
        <source>Creates a new empty file at the given absolute path, making missing directories.</source>
        <translation>Erstellt eine neue leere Datei am angegebenen absoluten Pfad und legt fehlende Verzeichnisse an.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="84"/>
        <location filename="../../settings/ToolsSettings.cpp" line="212"/>
        <source>Edit File</source>
        <translation>Datei bearbeiten</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="86"/>
        <source>Applies find-and-replace edits to files. See &quot;Automatically apply file edits&quot; to control whether edits apply immediately or wait for review.</source>
        <translation>Wendet Suchen-und-Ersetzen-Bearbeitungen auf Dateien an. Siehe &quot;Dateibearbeitungen automatisch anwenden&quot;, um zu steuern, ob Bearbeitungen sofort angewendet werden oder auf eine Überprüfung warten.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="91"/>
        <source>Build Project</source>
        <translation>Projekt bauen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="93"/>
        <source>Triggers a build of the active Qt Creator project and reports the result.</source>
        <translation>Löst einen Build des aktiven Qt Creator-Projekts aus und meldet das Ergebnis.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="97"/>
        <source>Get Issues List</source>
        <translation>Problemliste abrufen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="99"/>
        <source>Reads compiler/clang diagnostics from Qt Creator&apos;s Issues panel.</source>
        <translation>Liest Compiler-/Clang-Diagnosen aus dem Probleme-Bereich von Qt Creator.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="103"/>
        <location filename="../../settings/ToolsSettings.cpp" line="215"/>
        <source>Execute Terminal Command</source>
        <translation>Terminalbefehl ausführen</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="105"/>
        <source>Runs a command from the OS-specific allowed list below, in the project directory.</source>
        <translation>Führt einen Befehl aus der unten stehenden, betriebssystemspezifischen erlaubten Liste im Projektverzeichnis aus.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="109"/>
        <source>Todo</source>
        <translation>Todo</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="111"/>
        <source>Lets the AI maintain a session-scoped todo list for multi-step workflows.</source>
        <translation>Lässt die KI eine sitzungsweite Todo-Liste für mehrstufige Workflows pflegen.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="115"/>
        <source>Read Original History (Pre-Compression)</source>
        <translation>Originalverlauf lesen (vor Komprimierung)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="117"/>
        <source>Lets the AI read the original, full chat history from before the conversation was compressed into a summary. Useful when a detail is missing from the summary currently in context. Has no effect if the chat was never compressed.</source>
        <translation>Lässt die KI den ursprünglichen, vollständigen Chatverlauf von vor der Komprimierung der Unterhaltung in eine Zusammenfassung lesen. Nützlich, wenn ein Detail in der aktuell im Kontext befindlichen Zusammenfassung fehlt. Hat keine Auswirkung, wenn der Chat nie komprimiert wurde.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="123"/>
        <source>Load Skill</source>
        <translation>Skill laden</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="125"/>
        <source>Lets the AI load the full instructions of a skill on demand. The Available Skills catalog in the system prompt lists each skill; this tool pulls a skill&apos;s complete instructions into context when needed.</source>
        <translation>Lässt die KI die vollständigen Anweisungen eines Skills bei Bedarf laden. Der Katalog der verfügbaren Skills im System-Prompt listet jeden Skill auf; dieses Tool zieht bei Bedarf die vollständigen Anweisungen eines Skills in den Kontext.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="131"/>
        <source>Allowed Commands (Linux)</source>
        <translation>Erlaubte Befehle (Linux)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="133"/>
        <source>Comma-separated list of terminal commands that AI is allowed to execute on Linux. Example: git, ls, cat, grep, find, cmake</source>
        <translation>Kommagetrennte Liste von Terminalbefehlen, die die KI unter Linux ausführen darf. Beispiel: git, ls, cat, grep, find, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="141"/>
        <source>Allowed Commands (macOS)</source>
        <translation>Erlaubte Befehle (macOS)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="143"/>
        <source>Comma-separated list of terminal commands that AI is allowed to execute on macOS. Example: git, ls, cat, grep, find, cmake</source>
        <translation>Kommagetrennte Liste von Terminalbefehlen, die die KI unter macOS ausführen darf. Beispiel: git, ls, cat, grep, find, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="151"/>
        <source>Allowed Commands (Windows)</source>
        <translation>Erlaubte Befehle (Windows)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="153"/>
        <source>Comma-separated list of terminal commands that AI is allowed to execute on Windows. Example: git, dir, type, findstr, where, cmake</source>
        <translation>Kommagetrennte Liste von Terminalbefehlen, die die KI unter Windows ausführen darf. Beispiel: git, dir, type, findstr, where, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="160"/>
        <source>Command Timeout (seconds)</source>
        <translation>Befehls-Zeitlimit (Sekunden)</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="162"/>
        <source>Maximum time in seconds to wait for a terminal command to complete. Increase for long-running commands like builds.</source>
        <translation>Maximale Zeit in Sekunden, die auf den Abschluss eines Terminalbefehls gewartet wird. Bei lang laufenden Befehlen wie Builds erhöhen.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="206"/>
        <source>Tool Settings</source>
        <translation>Tool-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="55"/>
        <location filename="../../settings/SkillsSettings.cpp" line="104"/>
        <location filename="../../settings/SkillsSettings.cpp" line="127"/>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="96"/>
        <source>Skills</source>
        <translation>Skills</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="58"/>
        <source>Enable skills</source>
        <translation>Skills aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="60"/>
        <source>Discover Agent Skills from the configured skill directories and expose them to the chat assistant. Each skill is a folder containing a SKILL.md file.</source>
        <translation>Agent-Skills aus den konfigurierten Skill-Verzeichnissen erkennen und dem Chat-Assistenten zur Verfügung stellen. Jeder Skill ist ein Ordner, der eine SKILL.md-Datei enthält.</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="69"/>
        <source>Global skill directories:</source>
        <translation>Globale Skill-Verzeichnisse:</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="72"/>
        <source>Absolute paths scanned for skills, one per line. Each path is a directory whose subfolders contain SKILL.md files. A leading ~ expands to your home directory. Lets QodeAssist pick up skills shared with other agents (e.g. ~/.claude/skills).</source>
        <translation>Absolute Pfade, die nach Skills durchsucht werden, einer pro Zeile. Jeder Pfad ist ein Verzeichnis, dessen Unterordner SKILL.md-Dateien enthalten. Ein führendes ~ wird auf Ihr Heimatverzeichnis erweitert. Ermöglicht QodeAssist, Skills aufzunehmen, die mit anderen Agenten geteilt werden (z. B. ~/.claude/skills).</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="97"/>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="86"/>
        <source>No skills discovered.</source>
        <translation>Keine Skills erkannt.</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="110"/>
        <source>Skill Directories</source>
        <translation>Skill-Verzeichnisse</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="113"/>
        <source>Discovered global skills:</source>
        <translation>Erkannte globale Skills:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="38"/>
        <location filename="../../settings/McpSettings.cpp" line="341"/>
        <source>MCP</source>
        <translation>MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="41"/>
        <source>Enable MCP server</source>
        <translation>MCP-Server aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="43"/>
        <source>Expose QodeAssist tools to external MCP clients over HTTP. Which tools are visible is controlled on the client side.</source>
        <translation>QodeAssist-Tools über HTTP für externe MCP-Clients bereitstellen. Welche Tools sichtbar sind, wird clientseitig gesteuert.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="48"/>
        <source>Server port</source>
        <translation>Server-Port</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="50"/>
        <source>TCP port the MCP server listens on (localhost only). Requires restart of the server after change.</source>
        <translation>TCP-Port, auf dem der MCP-Server lauscht (nur localhost). Nach Änderung ist ein Neustart des Servers erforderlich.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="56"/>
        <source>Connect to external MCP servers</source>
        <translation>Mit externen MCP-Servern verbinden</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="58"/>
        <source>Connect to MCP servers listed in mcp-server.json and expose their tools to chat/quick-refactor/code-completion. Toggling this off disconnects all currently running MCP client sessions.</source>
        <translation>Mit MCP-Servern verbinden, die in mcp-server.json aufgeführt sind, und deren Tools für Chat/schnelles Refactoring/Code-Vervollständigung bereitstellen. Wenn deaktiviert, werden alle aktuell laufenden MCP-Client-Sitzungen getrennt.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="64"/>
        <source>Extra PATH for stdio servers</source>
        <translation>Zusätzlicher PATH für stdio-Server</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="67"/>
        <source>Directories to prepend to PATH when launching stdio MCP servers. Useful when Qt Creator is started from the dock and doesn&apos;t see Homebrew, nvm, uv, etc. Separate multiple entries with &apos;%1&apos;. Per-server &apos;env&apos; overrides in mcp-server.json still win.</source>
        <translation>Verzeichnisse, die beim Starten von stdio-MCP-Servern dem PATH vorangestellt werden. Nützlich, wenn Qt Creator aus dem Dock gestartet wird und Homebrew, nvm, uv usw. nicht sieht. Mehrere Einträge mit &apos;%1&apos; trennen. Server-spezifische &apos;env&apos;-Überschreibungen in mcp-server.json haben weiterhin Vorrang.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="80"/>
        <source>How to connect...</source>
        <translation>Wie verbinden...</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="93"/>
        <source>Server</source>
        <translation>Server</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="100"/>
        <source>Clients</source>
        <translation>Clients</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="211"/>
        <source>Connect to QodeAssist MCP</source>
        <translation>Mit QodeAssist MCP verbinden</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="215"/>
        <source>Server URL: &lt;code&gt;%1&lt;/code&gt;. If your MCP client speaks HTTP/SSE natively, use the &lt;b&gt;Direct&lt;/b&gt; tab. If it only speaks stdio (e.g. Claude Desktop), use the &lt;b&gt;Bridge&lt;/b&gt; tab.</source>
        <translation>Server-URL: &lt;code&gt;%1&lt;/code&gt;. Wenn Ihr MCP-Client nativ HTTP/SSE spricht, verwenden Sie den Tab &lt;b&gt;Direkt&lt;/b&gt;. Wenn er nur stdio spricht (z. B. Claude Desktop), verwenden Sie den Tab &lt;b&gt;Bridge&lt;/b&gt;.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="242"/>
        <source>Copy</source>
        <translation>Kopieren</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="265"/>
        <source>&lt;b&gt;Claude Code&lt;/b&gt; (CLI): run once —</source>
        <translation>&lt;b&gt;Claude Code&lt;/b&gt; (CLI): einmalig ausführen —</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="271"/>
        <source>&lt;b&gt;VS Code&lt;/b&gt;: save as &lt;code&gt;.vscode/mcp.json&lt;/code&gt; in the workspace:</source>
        <translation>&lt;b&gt;VS Code&lt;/b&gt;: als &lt;code&gt;.vscode/mcp.json&lt;/code&gt; im Workspace speichern:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="279"/>
        <source>Any other client that reads an &lt;code&gt;mcpServers&lt;/code&gt; JSON block:</source>
        <translation>Jeder andere Client, der einen &lt;code&gt;mcpServers&lt;/code&gt;-JSON-Block liest:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="287"/>
        <source>Direct (HTTP/SSE)</source>
        <translation>Direkt (HTTP/SSE)</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="296"/>
        <source>&lt;b&gt;1.&lt;/b&gt; Download &lt;code&gt;mcp-bridge&lt;/code&gt; for your OS from &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;.</source>
        <translation>&lt;b&gt;1.&lt;/b&gt; Laden Sie &lt;code&gt;mcp-bridge&lt;/code&gt; für Ihr Betriebssystem herunter von &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="306"/>
        <source>&lt;b&gt;2.&lt;/b&gt; Save the following as &lt;code&gt;mcp-bridge.json&lt;/code&gt;:</source>
        <translation>&lt;b&gt;2.&lt;/b&gt; Speichern Sie Folgendes als &lt;code&gt;mcp-bridge.json&lt;/code&gt;:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="312"/>
        <source>&lt;b&gt;3.&lt;/b&gt; Point the stdio-only client at the bridge. Example for &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:</source>
        <translation>&lt;b&gt;3.&lt;/b&gt; Richten Sie den stdio-only-Client auf die Bridge aus. Beispiel für &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="321"/>
        <source>Bridge (stdio)</source>
        <translation>Bridge (stdio)</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettings.cpp" line="28"/>
        <source>Chat History Path:</source>
        <translation>Pfad für Chatverlauf:</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettings.cpp" line="36"/>
        <source>Skill directories:</source>
        <translation>Skill-Verzeichnisse:</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettings.cpp" line="39"/>
        <source>Project-relative subdirectories scanned for Agent Skills, one per line. Resolved against the project root. These take priority over the global skill directories when a skill name appears in both.</source>
        <translation>Projektrelative Unterverzeichnisse, die nach Agent-Skills durchsucht werden, eines pro Zeile. Werden relativ zum Projekt-Stammverzeichnis aufgelöst. Diese haben Vorrang vor den globalen Skill-Verzeichnissen, wenn ein Skill-Name in beiden erscheint.</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="99"/>
        <source>Discovered project skills:</source>
        <translation>Erkannte Projekt-Skills:</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="115"/>
        <source>QodeAssist</source>
        <translation>QodeAssist</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="27"/>
        <location filename="../../settings/ProviderSettings.cpp" line="224"/>
        <source>Provider Settings</source>
        <translation>Anbieter-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="31"/>
        <source>OpenRouter API Key:</source>
        <translation>OpenRouter API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="33"/>
        <location filename="../../settings/ProviderSettings.cpp" line="42"/>
        <location filename="../../settings/ProviderSettings.cpp" line="51"/>
        <location filename="../../settings/ProviderSettings.cpp" line="77"/>
        <location filename="../../settings/ProviderSettings.cpp" line="86"/>
        <location filename="../../settings/ProviderSettings.cpp" line="94"/>
        <location filename="../../settings/ProviderSettings.cpp" line="103"/>
        <location filename="../../settings/ProviderSettings.cpp" line="112"/>
        <location filename="../../settings/ProviderSettings.cpp" line="121"/>
        <source>Enter your API key here</source>
        <translation>API-Schlüssel hier eingeben</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="40"/>
        <source>OpenAI Compatible API Key:</source>
        <translation>OpenAI-kompatibler API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="49"/>
        <source>Claude API Key:</source>
        <translation>Claude API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="57"/>
        <source>Enable prompt caching</source>
        <translation>Prompt-Caching aktivieren</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="59"/>
        <source>Marks the system prompt, tool definitions, and stable chat history with cache_control so Anthropic caches the request prefix (5-minute TTL). Reduces cost and latency on repeated turns.</source>
        <translation>Markiert den System-Prompt, Tool-Definitionen und den stabilen Chatverlauf mit cache_control, sodass Anthropic das Anfrage-Präfix zwischenspeichert (5-Minuten-TTL). Reduziert Kosten und Latenz bei wiederholten Runden.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="66"/>
        <source>Use 1h cache TTL (beta)</source>
        <translation>1h Cache-TTL verwenden (Beta)</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="68"/>
        <source>Requests Anthropic&apos;s 1-hour cache TTL instead of the default 5 minutes. Sends the extended-cache-ttl-2025-04-11 beta header.</source>
        <translation>Fordert Anthropics 1-Stunden-Cache-TTL anstelle der Standard 5 Minuten an. Sendet den Beta-Header extended-cache-ttl-2025-04-11.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="75"/>
        <source>OpenAI API Key:</source>
        <translation>OpenAI API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="84"/>
        <source>Mistral AI API Key:</source>
        <translation>Mistral AI API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="92"/>
        <source>Codestral API Key:</source>
        <translation>Codestral API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="101"/>
        <source>Google AI API Key:</source>
        <translation>Google AI API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="110"/>
        <source>Ollama(Bearer) API Key:</source>
        <translation>Ollama(Bearer) API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="119"/>
        <source>llama.cpp API Key:</source>
        <translation>llama.cpp API-Schlüssel:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="138"/>
        <source>OpenRouter Settings</source>
        <translation>OpenRouter-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="140"/>
        <source>OpenAI Settings</source>
        <translation>OpenAI-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="142"/>
        <source>OpenAI Compatible Settings</source>
        <translation>OpenAI-kompatible Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="145"/>
        <source>Claude Settings</source>
        <translation>Claude-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="148"/>
        <source>Mistral AI Settings</source>
        <translation>Mistral AI-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="150"/>
        <source>Google AI Settings</source>
        <translation>Google AI-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="154"/>
        <source>llama.cpp Settings</source>
        <translation>llama.cpp-Einstellungen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="28"/>
        <source>Agent roles define different system prompts for specific tasks.</source>
        <translation>Agent-Rollen definieren unterschiedliche System-Prompts für bestimmte Aufgaben.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="32"/>
        <source>Open Roles Folder...</source>
        <translation>Rollenordner öffnen...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="48"/>
        <source>Add...</source>
        <translation>Hinzufügen...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="52"/>
        <source>Edit...</source>
        <translation>Bearbeiten...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="56"/>
        <source>Duplicate...</source>
        <translation>Duplizieren...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="83"/>
        <source>(Built-in role)</source>
        <translation>(Integrierte Rolle)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="118"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="192"/>
        <source>Role Already Exists</source>
        <translation>Rolle existiert bereits</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="119"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="193"/>
        <source>A role with ID &apos;%1&apos; already exists. Please use a different ID.</source>
        <translation>Eine Rolle mit der ID &apos;%1&apos; existiert bereits. Bitte verwenden Sie eine andere ID.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="492"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="521"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="554"/>
        <source>Error</source>
        <translation>Fehler</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
        <source>Failed to save role &apos;%1&apos;.</source>
        <translation>Rolle &apos;%1&apos; konnte nicht gespeichert werden.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="144"/>
        <source>Cannot Edit Built-in Role</source>
        <translation>Integrierte Rolle kann nicht bearbeitet werden</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="145"/>
        <source>Built-in roles cannot be edited. You can duplicate this role and modify the copy.</source>
        <translation>Integrierte Rollen können nicht bearbeitet werden. Sie können diese Rolle duplizieren und die Kopie ändern.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
        <source>Failed to update role &apos;%1&apos;.</source>
        <translation>Rolle &apos;%1&apos; konnte nicht aktualisiert werden.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
        <source>Failed to duplicate role.</source>
        <translation>Rolle konnte nicht dupliziert werden.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
        <source>Cannot Delete Built-in Role</source>
        <translation>Integrierte Rolle kann nicht gelöscht werden</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
        <source>Built-in roles cannot be deleted.</source>
        <translation>Integrierte Rollen können nicht gelöscht werden.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="222"/>
        <source>Delete Role</source>
        <translation>Rolle löschen</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="223"/>
        <source>Are you sure you want to delete the role &apos;%1&apos;?</source>
        <translation>Sind Sie sicher, dass Sie die Rolle &apos;%1&apos; löschen möchten?</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
        <source>Failed to delete role &apos;%1&apos;.</source>
        <translation>Rolle &apos;%1&apos; konnte nicht gelöscht werden.</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="160"/>
        <source>Generate QodeAssist suggestion at the current cursor position.</source>
        <translation>QodeAssist-Vorschlag an der aktuellen Cursorposition generieren.</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="161"/>
        <source>Request QodeAssist Suggestion</source>
        <translation>QodeAssist-Vorschlag anfordern</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="244"/>
        <source>Refactor code using QodeAssist</source>
        <translation>Code mit QodeAssist refaktorieren</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="245"/>
        <source>Quick Refactor with QodeAssist</source>
        <translation>Schnelles Refactoring mit QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="270"/>
        <source>Open QodeAssist Chat as an editor tab</source>
        <translation>QodeAssist Chat als Editor-Tab öffnen</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="271"/>
        <source>Show QodeAssist Chat</source>
        <translation>QodeAssist Chat anzeigen</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="287"/>
        <location filename="../../qodeassist.cpp" line="288"/>
        <source>Close QodeAssist Chat</source>
        <translation>QodeAssist Chat schließen</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="297"/>
        <source>Open QodeAssist Chat in Separate Window</source>
        <translation>QodeAssist Chat in separatem Fenster öffnen</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="298"/>
        <source>Open the QodeAssist chat in a separate window</source>
        <translation>Den QodeAssist-Chat in einem separaten Fenster öffnen</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="303"/>
        <source>New QodeAssist Chat</source>
        <translation>Neuer QodeAssist Chat</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="304"/>
        <source>Open a fresh chat in a new editor tab</source>
        <translation>Einen neuen Chat in einem neuen Editor-Tab öffnen</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="310"/>
        <source>Send QodeAssist Chat Message</source>
        <translation>QodeAssist-Chatnachricht senden</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="311"/>
        <source>Send the current message to the LLM</source>
        <translation>Die aktuelle Nachricht an das LLM senden</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="320"/>
        <source>Clear QodeAssist Chat Session</source>
        <translation>QodeAssist-Chat-Sitzung leeren</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="321"/>
        <source>Clear the current chat session</source>
        <translation>Die aktuelle Chat-Sitzung leeren</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="379"/>
        <location filename="../../qodeassist.cpp" line="388"/>
        <location filename="../../chat/ChatOutputPane.cpp" line="19"/>
        <location filename="../../chat/ChatDocument.cpp" line="19"/>
        <location filename="../../chat/ChatEditor.cpp" line="42"/>
        <location filename="../../chat/ChatEditorFactory.cpp" line="18"/>
        <source>QodeAssist Chat</source>
        <translation>QodeAssist Chat</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="460"/>
        <source>Chat in Bottom Panel</source>
        <translation>Chat im unteren Bereich</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="467"/>
        <source>Chat in Sidebar</source>
        <translation>Chat in Seitenleiste</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="477"/>
        <source>Open Chat in Editor</source>
        <translation>Chat im Editor öffnen</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="485"/>
        <source>Open Chat in Separate Window</source>
        <translation>Chat in separatem Fenster öffnen</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="133"/>
        <source>Select LLM Provider</source>
        <translation>LLM-Anbieter auswählen</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="133"/>
        <source>Providers:</source>
        <translation>Anbieter:</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="175"/>
        <source>Select LLM Model</source>
        <translation>LLM-Modell auswählen</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="175"/>
        <source>Models:</source>
        <translation>Modelle:</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="206"/>
        <source>Select Template</source>
        <translation>Vorlage auswählen</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="206"/>
        <source>Templates:</source>
        <translation>Vorlagen:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="117"/>
        <source>Switch AI configuration</source>
        <translation>KI-Konfiguration wechseln</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="130"/>
        <source>Enable/Disable AI Tools</source>
        <translation>KI-Tools aktivieren/deaktivieren</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="147"/>
        <source>Enable/Disable Thinking Mode</source>
        <translation>Thinking-Modus aktivieren/deaktivieren</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="159"/>
        <source>Open Quick Refactor Settings</source>
        <translation>Einstellungen für schnelles Refactoring öffnen</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="167"/>
        <source>Your Current Instruction:</source>
        <translation>Ihre aktuelle Anweisung:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="172"/>
        <source>Type or edit your instruction...</source>
        <translation>Geben Sie Ihre Anweisung ein oder bearbeiten Sie sie...</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="178"/>
        <source>Or Load saved:</source>
        <translation>Oder gespeicherte laden:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="185"/>
        <source>Search saved instructions...</source>
        <translation>Gespeicherte Anweisungen durchsuchen...</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="197"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="21"/>
        <source>Add Custom Instruction</source>
        <translation>Benutzerdefinierte Anweisung hinzufügen</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="203"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="30"/>
        <source>Edit Custom Instruction</source>
        <translation>Benutzerdefinierte Anweisung bearbeiten</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="209"/>
        <source>Delete Custom Instruction</source>
        <translation>Benutzerdefinierte Anweisung löschen</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="215"/>
        <source>Open Instructions Folder</source>
        <translation>Anweisungsordner öffnen</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="285"/>
        <source>Repeat Last Instructions</source>
        <translation>Letzte Anweisungen wiederholen</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="291"/>
        <source>Improve Current Code</source>
        <translation>Aktuellen Code verbessern</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="297"/>
        <source>Suggest Alternative Solution</source>
        <translation>Alternative Lösung vorschlagen</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="366"/>
        <source>Improve the selected code by enhancing readability, efficiency, and maintainability. Follow best practices for C++/Qt and fix any potential issues.</source>
        <translation>Verbessern Sie den ausgewählten Code durch Erhöhung von Lesbarkeit, Effizienz und Wartbarkeit. Befolgen Sie Best Practices für C++/Qt und beheben Sie mögliche Probleme.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="377"/>
        <source>Suggest an alternative implementation approach for the selected code. Provide a different solution that might be cleaner, more efficient, or uses different Qt/C++ patterns or idioms.</source>
        <translation>Schlagen Sie einen alternativen Implementierungsansatz für den ausgewählten Code vor. Bieten Sie eine andere Lösung, die sauberer, effizienter sein oder andere Qt/C++-Muster oder -Idiome verwenden könnte.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="493"/>
        <source>Failed to save custom instruction. Check logs for details.</source>
        <translation>Benutzerdefinierte Anweisung konnte nicht gespeichert werden. Details siehe Logs.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="505"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="534"/>
        <source>No Instruction Selected</source>
        <translation>Keine Anweisung ausgewählt</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="506"/>
        <source>Please select an instruction to edit.</source>
        <translation>Bitte wählen Sie eine Anweisung zum Bearbeiten aus.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="522"/>
        <source>Failed to update custom instruction. Check logs for details.</source>
        <translation>Benutzerdefinierte Anweisung konnte nicht aktualisiert werden. Details siehe Logs.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="535"/>
        <source>Please select an instruction to delete.</source>
        <translation>Bitte wählen Sie eine Anweisung zum Löschen aus.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="541"/>
        <source>Confirm Deletion</source>
        <translation>Löschen bestätigen</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="542"/>
        <source>Are you sure you want to delete the instruction &apos;%1&apos;?</source>
        <translation>Sind Sie sicher, dass Sie die Anweisung &apos;%1&apos; löschen möchten?</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="555"/>
        <source>Failed to delete custom instruction. Check logs for details.</source>
        <translation>Benutzerdefinierte Anweisung konnte nicht gelöscht werden. Details siehe Logs.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="593"/>
        <source>Current</source>
        <translation>Aktuell</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="603"/>
        <source>Current (%1)</source>
        <translation>Aktuell (%1)</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="640"/>
        <source>No Instruction</source>
        <translation>Keine Anweisung</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="641"/>
        <source>Please type an instruction or select a saved one.</source>
        <translation>Bitte geben Sie eine Anweisung ein oder wählen Sie eine gespeicherte aus.</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="46"/>
        <source>Enter instruction name...</source>
        <translation>Anweisungsnamen eingeben...</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="47"/>
        <source>Name:</source>
        <translation>Name:</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="51"/>
        <source>Instruction Body:</source>
        <translation>Anweisungstext:</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="56"/>
        <source>Enter the refactoring instruction that will be sent to the LLM...</source>
        <translation>Geben Sie die Refactoring-Anweisung ein, die an das LLM gesendet wird...</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="59"/>
        <source>Set as default instruction</source>
        <translation>Als Standardanweisung festlegen</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="61"/>
        <source>This instruction will be automatically selected when opening Quick Refactor dialog</source>
        <translation>Diese Anweisung wird beim Öffnen des Dialogs Schnelles Refactoring automatisch ausgewählt</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
        <source>Invalid Input</source>
        <translation>Ungültige Eingabe</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
        <source>Instruction name cannot be empty.</source>
        <translation>Der Anweisungsname darf nicht leer sein.</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
        <source>Instruction body cannot be empty.</source>
        <translation>Der Anweisungstext darf nicht leer sein.</translation>
    </message>
</context>
<context>
    <name>RootItem</name>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="75"/>
        <source>Compressing chat…</source>
        <translation>Chat wird komprimiert…</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="100"/>
        <source>next ~%1  ·  session ↑%2 ↓%3 ↻%4</source>
        <translation>nächste ~%1  ·  Sitzung ↑%2 ↓%3 ↻%4</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="105"/>
        <source>next ~%1  ·  session ↑%2 ↓%3</source>
        <translation>nächste ~%1  ·  Sitzung ↑%2 ↓%3</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="110"/>
        <source>next request (estimate)  ·  session prompt ↑ / completion ↓ / cached ↻ (provider cache hits)</source>
        <translation>nächste Anfrage (Schätzung)  ·  Sitzungs-Prompt ↑ / Completion ↓ / zwischengespeichert ↻ (Anbieter-Cache-Treffer)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="111"/>
        <source>next request (estimate)  ·  session prompt ↑ / completion ↓</source>
        <translation>nächste Anfrage (Schätzung)  ·  Sitzungs-Prompt ↑ / Completion ↓</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="114"/>
        <source>Сhat name: %1</source>
        <translation>Chat-Name: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="128"/>
        <source>Move this chat to an editor tab</source>
        <translation>Diesen Chat in einen Editor-Tab verschieben</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="129"/>
        <source>Move this chat to a separate window</source>
        <translation>Diesen Chat in ein separates Fenster verschieben</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="385"/>
        <source>Type your message here... (⌘+↩ to send)</source>
        <translation>Geben Sie Ihre Nachricht hier ein... (⌘+↩ zum Senden)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="386"/>
        <source>Type your message here... (Ctrl+Enter to send)</source>
        <translation>Geben Sie Ihre Nachricht hier ein... (Strg+Enter zum Senden)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="483"/>
        <source>Cut</source>
        <translation>Ausschneiden</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="489"/>
        <source>Copy</source>
        <translation>Kopieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="495"/>
        <source>Paste</source>
        <translation>Einfügen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="503"/>
        <source>Select All</source>
        <translation>Alles auswählen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="511"/>
        <source>Clear</source>
        <translation>Leeren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="563"/>
        <source>Send</source>
        <translation>Senden</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="563"/>
        <location filename="../../ChatView/qml/RootItem.qml" line="565"/>
        <source>Stop</source>
        <translation>Stoppen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="564"/>
        <source>Send message to LLM %1</source>
        <translation>Nachricht an LLM %1 senden</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="650"/>
        <source>Compress Chat</source>
        <translation>Chat komprimieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="655"/>
        <source>Create a summarized copy of this chat?

The summary will be generated by LLM and saved as a new chat file.</source>
        <translation>Eine zusammengefasste Kopie dieses Chats erstellen?

Die Zusammenfassung wird vom LLM generiert und als neue Chat-Datei gespeichert.</translation>
    </message>
</context>
<context>
    <name>SplitDropZone</name>
    <message numerus="yes">
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="49"/>
        <source>%n file(s) to drop</source>
        <translation>
            <numerusform>%n Datei(en) zum Ablegen</numerusform>
            <numerusform>%n Datei(en) zum Ablegen</numerusform>
        </translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="79"/>
        <source>Attach</source>
        <translation>Anhängen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="87"/>
        <source>Images &amp; Text Files</source>
        <translation>Bilder &amp; Textdateien</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="95"/>
        <source>(for one-time use)</source>
        <translation>(zur einmaligen Verwendung)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="131"/>
        <source>LINK</source>
        <translation>LINK</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="139"/>
        <source>Text Files</source>
        <translation>Textdateien</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="147"/>
        <source>(added to context)</source>
        <translation>(zum Kontext hinzugefügt)</translation>
    </message>
</context>
<context>
    <name>TextBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="27"/>
        <source>Copy</source>
        <translation>Kopieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="33"/>
        <source>Select All</source>
        <translation>Alles auswählen</translation>
    </message>
</context>
<context>
    <name>ThinkingBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="45"/>
        <source>Thinking (Redacted)</source>
        <translation>Thinking (Redigiert)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="46"/>
        <source>Thinking</source>
        <translation>Thinking</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="75"/>
        <source>Thinking content was redacted by safety systems</source>
        <translation>Thinking-Inhalt wurde von Sicherheitssystemen redigiert</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
        <source>Collapse</source>
        <translation>Einklappen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
        <source>Expand</source>
        <translation>Ausklappen</translation>
    </message>
</context>
<context>
    <name>ToolBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="47"/>
        <source>Tool: %1</source>
        <translation>Tool: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="99"/>
        <source>Copy</source>
        <translation>Kopieren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="105"/>
        <source>Select All</source>
        <translation>Alles auswählen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
        <source>Collapse</source>
        <translation>Einklappen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
        <source>Expand</source>
        <translation>Ausklappen</translation>
    </message>
</context>
<context>
    <name>TopBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="64"/>
        <source>Unpin chat window</source>
        <translation>Chat-Fenster lösen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="65"/>
        <source>Pin chat window to the top</source>
        <translation>Chat-Fenster oben anheften</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="97"/>
        <source>Clean chat</source>
        <translation>Chat leeren</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="117"/>
        <source>Open new chat in a new tab</source>
        <translation>Neuen Chat in einem neuen Tab öffnen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="130"/>
        <source>Switch saved AI configuration</source>
        <translation>Gespeicherte KI-Konfiguration wechseln</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="143"/>
        <source>Switch agent role (different system prompts)</source>
        <translation>Agent-Rolle wechseln (verschiedene System-Prompts)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="170"/>
        <source>Tools are disabled in General Settings</source>
        <translation>Tools sind in den allgemeinen Einstellungen deaktiviert</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="173"/>
        <source>Tools enabled: AI can use tools to read files, search project, and build code</source>
        <translation>Tools aktiviert: KI kann Tools verwenden, um Dateien zu lesen, das Projekt zu durchsuchen und Code zu bauen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="174"/>
        <source>Tools disabled: Simple conversation without tool access</source>
        <translation>Tools deaktiviert: Einfache Unterhaltung ohne Tool-Zugriff</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="196"/>
        <source>Thinking Mode enabled (Check model list support it)</source>
        <translation>Thinking-Modus aktiviert (Prüfen Sie die Modellliste auf Unterstützung)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="197"/>
        <source>Thinking Mode disabled</source>
        <translation>Thinking-Modus deaktiviert</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="198"/>
        <source>Thinking Mode is not available for this provider</source>
        <translation>Thinking-Modus ist für diesen Anbieter nicht verfügbar</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="215"/>
        <source>Open Chat Assistant Settings</source>
        <translation>Chat-Assistent-Einstellungen öffnen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="266"/>
        <source>Save chat to *.json file</source>
        <translation>Chat in *.json-Datei speichern</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="279"/>
        <source>Load chat from *.json file</source>
        <translation>Chat aus *.json-Datei laden</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="292"/>
        <source>Show in system</source>
        <translation>Im System anzeigen</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="309"/>
        <source>View chat context (system prompt, role, rules)</source>
        <translation>Chat-Kontext anzeigen (System-Prompt, Rolle, Regeln)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="317"/>
        <source>Current amount tokens in chat and LLM limit threshold</source>
        <translation>Aktuelle Anzahl Token im Chat und LLM-Schwellwert</translation>
    </message>
</context>
</TS>
