<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="pl_PL">
<context>
    <name>BottomBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="50"/>
        <source>Attach file to message</source>
        <translation>Dołącz plik do wiadomości</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="63"/>
        <source>Attach image to message</source>
        <translation>Dołącz obraz do wiadomości</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="76"/>
        <source>Link file to context</source>
        <translation>Połącz plik z kontekstem</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="82"/>
        <source>Sync open files</source>
        <translation>Synchronizuj otwarte pliki</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="85"/>
        <source>Automatically synchronize currently opened files with the model context</source>
        <translation>Automatycznie synchronizuj aktualnie otwarte pliki z kontekstem modelu</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="108"/>
        <source>Compressing...</source>
        <translation>Kompresowanie...</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="118"/>
        <source>Cancel</source>
        <translation>Anuluj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="122"/>
        <source>Cancel compression</source>
        <translation>Anuluj kompresję</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="130"/>
        <source>Compress</source>
        <translation>Kompresuj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/BottomBar.qml" line="139"/>
        <source>Compress chat (create summarized copy using LLM)</source>
        <translation>Kompresuj czat (utwórz podsumowaną kopię za pomocą LLM)</translation>
    </message>
</context>
<context>
    <name>ChatItem</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="159"/>
        <source>↑ %1 (cached %2)</source>
        <translation>↑ %1 (w pamięci podręcznej %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 (rozumowanie %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>Zresetuj czat do tej wiadomości i edytuj</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>Kliknięcie: Otwórz w Qt Creator
Shift+Kliknięcie: Otwórz w edytorze systemowym</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ChatItem.qml" line="366"/>
        <source>Failed to load image</source>
        <translation>Nie udało się załadować obrazu</translation>
    </message>
</context>
<context>
    <name>CodeBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="62"/>
        <source>Code (%1)</source>
        <translation>Kod (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="63"/>
        <source>Code</source>
        <translation>Kod</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>Kopiuj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
        <source>Collapse</source>
        <translation>Zwiń</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="115"/>
        <source>Expand</source>
        <translation>Rozwiń</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/CodeBlock.qml" line="140"/>
        <source>Copied</source>
        <translation>Skopiowano</translation>
    </message>
</context>
<context>
    <name>ContextViewer</name>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="54"/>
        <source>Chat Context</source>
        <translation>Kontekst czatu</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="62"/>
        <source>Refresh</source>
        <translation>Odśwież</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="67"/>
        <source>Close</source>
        <translation>Zamknij</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="97"/>
        <source>Base System Prompt</source>
        <translation>Podstawowy prompt systemowy</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
        <source>Active</source>
        <translation>Aktywny</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="98"/>
        <source>Empty</source>
        <translation>Pusty</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="125"/>
        <source>No system prompt configured</source>
        <translation>Nie skonfigurowano promptu systemowego</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>Kopiuj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="152"/>
        <source>Edit in Settings</source>
        <translation>Edytuj w ustawieniach</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="166"/>
        <source>Agent Role</source>
        <translation>Rola agenta</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="221"/>
        <source>No role selected. Using base system prompt only.</source>
        <translation>Nie wybrano roli. Używany jest tylko podstawowy prompt systemowy.</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="241"/>
        <source>Manage Roles</source>
        <translation>Zarządzaj rolami</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="255"/>
        <source>Project Rules</source>
        <translation>Reguły projektu</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
        <source>%1 active</source>
        <translation>%1 aktywnych</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="256"/>
        <source>None</source>
        <translation>Brak</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="282"/>
        <source>Rules (%1)</source>
        <translation>Reguły (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="369"/>
        <source>Content</source>
        <translation>Zawartość</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>Nie znaleziono reguł projektu.
Utwórz pliki .md w .qodeassist/rules/common/ lub .qodeassist/rules/chat/</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/ContextViewer.qml" line="430"/>
        <source>Open Rules Folder</source>
        <translation>Otwórz folder reguł</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>Końcowy prompt: Podstawowy prompt systemowy + Rola agenta + Informacje o projekcie + Reguły projektu + Połączone pliki</translation>
    </message>
</context>
<context>
    <name>DiffStatistics</name>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="40"/>
        <source>+%1 lines, -%2 lines</source>
        <translation>+%1 wierszy, -%2 wierszy</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="42"/>
        <source>+%1 lines</source>
        <translation>+%1 wierszy</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="44"/>
        <source>-%1 lines</source>
        <translation>-%1 wierszy</translation>
    </message>
    <message>
        <location filename="../../widgets/DiffStatistics.hpp" line="46"/>
        <source>No changes</source>
        <translation>Brak zmian</translation>
    </message>
</context>
<context>
    <name>FileEditBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="76"/>
        <source>ARCHIVED</source>
        <translation>ZARCHIWIZOWANO</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="77"/>
        <source>APPLIED</source>
        <translation>ZASTOSOWANO</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="78"/>
        <source>REJECTED</source>
        <translation>ODRZUCONO</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="79"/>
        <source>PENDING</source>
        <translation>OCZEKUJĄCE</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
        <source>Replace</source>
        <translation>Zastąp</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/FileEditBlock.qml" line="200"/>
        <source>Append</source>
        <translation>Dodaj</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>Otwórz plik w edytorze i przejdź do zmian</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>Kopiuj</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>Zwiń</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>Rozwiń</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>Edycja pliku w bieżącej wiadomości</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="82"/>
        <source>%1 File Edits in Current Message</source>
        <translation>%1 edycji plików w bieżącej wiadomości</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="93"/>
        <source>%1 applied</source>
        <translation>%1 zastosowano</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="96"/>
        <source>%1 pending</source>
        <translation>%1 oczekuje</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="99"/>
        <source>%1 rejected</source>
        <translation>%1 odrzucono</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="118"/>
        <source>Apply All (%1)</source>
        <translation>Zastosuj wszystkie (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="119"/>
        <source>Reapply All (%1)</source>
        <translation>Zastosuj ponownie wszystkie (%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>Zastosuj wszystkie oczekujące i odrzucone edycje w tej wiadomości</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="125"/>
        <source>Reapply all rejected edits in this message</source>
        <translation>Zastosuj ponownie wszystkie odrzucone edycje w tej wiadomości</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="135"/>
        <source>Undo All (%1)</source>
        <translation>Cofnij wszystkie (%1)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/FileEditsActionBar.qml" line="139"/>
        <source>Undo all applied edits in this message</source>
        <translation>Cofnij wszystkie zastosowane edycje w tej wiadomości</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>Nie znaleziono szablonu</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>Szablon &apos;%1&apos; nie został znaleziony lub został zaktualizowany. Ustaw nowy.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="595"/>
        <source>Providers</source>
        <translation>Dostawcy</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="262"/>
        <source>Agents</source>
        <translation>Agenci</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatConfigurationController.cpp" line="58"/>
        <location filename="../../ChatView/ChatConfigurationController.cpp" line="71"/>
        <source>Current Settings</source>
        <translation>Bieżące ustawienia</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatCompressor</name>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="30"/>
        <source>Compression already in progress</source>
        <translation>Kompresja jest już w toku</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="35"/>
        <source>No chat file to compress</source>
        <translation>Brak pliku czatu do skompresowania</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="40"/>
        <source>Chat is empty, nothing to compress</source>
        <translation>Czat jest pusty, nie ma co kompresować</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="48"/>
        <source>No provider available</source>
        <translation>Brak dostępnego dostawcy</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="57"/>
        <source>No template available</source>
        <translation>Brak dostępnego szablonu</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="99"/>
        <source>Compression cancelled</source>
        <translation>Kompresja anulowana</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="122"/>
        <source>Failed to save compressed chat</source>
        <translation>Nie udało się zapisać skompresowanego czatu</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatCompressor.cpp" line="137"/>
        <source>Compression failed: %1</source>
        <translation>Kompresja nie powiodła się: %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>Plik jest niedostępny: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatFileManager.cpp" line="45"/>
        <source>Failed to copy file: %1</source>
        <translation>Nie udało się skopiować pliku: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatHistoryStore</name>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="121"/>
        <source>Save Chat History</source>
        <translation>Zapisz historię czatu</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="124"/>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="151"/>
        <source>JSON files (*.json)</source>
        <translation>Pliki JSON (*.json)</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatHistoryStore.cpp" line="148"/>
        <source>Load Chat History</source>
        <translation>Wczytaj historię czatu</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::ChatRootView</name>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="285"/>
        <source>Chat compressed successfully!</source>
        <translation>Czat skompresowano pomyślnie!</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>Ten plik czatu jest już używany przez inną sesję czatu QodeAssist.</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="527"/>
        <source>This chat is already open in another QodeAssist chat session.</source>
        <translation>Ten czat jest już otwarty w innej sesji czatu QodeAssist.</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="605"/>
        <location filename="../../ChatView/ChatRootView.cpp" line="653"/>
        <source>Select Files to Attach</source>
        <translation>Wybierz pliki do dołączenia</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>Obrazy automatycznie przeniesione do strefy załączników (%n plików)</numerusform>
            <numerusform>Obrazy automatycznie przeniesione do strefy załączników (%n plików)</numerusform>
            <numerusform>Obrazy automatycznie przeniesione do strefy załączników (%n plików)</numerusform>
        </translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="713"/>
        <source>Select Images to Attach</source>
        <translation>Wybierz obrazy do dołączenia</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="715"/>
        <source>Images (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</source>
        <translation>Obrazy (*.png *.jpg *.jpeg *.gif *.bmp *.webp)</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="1280"/>
        <source>Compression is already in progress</source>
        <translation>Kompresja jest już w toku</translation>
    </message>
    <message>
        <location filename="../../ChatView/ChatRootView.cpp" line="1286"/>
        <source>No chat file to compress. Please save the chat first.</source>
        <translation>Brak pliku czatu do skompresowania. Najpierw zapisz czat.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Chat::NavigationPanel</name>
    <message>
        <location filename="../../chat/NavigationPanel.cpp" line="21"/>
        <source>QodeAssist Chat</source>
        <translation>Czat QodeAssist</translation>
    </message>
</context>
<context>
    <name>QodeAssist::EditorChatButton</name>
    <message>
        <location filename="../../widgets/EditorChatButton.cpp" line="48"/>
        <source>Open QodeAssist Chat</source>
        <translation>Otwórz czat QodeAssist</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Mcp::McpServerManager</name>
    <message>
        <location filename="../../mcp/McpServerManager.cpp" line="80"/>
        <source>QodeAssist MCP server exposing Qt Creator project tools.</source>
        <translation>Serwer MCP QodeAssist udostępniający narzędzia projektu Qt Creator.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::QodeAssistClient</name>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="379"/>
        <source>Code completion failed: %1</source>
        <translation>Uzupełnianie kodu nie powiodło się: %1</translation>
    </message>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="523"/>
        <source>Quick refactor failed</source>
        <translation>Szybki refaktoring nie powiódł się</translation>
    </message>
    <message>
        <location filename="../../QodeAssistClient.cpp" line="524"/>
        <source>Quick refactor failed: %1</source>
        <translation>Szybki refaktoring nie powiódł się: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::RefactorWidget</name>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="176"/>
        <source>◄ Original</source>
        <translation>◄ Oryginał</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="186"/>
        <source>Refactored ►</source>
        <translation>Po refaktoringu ►</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="215"/>
        <source>✓ Apply (⌘+Enter)</source>
        <translation>✓ Zastosuj (⌘+Enter)</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="217"/>
        <source>✓ Apply (Ctrl+Enter)</source>
        <translation>✓ Zastosuj (Ctrl+Enter)</translation>
    </message>
    <message>
        <location filename="../../widgets/RefactorWidget.cpp" line="223"/>
        <source>✗ Decline (Esc)</source>
        <translation>✗ Odrzuć (Esc)</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentDetailPane</name>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="84"/>
        <source>Open in editor</source>
        <translation>Otwórz w edytorze</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="85"/>
        <source>Duplicate…</source>
        <translation>Duplikuj…</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="86"/>
        <source>Delete</source>
        <translation>Usuń</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="127"/>
        <source>Identity</source>
        <translation>Tożsamość</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="129"/>
        <source>Extends:</source>
        <translation>Rozszerza:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="143"/>
        <source>Name:</source>
        <translation>Nazwa:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="153"/>
        <source>Description:</source>
        <translation>Opis:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="154"/>
        <source>Tags:</source>
        <translation>Tagi:</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>Oddzielone przecinkami. Dowolna forma — używane do filtrowania i grupowania listy agentów.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="159"/>
        <source>System role</source>
        <translation>Rola systemowa</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="161"/>
        <source>Prepended to every request as the system message.</source>
        <translation>Dodawane na początku każdego żądania jako wiadomość systemowa.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="168"/>
        <source>Context</source>
        <translation>Kontekst</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>Szablon Jinja2 renderowany z powiązaniami ContextManager w warstwie promptu systemowego agent.context. Pusty = brak bloku kontekstu.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="179"/>
        <source>Connection</source>
        <translation>Połączenie</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="191"/>
        <source>Provider:</source>
        <translation>Dostawca:</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>Instancja dostawcy używana przez tego agenta. URL jest dziedziczony z instancji.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="194"/>
        <source>Endpoint:</source>
        <translation>Endpoint:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="195"/>
        <source>Appended to the provider&apos;s URL. Blank uses the provider default.</source>
        <translation>Dodawane do URL dostawcy. Puste oznacza wartość domyślną dostawcy.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="197"/>
        <source>Model:</source>
        <translation>Model:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="208"/>
        <source>Match</source>
        <translation>Dopasowanie</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>Gdy slot funkcji ma wielu powiązanych agentów, wygrywa pierwszy, którego reguły dopasowania spełniają bieżący kontekst.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="217"/>
        <source>File patterns:</source>
        <translation>Wzorce plików:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="218"/>
        <source>Globs, comma-separated. Empty matches every file.</source>
        <translation>Wzorce glob, oddzielone przecinkami. Puste pasuje do każdego pliku.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="222"/>
        <source>Template</source>
        <translation>Szablon</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>Szablon Jinja2 (przez inja) renderowany do treści żądania. Wbudowany kontekst: 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>Błędy ładowania</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="246"/>
        <location filename="../../settings/AgentDetailPane.cpp" line="257"/>
        <source>▸ Show raw TOML</source>
        <translation>▸ Pokaż surowy TOML</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="257"/>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Ukryj surowy TOML</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="312"/>
        <source>No description provided.</source>
        <translation>Nie podano opisu.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="344"/>
        <source>%1  (missing — not in provider library)</source>
        <translation>%1  (brak — nie ma w bibliotece dostawcy)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="352"/>
        <source>(provider default)</source>
        <translation>(domyślny dostawcy)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="358"/>
        <source># effective request line
(unknown — provider instance not found)</source>
        <translation># efektywny wiersz żądania
(nieznany — nie znaleziono instancji dostawcy)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="360"/>
        <source>effective request line</source>
        <translation>efektywny wiersz żądania</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="363"/>
        <source>(no system role set)</source>
        <translation>(brak ustawionej roli systemowej)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="365"/>
        <source>(no context block)</source>
        <translation>(brak bloku kontekstu)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="368"/>
        <source>(matches every file)</source>
        <translation>(pasuje do każdego pliku)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="371"/>
        <source>(inherited from parent / none)</source>
        <translation>(dziedziczone z rodzica / brak)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="382"/>
        <source>(truncated at %1 bytes)</source>
        <translation>(obcięto na %1 bajtach)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="385"/>
        <source>(source file is empty)</source>
        <translation>(plik źródłowy jest pusty)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="388"/>
        <source>(source file unavailable: %1)</source>
        <translation>(plik źródłowy niedostępny: %1)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="394"/>
        <source>Bundled agents are read-only — duplicate to edit.</source>
        <translation>Agenci dołączeni są tylko do odczytu — zduplikuj, aby edytować.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="398"/>
        <source>Bundled agents cannot be deleted.</source>
        <translation>Nie można usunąć dołączonych agentów.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="407"/>
        <source>Select an agent</source>
        <translation>Wybierz agenta</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="409"/>
        <source>Pick an agent from the list to see its details.</source>
        <translation>Wybierz agenta z listy, aby zobaczyć jego szczegóły.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="437"/>
        <source>error: %1</source>
        <translation>błąd: %1</translation>
    </message>
    <message>
        <location filename="../../settings/AgentDetailPane.cpp" line="439"/>
        <source>warning: %1</source>
        <translation>ostrzeżenie: %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentListPane</name>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="35"/>
        <source>Filter agents…</source>
        <translation>Filtruj agentów…</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="186"/>
        <source>User</source>
        <translation>Użytkownik</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="190"/>
        <source>Bundled</source>
        <translation>Dołączeni</translation>
    </message>
    <message>
        <location filename="../../settings/AgentListPane.cpp" line="194"/>
        <source>No agents match these filters.</source>
        <translation>Żaden agent nie pasuje do tych filtrów.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentRoleDialog</name>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="24"/>
        <source>Add Agent Role</source>
        <translation>Dodaj rolę agenta</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="26"/>
        <source>Duplicate Agent Role</source>
        <translation>Duplikuj rolę agenta</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="28"/>
        <source>Edit Agent Role</source>
        <translation>Edytuj rolę agenta</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="42"/>
        <source>e.g., Developer, Code Reviewer</source>
        <translation>np. Developer, Code Reviewer</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="43"/>
        <source>Name:</source>
        <translation>Nazwa:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="46"/>
        <source>e.g., developer, code_reviewer</source>
        <translation>np. 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>Krótki opis tej roli...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="52"/>
        <source>Description:</source>
        <translation>Opis:</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="56"/>
        <source>System Prompt:</source>
        <translation>Prompt systemowy:</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>Jesteś ekspertem w...

Twoja rola to:
- Zadanie 1
- Zadanie 2
- Zadanie 3</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRoleDialog.cpp" line="75"/>
        <source>ID cannot be changed for existing roles</source>
        <translation>ID nie może być zmienione dla istniejących ról</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::AgentsWidget</name>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="69"/>
        <source>Agents</source>
        <translation>Agenci</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="75"/>
        <source>Reload from disk</source>
        <translation>Wczytaj ponownie z dysku</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="76"/>
        <source>Open agents folder</source>
        <translation>Otwórz folder agentów</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>Otwórz agenta</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; jest dołączony do wtyczki i tylko do odczytu.
Użyj Duplikuj, aby utworzyć edytowalną kopię użytkownika.</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; nie ma edytowalnego pliku źródłowego.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="204"/>
        <source>Could not open %1.</source>
        <translation>Nie można otworzyć %1.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="212"/>
        <source>Duplicate</source>
        <translation>Duplikuj</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="228"/>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="236"/>
        <source>Delete Agent</source>
        <translation>Usuń agenta</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="229"/>
        <source>Delete agent &apos;%1&apos;?

This will remove the file:
%2</source>
        <translation>Usunąć agenta &apos;%1&apos;?

To usunie plik:
%2</translation>
    </message>
    <message>
        <location filename="../../settings/AgentsSettingsPage.cpp" line="237"/>
        <source>Could not delete the agent file:
%1</source>
        <translation>Nie można usunąć pliku agenta:
%1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::McpClientsListAspect</name>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="72"/>
        <source>Connected.</source>
        <translation>Połączono.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="74"/>
        <source>Connecting…</source>
        <translation>Łączenie…</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="76"/>
        <source>Failed.</source>
        <translation>Niepowodzenie.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="77"/>
        <source>Failed: %1</source>
        <translation>Niepowodzenie: %1</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="81"/>
        <source>Disabled.</source>
        <translation>Wyłączone.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="129"/>
        <source>everything (reference test server)</source>
        <translation>everything (referencyjny serwer testowy)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="138"/>
        <source>filesystem (local files)</source>
        <translation>filesystem (pliki lokalne)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="149"/>
        <source>memory (in-memory key-value)</source>
        <translation>memory (klucz-wartość w pamięci)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="158"/>
        <source>git (local git ops)</source>
        <translation>git (lokalne operacje git)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="167"/>
        <source>time (system clock)</source>
        <translation>time (zegar systemowy)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="176"/>
        <source>qtcreator (Qt Creator&apos;s built-in MCP server)</source>
        <translation>qtcreator (wbudowany serwer MCP Qt Creator)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="185"/>
        <source>qt-docs (Qt documentation)</source>
        <translation>qt-docs (dokumentacja Qt)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="193"/>
        <source>remote (SSE / HTTP)</source>
        <translation>remote (SSE / HTTP)</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="232"/>
        <source>Server reports no tools.</source>
        <translation>Serwer nie zgłasza żadnych narzędzi.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="245"/>
        <source>Tools</source>
        <translation>Narzędzia</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="271"/>
        <source>Enable / disable this MCP server</source>
        <translation>Włącz / wyłącz ten serwer MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="285"/>
        <source>Remove this server from the config.</source>
        <translation>Usuń ten serwer z konfiguracji.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="313"/>
        <source>Remove server</source>
        <translation>Usuń serwer</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="314"/>
        <source>Remove server &apos;%1&apos; from the config?</source>
        <translation>Usunąć serwer &apos;%1&apos; z konfiguracji?</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="346"/>
        <source>Open Config</source>
        <translation>Otwórz konfigurację</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="348"/>
        <source>Refresh MCP List</source>
        <translation>Odśwież listę MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="359"/>
        <source>Note: restart Qt Creator to apply MCP changes to already-opened chats and running sessions.</source>
        <translation>Uwaga: uruchom ponownie Qt Creator, aby zastosować zmiany MCP do już otwartych czatów i działających sesji.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="376"/>
        <source>Quick Setup</source>
        <translation>Szybka konfiguracja</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>Wybierz szablon, aby dodać gotowy wpis serwera do konfiguracji (z automatycznym sufiksem, jeśli nazwa jest zajęta).</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="382"/>
        <source>-- Select Preset --</source>
        <translation>-- Wybierz szablon --</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="410"/>
        <source>No servers configured. Add a preset below or edit the JSON.</source>
        <translation>Nie skonfigurowano żadnych serwerów. Dodaj szablon poniżej lub edytuj JSON.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="415"/>
        <source>0 server(s) defined.</source>
        <translation>Zdefiniowano 0 serwerów.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="429"/>
        <source>%1 server(s) defined, %2 enabled.</source>
        <translation>Zdefiniowano serwerów: %1, włączonych: %2.</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="475"/>
        <source>MCP configuration</source>
        <translation>Konfiguracja MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpClientsListAspect.cpp" line="476"/>
        <source>Failed to write %1:
%2</source>
        <translation>Nie udało się zapisać %1:
%2</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProviderDetailPane</name>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="42"/>
        <source>Edit…</source>
        <translation>Edytuj…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="44"/>
        <source>Open in editor</source>
        <translation>Otwórz w edytorze</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>Otwórz plik TOML tego dostawcy w Qt Creator. Dołączeni dostawcy są tylko do odczytu — najpierw zduplikuj.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="48"/>
        <source>Duplicate…</source>
        <translation>Duplikuj…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="49"/>
        <source>Delete</source>
        <translation>Usuń</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="50"/>
        <source>Cancel</source>
        <translation>Anuluj</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="51"/>
        <source>Save</source>
        <translation>Zapisz</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="105"/>
        <source>Identity</source>
        <translation>Tożsamość</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="117"/>
        <source>Name:</source>
        <translation>Nazwa:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="118"/>
        <source>Client API:</source>
        <translation>API klienta:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="119"/>
        <source>The client API this provider speaks. Cannot be changed after creation.</source>
        <translation>API klienta używane przez tego dostawcę. Nie można zmienić po utworzeniu.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="121"/>
        <source>Description:</source>
        <translation>Opis:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="124"/>
        <source>Endpoint</source>
        <translation>Endpoint</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="131"/>
        <source>URL:</source>
        <translation>URL:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="132"/>
        <source>Base URL. Agents append their endpoint path (e.g. /chat/completions) to this.</source>
        <translation>Bazowy URL. Agenci dodają do niego swoją ścieżkę endpointu (np. /chat/completions).</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="144"/>
        <source>Credentials</source>
        <translation>Poświadczenia</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>Wprowadź klucz API…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="151"/>
        <source>Show / hide API key</source>
        <translation>Pokaż / ukryj klucz API</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="155"/>
        <source>Save key</source>
        <translation>Zapisz klucz</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="157"/>
        <source>Clear</source>
        <translation>Wyczyść</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="158"/>
        <source>Erase the stored API key for this provider</source>
        <translation>Wymaż zapisany klucz API dla tego dostawcy</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="190"/>
        <source>API key:</source>
        <translation>Klucz API:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="194"/>
        <source>Launch</source>
        <translation>Uruchom</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="204"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="410"/>
        <source>idle</source>
        <translation>bezczynny</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="205"/>
        <source>Start</source>
        <translation>Uruchom</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="206"/>
        <source>Stop</source>
        <translation>Zatrzymaj</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="207"/>
        <source>Restart</source>
        <translation>Uruchom ponownie</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="224"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
        <source>▸ Show launch terminal</source>
        <translation>▸ Pokaż terminal uruchamiania</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="243"/>
        <source>▾ Hide launch terminal</source>
        <translation>▾ Ukryj terminal uruchamiania</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="253"/>
        <location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
        <source>▸ Show raw TOML</source>
        <translation>▸ Pokaż surowy TOML</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="264"/>
        <source>▾ Hide raw TOML</source>
        <translation>▾ Ukryj surowy TOML</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="295"/>
        <source>No description provided.</source>
        <translation>Nie podano opisu.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="309"/>
        <source>— not required (local provider)</source>
        <translation>— niewymagane (lokalny dostawca)</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="310"/>
        <source>This provider type does not use a key.</source>
        <translation>Ten typ dostawcy nie używa klucza.</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>Zapisano — wprowadź nowy klucz, aby go zastąpić.</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>Klucz jest zapisany. Wpisz nowy klucz i naciśnij Zapisz klucz, aby go zastąpić, lub Wyczyść, aby go wymazać.</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>Nie zapisano jeszcze żadnego klucza. Wpisz klucz i naciśnij Zapisz klucz.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="338"/>
        <source>Select a provider</source>
        <translation>Wybierz dostawcę</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>Brak bloku [launch]. Ten dostawca jest traktowany jako zewnętrzny — wtyczka nie uruchomi ani nie będzie nadzorować żadnego procesu. Dodaj blok [launch] do TOML, aby wtyczka zarządzała tu lokalnym serwerem.</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;(odłączony — przetrwa restart Qt Creator)&lt;/span&gt;</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="411"/>
        <source>starting…</source>
        <translation>uruchamianie…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="412"/>
        <source>probing…</source>
        <translation>sondowanie…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="413"/>
        <source>ready</source>
        <translation>gotowy</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="414"/>
        <source>stopping…</source>
        <translation>zatrzymywanie…</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="416"/>
        <source>failed</source>
        <translation>niepowodzenie</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderDetailPane.cpp" line="417"/>
        <source>failed — %1</source>
        <translation>niepowodzenie — %1</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::ProvidersPageWidget</name>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="76"/>
        <source>Providers</source>
        <translation>Dostawcy</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="92"/>
        <source>Filter providers…</source>
        <translation>Filtruj dostawców…</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="136"/>
        <source>Open in editor</source>
        <translation>Otwórz w edytorze</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>Dołączeni dostawcy są tylko do odczytu. Użyj Duplikuj, aby najpierw utworzyć edytowalną kopię użytkownika.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="278"/>
        <source>No user instances yet.</source>
        <translation>Brak instancji użytkownika.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="279"/>
        <source>No bundled instances loaded.</source>
        <translation>Nie załadowano żadnych dołączonych instancji.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="289"/>
        <source>User</source>
        <translation>Użytkownik</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="290"/>
        <source>Bundled</source>
        <translation>Dołączeni</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>Duplikuj dostawcę</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="326"/>
        <source>Name for the new provider:</source>
        <translation>Nazwa nowego dostawcy:</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>Instancja o nazwie &apos;%1&apos; już istnieje.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="362"/>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="367"/>
        <source>Delete provider</source>
        <translation>Usuń dostawcę</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="363"/>
        <source>Delete user provider &apos;%1&apos;?

File: %2</source>
        <translation>Usunąć dostawcę użytkownika &apos;%1&apos;?

Plik: %2</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="368"/>
        <source>Failed to delete file:
%1</source>
        <translation>Nie udało się usunąć pliku:
%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>Zapisz</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="382"/>
        <source>Name cannot be empty.</source>
        <translation>Nazwa nie może być pusta.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="410"/>
        <source>Save anyway?</source>
        <translation>Zapisać mimo to?</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>Zapisano do:
%1

ale nie udało się usunąć starego pliku:
%2

Dwa pliki dostawców opisują teraz tę instancję — usuń stary plik ręcznie, aby uniknąć błędu zduplikowanej nazwy.</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="471"/>
        <source>Clear API key</source>
        <translation>Wyczyść klucz API</translation>
    </message>
    <message>
        <location filename="../../settings/ProvidersSettingsPage.cpp" line="472"/>
        <source>Erase the stored API key for &apos;%1&apos;?</source>
        <translation>Wymazać zapisany klucz API dla &apos;%1&apos;?</translation>
    </message>
</context>
<context>
    <name>QodeAssist::Settings::TagFilterStrip</name>
    <message>
        <location filename="../../settings/TagFilterStrip.cpp" line="115"/>
        <source>FILTER BY TAG</source>
        <translation>FILTRUJ WEDŁUG TAGU</translation>
    </message>
    <message>
        <location filename="../../settings/TagFilterStrip.cpp" line="120"/>
        <source>clear</source>
        <translation>wyczyść</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>Błąd: parametr &apos;tasks&apos; (tablica) jest wymagany dla operacji &apos;add&apos;. Przykład: {&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>Błąd: tablica &apos;tasks&apos; nie może być pusta. Podaj co najmniej jedno zadanie.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="120"/>
        <source>Error: All tasks in &apos;tasks&apos; array are empty strings.</source>
        <translation>Błąd: wszystkie zadania w tablicy &apos;tasks&apos; są pustymi ciągami.</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>Błąd: parametr &apos;todo_ids&apos; (tablica) jest wymagany dla operacji &apos;complete&apos;. Przykład: {&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>Błąd: tablica &apos;todo_ids&apos; nie może być pusta. Podaj co najmniej jedno ID.</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="148"/>
        <source>Error: All IDs in &apos;todo_ids&apos; array are invalid. IDs must be positive integers.</source>
        <translation>Błąd: wszystkie identyfikatory w tablicy &apos;todo_ids&apos; są nieprawidłowe. ID muszą być dodatnimi liczbami całkowitymi.</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>Błąd: nieznana operacja &apos;%1&apos;. Prawidłowe operacje: &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>✓ Dodano 1 nowe zadanie</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="193"/>
        <source>✓ Added %1 new tasks</source>
        <translation>✓ Dodano nowych zadań: %1</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="203"/>
        <source>Error: No todos found in this session</source>
        <translation>Błąd: nie znaleziono żadnych zadań w tej sesji</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="228"/>
        <source>✓ Marked 1 task as completed</source>
        <translation>✓ Oznaczono 1 zadanie jako ukończone</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="229"/>
        <source>✓ Marked %1 tasks as completed</source>
        <translation>✓ Oznaczono jako ukończone zadań: %1</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="234"/>
        <source>⚠ %1 already completed</source>
        <translation>⚠ %1 już ukończone</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="238"/>
        <source>❌ Not found: %1</source>
        <translation>❌ Nie znaleziono: %1</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="255"/>
        <source>📋 TODO List: (empty)</source>
        <translation>📋 Lista zadań: (pusta)</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="264"/>
        <source>📋 TODO List:</source>
        <translation>📋 Lista zadań:</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>Postęp: %1/%2 ukończono (%3%)</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="296"/>
        <location filename="../../tools/TodoTool.cpp" line="316"/>
        <source>📋 All tasks completed! 🎉</source>
        <translation>📋 Wszystkie zadania ukończone! 🎉</translation>
    </message>
    <message>
        <location filename="../../tools/TodoTool.cpp" line="321"/>
        <source>📋 Remaining tasks:</source>
        <translation>📋 Pozostałe zadania:</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateDialog</name>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="19"/>
        <source>QodeAssist Update</source>
        <translation>Aktualizacja QodeAssist</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="27"/>
        <source>QodeAssist is an open-source project that helps
developers write better code. If you find it useful, please</source>
        <translation>QodeAssist to projekt open-source, który pomaga
deweloperom pisać lepszy kod. Jeśli uznasz go za przydatny, proszę</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="54"/>
        <source>QodeAssistUpdater - convenient tool for plugin installation and updates</source>
        <translation>QodeAssistUpdater - wygodne narzędzie do instalacji i aktualizacji wtyczki</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="60"/>
        <source>Download QodeAssistUpdater</source>
        <translation>Pobierz QodeAssistUpdater</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="70"/>
        <location filename="../../settings/UpdateDialog.cpp" line="127"/>
        <source>A new version of QodeAssist is available!</source>
        <translation>Dostępna jest nowa wersja QodeAssist!</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="76"/>
        <location filename="../../settings/UpdateDialog.cpp" line="128"/>
        <source>Version %1 is now available - you have %2</source>
        <translation>Wersja %1 jest teraz dostępna - masz %2</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="80"/>
        <source>Release Notes:</source>
        <translation>Informacje o wydaniu:</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="89"/>
        <source>Open Release Page</source>
        <translation>Otwórz stronę wydania</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="92"/>
        <source>Open Plugin Folder</source>
        <translation>Otwórz folder wtyczki</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="95"/>
        <source>Close</source>
        <translation>Zamknij</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="121"/>
        <source>QodeAssist is up to date</source>
        <translation>QodeAssist jest aktualny</translation>
    </message>
    <message>
        <location filename="../../settings/UpdateDialog.cpp" line="123"/>
        <source>You are using the latest version: %1</source>
        <translation>Używasz najnowszej wersji: %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>Brak informacji o wydaniu. Sprawdź stronę wydania, aby uzyskać więcej informacji.</translation>
    </message>
</context>
<context>
    <name>QodeAssist::UpdateStatusWidget</name>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="28"/>
        <source>Update</source>
        <translation>Aktualizuj</translation>
    </message>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="45"/>
        <source>New version: v%1</source>
        <translation>Nowa wersja: v%1</translation>
    </message>
    <message>
        <location filename="../../UpdateStatusWidget.cpp" line="48"/>
        <source>Check update information</source>
        <translation>Sprawdź informacje o aktualizacji</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>Nie można utworzyć folderu dostawcy użytkownika:
%1</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="147"/>
        <source>Cannot pick a free filename in:
%1</source>
        <translation>Nie można wybrać wolnej nazwy pliku w:
%1</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="153"/>
        <source>Cannot write %1:
%2</source>
        <translation>Nie można zapisać %1:
%2</translation>
    </message>
    <message>
        <location filename="../../sources/providersConfig/ProviderInstanceWriter.cpp" line="159"/>
        <source>Write failed for %1:
%2</source>
        <translation>Zapis nie powiódł się dla %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>Szybka konfiguracja</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>Skonfiguruj klucz API</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="83"/>
        <location filename="../../settings/GeneralSettings.cpp" line="90"/>
        <location filename="../../settings/GeneralSettings.cpp" line="97"/>
        <source>Open Provider Settings to configure API keys</source>
        <translation>Otwórz ustawienia dostawcy, aby skonfigurować klucze API</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="129"/>
        <location filename="../../settings/GeneralSettings.cpp" line="208"/>
        <location filename="../../settings/GeneralSettings.cpp" line="245"/>
        <source>Load configuration (includes predefined cloud models)</source>
        <translation>Wczytaj konfigurację (zawiera predefiniowane modele w chmurze)</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>Pokaż informacje o szablonie</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="522"/>
        <source>Template Information</source>
        <translation>Informacje o szablonie</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="523"/>
        <source>Template</source>
        <translation>Szablon</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="526"/>
        <source>Description:</source>
        <translation>Opis:</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="744"/>
        <source>Failed to save configuration. Check logs for details.</source>
        <translation>Nie udało się zapisać konfiguracji. Sprawdź logi, aby uzyskać szczegóły.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="785"/>
        <source>[Preset] configurations are predefined cloud models ready to use.</source>
        <translation>Konfiguracje [Preset] to predefiniowane modele w chmurze gotowe do użycia.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="832"/>
        <source>Predefined configurations cannot be deleted.</source>
        <translation>Nie można usunąć predefiniowanych konfiguracji.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="850"/>
        <source>Failed to delete configuration.</source>
        <translation>Nie udało się usunąć konfiguracji.</translation>
    </message>
    <message>
        <location filename="../../settings/GeneralSettings.cpp" line="912"/>
        <source>-- Select Preset --</source>
        <translation>-- Wybierz szablon --</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>Włącz QodeAssist</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="12"/>
        <source>General</source>
        <translation>Ogólne</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>Przywróć stronę do wartości domyślnych</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="15"/>
        <source>Check Update</source>
        <translation>Sprawdź aktualizację</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="16"/>
        <source>Select...</source>
        <translation>Wybierz...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="17"/>
        <source>Provider:</source>
        <translation>Dostawca:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="18"/>
        <source>Model:</source>
        <translation>Model:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="19"/>
        <source>Template:</source>
        <translation>Szablon:</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>Stan:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="22"/>
        <source>Test</source>
        <translation>Testuj</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="23"/>
        <source>Enable Logging</source>
        <translation>Włącz logowanie</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="25"/>
        <source>Log messages are visible in General Messages pane</source>
        <translation>Wiadomości logu są widoczne w panelu Ogólnych wiadomości</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="27"/>
        <source>Check for updates when Qt Creator starts</source>
        <translation>Sprawdzaj aktualizacje przy uruchamianiu Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="28"/>
        <source>Enable Chat(If you have performance issues try disabling this, need restart QtC)</source>
        <translation>Włącz czat (jeśli masz problemy z wydajnością, spróbuj to wyłączyć, wymaga restartu QtC)</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="31"/>
        <source>Custom endpoint:</source>
        <translation>Niestandardowy endpoint:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="33"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="27"/>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="543"/>
        <source>Code Completion</source>
        <translation>Uzupełnianie kodu</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>Asystent czatu</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>Szybki refaktoring</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="36"/>
        <source>Chat Compression</source>
        <translation>Kompresja czatu</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="37"/>
        <source>Agent Pipelines</source>
        <translation>Pipeline&apos;y agentów</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="38"/>
        <source>Inline completions while you type. Matchers run on every request.</source>
        <translation>Wbudowane uzupełnienia podczas pisania. Matchery są uruchamiane przy każdym żądaniu.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="41"/>
        <source>Conversational assistant in the QodeAssist panel.</source>
        <translation>Konwersacyjny asystent w panelu QodeAssist.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="43"/>
        <source>Used when a chat conversation needs to be summarised to stay within context.</source>
        <translation>Używane, gdy rozmowa czatu musi zostać podsumowana, aby pozostać w kontekście.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="46"/>
        <source>Inline editor-driven refactors via the Quick Refactor action.</source>
        <translation>Refaktoringi sterowane edytorem inline za pomocą akcji Szybki refaktoring.</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>Zresetuj ustawienia</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>Czy na pewno chcesz zresetować wszystkie ustawienia do wartości domyślnych?</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="52"/>
        <source>Current template description:</source>
        <translation>Opis bieżącego szablonu:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="54"/>
        <source>Connection Error</source>
        <translation>Błąd połączenia</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="56"/>
        <source>Unable to retrieve the list of models from the server.</source>
        <translation>Nie można pobrać listy modeli z serwera.</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>Sprawdź następujące elementy:
- Serwer jest uruchomiony i dostępny
- URL jest poprawny
- Dostawca jest poprawnie skonfigurowany
- Klucz API jest poprawnie ustawiony (jeśli wymagany)

Możesz spróbować wybrać innego dostawcę lub zmienić URL:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="65"/>
        <source>Select Provider</source>
        <translation>Wybierz dostawcę</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="66"/>
        <source>Select URL</source>
        <translation>Wybierz URL</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="67"/>
        <source>Close</source>
        <translation>Zamknij</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="68"/>
        <source>Model Selection</source>
        <translation>Wybór modelu</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>Wybierz spośród wcześniej używanych modeli lub wprowadź nową nazwę modelu.

Jeśli wprowadzasz nową nazwę modelu:
• Dla dostawców z automatycznym listowaniem - upewnij się, że model jest zainstalowany
• Dla dostawców bez obsługi listowania - sprawdź dokumentację dostawcy
• Upewnij się, że nazwa modelu jest dokładnie taka sama</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="76"/>
        <source>Model name:</source>
        <translation>Nazwa modelu:</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>Anuluj</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="80"/>
        <source>Enter Model Manually</source>
        <translation>Wprowadź model ręcznie</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="82"/>
        <source>URL Selection</source>
        <translation>Wybór URL</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="83"/>
        <source>Select from the list of default and previously used URLs, or enter a custom one.
Please ensure the selected URL is accessible and the service is running.</source>
        <translation>Wybierz z listy domyślnych i wcześniej używanych URL-i lub wprowadź niestandardowy.
Upewnij się, że wybrany URL jest dostępny, a usługa działa.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="88"/>
        <source>Use default provider URL or from history</source>
        <translation>Użyj domyślnego URL dostawcy lub z historii</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="89"/>
        <source>Enter custom URL</source>
        <translation>Wprowadź niestandardowy URL</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="91"/>
        <source>Enter Model Name Manually</source>
        <translation>Wprowadź nazwę modelu ręcznie</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="93"/>
        <source>Auto Completion Settings</source>
        <translation>Ustawienia autouzupełniania</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="96"/>
        <source>Add new preset for language</source>
        <translation>Dodaj nowy szablon dla języka</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="98"/>
        <source>Save Config...</source>
        <translation>Zapisz konfigurację...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="99"/>
        <source>Load Config...</source>
        <translation>Wczytaj konfigurację...</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="100"/>
        <source>Open Folder</source>
        <translation>Otwórz folder</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="101"/>
        <source>Save Configuration</source>
        <translation>Zapisz konfigurację</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="102"/>
        <source>Load Configuration</source>
        <translation>Wczytaj konfigurację</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="103"/>
        <source>Configuration name:</source>
        <translation>Nazwa konfiguracji:</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="104"/>
        <source>Select Configuration</source>
        <translation>Wybierz konfigurację</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="105"/>
        <source>No saved configurations found.</source>
        <translation>Nie znaleziono zapisanych konfiguracji.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="106"/>
        <source>Configuration saved successfully.</source>
        <translation>Konfiguracja zapisana pomyślnie.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="107"/>
        <source>Configuration loaded successfully.</source>
        <translation>Konfiguracja wczytana pomyślnie.</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="108"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="60"/>
        <source>Delete</source>
        <translation>Usuń</translation>
    </message>
    <message>
        <location filename="../../settings/SettingsTr.hpp" line="109"/>
        <source>Are you sure you want to delete this configuration?</source>
        <translation>Czy na pewno chcesz usunąć tę konfigurację?</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="31"/>
        <source>Enable Auto Complete</source>
        <translation>Włącz autouzupełnianie</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="36"/>
        <source>Enable Multiline Completion</source>
        <translation>Włącz wielowierszowe uzupełnianie</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="38"/>
        <source>Text output proccessing mode:</source>
        <translation>Tryb przetwarzania wyjścia tekstowego:</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: automatycznie wykrywa blok kodu i stosuje przetwarzanie, gdy go znajdzie, inny tekst jako komentarze
Wymuś przetwarzanie: zawsze przetwarza tekst z formatowaniem bloku kodu i innym tekstem jako komentarze
Surowy tekst: pokazuje nieprzetworzony tekst bez formatowania</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="52"/>
        <source>Completion trigger mode:</source>
        <translation>Tryb wyzwalania uzupełniania:</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>Oparty na podpowiedzi: pokazuje podpowiedź podczas pisania, naciśnij Tab, aby zażądać uzupełnienia
Automatyczny: automatycznie żąda uzupełnienia po przekroczeniu progu pisania</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="62"/>
        <source>Completion mode:</source>
        <translation>Tryb uzupełniania:</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>Automatyczny: żąda uzupełnienia podczas pisania (z inteligentnymi bramkami kontekstu).
Ręczny: brak automatycznego wyzwalania; wywołaj za pomocą skrótu &apos;Żądaj sugestii QodeAssist&apos; (domyślnie Ctrl+Alt+Q, konfigurowalny w Preferencje &gt; Klawiatura).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="74"/>
        <source>Smart context-aware triggering</source>
        <translation>Inteligentne wyzwalanie świadome kontekstu</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>Po włączeniu autouzupełnianie jest tłumione w miejscach, gdzie wbudowane uzupełnianie Qt Creator jest zwykle silniejsze (w środku identyfikatora, zaraz po &apos;.&apos;, &apos;-&gt;&apos;, &apos;::&apos;), i jest chętniej wyzwalane po znakach strukturalnych jak &apos;(&apos;, &apos;,&apos;, &apos;{&apos;, &apos;=&apos; oraz w nowych wciętych wierszach.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="83"/>
        <source>Don&apos;t dismiss Qt Creator&apos;s completion popup</source>
        <translation>Nie zamykaj okienka uzupełniania Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="86"/>
        <source>When enabled, an AI completion arriving while Qt Creator&apos;s own completion popup is already visible will not force it closed. The LLM suggestion still appears inline.</source>
        <translation>Po włączeniu uzupełnienie AI nadchodzące, gdy własne okienko uzupełniania Qt Creator jest już widoczne, nie zostanie zamknięte na siłę. Sugestia LLM nadal pojawi się inline.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="91"/>
        <source>Cancel in-flight request on new input</source>
        <translation>Anuluj trwające żądanie przy nowym wejściu</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>Po włączeniu każde nowe naciśnięcie klawisza anuluje wszelkie trwające żądania uzupełnienia i restartuje timer debounce. Przydatne dla wolnych lokalnych modeli, gdzie nieaktualna odpowiedź rzadko jest warta oczekiwania.
Po wyłączeniu (domyślnie) trwające żądanie jest zachowywane; gdy nadchodzi odpowiedź, wtyczka porównuje ją ze znakami wpisanymi w międzyczasie i albo przycina pasujący prefiks, albo odrzuca odpowiedź.</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="102"/>
        <source>with delay(ms)</source>
        <translation>z opóźnieniem (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>Opóźnienie przed wysłaniem żądania uzupełnienia.
(Tylko dla trybu automatycznego wyzwalania)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="110"/>
        <source>AI suggestion triggers after typing</source>
        <translation>Sugestia AI wyzwala się po wpisaniu</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>Liczba znaków, które należy wpisać w interwale pisania, zanim żądanie sugestii AI zostanie wysłane automatycznie.
(Tylko dla trybu automatycznego wyzwalania)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="119"/>
        <source>character(s) within(ms)</source>
        <translation>znaków w ciągu (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>Okno czasowe (w milisekundach), w którym musi zostać osiągnięty próg znaków, aby automatycznie wyzwolić żądanie sugestii AI.
(Tylko dla trybu automatycznego wyzwalania)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="128"/>
        <source>Hint shows after typing</source>
        <translation>Podpowiedź pokazuje się po wpisaniu</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>Liczba znaków, które należy wpisać, zanim pojawi się widget podpowiedzi (tylko dla trybu wyzwalania opartego na podpowiedzi).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="136"/>
        <source>Hint auto-hide timeout (ms)</source>
        <translation>Czas automatycznego ukrycia podpowiedzi (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>Czas w milisekundach, po którym widget podpowiedzi zostanie automatycznie ukryty (tylko dla trybu wyzwalania opartego na podpowiedzi).</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="143"/>
        <source>Trigger key:</source>
        <translation>Klawisz wyzwalający:</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>Klawisz do naciśnięcia, aby zażądać uzupełnienia, gdy podpowiedź jest widoczna.
Spacja jest zalecana jako najmniej kolidująca z menu kontekstowym.
(Tylko dla trybu wyzwalania opartego na podpowiedzi)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="160"/>
        <source>Ignore spaces and tabs in character count</source>
        <translation>Ignoruj spacje i tabulatory w liczeniu znaków</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>Po włączeniu spacje i tabulatory nie są liczone do progu znaków wyzwalającego uzupełnienia. Pomaga to wyzwalać uzupełnienia tylko na podstawie rzeczywistych znaków kodu.</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>Temperatura:</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>Maks. tokenów:</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>Kara za obecność:</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>Kara za częstotliwość:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="217"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="147"/>
        <source>Read Full File</source>
        <translation>Czytaj cały plik</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="220"/>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="150"/>
        <source>Read Strings Before Cursor:</source>
        <translation>Odczytaj ciągi przed kursorem:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="228"/>
        <source>Read Strings After Cursor:</source>
        <translation>Odczytaj ciągi po kursorze:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="234"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="116"/>
        <source>Use System Prompt</source>
        <translation>Użyj promptu systemowego</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="245"/>
        <source>Use special system prompt and user message for non FIM models</source>
        <translation>Użyj specjalnego promptu systemowego i wiadomości użytkownika dla modeli innych niż FIM</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="249"/>
        <source>System prompt for non FIM models:</source>
        <translation>Prompt systemowy dla modeli innych niż FIM:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="274"/>
        <source>User message for non FIM models:</source>
        <translation>Wiadomość użytkownika dla modeli innych niż FIM:</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="281"/>
        <source>Additional Programming Languages for handling: Example: rust,//,rust rs,rs</source>
        <translation>Dodatkowe języki programowania do obsługi: Przykład: 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>Określ dodatkowe języki programowania w formacie: nazwa,styl_komentarza,nazwy_modeli,rozszerzenia
Przykład: rust,//,rust rs,rs
Pola: nazwa języka, prefiks komentarza, nazwy z LLM (oddzielone spacjami), rozszerzenia plików (oddzielone spacjami)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="290"/>
        <source>Show progress indicator during code completion</source>
        <translation>Pokaż wskaźnik postępu podczas uzupełniania kodu</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="294"/>
        <source>Abort existing assist on new completion request</source>
        <translation>Przerwij istniejący asystent przy nowym żądaniu uzupełnienia</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>Po włączeniu anuluje aktywne okienko asystenta kodu Qt Creator przed zażądaniem uzupełnienia LLM.
(Tylko dla trybu automatycznego wyzwalania)</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="302"/>
        <source>Include context from open files</source>
        <translation>Uwzględnij kontekst z otwartych plików</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="307"/>
        <source>Max Changes Cache Size:</source>
        <translation>Maks. rozmiar pamięci podręcznej zmian:</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>Czas zawieszenia Ollama po żądaniu uzupełnienia (w minutach), tylko Ollama, -1 aby wyłączyć</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>Okno kontekstu:</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>Wysiłek rozumowania:</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>Ogranicza wysiłek rozumowania dla modeli OpenAI gpt-5 i serii o:

Brak: brak rozumowania (tylko gpt-5.1)
Minimalny: minimalny wysiłek rozumowania (tylko seria o)
Niski: niski wysiłek rozumowania
Średni: zrównoważone rozumowanie (domyślne dla większości modeli)
Wysoki: maksymalny wysiłek rozumowania (obsługiwany tylko przez gpt-5-pro)

Uwaga: zmniejszenie wysiłku = szybsze odpowiedzi + mniej tokenów</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="383"/>
        <source>Prompts for FIM models</source>
        <translation>Prompty dla modeli FIM</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="385"/>
        <source>Prompts for Non FIM models</source>
        <translation>Prompty dla modeli innych niż FIM</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="416"/>
        <source>General Settings</source>
        <translation>Ustawienia ogólne</translation>
    </message>
    <message>
        <location filename="../../settings/CodeCompletionSettings.cpp" line="418"/>
        <source>Automatic Trigger Mode</source>
        <translation>Tryb automatycznego wyzwalania</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>Parametry ogólne</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>Parametry zaawansowane</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>Ustawienia kontekstu</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>API odpowiedzi OpenAI</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>Ustawienia Ollama</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="33"/>
        <source>Sync open files with assistant by default</source>
        <translation>Domyślnie synchronizuj otwarte pliki z asystentem</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>Włącz autozapis po otrzymaniu wiadomości</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="41"/>
        <source>Enable chat in bottom toolbar</source>
        <translation>Włącz czat w dolnym pasku narzędzi</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="45"/>
        <source>Enable chat in navigation panel</source>
        <translation>Włącz czat w panelu nawigacji</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="49"/>
        <source>Enable tools/function calling</source>
        <translation>Włącz wywoływanie narzędzi/funkcji</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>Po włączeniu AI może używać narzędzi do odczytu plików, przeszukiwania projektu i budowania kodu</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="54"/>
        <source>Auto-compress chat when session tokens exceed:</source>
        <translation>Automatycznie kompresuj czat, gdy tokeny sesji przekroczą:</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>Po każdej odpowiedzi asystenta, jeśli suma tokenów bieżącej sesji przekroczy próg, czat jest podsumowywany, a nowy skompresowany czat jest automatycznie uruchamiany. Oryginalny czat jest zachowywany na dysku.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="142"/>
        <source>Enable extended thinking mode.</source>
        <translation>Włącz tryb rozszerzonego myślenia.</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>Włącz tryb rozszerzonego myślenia dla złożonych zadań rozumowania. Zapewnia to rozumowanie krok po kroku przed ostateczną odpowiedzią. Temperatura wynosi 1.0 zgodnie z wymaganiem API</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="150"/>
        <source>Thinking budget tokens:</source>
        <translation>Budżet tokenów myślenia:</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>Maksymalna liczba tokenów, których Claude może użyć do wewnętrznego rozumowania. Większe budżety poprawiają jakość, ale zwiększają opóźnienie. Minimum: 1024, zalecane: 10000-16000.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="158"/>
        <source>Thinking mode max output tokens:</source>
        <translation>Maks. tokenów wyjściowych w trybie myślenia:</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>Maksymalna liczba tokenów dla ostatecznej odpowiedzi, gdy tryb myślenia jest włączony. Ustaw -1, aby użyć domyślnego ustawienia maks. tokenów. Zalecane: 4096-16000.</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="188"/>
        <source>Text Font:</source>
        <translation>Czcionka tekstu:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="197"/>
        <source>Text Font Size:</source>
        <translation>Rozmiar czcionki tekstu:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="201"/>
        <source>Code Font:</source>
        <translation>Czcionka kodu:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="232"/>
        <source>Code Font Size:</source>
        <translation>Rozmiar czcionki kodu:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="236"/>
        <source>Text Format:</source>
        <translation>Format tekstu:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="244"/>
        <source>Chat Renderer:</source>
        <translation>Renderer czatu:</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="297"/>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="329"/>
        <source>Chat Settings</source>
        <translation>Ustawienia czatu</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>Narzędzia</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="308"/>
        <source>Extended Thinking (Claude)</source>
        <translation>Rozszerzone myślenie (Claude)</translation>
    </message>
    <message>
        <location filename="../../settings/ChatAssistantSettings.cpp" line="405"/>
        <source>Agent Roles</source>
        <translation>Role agentów</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="93"/>
        <source>Enable Tools</source>
        <translation>Włącz narzędzia</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>Włącz narzędzia/funkcje AI dla szybkiego refaktoringu (umożliwia odczyt plików projektu, wyszukiwanie kodu itp.)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="101"/>
        <source>Enable Thinking Mode</source>
        <translation>Włącz tryb myślenia</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>Włącz tryb rozszerzonego myślenia dla złożonych zadań refaktoringu (obsługiwane przez kompatybilne modele takie jak Claude i Google AI)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="109"/>
        <source>Thinking Budget Tokens:</source>
        <translation>Budżet tokenów myślenia:</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>Liczba tokenów przydzielonych do procesu myślenia. Użyj -1 dla dynamicznego myślenia (decyduje model), 0 aby wyłączyć, lub wartości dodatniej dla niestandardowego budżetu</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="118"/>
        <source>Thinking Max Output Tokens:</source>
        <translation>Maks. tokenów wyjściowych myślenia:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="120"/>
        <source>Maximum output tokens when thinking mode is enabled (includes thinking + response)</source>
        <translation>Maksymalna liczba tokenów wyjściowych, gdy tryb myślenia jest włączony (obejmuje myślenie + odpowiedź)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="154"/>
        <source>Lines Before Cursor/Selection:</source>
        <translation>Wiersze przed kursorem/zaznaczeniem:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="156"/>
        <source>Number of lines to include before cursor or selection for context</source>
        <translation>Liczba wierszy do uwzględnienia przed kursorem lub zaznaczeniem dla kontekstu</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="161"/>
        <source>Lines After Cursor/Selection:</source>
        <translation>Wiersze po kursorze/zaznaczeniu:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="163"/>
        <source>Number of lines to include after cursor or selection for context</source>
        <translation>Liczba wierszy do uwzględnienia po kursorze lub zaznaczeniu dla kontekstu</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="168"/>
        <source>Display Mode:</source>
        <translation>Tryb wyświetlania:</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>Wybierz sposób wyświetlania sugestii refaktoringu:
- Widget inline: pokazuje refaktoring w nakładce widgetu z przyciskami Zastosuj/Odrzuć (domyślnie)
- Sugestia Qt Creator: używa wbudowanego systemu sugestii Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="175"/>
        <source>Inline Widget</source>
        <translation>Widget inline</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="176"/>
        <source>Qt Creator Suggestion</source>
        <translation>Sugestia Qt Creator</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="180"/>
        <source>Widget Orientation:</source>
        <translation>Orientacja widgetu:</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>Wybierz domyślną orientację widgetu refaktoringu:
- Poziomo: oryginalny i zrefaktoryzowany kod obok siebie (domyślnie)
- Pionowo: oryginalny i zrefaktoryzowany kod ułożone pionowo</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="186"/>
        <source>Horizontal</source>
        <translation>Poziomo</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="187"/>
        <source>Vertical</source>
        <translation>Pionowo</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="191"/>
        <source>Widget Minimum Width:</source>
        <translation>Minimalna szerokość widgetu:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="192"/>
        <source>Minimum width for the refactor widget (in pixels)</source>
        <translation>Minimalna szerokość widgetu refaktoringu (w pikselach)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="197"/>
        <source>Widget Maximum Width:</source>
        <translation>Maksymalna szerokość widgetu:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="198"/>
        <source>Maximum width for the refactor widget (in pixels)</source>
        <translation>Maksymalna szerokość widgetu refaktoringu (w pikselach)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="203"/>
        <source>Widget Minimum Height:</source>
        <translation>Minimalna wysokość widgetu:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="204"/>
        <source>Minimum height for the refactor widget (in pixels)</source>
        <translation>Minimalna wysokość widgetu refaktoringu (w pikselach)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="209"/>
        <source>Widget Maximum Height:</source>
        <translation>Maksymalna wysokość widgetu:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="210"/>
        <source>Maximum height for the refactor widget (in pixels)</source>
        <translation>Maksymalna wysokość widgetu refaktoringu (w pikselach)</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="215"/>
        <source>System Prompt:</source>
        <translation>Prompt systemowy:</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="224"/>
        <source>Include context from open files in quick refactor</source>
        <translation>Uwzględnij kontekst z otwartych plików w szybkim refaktoringu</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="284"/>
        <source>Tools Settings</source>
        <translation>Ustawienia narzędzi</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="290"/>
        <source>Display Settings</source>
        <translation>Ustawienia wyświetlania</translation>
    </message>
    <message>
        <location filename="../../settings/QuickRefactorSettings.cpp" line="292"/>
        <source>Prompt Settings</source>
        <translation>Ustawienia promptu</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="30"/>
        <source>Allow file access outside project</source>
        <translation>Zezwól na dostęp do plików poza projektem</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>Zezwól narzędziom na odczyt, zapis i tworzenie plików poza zakresem projektu (nagłówki systemowe, pliki Qt, biblioteki zewnętrzne).</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="37"/>
        <source>Automatically apply file edits</source>
        <translation>Automatycznie stosuj edycje plików</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>Po włączeniu edycje plików sugerowane przez AI są stosowane natychmiast. Po wyłączeniu każda edycja jest przygotowywana do ręcznego zatwierdzenia.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="44"/>
        <source>Max tool continuations:</source>
        <translation>Maks. kontynuacji narzędzia:</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>Maksymalna liczba kolejnych rund użycia narzędzi w pojedynczym żądaniu. Każda runda pozwala modelowi wywoływać narzędzia i otrzymywać wyniki przed kontynuacją. Wyższe wartości umożliwiają bardziej złożone zadania wieloetapowe, ale zwiększają użycie tokenów.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="53"/>
        <source>List Project Files</source>
        <translation>Wyświetl pliki projektu</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>Wyświetla każdy plik źródłowy śledzony przez aktywne projekty Qt Creator.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="59"/>
        <source>Find File</source>
        <translation>Znajdź plik</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>Lokalizuje plik w projekcie po nazwie lub częściowej ścieżce. Zwraca tylko ścieżki, bez zawartości pliku.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="66"/>
        <source>Read File</source>
        <translation>Odczytaj plik</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>Odczytuje zawartość pliku po ścieżce bezwzględnej lub ścieżce względem katalogu głównego projektu.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="72"/>
        <source>Search in Project</source>
        <translation>Szukaj w projekcie</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="74"/>
        <source>Searches project files for text occurrences or C++ symbol definitions.</source>
        <translation>Przeszukuje pliki projektu w poszukiwaniu wystąpień tekstu lub definicji symboli C++.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="78"/>
        <source>Create New File</source>
        <translation>Utwórz nowy plik</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>Tworzy nowy pusty plik pod podaną ścieżką bezwzględną, tworząc brakujące katalogi.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="84"/>
        <location filename="../../settings/ToolsSettings.cpp" line="212"/>
        <source>Edit File</source>
        <translation>Edytuj plik</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>Stosuje edycje znajdź-i-zamień do plików. Zobacz &quot;Automatycznie stosuj edycje plików&quot;, aby kontrolować, czy edycje są stosowane natychmiast, czy czekają na przegląd.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="91"/>
        <source>Build Project</source>
        <translation>Buduj projekt</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>Wyzwala budowanie aktywnego projektu Qt Creator i raportuje wynik.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="97"/>
        <source>Get Issues List</source>
        <translation>Pobierz listę problemów</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="99"/>
        <source>Reads compiler/clang diagnostics from Qt Creator&apos;s Issues panel.</source>
        <translation>Odczytuje diagnostykę kompilatora/clang z panelu Problemy 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>Wykonaj polecenie terminala</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>Uruchamia polecenie z poniższej listy dozwolonej dla danego systemu operacyjnego, w katalogu projektu.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="109"/>
        <source>Todo</source>
        <translation>Zadania</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>Pozwala AI utrzymywać listę zadań ograniczoną do sesji dla wieloetapowych przepływów pracy.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="115"/>
        <source>Read Original History (Pre-Compression)</source>
        <translation>Odczytaj oryginalną historię (sprzed kompresji)</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>Pozwala AI odczytać oryginalną, pełną historię czatu sprzed skompresowania rozmowy do podsumowania. Przydatne, gdy brakuje szczegółu w podsumowaniu obecnym w kontekście. Nie ma efektu, jeśli czat nigdy nie był skompresowany.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="123"/>
        <source>Load Skill</source>
        <translation>Wczytaj umiejętność</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>Pozwala AI wczytać pełne instrukcje umiejętności na żądanie. Katalog Dostępnych umiejętności w prompcie systemowym wymienia każdą umiejętność; to narzędzie pobiera kompletne instrukcje umiejętności do kontekstu, gdy są potrzebne.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="131"/>
        <source>Allowed Commands (Linux)</source>
        <translation>Dozwolone polecenia (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>Lista poleceń terminala oddzielonych przecinkami, które AI może wykonywać w systemie Linux. Przykład: git, ls, cat, grep, find, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="141"/>
        <source>Allowed Commands (macOS)</source>
        <translation>Dozwolone polecenia (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>Lista poleceń terminala oddzielonych przecinkami, które AI może wykonywać w systemie macOS. Przykład: git, ls, cat, grep, find, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="151"/>
        <source>Allowed Commands (Windows)</source>
        <translation>Dozwolone polecenia (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>Lista poleceń terminala oddzielonych przecinkami, które AI może wykonywać w systemie Windows. Przykład: git, dir, type, findstr, where, cmake</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="160"/>
        <source>Command Timeout (seconds)</source>
        <translation>Limit czasu polecenia (sekundy)</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>Maksymalny czas w sekundach oczekiwania na zakończenie polecenia terminala. Zwiększ dla długo działających poleceń, takich jak budowanie.</translation>
    </message>
    <message>
        <location filename="../../settings/ToolsSettings.cpp" line="206"/>
        <source>Tool Settings</source>
        <translation>Ustawienia narzędzia</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>Umiejętności</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="58"/>
        <source>Enable skills</source>
        <translation>Włącz umiejętności</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>Wykrywaj umiejętności agenta ze skonfigurowanych katalogów umiejętności i udostępniaj je asystentowi czatu. Każda umiejętność to folder zawierający plik SKILL.md.</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="69"/>
        <source>Global skill directories:</source>
        <translation>Globalne katalogi umiejętności:</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>Ścieżki bezwzględne skanowane w poszukiwaniu umiejętności, po jednej na wiersz. Każda ścieżka to katalog, którego podfoldery zawierają pliki SKILL.md. Wiodące ~ rozwija się do katalogu domowego. Pozwala QodeAssist wykrywać umiejętności współdzielone z innymi agentami (np. ~/.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>Nie wykryto żadnych umiejętności.</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="110"/>
        <source>Skill Directories</source>
        <translation>Katalogi umiejętności</translation>
    </message>
    <message>
        <location filename="../../settings/SkillsSettings.cpp" line="113"/>
        <source>Discovered global skills:</source>
        <translation>Wykryte globalne umiejętności:</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>Włącz serwer MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="43"/>
        <source>Expose QodeAssist tools to external MCP clients over HTTP. Which tools are visible is controlled on the client side.</source>
        <translation>Udostępniaj narzędzia QodeAssist zewnętrznym klientom MCP przez HTTP. To, które narzędzia są widoczne, jest kontrolowane po stronie klienta.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="48"/>
        <source>Server port</source>
        <translation>Port serwera</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>Port TCP, na którym nasłuchuje serwer MCP (tylko localhost). Wymaga restartu serwera po zmianie.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="56"/>
        <source>Connect to external MCP servers</source>
        <translation>Łącz się z zewnętrznymi serwerami MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="58"/>
        <source>Connect to MCP servers listed in mcp-server.json and expose their tools to chat/quick-refactor/code-completion. Toggling this off disconnects all currently running MCP client sessions.</source>
        <translation>Łącz się z serwerami MCP wymienionymi w mcp-server.json i udostępniaj ich narzędzia czatowi/szybkiemu refaktoringowi/uzupełnianiu kodu. Wyłączenie tego rozłącza wszystkie obecnie działające sesje klienta MCP.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="64"/>
        <source>Extra PATH for stdio servers</source>
        <translation>Dodatkowa PATH dla serwerów stdio</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="67"/>
        <source>Directories to prepend to PATH when launching stdio MCP servers. Useful when Qt Creator is started from the dock and doesn&apos;t see Homebrew, nvm, uv, etc. Separate multiple entries with &apos;%1&apos;. Per-server &apos;env&apos; overrides in mcp-server.json still win.</source>
        <translation>Katalogi do dodania na początku PATH przy uruchamianiu serwerów stdio MCP. Przydatne, gdy Qt Creator jest uruchamiany z docka i nie widzi Homebrew, nvm, uv itp. Oddziel wiele wpisów znakiem &apos;%1&apos;. Nadpisania &apos;env&apos; dla poszczególnych serwerów w mcp-server.json nadal mają pierwszeństwo.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="80"/>
        <source>How to connect...</source>
        <translation>Jak się połączyć...</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="93"/>
        <source>Server</source>
        <translation>Serwer</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="100"/>
        <source>Clients</source>
        <translation>Klienci</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="211"/>
        <source>Connect to QodeAssist MCP</source>
        <translation>Połącz z QodeAssist MCP</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="215"/>
        <source>Server URL: &lt;code&gt;%1&lt;/code&gt;. If your MCP client speaks HTTP/SSE natively, use the &lt;b&gt;Direct&lt;/b&gt; tab. If it only speaks stdio (e.g. Claude Desktop), use the &lt;b&gt;Bridge&lt;/b&gt; tab.</source>
        <translation>URL serwera: &lt;code&gt;%1&lt;/code&gt;. Jeśli Twój klient MCP natywnie obsługuje HTTP/SSE, użyj karty &lt;b&gt;Direct&lt;/b&gt;. Jeśli obsługuje tylko stdio (np. Claude Desktop), użyj karty &lt;b&gt;Bridge&lt;/b&gt;.</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="242"/>
        <source>Copy</source>
        <translation>Kopiuj</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): uruchom raz —</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;: zapisz jako &lt;code&gt;.vscode/mcp.json&lt;/code&gt; w obszarze roboczym:</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>Każdy inny klient, który czyta blok JSON &lt;code&gt;mcpServers&lt;/code&gt;:</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="287"/>
        <source>Direct (HTTP/SSE)</source>
        <translation>Direct (HTTP/SSE)</translation>
    </message>
    <message>
        <location filename="../../settings/McpSettings.cpp" line="296"/>
        <source>&lt;b&gt;1.&lt;/b&gt; Download &lt;code&gt;mcp-bridge&lt;/code&gt; for your OS from &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;.</source>
        <translation>&lt;b&gt;1.&lt;/b&gt; Pobierz &lt;code&gt;mcp-bridge&lt;/code&gt; dla swojego systemu z &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; Zapisz poniższe jako &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; Skieruj klienta obsługującego tylko stdio na bridge. Przykład dla &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>Ścieżka historii czatu:</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettings.cpp" line="36"/>
        <source>Skill directories:</source>
        <translation>Katalogi umiejętności:</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>Podkatalogi względem projektu skanowane w poszukiwaniu umiejętności agenta, po jednym na wiersz. Rozwiązywane względem katalogu głównego projektu. Mają one priorytet nad globalnymi katalogami umiejętności, gdy nazwa umiejętności pojawia się w obu.</translation>
    </message>
    <message>
        <location filename="../../settings/ProjectSettingsPanel.cpp" line="99"/>
        <source>Discovered project skills:</source>
        <translation>Wykryte umiejętności projektu:</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>Ustawienia dostawcy</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="31"/>
        <source>OpenRouter API Key:</source>
        <translation>Klucz API OpenRouter:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="33"/>
        <location filename="../../settings/ProviderSettings.cpp" line="42"/>
        <location filename="../../settings/ProviderSettings.cpp" line="51"/>
        <location filename="../../settings/ProviderSettings.cpp" line="77"/>
        <location filename="../../settings/ProviderSettings.cpp" line="86"/>
        <location filename="../../settings/ProviderSettings.cpp" line="94"/>
        <location filename="../../settings/ProviderSettings.cpp" line="103"/>
        <location filename="../../settings/ProviderSettings.cpp" line="112"/>
        <location filename="../../settings/ProviderSettings.cpp" line="121"/>
        <source>Enter your API key here</source>
        <translation>Wprowadź tutaj swój klucz API</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="40"/>
        <source>OpenAI Compatible API Key:</source>
        <translation>Klucz API zgodny z OpenAI:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="49"/>
        <source>Claude API Key:</source>
        <translation>Klucz API Claude:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="57"/>
        <source>Enable prompt caching</source>
        <translation>Włącz pamięć podręczną promptów</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>Oznacza prompt systemowy, definicje narzędzi i stabilną historię czatu znacznikiem cache_control, aby Anthropic buforował prefiks żądania (TTL 5 minut). Zmniejsza koszt i opóźnienie przy powtarzających się turach.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="66"/>
        <source>Use 1h cache TTL (beta)</source>
        <translation>Użyj 1-godzinnego TTL pamięci podręcznej (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>Żąda 1-godzinnego TTL pamięci podręcznej Anthropic zamiast domyślnych 5 minut. Wysyła nagłówek beta extended-cache-ttl-2025-04-11.</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="75"/>
        <source>OpenAI API Key:</source>
        <translation>Klucz API OpenAI:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="84"/>
        <source>Mistral AI API Key:</source>
        <translation>Klucz API Mistral AI:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="92"/>
        <source>Codestral API Key:</source>
        <translation>Klucz API Codestral:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="101"/>
        <source>Google AI API Key:</source>
        <translation>Klucz API Google AI:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="110"/>
        <source>Ollama(Bearer) API Key:</source>
        <translation>Klucz API Ollama (Bearer):</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="119"/>
        <source>llama.cpp API Key:</source>
        <translation>Klucz API llama.cpp:</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="138"/>
        <source>OpenRouter Settings</source>
        <translation>Ustawienia OpenRouter</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="140"/>
        <source>OpenAI Settings</source>
        <translation>Ustawienia OpenAI</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="142"/>
        <source>OpenAI Compatible Settings</source>
        <translation>Ustawienia zgodne z OpenAI</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="145"/>
        <source>Claude Settings</source>
        <translation>Ustawienia Claude</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="148"/>
        <source>Mistral AI Settings</source>
        <translation>Ustawienia Mistral AI</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="150"/>
        <source>Google AI Settings</source>
        <translation>Ustawienia Google AI</translation>
    </message>
    <message>
        <location filename="../../settings/ProviderSettings.cpp" line="154"/>
        <source>llama.cpp Settings</source>
        <translation>Ustawienia llama.cpp</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="28"/>
        <source>Agent roles define different system prompts for specific tasks.</source>
        <translation>Role agentów definiują różne prompty systemowe dla określonych zadań.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="32"/>
        <source>Open Roles Folder...</source>
        <translation>Otwórz folder ról...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="48"/>
        <source>Add...</source>
        <translation>Dodaj...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="52"/>
        <source>Edit...</source>
        <translation>Edytuj...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="56"/>
        <source>Duplicate...</source>
        <translation>Duplikuj...</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="83"/>
        <source>(Built-in role)</source>
        <translation>(Wbudowana rola)</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="118"/>
        <location filename="../../settings/AgentRolesWidget.cpp" line="192"/>
        <source>Role Already Exists</source>
        <translation>Rola już istnieje</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>Rola o ID &apos;%1&apos; już istnieje. Użyj innego 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>Błąd</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="128"/>
        <source>Failed to save role &apos;%1&apos;.</source>
        <translation>Nie udało się zapisać roli &apos;%1&apos;.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="144"/>
        <source>Cannot Edit Built-in Role</source>
        <translation>Nie można edytować wbudowanej roli</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>Wbudowane role nie mogą być edytowane. Możesz zduplikować tę rolę i zmodyfikować kopię.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="160"/>
        <source>Failed to update role &apos;%1&apos;.</source>
        <translation>Nie udało się zaktualizować roli &apos;%1&apos;.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="201"/>
        <source>Failed to duplicate role.</source>
        <translation>Nie udało się zduplikować roli.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
        <source>Cannot Delete Built-in Role</source>
        <translation>Nie można usunąć wbudowanej roli</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="216"/>
        <source>Built-in roles cannot be deleted.</source>
        <translation>Wbudowane role nie mogą być usuwane.</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="222"/>
        <source>Delete Role</source>
        <translation>Usuń rolę</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>Czy na pewno chcesz usunąć rolę &apos;%1&apos;?</translation>
    </message>
    <message>
        <location filename="../../settings/AgentRolesWidget.cpp" line="231"/>
        <source>Failed to delete role &apos;%1&apos;.</source>
        <translation>Nie udało się usunąć roli &apos;%1&apos;.</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="160"/>
        <source>Generate QodeAssist suggestion at the current cursor position.</source>
        <translation>Generuj sugestię QodeAssist w bieżącej pozycji kursora.</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="161"/>
        <source>Request QodeAssist Suggestion</source>
        <translation>Żądaj sugestii QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="244"/>
        <source>Refactor code using QodeAssist</source>
        <translation>Refaktoryzuj kod przy użyciu QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="245"/>
        <source>Quick Refactor with QodeAssist</source>
        <translation>Szybki refaktoring z QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="270"/>
        <source>Open QodeAssist Chat as an editor tab</source>
        <translation>Otwórz czat QodeAssist jako kartę edytora</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="271"/>
        <source>Show QodeAssist Chat</source>
        <translation>Pokaż czat QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="287"/>
        <location filename="../../qodeassist.cpp" line="288"/>
        <source>Close QodeAssist Chat</source>
        <translation>Zamknij czat QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="297"/>
        <source>Open QodeAssist Chat in Separate Window</source>
        <translation>Otwórz czat QodeAssist w osobnym oknie</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="298"/>
        <source>Open the QodeAssist chat in a separate window</source>
        <translation>Otwórz czat QodeAssist w osobnym oknie</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="303"/>
        <source>New QodeAssist Chat</source>
        <translation>Nowy czat QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="304"/>
        <source>Open a fresh chat in a new editor tab</source>
        <translation>Otwórz nowy czat w nowej karcie edytora</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="310"/>
        <source>Send QodeAssist Chat Message</source>
        <translation>Wyślij wiadomość czatu QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="311"/>
        <source>Send the current message to the LLM</source>
        <translation>Wyślij bieżącą wiadomość do LLM</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="320"/>
        <source>Clear QodeAssist Chat Session</source>
        <translation>Wyczyść sesję czatu QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="321"/>
        <source>Clear the current chat session</source>
        <translation>Wyczyść bieżącą sesję czatu</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>Czat QodeAssist</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="460"/>
        <source>Chat in Bottom Panel</source>
        <translation>Czat w dolnym panelu</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="467"/>
        <source>Chat in Sidebar</source>
        <translation>Czat na pasku bocznym</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="477"/>
        <source>Open Chat in Editor</source>
        <translation>Otwórz czat w edytorze</translation>
    </message>
    <message>
        <location filename="../../qodeassist.cpp" line="485"/>
        <source>Open Chat in Separate Window</source>
        <translation>Otwórz czat w osobnym oknie</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="133"/>
        <source>Select LLM Provider</source>
        <translation>Wybierz dostawcę LLM</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="133"/>
        <source>Providers:</source>
        <translation>Dostawcy:</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="175"/>
        <source>Select LLM Model</source>
        <translation>Wybierz model LLM</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="175"/>
        <source>Models:</source>
        <translation>Modele:</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="206"/>
        <source>Select Template</source>
        <translation>Wybierz szablon</translation>
    </message>
    <message>
        <location filename="../../ConfigurationManager.cpp" line="206"/>
        <source>Templates:</source>
        <translation>Szablony:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="117"/>
        <source>Switch AI configuration</source>
        <translation>Przełącz konfigurację AI</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="130"/>
        <source>Enable/Disable AI Tools</source>
        <translation>Włącz/wyłącz narzędzia AI</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="147"/>
        <source>Enable/Disable Thinking Mode</source>
        <translation>Włącz/wyłącz tryb myślenia</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="159"/>
        <source>Open Quick Refactor Settings</source>
        <translation>Otwórz ustawienia szybkiego refaktoringu</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="167"/>
        <source>Your Current Instruction:</source>
        <translation>Twoja bieżąca instrukcja:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="172"/>
        <source>Type or edit your instruction...</source>
        <translation>Wpisz lub edytuj swoją instrukcję...</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="178"/>
        <source>Or Load saved:</source>
        <translation>Lub wczytaj zapisaną:</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="185"/>
        <source>Search saved instructions...</source>
        <translation>Szukaj zapisanych instrukcji...</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="197"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="21"/>
        <source>Add Custom Instruction</source>
        <translation>Dodaj niestandardową instrukcję</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="203"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="30"/>
        <source>Edit Custom Instruction</source>
        <translation>Edytuj niestandardową instrukcję</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="209"/>
        <source>Delete Custom Instruction</source>
        <translation>Usuń niestandardową instrukcję</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="215"/>
        <source>Open Instructions Folder</source>
        <translation>Otwórz folder instrukcji</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="285"/>
        <source>Repeat Last Instructions</source>
        <translation>Powtórz ostatnie instrukcje</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="291"/>
        <source>Improve Current Code</source>
        <translation>Ulepsz bieżący kod</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="297"/>
        <source>Suggest Alternative Solution</source>
        <translation>Zasugeruj alternatywne rozwiązanie</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>Ulepsz wybrany kod, zwiększając czytelność, wydajność i łatwość utrzymania. Postępuj zgodnie z najlepszymi praktykami dla C++/Qt i napraw wszelkie potencjalne problemy.</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>Zaproponuj alternatywne podejście do implementacji dla wybranego kodu. Podaj inne rozwiązanie, które może być czystsze, bardziej wydajne lub używa innych wzorców czy idiomów Qt/C++.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="493"/>
        <source>Failed to save custom instruction. Check logs for details.</source>
        <translation>Nie udało się zapisać niestandardowej instrukcji. Sprawdź logi, aby uzyskać szczegóły.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="505"/>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="534"/>
        <source>No Instruction Selected</source>
        <translation>Nie wybrano instrukcji</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="506"/>
        <source>Please select an instruction to edit.</source>
        <translation>Wybierz instrukcję do edycji.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="522"/>
        <source>Failed to update custom instruction. Check logs for details.</source>
        <translation>Nie udało się zaktualizować niestandardowej instrukcji. Sprawdź logi, aby uzyskać szczegóły.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="535"/>
        <source>Please select an instruction to delete.</source>
        <translation>Wybierz instrukcję do usunięcia.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="541"/>
        <source>Confirm Deletion</source>
        <translation>Potwierdź usunięcie</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>Czy na pewno chcesz usunąć instrukcję &apos;%1&apos;?</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="555"/>
        <source>Failed to delete custom instruction. Check logs for details.</source>
        <translation>Nie udało się usunąć niestandardowej instrukcji. Sprawdź logi, aby uzyskać szczegóły.</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="593"/>
        <source>Current</source>
        <translation>Bieżąca</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="603"/>
        <source>Current (%1)</source>
        <translation>Bieżąca (%1)</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="640"/>
        <source>No Instruction</source>
        <translation>Brak instrukcji</translation>
    </message>
    <message>
        <location filename="../../widgets/QuickRefactorDialog.cpp" line="641"/>
        <source>Please type an instruction or select a saved one.</source>
        <translation>Wpisz instrukcję lub wybierz zapisaną.</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="46"/>
        <source>Enter instruction name...</source>
        <translation>Wprowadź nazwę instrukcji...</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="47"/>
        <source>Name:</source>
        <translation>Nazwa:</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="51"/>
        <source>Instruction Body:</source>
        <translation>Treść instrukcji:</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="56"/>
        <source>Enter the refactoring instruction that will be sent to the LLM...</source>
        <translation>Wprowadź instrukcję refaktoringu, która zostanie wysłana do LLM...</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="59"/>
        <source>Set as default instruction</source>
        <translation>Ustaw jako instrukcję domyślną</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="61"/>
        <source>This instruction will be automatically selected when opening Quick Refactor dialog</source>
        <translation>Ta instrukcja zostanie automatycznie wybrana przy otwieraniu okna szybkiego refaktoringu</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
        <source>Invalid Input</source>
        <translation>Nieprawidłowe wejście</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="69"/>
        <source>Instruction name cannot be empty.</source>
        <translation>Nazwa instrukcji nie może być pusta.</translation>
    </message>
    <message>
        <location filename="../../widgets/AddCustomInstructionDialog.cpp" line="73"/>
        <source>Instruction body cannot be empty.</source>
        <translation>Treść instrukcji nie może być pusta.</translation>
    </message>
</context>
<context>
    <name>RootItem</name>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="75"/>
        <source>Compressing chat…</source>
        <translation>Kompresowanie czatu…</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="100"/>
        <source>next ~%1  ·  session ↑%2 ↓%3 ↻%4</source>
        <translation>następne ~%1  ·  sesja ↑%2 ↓%3 ↻%4</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="105"/>
        <source>next ~%1  ·  session ↑%2 ↓%3</source>
        <translation>następne ~%1  ·  sesja ↑%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>następne żądanie (szacunek)  ·  sesyjny prompt ↑ / uzupełnienie ↓ / z pamięci podręcznej ↻ (trafienia w pamięć podręczną dostawcy)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="111"/>
        <source>next request (estimate)  ·  session prompt ↑ / completion ↓</source>
        <translation>następne żądanie (szacunek)  ·  sesyjny prompt ↑ / uzupełnienie ↓</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="114"/>
        <source>Сhat name: %1</source>
        <translation>Nazwa czatu: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="128"/>
        <source>Move this chat to an editor tab</source>
        <translation>Przenieś ten czat do karty edytora</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="129"/>
        <source>Move this chat to a separate window</source>
        <translation>Przenieś ten czat do osobnego okna</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="385"/>
        <source>Type your message here... (⌘+↩ to send)</source>
        <translation>Wpisz tutaj swoją wiadomość... (⌘+↩ aby wysłać)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="386"/>
        <source>Type your message here... (Ctrl+Enter to send)</source>
        <translation>Wpisz tutaj swoją wiadomość... (Ctrl+Enter aby wysłać)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="483"/>
        <source>Cut</source>
        <translation>Wytnij</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="489"/>
        <source>Copy</source>
        <translation>Kopiuj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="495"/>
        <source>Paste</source>
        <translation>Wklej</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="503"/>
        <source>Select All</source>
        <translation>Zaznacz wszystko</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="511"/>
        <source>Clear</source>
        <translation>Wyczyść</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="563"/>
        <source>Send</source>
        <translation>Wyślij</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="563"/>
        <location filename="../../ChatView/qml/RootItem.qml" line="565"/>
        <source>Stop</source>
        <translation>Zatrzymaj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="564"/>
        <source>Send message to LLM %1</source>
        <translation>Wyślij wiadomość do LLM %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/RootItem.qml" line="650"/>
        <source>Compress Chat</source>
        <translation>Kompresuj czat</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>Utworzyć podsumowaną kopię tego czatu?

Podsumowanie zostanie wygenerowane przez LLM i zapisane jako nowy plik czatu.</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 plików do upuszczenia</numerusform>
            <numerusform>%n plików do upuszczenia</numerusform>
            <numerusform>%n plików do upuszczenia</numerusform>
        </translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="79"/>
        <source>Attach</source>
        <translation>Dołącz</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="87"/>
        <source>Images &amp; Text Files</source>
        <translation>Obrazy i pliki tekstowe</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="95"/>
        <source>(for one-time use)</source>
        <translation>(do jednorazowego użytku)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="131"/>
        <source>LINK</source>
        <translation>POŁĄCZ</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="139"/>
        <source>Text Files</source>
        <translation>Pliki tekstowe</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/SplitDropZone.qml" line="147"/>
        <source>(added to context)</source>
        <translation>(dodane do kontekstu)</translation>
    </message>
</context>
<context>
    <name>TextBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="27"/>
        <source>Copy</source>
        <translation>Kopiuj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/TextBlock.qml" line="33"/>
        <source>Select All</source>
        <translation>Zaznacz wszystko</translation>
    </message>
</context>
<context>
    <name>ThinkingBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="45"/>
        <source>Thinking (Redacted)</source>
        <translation>Myślenie (zredagowane)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="46"/>
        <source>Thinking</source>
        <translation>Myślenie</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="75"/>
        <source>Thinking content was redacted by safety systems</source>
        <translation>Treść myślenia została zredagowana przez systemy bezpieczeństwa</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
        <source>Collapse</source>
        <translation>Zwiń</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ThinkingBlock.qml" line="133"/>
        <source>Expand</source>
        <translation>Rozwiń</translation>
    </message>
</context>
<context>
    <name>ToolBlock</name>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="47"/>
        <source>Tool: %1</source>
        <translation>Narzędzie: %1</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="99"/>
        <source>Copy</source>
        <translation>Kopiuj</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="105"/>
        <source>Select All</source>
        <translation>Zaznacz wszystko</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
        <source>Collapse</source>
        <translation>Zwiń</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/chatparts/ToolBlock.qml" line="113"/>
        <source>Expand</source>
        <translation>Rozwiń</translation>
    </message>
</context>
<context>
    <name>TopBar</name>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="64"/>
        <source>Unpin chat window</source>
        <translation>Odepnij okno czatu</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="65"/>
        <source>Pin chat window to the top</source>
        <translation>Przypnij okno czatu na górze</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="97"/>
        <source>Clean chat</source>
        <translation>Wyczyść czat</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="117"/>
        <source>Open new chat in a new tab</source>
        <translation>Otwórz nowy czat w nowej karcie</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="130"/>
        <source>Switch saved AI configuration</source>
        <translation>Przełącz zapisaną konfigurację AI</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="143"/>
        <source>Switch agent role (different system prompts)</source>
        <translation>Przełącz rolę agenta (różne prompty systemowe)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="170"/>
        <source>Tools are disabled in General Settings</source>
        <translation>Narzędzia są wyłączone w ustawieniach ogólnych</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>Narzędzia włączone: AI może używać narzędzi do odczytu plików, przeszukiwania projektu i budowania kodu</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="174"/>
        <source>Tools disabled: Simple conversation without tool access</source>
        <translation>Narzędzia wyłączone: prosta rozmowa bez dostępu do narzędzi</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="196"/>
        <source>Thinking Mode enabled (Check model list support it)</source>
        <translation>Tryb myślenia włączony (sprawdź, czy lista modeli go obsługuje)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="197"/>
        <source>Thinking Mode disabled</source>
        <translation>Tryb myślenia wyłączony</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="198"/>
        <source>Thinking Mode is not available for this provider</source>
        <translation>Tryb myślenia nie jest dostępny dla tego dostawcy</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="215"/>
        <source>Open Chat Assistant Settings</source>
        <translation>Otwórz ustawienia asystenta czatu</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="266"/>
        <source>Save chat to *.json file</source>
        <translation>Zapisz czat do pliku *.json</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="279"/>
        <source>Load chat from *.json file</source>
        <translation>Wczytaj czat z pliku *.json</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="292"/>
        <source>Show in system</source>
        <translation>Pokaż w systemie</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="309"/>
        <source>View chat context (system prompt, role, rules)</source>
        <translation>Wyświetl kontekst czatu (prompt systemowy, rola, reguły)</translation>
    </message>
    <message>
        <location filename="../../ChatView/qml/controls/TopBar.qml" line="317"/>
        <source>Current amount tokens in chat and LLM limit threshold</source>
        <translation>Aktualna ilość tokenów w czacie i próg limitu LLM</translation>
    </message>
</context>
</TS>
