import type { TranslationMap } from './types';

// Polish (Polski) translations. Keys mirror en.ts; missing/
// English-identical values fall back to English via I18nContext.resolveEn().
const messages: TranslationMap = {
  // Cross-host vault (#4278)
  'crossHostVault.title': 'Skarbiec znajduje się na hoście rdzenia.',
  'crossHostVault.message':
    'Ten skarbiec pamięci jest przechowywany na hoście openhuman-core ({os}). Można go otworzyć lub pokazać tylko na tym komputerze, a nie z tego urządzenia.',
  'conversations.backgroundTasks.title': 'Background tasks',
  'nav.feedback': 'Podziel się opinią',
  'feedback.board': 'Tablica opinii',
  'feedback.empty':
    'Nie ma jeszcze żadnych opinii. Bądź pierwszą osobą, która podzieli się pomysłem.',
  'feedback.loadMore': 'Wczytaj więcej',
  'feedback.loadError': 'Nie udało się wczytać opinii',
  'feedback.expand': 'Pokaż więcej',
  'feedback.collapse': 'Pokaż mniej',
  'feedback.comments': 'Komentarze',
  'feedback.viewIssue': 'Zobacz zgłoszenie',
  'feedback.status.open': 'Otwarte',
  'feedback.status.planned': 'Zaplanowane',
  'feedback.status.completed': 'Ukończone',
  'feedback.status.closed': 'Zamknięte',
  'feedback.type.feature': 'Funkcja',
  'feedback.type.bug': 'Błąd',
  'feedback.sort.hot': 'Na czasie',
  'feedback.sort.top': 'Najlepsze',
  'feedback.sort.new': 'Najnowsze',
  'feedback.filter.allTypes': 'Wszystkie typy',
  'feedback.filter.allStatuses': 'Wszystkie statusy',
  'feedback.vote.up': 'Głosuj za',
  'feedback.vote.down': 'Głosuj przeciw',
  'feedback.submit.heading': 'Podziel się opinią',
  'feedback.submit.subheading': 'Zaproponuj funkcję lub zgłoś błąd. Inni mogą na to zagłosować.',
  'feedback.submit.titlePlaceholder': 'Tytuł',
  'feedback.submit.bodyPlaceholder': 'Opisz swój pomysł lub napotkany problem',
  'feedback.submit.action': 'Wyślij',
  'feedback.submit.success': 'Dziękujemy! Twoja opinia jest już na tablicy.',
  'feedback.submit.rejected': 'Nie udało się opublikować Twojej opinii.',
  'feedback.submit.error': 'Coś poszło nie tak. Spróbuj ponownie.',
  'feedback.admin.status': 'Status',
  'feedback.admin.updateFailed': 'Nie udało się zaktualizować statusu',
  'feedback.comments.empty': 'Brak komentarzy.',
  'feedback.comments.placeholder': 'Dodaj komentarz',
  'feedback.comments.post': 'Opublikuj',
  'feedback.comments.loadError': 'Nie udało się załadować komentarzy',
  'feedback.comments.postError': 'Nie udało się opublikować komentarza',
  'feedback.comments.you': 'Ty',
  'conversations.backgroundTasks.titleWithCount': 'Background tasks ({count})',
  'conversations.backgroundTasks.running': '{count} running',
  'conversations.backgroundTasks.noneRunning': 'none running',
  'conversations.backgroundTasks.total': '{count} total',
  'conversations.backgroundTasks.empty':
    'No background tasks in this chat. Ask the assistant to do something in the background and it shows up here.',
  'conversations.backgroundTasks.statusRunning': 'Running',
  'conversations.backgroundTasks.statusDone': 'Done',
  'conversations.backgroundTasks.statusFailed': 'Failed',
  'conversations.backgroundTasks.statusNeedsYou': 'Needs you',
  'conversations.backgroundTasks.statusCancelled': 'Anulowano',
  'conversations.backgroundTasks.toolCallOne': '{count} tool call',
  'conversations.backgroundTasks.toolCallOther': '{count} tool calls',
  'conversations.backgroundTasks.steps': '{count} steps',
  'conversations.backgroundTasks.viewDetails': 'View details →',
  'conversations.backgroundTasks.close': 'Close',
  'conversations.backgroundTasks.sectionThisChat': 'W tym czacie',
  'conversations.backgroundTasks.sectionScheduled': 'Zaplanowane zadania',
  'conversations.backgroundTasks.sectionSubconscious': 'Myślenie podświadome',
  'conversations.backgroundTasks.sectionMemory': 'Synchronizacja pamięci',
  'conversations.backgroundTasks.cronEmpty': 'Brak zaplanowanych zadań.',
  'conversations.backgroundTasks.cronUnnamed': 'Zadanie bez nazwy',
  'conversations.backgroundTasks.cronPaused': 'Wstrzymane',
  'conversations.backgroundTasks.cronNext': 'Następne {time}',
  'conversations.backgroundTasks.cronLast': 'Ostatnie uruchomienie {time}',
  'conversations.backgroundTasks.cronNever': 'Jeszcze nie uruchomiono',
  'conversations.backgroundTasks.cronSchedCron': 'Cron {expr}',
  'conversations.backgroundTasks.cronSchedEvery': 'Co {duration}',
  'conversations.backgroundTasks.cronSchedAt': 'Jednorazowo',
  'conversations.backgroundTasks.subOff': 'Wyłączone',
  'conversations.backgroundTasks.subWorking': 'Pracuje…',
  'conversations.backgroundTasks.subIdle': 'Bezczynne',
  'conversations.backgroundTasks.subLastRan': 'Ostatnie uruchomienie {time}',
  'conversations.backgroundTasks.subNeverRan': 'Jeszcze nie uruchomiono',
  'conversations.backgroundTasks.subTicks': '{count} uruchomień',
  'conversations.backgroundTasks.subQueued': '{count} w kolejce',
  'conversations.backgroundTasks.memUpToDate': 'Wszystkie wspomnienia aktualne',
  'conversations.backgroundTasks.memIngesting': 'Indeksowanie {title}',
  'conversations.backgroundTasks.memIngestingUntitled': 'Indeksowanie wspomnień',
  'conversations.backgroundTasks.memQueued': '{count} w kolejce',
  'conversations.backgroundTasks.memProviderActive': 'Synchronizowanie teraz',
  'conversations.backgroundTasks.memProviderRecent': 'Niedawno zsynchronizowano',
  'conversations.backgroundTasks.memProviderIdle': 'Bezczynne',
  'nav.home': 'Start',
  'nav.human': 'Człowiek',
  'nav.chat': 'Czat',
  'nav.assistant': 'Asystent',
  'assistant.faceMode.on': 'Rozmawia z Tiny',
  'assistant.faceMode.off': 'Porozmawiaj z Tiny',
  'assistant.faceMode.turnOn': 'Pokaż maskotka',
  'assistant.faceMode.turnOff': 'Ukryj maskotka',
  'nav.connections': 'Połączenia',
  'nav.memory': 'Inteligencja',
  'nav.alerts': 'Alerty',
  'nav.rewards': 'Nagrody',
  'nav.settings': 'Ustawienia',
  'nav.agentProfiles': 'Profile agentów',
  'nav.switchAgentProfile': 'Przełącz profil agenta',
  'nav.defaultAgentProfile': 'Domyślny agent',
  'nav.noAgentProfiles': 'Nie znaleziono profili agentów',
  'nav.activity': 'Aktywność',
  'nav.brain': 'Mózg',
  'nav.agentWorld': 'Tiny Place',
  'nav.wallet': 'Portfel',
  'agentWorld.description':
    'Tiny.Place to sieć społecznościowa dla agentów AI. Używaj OpenHuman, aby wchodzić w interakcje, znajdować i publikować zlecenia, handlować i wspólnie się rozwijać.',
  'agentWorld.world': 'Świat',
  'agentWorld.world.booting': 'Uruchamianie renderera...',
  'agentWorld.world.initError': 'Nie udało się uruchomić renderera świata.',
  'agentWorld.world.retry': 'Ponów',
  'agentWorld.world.title': 'Tiny Place',
  'agentWorld.world.description':
    'Dołącz do tiny.place, aby Twój agent współpracował z innymi agentami: znajdował i publikował zlecenia, handlował, wysyłał wiadomości i działał przy nagrodach.',
  'agentWorld.world.room': 'Pokój',
  'agentWorld.world.rooms.poker.name': 'Poker',
  'agentWorld.world.rooms.poker.description': 'Osiem miejsc wokół stołu z filcem.',
  'agentWorld.world.rooms.court.name': 'Sąd',
  'agentWorld.world.rooms.court.description': 'Podwyższona ława, ława przysięgłych i galeria.',
  'agentWorld.world.rooms.office.name': 'Biuro',
  'agentWorld.world.rooms.office.description': 'Boksy, biurka i tablica.',
  'agentWorld.world.rooms.home.name': 'Dom',
  'agentWorld.world.rooms.home.description': 'Przytulny salon z kanapami i dywanem.',
  'agentWorld.world.rooms.outside.name': 'Świat',
  'agentWorld.world.rooms.outside.description': 'Duży otwarty plac otoczony budynkami.',
  'agentWorld.feed': 'Kanał',
  'agentWorld.ledger': 'Księga',
  'agentWorld.jobs': 'Zlecenia',
  'agentWorld.bounties': 'Nagrody',
  'agentWorld.explore': 'Eksploruj',
  'agentWorld.directory': 'Katalog',
  'agentWorld.identities': 'Tożsamości',
  'agentWorld.profiles': 'Profile',
  'agentWorld.marketplace': 'Rynek',
  'agentWorld.messaging': 'Wiadomości',
  'agentWorld.walletNotConfigured': 'Portfel nie jest skonfigurowany',
  'agentWorld.copyAddress': 'Kopiuj adres',
  'agentWorld.addressCopied': 'Skopiowano',
  'agentWorld.walletUnavailable': 'Portfel niedostępny',
  'agentWorld.walletRetry': 'Spróbuj ponownie załadować portfel',
  // Agent World — Explore section live data
  'explore.networkOverview': 'Przegląd sieci',
  'explore.trendingCommunities': 'Popularne społeczności',
  'explore.activeJobs': 'Aktywne oferty pracy',
  'explore.featuredBounties': 'Wyróżnione nagrody',
  'explore.newAgents': 'Nowi agenci',
  'explore.viewAll': 'Zobacz wszystkie',
  'explore.noCommunities': 'Brak społeczności',
  'explore.noJobs': 'Brak aktywnych ofert',
  'explore.noBounties': 'Brak otwartych nagród',
  'explore.noAgents': 'Brak zarejestrowanych agentów',
  'agentWorld.jobs.deadlineFuture': 'Termin złożenia oferty musi być w przyszłości',
  'nav.avatarMenu.account': 'Konto',
  'nav.avatarMenu.billing': 'Rozliczenia',
  'nav.avatarMenu.rewards': 'Nagrody',
  'nav.avatarMenu.invites': 'Zaproś znajomego',
  'nav.avatarMenu.wallet': 'Portfel',

  // Brain — full-page memory knowledge-graph surface
  'brain.subtitle': 'Twój graf wiedzy, źródła pamięci i ustawienia.',
  'brain.tabs.memory': 'Pamięć',
  'brain.tabs.subconscious': 'Podświadomość',
  'brain.tabs.graph': 'Graf',
  'brain.tabs.goals': 'Cele',
  'brain.goals.title': 'Cele długoterminowe',
  'brain.goals.description':
    'Trwałe cele agenta we współpracy z Tobą. Edytuj je tutaj lub pozwól, aby Refleksja je zaktualizowała.',
  'brain.goals.reflect': 'Refleksja',
  'brain.goals.reflecting': 'Refleksja…',
  'brain.goals.reflectDone': 'Cele zaktualizowane.',
  'brain.goals.add': 'Dodaj',
  'brain.goals.addPlaceholder': 'Dodaj cel długoterminowy…',
  'brain.goals.empty':
    'Brak celów. Dodaj jeden lub użyj Refleksji, aby utworzyć je na podstawie ostatniego kontekstu.',
  'brain.goals.editGoal': 'Edytuj cel',
  'brain.goals.deleteGoal': 'Usuń cel',
  'brain.goals.actionError': 'Coś poszło nie tak. Spróbuj ponownie.',
  'brain.tabs.sources': 'Źródła',
  'brain.tabs.sync': 'Synchronizacja',
  'brain.tabs.tinyplaceOrchestration': 'TinyPlace',
  'tinyplaceOrchestration.title': 'Przekaźnik TinyPlace',
  'tinyplaceOrchestration.subtitle': 'Przypięte kanały agentów i czaty sesji aplikacji',
  'tinyplaceOrchestration.refresh': 'Odśwież',
  'tinyplaceOrchestration.pinned': 'Przypięte',
  'tinyplaceOrchestration.sessions': 'Sesje',
  'tinyplaceOrchestration.loading': 'Ładowanie czatów TinyPlace…',
  'tinyplaceOrchestration.paymentRequired': 'Dostęp do TinyPlace wymaga płatności.',
  'tinyplaceOrchestration.failedToLoad': 'Nie udało się załadować czatów TinyPlace',
  'tinyplaceOrchestration.noSessions': 'Brak sesji aplikacji TinyPlace.',
  'tinyplaceOrchestration.noMessages': 'Brak wiadomości w tym czacie.',
  'tinyplaceOrchestration.active': 'Aktywna',
  'tinyplaceOrchestration.inactive': 'Nieaktywna',
  'tinyplaceOrchestration.encryptedBody': 'Zaszyfrowana wiadomość TinyPlace',
  'tinyplaceOrchestration.unknownSender': 'Nieznany nadawca',
  'tinyplaceOrchestration.master.title': 'Agent / człowiek',
  'tinyplaceOrchestration.master.subtitle': 'Czat główny',
  'tinyplaceOrchestration.master.preview': 'Bezpośrednia koordynacja między tobą a OpenHuman.',
  'tinyplaceOrchestration.subconscious.title': 'Podświadomość',
  'tinyplaceOrchestration.subconscious.subtitle': 'Wewnętrzne czaty agentów',
  'tinyplaceOrchestration.subconscious.preview': 'Koordynacja agentów w tle i pętle pamięci.',
  'tinyplaceOrchestration.session.subtitle': 'Sesja aplikacji TinyPlace',
  'tinyplaceOrchestration.pairing.linkLabel': 'Połącz sesję',
  'tinyplaceOrchestration.pairing.linkPlaceholder': 'Wklej ID agenta sesji',
  'tinyplaceOrchestration.pairing.linkAction': 'Połącz',
  'tinyplaceOrchestration.pairing.requests': 'Prośby kontaktowe',
  'tinyplaceOrchestration.pairing.accept': 'Akceptuj',
  'tinyplaceOrchestration.pairing.decline': 'Odrzuć',
  'tinyplaceOrchestration.pairing.block': 'Blokuj',
  'tinyplaceOrchestration.pairing.linked': 'Połączona',
  'tinyplaceOrchestration.pairing.pending': 'Oczekuje',
  'tinyplaceOrchestration.pairing.unlinked': 'Niepołączona',
  'tinyplaceOrchestration.pairing.incoming': 'Przychodzące',
  'tinyplaceOrchestration.pairing.outgoing': 'Wychodzące',
  'brain.empty': 'Twój mózg jest na razie pusty — połącz źródło, aby zacząć budować pamięć.',
  'brain.error': 'Nie udało się załadować Twojego mózgu. Spróbuj ponownie.',
  'common.cancel': 'Anuluj',
  'common.save': 'Zapisz',
  'common.confirm': 'Potwierdź',
  'common.delete': 'Usuń',
  'common.edit': 'Edytuj',
  'common.create': 'Utwórz',
  'common.search': 'Szukaj',
  'common.loading': 'ładowanie…',
  'sync.runs': 'synchronizacji',
  'sync.totalCost': 'razem',
  'sync.when': 'Kiedy',
  'sync.source': 'Źródło',
  'sync.items': 'Elementy',
  'sync.tokens': 'Tokeny',
  'sync.cost': 'Koszt',
  'sync.duration': 'Czas trwania',
  'sync.noAuditEntries': 'Brak zarejestrowanych synchronizacji.',
  'sync.timeAgo.justNow': 'przed chwilą',
  'sync.timeAgo.minutes': '{n} min temu',
  'sync.timeAgo.hours': '{n} godz. temu',
  'sync.timeAgo.days': '{n} dni temu',
  'sync.status.success': 'Sukces',
  'sync.status.failed': 'Niepowodzenie',
  'common.error': 'Błąd',
  'common.success': 'Sukces',
  'common.back': 'Wstecz',
  'common.next': 'Dalej',
  'common.finish': 'Zakończ',
  'common.close': 'Zamknij',
  'common.enabled': 'Włączone',
  'common.disabled': 'Wyłączone',
  'common.on': 'Wł.',
  'common.off': 'Wył.',
  'common.yes': 'Tak',
  'common.no': 'Nie',
  'common.ok': 'OK',
  'common.name': 'Nazwa',
  'common.retry': 'Spróbuj ponownie',
  'common.copy': 'Kopiuj',
  'common.copied': 'Skopiowano',
  'common.learnMore': 'Dowiedz się więcej',
  'common.seeAll': 'Zobacz',
  'common.dismiss': 'Odrzuć',
  'common.clear': 'Wyczyść',
  'common.reset': 'Zresetuj',
  'common.refresh': 'Odśwież',
  'common.export': 'Eksportuj',
  'common.import': 'Importuj',
  'common.upload': 'Wgraj',
  'common.download': 'Pobierz',
  'common.add': 'Dodaj',
  'common.remove': 'Usuń',
  'common.showMore': 'Pokaż więcej',
  'common.showLess': 'Pokaż mniej',
  'common.submit': 'Wyślij',
  'common.continue': 'Kontynuuj',
  'common.comingSoon': 'Wkrótce',
  'common.breadcrumb': 'Ścieżka nawigacji',
  'common.beta': 'Beta',
  'common.betaDisclaimer':
    'Ta funkcja jest w fazie beta. Może się zmienić lub mieć niedociągnięcia — Twoja opinia pomaga nam ją ulepszyć.',
  'settings.general': 'Ogólne',
  // Settings layman groups (Phase 4 IA revamp)
  'settings.groups.account': 'Konto',
  'settings.groups.assistant': 'Asystent',
  'settings.groups.privacySecurity': 'Prywatność i bezpieczeństwo',
  'settings.groups.notifications': 'Powiadomienia',
  'settings.groups.about': 'O aplikacji',
  'settings.assistant.personality': 'Osobowość',
  'settings.personalityFace.title': 'Osobowość i twarz',
  'settings.personalityFace.menuDesc': 'Dostosuj charakter asystenta i wybierz jego twarz',
  'settings.assistant.voice': 'Głos',
  'settings.assistant.voiceDesc': 'Ustawienia mowy na tekst i tekstu na mowę',
  'settings.assistant.faceMascot': 'Twarz / Maskotka',
  'settings.assistant.backgroundActivity': 'Podświadomość',
  'settings.assistant.backgroundActivityDesc': 'Kontroluj, jak aktywnie asystent pracuje w tle',
  'settings.assistant.screenAwareness': 'Świadomość ekranu',
  'settings.assistant.screenAwarenessDesc': 'Pozwól asystentowi widzieć aktywne okno',
  'settings.assistant.desktopCompanion': 'Towarzysz pulpitu',
  'settings.assistant.desktopCompanionDesc':
    'Tryb towarzyski zawsze aktywny ze skrótem w zasobniku systemowym',
  'settings.assistant.permissions': 'Uprawnienia',
  'settings.assistant.permissionsDesc': 'Wybierz, co może robić asystent i gdzie może pracować',
  'settings.privacySecurity.privacy': 'Prywatność',
  'settings.privacySecurity.privacyDesc': 'Kontroluj, jakie dane opuszczają Twój komputer',
  'settings.privacySecurity.security': 'Bezpieczeństwo',
  'settings.privacySecurity.securityDesc': 'Sesje i opcje logowania',
  'settings.privacySecurity.approvalsHistory': 'Zatwierdzenia i historia',
  'settings.privacySecurity.approvalsHistoryDesc':
    'Przejrzyj ostatnie decyzje zatwierdzenia narzędzi',
  'settings.notifications.menuTitle': 'Powiadomienia',
  'settings.notifications.menuDesc': 'Skrzynka odbiorcza alertów i preferencje powiadomień',
  'settings.devGroups.knowledgeMemory': 'Wiedza i pamięć',
  'settings.devGroups.agentsAutonomy': 'Agenci i autonomia',
  'settings.devGroups.modelsInference': 'Modele i wnioskowanie',
  'settings.devGroups.automationIntegrations': 'Automatyzacja i integracje',
  'settings.devGroups.toolsCapabilities': 'Narzędzia i możliwości',
  'settings.devGroups.council': 'Rada',
  'settings.analysisViews.title': 'Widoki analizy',
  'settings.analysisViews.menuDesc':
    'Analiza grafu pamięci — diagram, centralność, spójność, powiązania, świeżość, oś czasu, ścieżki i przestrzenie nazw',
  'settings.buildInfo.title': 'Informacje o kompilacji/wersji',
  'settings.buildInfo.menuDesc': 'Kompilacja aplikacji, wersja i szczegóły połączenia z rdzeniem',
  'settings.tokenUsage.title': 'Tokeny i koszt',
  'settings.tokenUsage.menuDesc': 'Ustawienia kompresji oraz ile tokenów i dolarów zaoszczędziły',
  'settings.tokenUsage.saving': 'Zapisywanie…',
  'settings.tokenUsage.saved': 'Zapisano',
  'settings.tokenUsage.savingsTitle': 'Oszczędności',
  'settings.tokenUsage.attributedTo': 'Koszt wyceniony dla {model}',
  'settings.tokenUsage.tokensSaved': 'Zaoszczędzone tokeny',
  'settings.tokenUsage.costSaved': 'Zaoszczędzony koszt',
  'settings.tokenUsage.cacheOccupancy': 'Oryginały w pamięci podręcznej',
  'settings.tokenUsage.compactions': 'Kompaktowania',
  'settings.tokenUsage.overEvents': 'w ciągu {count} kompaktowań',
  'settings.tokenUsage.byCompressor': 'Według kompresora',
  'settings.tokenUsage.refresh': 'Odśwież',
  'settings.tokenUsage.reset': 'Resetuj statystyki',
  'settings.tokenUsage.compressionTitle': 'Kompresja',
  'settings.tokenUsage.compressionDesc':
    'Kompaktowanie dużych wyników narzędzi z uwzględnieniem treści, zanim trafią do kontekstu modelu.',
  'settings.tokenUsage.routerEnabled': 'Włącz kompresję',
  'settings.tokenUsage.routerEnabledDesc': 'Główny przełącznik routera treści.',
  'settings.tokenUsage.search': 'Wyniki wyszukiwania',
  'settings.tokenUsage.searchDesc':
    'Sortuj wynik grep/wyszukiwania według trafności, zachowując najlepsze dopasowania.',
  'settings.tokenUsage.code': 'Kod źródłowy',
  'settings.tokenUsage.codeDesc': 'Zachowaj sygnatury, zwiń ciała funkcji.',
  'settings.tokenUsage.html': 'HTML',
  'settings.tokenUsage.htmlDesc': 'Usuń znaczniki, aby uzyskać czytelny tekst.',
  'settings.tokenUsage.ml': 'Kompresor tekstu ML',
  'settings.tokenUsage.mlDesc':
    'Lokalny model ModernBERT dla zwykłego tekstu (wymaga środowiska uruchomieniowego Python).',
  'settings.tokenUsage.ccrTitle': 'Pamięć podręczna i odzyskiwanie (CCR)',
  'settings.tokenUsage.ccrDesc':
    'Skompaktowane oryginały są przechowywane w pamięci podręcznej, aby agent mógł pobrać pełny tekst na żądanie.',
  'settings.tokenUsage.ccrEnabled': 'Zachowaj oryginały do odzyskania',
  'settings.tokenUsage.ccrEnabledDesc':
    'Przenieś oryginał i dodaj znacznik pobierania, aby nic nie zostało utracone.',
  'settings.tokenUsage.ccrMinTokens': 'Minimalny rozmiar do zapisania w pamięci podręcznej',
  'settings.tokenUsage.ccrMinTokensDesc':
    'Zapisuj w pamięci podręcznej i stratnie kompaktuj tylko wyniki szacowane na tę liczbę tokenów lub więcej.',
  'settings.tokenUsage.tokensUnit': 'tokeny',
  'settings.tokenUsage.ccrDisk': 'Zachowaj pamięć podręczną na dysku',
  'settings.tokenUsage.ccrDiskDesc':
    'Zachowuj możliwe do odzyskania oryginały między ponownymi uruchomieniami.',
  'settings.dataSync.title': 'Synchronizacja danych',
  'settings.dataSync.menuDesc': 'Co synchronizuje Twój asystent — źródła, świeżość i status',
  'settings.dataSync.description':
    'Zarządzaj tym, co jest synchronizowane do pamięci asystenta: każde połączone źródło z czasem ostatniej synchronizacji, ile zsynchronizowano i czy synchronizacja trwa teraz.',
  'settings.devGroups.diagnosticsLogs': 'Diagnostyka i logi',
  'settings.featuresAndAI': 'Funkcje i AI',
  'settings.billingAndRewards': 'Rozliczenia i nagrody',
  'settings.support': 'Wsparcie',
  'settings.advanced': 'Zaawansowane',
  'settings.dangerZone': 'Strefa niebezpieczna',
  'settings.account': 'Konto',
  'settings.accountDesc': 'Fraza odzyskiwania, zespół, połączenia i prywatność',
  'settings.notifications': 'Powiadomienia',
  'settings.notificationsDesc': 'Tryb Nie przeszkadzać i ustawienia powiadomień dla każdego konta',
  'settings.notifications.tabs.preferences': 'Preferencje',
  'settings.notifications.tabs.routing': 'Reguły routingu',
  'settings.features': 'Funkcje',
  'settings.featuresDesc': 'Świadomość ekranu, wiadomości i narzędzia',
  'settings.aiModels': 'AI i modele',
  'settings.aiModelsDesc': 'Konfiguracja lokalnych modeli AI, pobierania i dostawcy LLM',
  'settings.ai': 'Konfiguracja AI',
  'settings.aiDesc': 'Dostawcy chmurowi, modele Ollama lokalnie i routing per obciążenie',
  'settings.billingUsage': 'Rozliczenia i zużycie',
  'settings.billingUsageDesc': 'Plan subskrypcji, kredyty i metody płatności',
  'settings.rewards': 'Nagrody',
  'settings.rewardsDesc': 'Polecenia, kupony i zdobyte kredyty',
  'settings.restartTour': 'Uruchom przewodnik ponownie',
  'settings.restartTourDesc': 'Odtwórz wprowadzenie po produkcie od początku',
  'settings.about': 'O aplikacji',
  'settings.aboutDesc': 'Wersja aplikacji i aktualizacje oprogramowania',
  'settings.developerOptions': 'Zaawansowane',
  'settings.developerOptionsDesc':
    'Konfiguracja AI, kanały wiadomości, narzędzia, diagnostyka i panele debugowania',
  'settings.developerDiagnostics': 'Deweloper i Diagnostyka',
  'settings.developerDiagnosticsDesc':
    'Zaawansowane narzędzia deweloperskie, diagnostyka, pamięć, agenci i panele debugowania',
  'settings.developerMode.title': 'Tryb deweloperski',
  'settings.developerMode.description':
    'Pokaż zaawansowane narzędzia deweloperskie i diagnostyczne',
  'settings.developerMode.enabledByBuild': 'Zawsze włączony w buildach deweloperskich',
  'settings.clearAppData': 'Wyczyść dane aplikacji',
  'settings.clearAppDataDesc': 'Wyloguj się i trwale wyczyść wszystkie lokalne dane aplikacji',
  'settings.logOut': 'Wyloguj się',
  'settings.logOutDesc': 'Wyloguj się ze swojego konta',
  'settings.exitLocalSession': 'Zakończ sesję lokalną',
  'settings.exitLocalSessionDesc': 'Wróć do ekranu logowania',
  'settings.language': 'Język',
  'settings.navGroups.general': 'Ogólne',
  'settings.navGroups.assistant': 'Asystent',
  'settings.navGroups.data': 'Dane',
  'settings.navGroups.connections': 'Połączenia',
  'settings.navGroups.system': 'System',
  'settings.betaBuild': 'Wersja beta - v{version}',
  'settings.languageDesc': 'Język wyświetlania interfejsu aplikacji',
  'settings.alerts': 'Alerty',
  'settings.alertsDesc': 'Zobacz ostatnie alerty i aktywność w skrzynce odbiorczej',
  'settings.account.profile': 'Profil',
  'settings.account.profileDesc': 'Imię, e-mail i awatar',
  'settings.account.devices': 'Urządzenia',
  'settings.account.devicesDesc': 'Paruj urządzenia mobilne i zarządzaj nimi',
  'settings.account.teamMembers': 'Zespół i członkowie',
  'settings.account.teamMembersDesc': 'Zarządzaj dostępem do zespołu i rolami członków',
  'settings.account.dataMigration': 'Dane i migracja',
  'settings.account.dataMigrationDesc': 'Importuj pamięć z innego asystenta',
  'settings.account.recoveryPhrase': 'Fraza odzyskiwania',
  'settings.account.recoveryPhraseDesc': 'Wyświetl i zabezpiecz swoją frazę odzyskiwania',
  'settings.account.team': 'Zespół',
  'settings.account.teamDesc': 'Zarządzaj członkami i uprawnieniami zespołu',
  'settings.account.connections': 'Połączenia',
  'settings.account.connectionsDesc': 'Zarządzaj połączonymi kontami i usługami',
  'settings.account.privacy': 'Prywatność',
  'settings.account.privacyDesc': 'Kontroluj, jakie dane opuszczają Twój komputer',
  'migration.title': 'Importuj z innego asystenta',
  'migration.description':
    'Przenieś pamięć i notatki z innego lokalnego asystenta do tej przestrzeni roboczej. Zacznij od Podglądu, aby zobaczyć, co dokładnie się zmieni, potem Zastosuj, aby skopiować dane. Twoja obecna pamięć jest najpierw archiwizowana.',
  'migration.vendorLabel': 'Dostawca źródłowy',
  'migration.vendor.openclaw': 'OpenClaw',
  'migration.vendor.hermes': 'Hermes Agent',
  'migration.sourceLabel': 'Ścieżka źródłowej przestrzeni roboczej (opcjonalne)',
  'migration.sourcePlaceholder':
    'Zostaw puste, aby wykryć automatycznie (np. ~/.openclaw/workspace)',
  'migration.sourcePlaceholderHermes': 'Pozostaw puste, aby wykryć automatycznie (np. ~/.hermes)',
  'migration.sourceHint':
    'Domyślnie używa standardowej lokalizacji dostawcy, gdy puste. Wpisz konkretną ścieżkę, jeśli przeniosłeś przestrzeń roboczą.',
  'migration.previewAction': 'Podgląd',
  'migration.previewRunning': 'Podgląd…',
  'migration.applyAction': 'Zastosuj import',
  'migration.applyRunning': 'Importowanie…',
  'migration.applyDisclaimer':
    'Zastosuj odblokowuje się po udanym Podglądzie tego samego źródła. Istniejąca pamięć jest archiwizowana przed importem.',
  'migration.reportTitlePreview': 'Podgląd — jeszcze nic nie zaimportowano',
  'migration.reportTitleApplied': 'Import ukończony',
  'migration.report.source': 'Źródłowa przestrzeń robocza',
  'migration.report.target': 'Docelowa przestrzeń robocza',
  'migration.report.fromSqlite': 'Ze SQLite (brain.db)',
  'migration.report.fromMarkdown': 'Z Markdown',
  'migration.report.imported': 'Zaimportowano',
  'migration.report.skippedUnchanged': 'Pominięto (bez zmian)',
  'migration.report.renamedConflicts': 'Zmieniono nazwę przy konflikcie',
  'migration.report.warnings': 'Ostrzeżenia',
  'migration.report.previewHint':
    'Jeszcze nic nie zostało zaimportowane. Kliknij Zastosuj import, aby skopiować.',
  'migration.report.appliedHint':
    'Zaimportowane wpisy są teraz w pamięci. Uruchom Podgląd ponownie, aby porównać.',
  'migration.confirmImport.singular':
    'Zaimportować {count} wpis do obecnej przestrzeni roboczej?\n\nŹródło: {source}\nCel: {target}\n\nIstniejąca pamięć zostanie zarchiwizowana przed uruchomieniem importu.',
  'migration.confirmImport.plural':
    'Zaimportować {count} wpisów do obecnej przestrzeni roboczej?\n\nŹródło: {source}\nCel: {target}\n\nIstniejąca pamięć zostanie zarchiwizowana przed uruchomieniem importu.',
  'settings.notifications.doNotDisturb': 'Tryb Nie przeszkadzać',
  'settings.notifications.doNotDisturbDesc': 'Wstrzymaj wszystkie powiadomienia na określony czas',
  'settings.notifications.channelControls': 'Sterowanie per kanał',
  'settings.notifications.channelControlsDesc':
    'Skonfiguruj preferencje powiadomień dla każdego kanału',
  'settings.features.screenAwareness': 'Świadomość ekranu',
  'settings.features.screenAwarenessDesc': 'Pozwól asystentowi widzieć Twoje aktywne okno',
  'settings.features.messaging': 'Wiadomości',
  'settings.features.messagingDesc': 'Ustawienia kanałów i integracji wiadomości',
  'settings.features.tools': 'Narzędzia',
  'settings.features.toolsDesc': 'Zarządzaj podłączonymi narzędziami i integracjami',
  'settings.ai.localSetup': 'Konfiguracja lokalnego AI',
  'settings.ai.localSetupDesc': 'Pobierz i skonfiguruj lokalne modele AI',
  'settings.ai.llmProvider': 'Dostawca LLM',
  'settings.ai.llmProviderDesc': 'Wybierz i skonfiguruj dostawcę AI',
  'clearData.title': 'Wyczyść dane aplikacji',
  'clearData.warning': 'To wyloguje Cię i trwale usunie lokalne dane aplikacji, w tym:',
  'clearData.bulletSettings': 'Ustawienia aplikacji i rozmowy',
  'clearData.bulletCache': 'Wszystkie lokalne dane cache integracji',
  'clearData.bulletWorkspace': 'Dane przestrzeni roboczej',
  'clearData.bulletOther': 'Wszystkie pozostałe dane lokalne',
  'clearData.irreversible': 'Tej operacji nie można cofnąć.',
  'clearData.clearing': 'Czyszczenie danych aplikacji...',
  'clearData.failed': 'Nie udało się wyczyścić danych i wylogować. Spróbuj ponownie.',
  'clearData.failedLogout': 'Nie udało się wylogować. Spróbuj ponownie.',
  'clearData.failedPersist':
    'Nie udało się wyczyścić utrwalonego stanu aplikacji. Spróbuj ponownie.',
  'welcome.logoAlt': 'OpenHuman',
  'welcome.title': 'Witaj w OpenHuman',
  'welcome.subtitle': 'Twoja osobista superinteligencja AI. Prywatna, prosta i niezwykle potężna.',
  'welcome.connectPrompt': 'Skonfiguruj URL RPC (zaawansowane)',
  'welcome.selectRuntime': 'Wybierz środowisko',
  'welcome.clearingAppData': 'Czyszczenie danych aplikacji...',
  'welcome.clearAppDataAndRestart': 'Wyczyść dane i uruchom ponownie',
  'welcome.clearAppDataWarning':
    'Spowoduje to usunięcie lokalnie przechowywanych sekretów i kont na tym urządzeniu. Twoje konto w chmurze pozostanie nienaruszone — możesz zalogować się ponownie od razu.',
  'welcome.resetErrorFallback':
    'Nie udało się wyczyścić danych aplikacji. Zamknij i ponownie otwórz OpenHuman, a następnie spróbuj ponownie.',
  'welcome.signingIn': 'Logowanie...',
  'welcome.termsIntro': 'Kontynuując akceptujesz',
  'welcome.termsOfUse': 'Regulamin',
  'welcome.termsJoiner': 'oraz',
  'welcome.privacyPolicy': 'Politykę prywatności',
  'welcome.termsOutro': '.',
  'welcome.urlPlaceholder': 'http://localhost:8089',
  'welcome.invalidUrl': 'Wpisz poprawny adres HTTP lub HTTPS',
  'welcome.connecting': 'Testowanie',
  'welcome.connect': 'Testuj',
  'home.greeting': 'Dzień dobry',
  'home.greetingAfternoon': 'Dobre popołudnie',
  'home.greetingEvening': 'Dobry wieczór',
  'home.askAssistant': 'Zapytaj asystenta o cokolwiek...',
  'home.statusOk': 'Twój asystent jest gotowy, gdy tylko zechcesz. Napisz coś poniżej, aby zacząć.',
  'home.statusBackendOnly':
    'Ponowne łączenie z backendem… Twój agent będzie dostępny ponownie za chwilę.',
  'home.statusCoreUnreachable':
    'Rdzeń OpenHuman nie odpowiada. Proces w tle mógł ulec awarii lub nie uruchomić się.',
  'home.statusInternetOffline':
    'Twoje urządzenie jest teraz offline. Sprawdź sieć lub uruchom ponownie aplikację, aby się połączyć.',
  'home.restartCore': 'Uruchom ponownie rdzeń',
  'home.restartingCore': 'Restartowanie rdzenia…',
  'home.themeToggle.toLight': 'Przełącz na tryb jasny',
  'home.themeToggle.toDark': 'Przełącz na tryb ciemny',
  'home.usageExhaustedTitle': 'Wykorzystałeś swój limit',
  'home.usageExhaustedBody':
    'Twój limit użycia na ten moment został wyczerpany. Wykup subskrypcję, aby odblokować większą ciągłą pojemność.',
  'home.usageExhaustedCta': 'Wykup subskrypcję',
  'openrouterFree.cta': 'Użyj darmowych modeli OpenRouter',
  'openrouterFree.saving': 'Łączenie z OpenRouter...',
  'openrouterFree.error':
    'Nie udało się przełączyć na darmowe modele OpenRouter. Sprawdź logowanie do OpenRouter i spróbuj ponownie.',
  'home.routinesCard': 'Twoje Rutyny',
  'home.routinesActive': '{count} aktywnych',
  'routines.title': 'Twoje rutyny',
  'routines.subtitle': 'Rzeczy, które asystent wykonuje automatycznie',
  'routines.loading': 'Ładowanie rutyn…',
  'routines.empty': 'Brak rutyn',
  'routines.emptyHint':
    'Asystent może uruchamiać zadania według harmonogramu, takie jak poranne briefingi lub codzienne podsumowania.',
  'routines.refresh': 'Odśwież',
  'routines.nextRun': 'Następne uruchomienie',
  'routines.lastRunSuccess': 'Ostatnie uruchomienie zakończone powodzeniem',
  'routines.lastRunFailed': 'Ostatnie uruchomienie nie powiodło się',
  'routines.notRunYet': 'Jeszcze nie uruchomiono',
  'routines.runNow': 'Uruchom teraz',
  'routines.running': 'Uruchamianie…',
  'routines.runNowTimedOut': 'Przekroczono limit czasu — odśwież stronę i spróbuj ponownie.',
  'routines.viewHistory': 'Wyświetl historię',
  'routines.loadingHistory': 'Ładowanie…',
  'routines.noHistory': 'Brak historii uruchomień.',
  'routines.statusSuccess': 'Powodzenie',
  'routines.statusError': 'Błąd',
  'routines.showOutput': 'Pokaż wynik',
  'routines.hideOutput': 'Ukryj wynik',
  'routines.toggleEnabled': 'Włącz lub wyłącz tę rutynę',
  'routines.typeAgent': 'Agent',
  'routines.typeCommand': 'Polecenie',
  'nav.routines': 'Routines',
  'chat.newThread': 'Nowy wątek',
  'chat.newConversation': 'Nowa rozmowa',
  'chat.newWindowWelcome1': 'Witaj, {name} 👋',
  'chat.newWindowWelcome2': 'Do dzieła, {name} 🧑‍🍳.',
  'chat.newWindowWelcome3': 'Czas się skupić 🧘🏻',
  'chat.typeMessage': 'Jak mogę ci dziś pomóc?',
  'chat.send': 'Wyślij wiadomość',
  'chat.stopGeneration': 'Zatrzymaj generowanie',
  'chat.parallelBranchHint': 'Wpisz równoległą gałąź — ⌘/Ctrl+Enter, aby wysłać',
  'chat.followupHint':
    'Dodaj wiadomość uzupełniającą do kolejki — wyślemy po tej odpowiedzi · ⌘/Ctrl+Enter dla równoległej gałęzi',
  'chat.queuedFollowups.label': 'Wiadomości w kolejce',
  'chat.queuedFollowups.clear': 'Wyczyść',
  'chat.queuedFollowups.clearFailed': 'Nie udało się wyczyścić kolejki — spróbuj ponownie.',
  'chat.parallelBranchLabel': 'Równoległa gałąź',
  'chat.thinking': 'Myślę...',
  'chat.noMessages': 'Brak wiadomości',
  'chat.startConversation': 'Rozpocznij rozmowę',
  'chat.regenerate': 'Wygeneruj ponownie',
  'chat.copyResponse': 'Skopiuj odpowiedź',
  'chat.citations': 'Cytowania',
  'chat.toolUsed': 'Użyte narzędzie',
  'scope.legacy': 'Legacy',
  'scope.user': 'Użytkownik',
  'scope.project': 'Projekt',
  'skills.title': 'Połączenia',
  'skills.search': 'Szukaj połączeń...',
  'skills.noResults': 'Nie znaleziono połączeń',
  'skills.loadingIntegrations': 'Ładowanie integracji…',
  'skills.connect': 'Połącz',
  'skills.disconnect': 'Rozłącz',
  'skills.configure': 'Zarządzaj',
  'skills.connected': 'Połączone',
  'skills.available': 'Dostępne',
  'skills.addAccount': 'Dodaj konto',
  'skills.channels': 'Wiadomości',
  'skills.explorer.emptyCta': 'Zainstaluj z URL',
  'skills.explorer.emptyDescription':
    'Zainstaluj pakiet SKILL.md albo umieść foldery w stylu Hermes w ~/.openhuman/skills.',
  'skills.explorer.emptyTitle': 'Nie znaleziono skilli',
  'skills.explorer.installFromUrl': 'Zainstaluj z URL',
  'skills.explorer.newSkill': 'Nowy skill',
  'skills.explorer.subtitle':
    'Przeglądaj pakiety SKILL.md, w tym markdown, skrypty, referencje, szablony, przykłady i prompty w stylu Hermes.',
  'skills.explorer.title': 'Eksplorator skilli',
  'skills.explorer.searchPlaceholder': 'Szukaj skilli...',
  'skills.explorer.scopeUser': 'User',
  'skills.explorer.scopeProject': 'Project',
  'skills.explorer.scopeLegacy': 'Legacy',
  'skills.explorer.noDescription': 'Nie podano opisu.',
  'skills.explorer.uninstallSuccess': 'Skill odinstalowany pomyślnie.',
  'skills.explorer.registryTab': 'Rejestr',
  'skills.explorer.installedTab': 'Zainstalowane',
  'skills.explorer.allFormats': 'Wszystkie formaty',
  'skills.explorer.refreshRegistry': 'Odśwież rejestr',
  'skills.explorer.registryEmptyTitle': 'Brak wpisów w rejestrze',
  'skills.explorer.registryEmptyDescription':
    'Nie udało się załadować rejestru umiejętności. Sprawdź połączenie i spróbuj odświeżyć.',
  'skills.explorer.showingOf':
    'Wyświetlanie {shown} z {total} wyników. Zawęź wyszukiwanie, aby zobaczyć więcej.',
  'skills.explorer.installed': 'Zainstalowano',
  'skills.explorer.install': 'Zainstaluj',
  'skills.explorer.installing': 'Instalowanie…',
  'skills.integrations': 'Integracje Composio',
  'skills.integrationsSubtitle':
    'Chmurowe połączenia OAuth — zaloguj się swoim kontem, a Composio pośredniczy w tokenach, dzięki czemu agenci mogą czytać i działać w Twoim imieniu. Bez kluczy API do utrzymywania.',
  'skills.composio.noApiKeyTitle': 'Brak skonfigurowanego klucza API Composio',
  'skills.composio.noApiKeyDescription':
    'W trybie lokalnym używany jest Twój własny klucz API Composio. Otwórz Ustawienia → Zaawansowane → Composio, aby dodać klucz, zanim podłączysz tutaj integracje.',
  'skills.composio.noApiKeyCta': 'Otwórz ustawienia',
  'skills.tabs.composio': 'Composio',
  'skills.tabs.channels': 'Kanały',
  'skills.tabs.explorer': 'Skille',
  'skills.tabs.meetings': 'Spotkania Google Meet',
  'skills.tabs.mcp': 'Serwery MCP',
  'connections.tabs.composio': 'Composio',
  'connections.tabs.channels': 'Kanały',
  'connections.tabs.mcp': 'Serwery MCP',
  'connections.tabs.skills': 'Umiejętności',
  'connections.tabs.meetings': 'Spotkania',
  'connections.groups.integrations': 'Integracje',
  'connections.tabs.oauth': 'OAuth',
  'connections.tabs.composioKey': 'Composio',
  'connections.groups.apiKeys': 'Klucze API',
  'connections.groups.intelligence': 'Inteligencja',
  'memory.title': 'Pamięć',
  'memory.search': 'Szukaj w pamięci...',
  'memory.noResults': 'Nie znaleziono wspomnień',
  'memory.empty':
    'Brak wspomnień. Wspomnienia powstają automatycznie podczas korzystania z aplikacji.',
  'memory.tab.memory': 'Pamięć',
  'memory.tab.memoryTree': 'Drzewo pamięci',
  'memory.tab.tasks': 'Zadania',
  'memory.tab.tasksDescription':
    'Twórz i śledź zadania — własne listy do zrobienia oraz tablice, które Twoi agenci budują w rozmowach.',
  'memory.tab.subconscious': 'Podświadomość',
  'memory.tab.agentWork': 'Praca agenta',
  'memory.tab.agentWorkDescription':
    'Centrum dowodzenia dla każdego przebiegu agenta w tle — pogrupowane według tego, co wymaga Twojej reakcji, co działa i co zostało ukończone.',
  'memory.tab.worktrees': 'Worktree',
  'memory.tab.worktreesDescription':
    'Izolowane drzewa robocze git od równoległych procesów agentów — przejrzyj zmiany, otwórz je lub wyczyść.',
  'memory.tab.teams': 'Zespoły',
  'memory.tab.teamsDescription':
    'Skoordynowane zespoły agentów — kto odpowiada za każde zadanie, co jest zablokowane i co członkowie zespołu mówią sobie nawzajem.',
  'memory.tab.agents': 'Biblioteka',
  'memory.tab.agentsDescription':
    'Przeglądaj i uruchamiaj dostępnych agentów — każdy z własnymi narzędziami, możliwościami i obszarem specjalizacji.',
  'memory.tab.workflows': 'Workflows',
  'memory.tab.workflowsDescription':
    'Wielokrotnego użytku, uruchamialne procedury — cel i kroki do jego osiągnięcia. Utwórz jeden, zainstaluj z URL-a lub otwórz przepływ pracy, aby go uruchomić.',
  'memory.tab.dreams': 'Marzenia senne',
  'memory.tab.calls': 'Połączenia',
  'memory.tab.diagram': 'Diagram',
  'memory.tab.centrality': 'Centrality',
  'memory.tab.namespaces': 'Przestrzenie nazw',
  'memory.tab.timeline': 'Timeline',
  'memory.tab.settings': 'Ustawienia',
  'memory.analyzeNow': 'Analizuj teraz',
  'memoryTimeline.title': 'Oś czasu pamięci',
  'memoryTimeline.intro':
    'Kiedy asystent dowiedział się o Tobie — fakty pogrupowane według miesiąca ostatniego wzmocnienia. Pokazuje wzrost, skoki aktywności i spokojne okresy.',
  'memoryTimeline.loading': 'Budowanie osi czasu…',
  'memoryTimeline.errorPrefix': 'Nie udało się załadować grafu:',
  'memoryTimeline.retry': 'Retry',
  'memoryTimeline.namespaceLabel': 'Namespace',
  'memoryTimeline.namespaceAll': 'Wszystkie przestrzenie nazw',
  'memoryTimeline.empty': 'Brak grafu wiedzy.',
  'memoryTimeline.emptyHint': 'Gdy asystent zapisze fakty o Tobie, oś czasu pojawi się tutaj.',
  'memoryTimeline.metricTotal': 'Facts',
  'memoryTimeline.metricMonths': 'Aktywne miesiące',
  'memoryTimeline.metricRecent': 'Ostatnie 30 dni',
  'memoryTimeline.heading': 'Fakty poznane w danym miesiącu',
  'memoryTimeline.busiestCaption': 'Najbardziej aktywny: {period} ({count})',
  'memoryTimeline.undatedNote': '{count} fakt(ów) bez zarejestrowanej daty.',
  'memoryTimeline.truncated': 'Wyświetlanie {shown} najnowszych z {total} miesięcy.',
  'namespaceOverview.title': 'Przegląd przestrzeni nazw',
  'namespaceOverview.intro':
    'Jak Twoja wiedza jest rozłożona w kontekstach — liczba faktów i odrębnych encji zapisanych w każdej przestrzeni nazw.',
  'namespaceOverview.loading': 'Agregowanie przestrzeni nazw…',
  'namespaceOverview.errorPrefix': 'Nie udało się załadować grafu:',
  'namespaceOverview.retry': 'Ponów',
  'namespaceOverview.empty': 'Nie ma jeszcze grafu wiedzy.',
  'namespaceOverview.emptyHint':
    'Gdy asystent zapisuje fakty w różnych kontekstach, każda przestrzeń nazw pojawi się tutaj.',
  'namespaceOverview.metricNamespaces': 'Przestrzenie nazw',
  'namespaceOverview.metricFacts': 'Fakty',
  'namespaceOverview.metricEntities': 'Encje',
  'namespaceOverview.heading': 'Według przestrzeni nazw',
  'namespaceOverview.unnamespaced': '(bez przestrzeni nazw)',
  'namespaceOverview.factsLabel': '{count} faktów',
  'namespaceOverview.entitiesLabel': '{count} encji',
  'namespaceOverview.entitiesShort': '{count} enc.',
  'namespaceOverview.truncated': 'Wyświetlanie {shown} najważniejszych z {total} przestrzeni nazw.',
  'graphCentrality.title': 'Centralność grafu wiedzy',
  'graphCentrality.intro':
    'PageRank nad grafem pamięci pokazuje kluczowe węzły oraz encje-łączniki, które spajają oddzielne klastry, czego nie ujawnia proste zliczanie częstotliwości.',
  'graphCentrality.loading': 'Obliczanie centralności…',
  'graphCentrality.errorPrefix': 'Nie udało się załadować grafu:',
  'graphCentrality.retry': 'Ponów',
  'graphCentrality.empty': 'Nie ma jeszcze grafu wiedzy.',
  'graphCentrality.emptyHint':
    'Gdy asystent zapisze fakty o Tobie, najbardziej połączone encje pojawią się tutaj.',
  'graphCentrality.namespaceLabel': 'Przestrzeń nazw',
  'graphCentrality.namespaceAll': 'Wszystkie przestrzenie nazw',
  'graphCentrality.metricEntities': 'Encje',
  'graphCentrality.metricConnections': 'Połączenia',
  'graphCentrality.metricClusters': 'Klastry',
  'graphCentrality.clustersCaption': '{components} klastrów · największy zawiera {largest}',
  'graphCentrality.approximateBadge': 'przybliżone',
  'graphCentrality.approximateTitle': 'Zatrzymano na limicie iteracji przed pełną zbieżnością',
  'graphCentrality.rankedHeading': 'Najważniejsze encje według wpływu',
  'graphCentrality.colRank': '#',
  'graphCentrality.colEntity': 'Encja',
  'graphCentrality.colInfluence': 'Wpływ',
  'graphCentrality.colLinks': 'Linki',
  'graphCentrality.bridgeBadge': 'łącznik',
  'graphCentrality.bridgeTitle': 'Łącznik — bardziej wpływowy, niż sugeruje liczba linków',
  'graphCentrality.degreeTitle': '{in} wej. · {out} wyj.',
  'memory.tab.associations': 'Associations',
  'entityAssociations.title': 'Powiązania encji',
  'entityAssociations.intro':
    'Encje dzielące wiele tych samych połączeń są powiązane — nawet gdy żaden pojedynczy fakt nie łączy ich bezpośrednio. Podobieństwo Jaccarda ujawnia te ukryte powiązania.',
  'entityAssociations.loading': 'Obliczanie powiązań…',
  'entityAssociations.errorPrefix': 'Nie udało się załadować grafu:',
  'entityAssociations.retry': 'Retry',
  'entityAssociations.empty': 'Brak powiązań.',
  'entityAssociations.emptyHint':
    'Gdy encje zaczną dzielić połączenia, najsilniejsze pary pojawią się tutaj.',
  'entityAssociations.namespaceLabel': 'Namespace',
  'entityAssociations.namespaceAll': 'Wszystkie przestrzenie nazw',
  'entityAssociations.metricEntities': 'Entities',
  'entityAssociations.metricPairs': 'Associations',
  'entityAssociations.rankedHeading': 'Najsilniejsze powiązania',
  'entityAssociations.linkedBadge': 'linked',
  'entityAssociations.inferredBadge': 'inferred',
  'entityAssociations.linkedTitle': 'Te encje są bezpośrednio połączone.',
  'entityAssociations.inferredTitle':
    'Brak bezpośredniego powiązania — skojarzone wyłącznie przez wspólne połączenia.',
  'entityAssociations.sharedLabel': '{shared} wspólnych',
  'entityAssociations.pairTitle': '{jaccard}% podobieństwa · {shared} z {union} wspólnych połączeń',
  'entityAssociations.truncated': 'Wyświetlanie {shown} z {total} — najsilniejsze najpierw.',
  'memory.tab.freshness': 'Freshness',
  'memoryFreshness.title': 'Świeżość wiedzy',
  'memoryFreshness.intro':
    'Fakty, których asystent nie potwierdził ostatnio, zanikają wzdłuż krzywej zapominania. To pokazuje, co staje się nieaktualne i warte ponownego sprawdzenia, aby stare fakty nie były traktowane jako nadal pewne.',
  'memoryFreshness.loading': 'Obliczanie świeżości…',
  'memoryFreshness.errorPrefix': 'Nie udało się załadować grafu:',
  'memoryFreshness.retry': 'Retry',
  'memoryFreshness.empty': 'Brak grafu wiedzy.',
  'memoryFreshness.emptyHint':
    'Gdy asystent zapisze fakty o Tobie, ich świeżość będzie śledzona tutaj.',
  'memoryFreshness.namespaceLabel': 'Namespace',
  'memoryFreshness.namespaceAll': 'Wszystkie przestrzenie nazw',
  'memoryFreshness.metricFresh': 'Fresh',
  'memoryFreshness.metricFading': 'Fading',
  'memoryFreshness.metricStale': 'Stale',
  'memoryFreshness.recallCaption': 'Średnie odtworzenie {recall}% z {total} faktów',
  'memoryFreshness.queueHeading': 'Kolejka ponownego potwierdzenia',
  'memoryFreshness.queueTruncated': 'Wyświetlanie {shown} z {total} — zajmij się tymi najpierw.',
  'memoryFreshness.allFresh': 'Wszystkie fakty są wciąż świeże — nic do ponownego potwierdzenia.',
  'memoryFreshness.statusFading': 'fading',
  'memoryFreshness.statusStale': 'stale',
  'memoryFreshness.ageLabel': '{days} dni temu',
  'memoryFreshness.recallTitle': '{recall}% odtworzenia · okres półtrwania {halfLife} dni',
  'memory.tab.path': 'Ścieżki',
  'connectionPath.title': 'Ścieżka połączenia',
  'connectionPath.intro':
    'Prześledź najkrótszy łańcuch relacji łączący dowolne dwie encje — jak graf je łączy, nawet poprzez kilka przeskoków.',
  'connectionPath.loading': 'Wczytywanie grafu…',
  'connectionPath.errorPrefix': 'Nie udało się wczytać grafu:',
  'connectionPath.retry': 'Ponów',
  'connectionPath.namespaceLabel': 'Przestrzeń nazw',
  'connectionPath.namespaceAll': 'Wszystkie przestrzenie nazw',
  'connectionPath.sourceLabel': 'Od',
  'connectionPath.targetLabel': 'Do',
  'connectionPath.sourcePlaceholder': 'Encja początkowa',
  'connectionPath.targetPlaceholder': 'Encja końcowa',
  'connectionPath.prompt': 'Wybierz dwie encje, aby prześledzić, jak są połączone.',
  'connectionPath.empty': 'Brak grafu wiedzy.',
  'connectionPath.emptyHint':
    'Gdy asystent zapisze powiązane fakty, będzie tu można śledzić połączenia.',
  'connectionPath.resultHeading': 'Najkrótsza ścieżka',
  'connectionPath.pathSummary': 'Odległość: {length} przeskok(ów)',
  'connectionPath.sameMessage': 'Wybierz dwie różne encje.',
  'connectionPath.missingSource': 'Encji „{entity}” nie ma w grafie.',
  'connectionPath.missingTarget': 'Encji „{entity}” nie ma w grafie.',
  'connectionPath.noPath': 'Nie znaleziono połączenia między „{source}” a „{target}”.',
  'memoryTree.status.title': 'Drzewo pamięci',
  'memoryTree.status.autoSyncLabel': 'Automatyczna synchronizacja',
  'memoryTree.status.autoSyncDescription':
    'Wstrzymaj, aby zatrzymać nowe pobieranie. Istniejąca wiki pozostanie dostępna do zapytań.',
  'memoryTree.status.statusTile': 'Stan',
  'memoryTree.status.lastSyncTile': 'Ostatnia synchronizacja',
  'memoryTree.status.totalChunksTile': 'Fragmenty łącznie',
  'memoryTree.status.wikiSizeTile': 'Rozmiar wiki',
  'memoryTree.status.statusRunning': 'Działa',
  'memoryTree.status.statusPaused': 'Wstrzymane',
  'memoryTree.status.statusSyncing': 'Synchronizacja',
  'memoryTree.status.statusError': 'Błąd',
  'memoryTree.status.statusIdle': 'Bezczynne',
  'memoryTree.status.never': 'Nigdy',
  'memoryTree.status.fetchError': 'Nie udało się pobrać statusu drzewa pamięci',
  'memoryTree.status.retry': 'Ponów',
  'memoryTree.status.toggleFailed': 'Nie udało się przełączyć automatycznej synchronizacji',
  'memoryTree.status.justNow': 'przed chwilą',
  'memoryTree.status.secondsAgo': '{count} s temu',
  'memoryTree.status.minuteAgo': '1 min temu',
  'memoryTree.status.minutesAgo': '{count} min temu',
  'memoryTree.status.hourAgo': '1 godz. temu',
  'memoryTree.status.hoursAgo': '{count} godz. temu',
  'memoryTree.status.dayAgo': '1 dzień temu',
  'memoryTree.status.daysAgo': '{count} dni temu',
  'memoryTree.status.integrationsTitle': 'Stan poszczególnych integracji',
  'memoryTree.status.integrationsEmpty': 'Brak podłączonych integracji',
  'memoryTree.status.integrationActive': 'Aktywna',
  'memoryTree.status.integrationStale': 'Nieaktualna',
  'memoryTree.status.integrationChunks': 'Liczba fragmentów: {count}',
  'alerts.title': 'Alerty',
  'alerts.empty': 'Brak alertów',
  'alerts.markAllRead': 'Oznacz wszystkie jako przeczytane',
  'alerts.unread': 'nieprzeczytane',
  'rewards.title': 'Nagrody',
  'rewards.referrals': 'Polecenia',
  'rewards.coupons': 'Wykorzystaj',
  'rewards.localUnavailable':
    'Logowanie lokalne nie zbiera nagród, voucherów ani środków z poleceń. Wyloguj się i zaloguj kontem OpenHuman, jeśli zależy Ci na nagrodach.',
  'rewards.localUnavailableCta': 'Otwórz ustawienia konta',
  'rewards.credits': 'Kredyty',
  'rewards.referralCode': 'Twój kod polecający',
  'rewards.copyCode': 'Skopiuj kod',
  'rewards.share': 'Udostępnij',
  'onboarding.welcome': 'Cześć. Jestem OpenHuman.',
  'onboarding.welcomeDesc':
    'Twój superinteligentny asystent AI uruchomiony na Twoim komputerze. Prywatny, prosty i niezwykle potężny.',
  'onboarding.context': 'Zbieranie kontekstu',
  'onboarding.contextDesc': 'Połącz narzędzia i usługi, z których korzystasz na co dzień.',
  'onboarding.localAI': 'Lokalne AI',
  'onboarding.localAIDesc': 'Skonfiguruj lokalny model AI uruchomiony na Twoim komputerze.',
  'onboarding.chatProvider': 'Dostawca czatu',
  'onboarding.chatProviderDesc': 'Wybierz, jak chcesz wchodzić w interakcje z asystentem.',
  'onboarding.referral': 'Polecenie',
  'onboarding.referralDesc': 'Wpisz kod polecający, jeśli go masz.',
  'onboarding.finish': 'Zakończ konfigurację',
  'onboarding.finishDesc': 'Gotowe! Zacznij korzystać z OpenHuman.',
  'onboarding.skip': 'Pomiń',
  'onboarding.getStarted': 'Rozpocznij',
  'onboarding.runtimeChoice.title': 'Jak chcesz uruchomić OpenHuman?',
  'onboarding.runtimeChoice.subtitle':
    'Wybierz, jak dużą część OpenHuman ma obsłużyć za Ciebie. Możesz to zmienić później w Ustawieniach.',
  'onboarding.runtimeChoice.cloud.title': 'Prosto',
  'onboarding.runtimeChoice.cloud.tagline':
    'Korzystaj z logowania OpenHuman, routingu modeli, wyszukiwarki i zarządzanych integracji.',
  'onboarding.runtimeChoice.cloud.f1': 'OAuth i routing modeli pośredniczone przez backend',
  'onboarding.runtimeChoice.cloud.f2': 'Kompresja tokenów, aby wydłużyć Twój limit',
  'onboarding.runtimeChoice.cloud.f3': 'Jedna subskrypcja, każdy model w komplecie',
  'onboarding.runtimeChoice.cloud.f4':
    'Brak kluczy modeli, wyszukiwarki i Composio do utrzymywania',
  'onboarding.runtimeChoice.cloud.f5': 'Lokalne drzewo pamięci, zarządzane usługi sieciowe',
  'onboarding.runtimeChoice.custom.title': 'Niestandardowo',
  'onboarding.runtimeChoice.custom.tagline':
    'Przynieś własne klucze. Wybierz, które usługi OpenHuman ma wywoływać.',
  'onboarding.runtimeChoice.custom.f1': 'Będziesz potrzebować kluczy API do prawie wszystkiego',
  'onboarding.runtimeChoice.custom.f2': 'Korzysta z usług, za które już płacisz',
  'onboarding.runtimeChoice.custom.f3': 'Trzyma obsługiwane obciążenia na Twoim komputerze',
  'onboarding.runtimeChoice.custom.f4': 'Więcej konfiguracji, więcej pokręteł',
  'onboarding.runtimeChoice.custom.f5': 'Najlepsze dla zaawansowanych użytkowników i deweloperów',
  'onboarding.runtimeChoice.cloud.creditHighlight': 'Darmowe kredyty po rejestracji',
  'onboarding.runtimeChoice.continueCloud': 'Kontynuuj w trybie Prosto',
  'onboarding.runtimeChoice.continueCustom': 'Kontynuuj w trybie Niestandardowo',
  'onboarding.runtimeChoice.recommended': 'Polecane',
  'onboarding.runtimeChoice.exitError': 'Nie udało się zakończyć wdrożenia. Spróbuj ponownie.',
  'onboarding.apiKeys.title': 'Dodajmy Twoje klucze API',
  'onboarding.apiKeys.subtitle':
    'Możesz wkleić je teraz lub pominąć i dodać później w Ustawieniach › AI. Klucze są przechowywane na tym urządzeniu, zaszyfrowane w spoczynku.',
  'onboarding.apiKeys.openaiLabel': 'Klucz API OpenAI',
  'onboarding.apiKeys.openaiPlaceholder': 'sk-...',
  'onboarding.apiKeys.openaiOauthHint':
    'Użyj ChatGPT Plus/Pro (subskrypcja) lub klucza API OpenAI — nie potrzeba obu.',
  'onboarding.apiKeys.openaiOauthOpening': 'Otwieranie logowania…',
  'onboarding.apiKeys.openaiOauthConnect': 'Zaloguj się za pomocą ChatGPT',
  'onboarding.apiKeys.openaiOauthConnected': 'Połączono z ChatGPT',
  'onboarding.apiKeys.openaiOauthCallbackHint':
    'Po zalogowaniu wklej pełny adres URL przekierowania z przeglądarki (zaczyna się od {url}).',
  'onboarding.apiKeys.oauthDesktopOnly':
    'Logowanie ChatGPT jest dostępne tylko w aplikacji komputerowej.',
  'onboarding.apiKeys.oauthStartFailed':
    'Nie można rozpocząć logowania ChatGPT. Spróbuj ponownie lub użyj klucza API.',
  'onboarding.apiKeys.oauthPasteRedirect':
    'Wklej adres URL przekierowania z przeglądarki po zalogowaniu.',
  'onboarding.apiKeys.oauthCompleteFailed':
    'Logowanie ChatGPT nie zostało ukończone. Sprawdź adres URL przekierowania i spróbuj ponownie.',
  'onboarding.apiKeys.finishSignIn': 'Dokończ logowanie ChatGPT',
  'onboarding.apiKeys.orApiKey': 'lub klucz API',
  'onboarding.apiKeys.anthropicLabel': 'Klucz API Anthropic',
  'onboarding.apiKeys.anthropicPlaceholder': 'sk-ant-...',
  'onboarding.apiKeys.saveError':
    'Nie udało się zapisać tego klucza. Sprawdź go i spróbuj ponownie.',
  'onboarding.apiKeys.skipForNow': 'Pomiń na razie',
  'onboarding.apiKeys.continue': 'Zapisz i kontynuuj',
  'onboarding.apiKeys.saving': 'Zapisywanie…',
  'onboarding.custom.stepperInference': 'Inferencja',
  'onboarding.custom.stepperVoice': 'Głos',
  'onboarding.custom.stepperOAuth': 'OAuth',
  'onboarding.custom.stepperSearch': 'Wyszukiwarka',
  'onboarding.custom.stepperEmbeddings': 'Embeddings',
  'onboarding.custom.stepperMemory': 'Pamięć',
  'onboarding.custom.stepCounter': 'Krok {n} z {total}',
  'onboarding.custom.defaultTitle': 'Domyślnie',
  'onboarding.custom.defaultSubtitle': 'Niech OpenHuman zarządza tym za Ciebie.',
  'onboarding.custom.configureTitle': 'Skonfiguruj',
  'onboarding.custom.configureSubtitle': 'Wybiorę sam, co użyć.',
  'onboarding.custom.progressAriaLabel': 'Postęp konfiguracji',
  'onboarding.custom.continue': 'Kontynuuj',
  'onboarding.custom.back': 'Wstecz',
  'onboarding.custom.finish': 'Zakończ konfigurację',
  'onboarding.custom.configureLater':
    'Możesz dokończyć konfigurację po wprowadzeniu. Przeniesiemy Cię na odpowiednią stronę Ustawień, kiedy skończysz.',
  'onboarding.custom.openSettings': 'Otwórz w Ustawieniach',
  'onboarding.custom.inference.title': 'Inferencja (tekst)',
  'onboarding.custom.inference.subtitle':
    'Który model językowy ma odpowiadać na pytania i uruchamiać agentów?',
  'onboarding.custom.inference.defaultDesc':
    'OpenHuman domyślnie kieruje obciążenia przez zarządzany backend. Bez kluczy, bez konfiguracji.',
  'onboarding.custom.inference.configureDesc':
    'Przynieś własny klucz OpenAI lub Anthropic. Użyjemy go do każdego obciążenia tekstowego.',
  'onboarding.custom.voice.title': 'Głos',
  'onboarding.custom.voice.subtitle': 'Mowa na tekst i tekst na mowę dla trybu głosowego.',
  'onboarding.custom.voice.defaultDesc':
    'OpenHuman dostarcza zarządzanych dostawców STT/TTS, którzy mogą wysyłać audio/tekst do usług hostowanych.',
  'onboarding.custom.voice.configureDesc':
    'Użyj własnego ElevenLabs / OpenAI Whisper itp. Skonfiguruj w Ustawieniach › Głos.',
  'onboarding.custom.oauth.title': 'Połączenia (OAuth)',
  'onboarding.custom.oauth.subtitle':
    'Gmail, Slack, Notion i inne podłączone usługi, które wymagają OAuth.',
  'onboarding.custom.oauth.defaultDesc':
    'OpenHuman pośredniczy w OAuth i wywołaniach narzędzi przez zarządzaną przestrzeń Composio.',
  'onboarding.custom.oauth.configureDesc':
    'Przynieś własne konto / klucz API Composio. Skonfiguruj w Ustawieniach › Połączenia.',
  'onboarding.custom.search.title': 'Wyszukiwanie w sieci',
  'onboarding.custom.search.subtitle': 'Jak OpenHuman wyszukuje w sieci w Twoim imieniu.',
  'onboarding.custom.search.defaultDesc':
    'OpenHuman domyślnie używa zarządzanego proxy wyszukiwarki. Klucz API niepotrzebny.',
  'onboarding.custom.search.configureDesc':
    'Przynieś własny klucz dostawcy (Tavily, Brave itp.). Skonfiguruj w Ustawieniach › Narzędzia.',
  'onboarding.custom.embeddings.title': 'Embeddings',
  'onboarding.custom.embeddings.subtitle':
    'Jak OpenHuman generuje wektory embeddings na potrzeby wyszukiwania semantycznego.',
  'onboarding.custom.embeddings.defaultDesc':
    'OpenHuman używa zarządzanej usługi embeddings. Klucz API niepotrzebny.',
  'onboarding.custom.embeddings.configureDesc':
    'Przynieś własnego dostawcę embeddings (OpenAI, Voyage, Ollama itp.).',
  'onboarding.custom.memory.title': 'Pamięć',
  'onboarding.custom.memory.subtitle':
    'Jak OpenHuman zapamiętuje Twój kontekst, preferencje i wcześniejsze rozmowy.',
  'onboarding.custom.memory.defaultDesc':
    'OpenHuman zarządza pamięcią automatycznie. Nic do skonfigurowania.',
  'onboarding.custom.memory.configureDesc':
    'Przeglądaj, eksportuj lub czyść pamięć samodzielnie. Skonfiguruj w Ustawieniach › Pamięć.',
  'accounts.addAccount': 'Dodaj konto',
  'accounts.addApps': 'Dodaj aplikacje',
  'accounts.manageAccounts': 'Zarządzaj kontami',
  'accounts.noAccounts': 'Brak podłączonych kont',
  'accounts.connectAccount': 'Podłącz konto, aby zacząć',
  'accounts.agent': 'Agent',
  'accounts.respondQueue': 'Kolejka odpowiedzi',
  'accounts.disconnect': 'Rozłącz',
  'accounts.disconnectConfirm': 'Czy na pewno rozłączyć to konto?',
  'accounts.disconnectClearMemory': 'Usuń też pamięć z tego źródła',
  'accounts.disconnectClearMemoryHint':
    'Trwale usuwa lokalne fragmenty pamięci powiązane z tym połączeniem.',
  'accounts.searchAccounts': 'Szukaj kont...',
  'channels.title': 'Kanały',
  'channels.configure': 'Skonfiguruj kanał',
  'channels.setup': 'Konfiguracja',
  'channels.noChannels': 'Brak skonfigurowanych kanałów',
  'channels.localManagedUnavailable':
    'Kanały zarządzane są niedostępne dla użytkowników lokalnych.',
  'channels.addChannel': 'Dodaj kanał',
  'channels.status.connected': 'Połączony',
  'channels.status.disconnected': 'Rozłączony',
  'channels.status.error': 'Błąd',
  'channels.status.configuring': 'Konfigurowanie',
  'channels.defaultMessaging': 'Domyślny kanał wiadomości',
  'channels.setAsDefault': 'Ustaw jako domyślny',
  'channels.defaultBadge': 'Domyślny',
  'webhooks.title': 'Webhooki',
  'webhooks.create': 'Utwórz webhook',
  'webhooks.noWebhooks': 'Brak skonfigurowanych webhooków',
  'webhooks.url': 'URL',
  'webhooks.secret': 'Sekret',
  'webhooks.events': 'Zdarzenia',
  'webhooks.archiveDirectory': 'Katalog archiwum',
  'webhooks.todayFile': 'Dzisiejszy plik',
  'invites.title': 'Zaproszenia',
  'invites.create': 'Utwórz zaproszenie',
  'invites.noInvites': 'Brak oczekujących zaproszeń',
  'invites.code': 'Kod zaproszenia',
  'invites.copyLink': 'Skopiuj link',
  'invites.generate': 'Wygeneruj zaproszenie',
  'invites.generating': 'Generowanie...',
  'invites.refreshing': 'Odświeżanie zaproszeń...',
  'invites.loading': 'Ładowanie zaproszeń...',
  'invites.copyCodeAria': 'Skopiuj kod zaproszenia',
  'invites.revokeAria': 'Unieważnij zaproszenie',
  'invites.usedUp': 'Wykorzystane',
  'invites.uses': 'Wykorzystania: {current}{max}',
  'invites.expiresOn': 'Wygasa {date}',
  'invites.empty': 'Brak zaproszeń',
  'invites.emptyHint': 'Wygeneruj kod zaproszenia, aby udostępnić go innym',
  'invites.revokeTitle': 'Unieważnij kod zaproszenia',
  'invites.revokePromptPrefix': 'Czy na pewno unieważnić kod zaproszenia',
  'invites.revokeWarning':
    'Ten kod nie będzie już ważny i nie można go będzie użyć, aby dołączyć do zespołu.',
  'invites.revoking': 'Unieważnianie...',
  'invites.revokeAction': 'Unieważnij zaproszenie',
  'invites.failedGenerate': 'Nie udało się wygenerować zaproszenia',
  'invites.failedRevoke': 'Nie udało się unieważnić zaproszenia',
  'team.refreshingMembers': 'Odświeżanie członków...',
  'team.loadingMembers': 'Ładowanie członków...',
  'team.memberCount': '{count} członek',
  'team.memberCountPlural': '{count} członków',
  'team.you': '(Ty)',
  'team.removeAria': 'Usuń {name}',
  'team.noMembers': 'Nie znaleziono członków',
  'team.removeTitle': 'Usuń członka zespołu',
  'team.removePromptPrefix': 'Czy na pewno usunąć',
  'team.removePromptSuffix': 'z zespołu?',
  'team.removeWarning': 'Utracą dostęp do zespołu i wszystkich jego zasobów.',
  'team.removing': 'Usuwanie...',
  'team.removeAction': 'Usuń członka',
  'team.changeRoleTitle': 'Zmień rolę członka',
  'team.changeRolePrompt': 'Zmienić rolę użytkownika {name} z {oldRole} na {newRole}?',
  'team.changeRoleAdminGrant':
    'Nadasz pełne uprawnienia administratora, w tym możliwość zarządzania członkami zespołu.',
  'team.changeRoleAdminRemove':
    'Odbierzesz uprawnienia administratora i osoba ta nie będzie mogła zarządzać zespołem.',
  'team.changing': 'Zmienianie...',
  'team.changeRoleAction': 'Zmień rolę',
  'team.failedChangeRole': 'Nie udało się zmienić roli',
  'team.failedRemoveMember': 'Nie udało się usunąć członka',
  'devOptions.title': 'Zaawansowane',
  'devOptions.titleDiagnostics': 'Deweloper i Diagnostyka',
  'devOptions.diagnostics': 'Diagnostyka',
  'devOptions.diagnosticsDesc': 'Zdrowie systemu, logi i metryki wydajności',
  'devOptions.toolPolicyDiagnosticsDesc':
    'Inwentarz narzędzi, postawa polityki, listy dozwolonych MCP i ostatnie blokady',
  'devOptions.toolPolicyDiagnostics.loading': 'Ładowanie…',
  'devOptions.toolPolicyDiagnostics.unavailable': 'Diagnostyka niedostępna',
  'devOptions.toolPolicyDiagnostics.posture.title': 'Postawa polityki',
  'devOptions.toolPolicyDiagnostics.posture.autonomy': 'Autonomia:',
  'devOptions.toolPolicyDiagnostics.posture.workspaceOnly': 'Tylko obszar roboczy:',
  'devOptions.toolPolicyDiagnostics.posture.maxActionsPerHour': 'Maks. akcji/godz.:',
  'devOptions.toolPolicyDiagnostics.posture.approvalMediumRisk': 'Zatwierdzenie (średnie ryzyko):',
  'devOptions.toolPolicyDiagnostics.posture.blockHighRisk': 'Blokuj wysokie ryzyko:',
  'devOptions.toolPolicyDiagnostics.inventory.title': 'Inwentarz',
  'devOptions.toolPolicyDiagnostics.inventory.totalTools': 'Narzędzia łącznie',
  'devOptions.toolPolicyDiagnostics.inventory.enabledTools': 'Włączone narzędzia',
  'devOptions.toolPolicyDiagnostics.inventory.mcpStdioTools': 'Narzędzia MCP stdio',
  'devOptions.toolPolicyDiagnostics.inventory.jsonRpcTools': 'Narzędzia JSON-RPC',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.title': 'Listy dozwolonych MCP',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.summary':
    'Włączone: {enabled} · Serwery: {enabledCount}/{totalCount}',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.unnamed': '<bez nazwy>',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.allowDeny':
    'dozwól={allowCount} odmów={denyCount}',
  'devOptions.toolPolicyDiagnostics.mcpWriteAudit.title': 'Audyt zapisu MCP',
  'devOptions.toolPolicyDiagnostics.mcpWriteAudit.summary':
    'Włączone: {enabled} · Ostatnie (24 godz.): {recentRows}',
  'devOptions.toolPolicyDiagnostics.recentBlocked.title': 'Ostatnie zablokowane wywołania',
  'devOptions.toolPolicyDiagnostics.recentBlocked.empty': 'Nie odnotowano zablokowanych wywołań.',
  'devOptions.toolPolicyDiagnostics.redactedSurfaces.title': 'Zredagowane powierzchnie',
  'devOptions.toolPolicyDiagnostics.redactedSurfaces.summary':
    'Z możliwością zapisu: {writeCount} · Powierzchnie polityki: {policyCount}',
  'devOptions.debugPanels': 'Panele debugowania',
  'devOptions.debugPanelsDesc': 'Feature flagi, inspekcja stanu i narzędzia debugowania',
  'devOptions.webhooks': 'Webhooki',
  'devOptions.webhooksDesc': 'Konfiguruj i testuj integracje webhooków',
  'devOptions.memoryInspection': 'Inspekcja pamięci',
  'devOptions.memoryInspectionDesc': 'Przeglądaj, odpytuj i zarządzaj wpisami pamięci',
  'voice.pushToTalk': 'Naciśnij i mów',
  'voice.recording': 'Nagrywanie...',
  'voice.processing': 'Przetwarzanie...',
  'voice.languageHint': 'Język',
  'misc.rehydrating': 'Ładowanie danych...',
  'misc.checkingServices': 'Sprawdzanie usług...',
  'misc.serviceUnavailable': 'Usługa niedostępna',
  'misc.somethingWentWrong': 'Coś poszło nie tak',
  'misc.tryAgainLater': 'Spróbuj ponownie później.',
  'misc.restartApp': 'Uruchom ponownie aplikację',
  'misc.updateAvailable': 'Dostępna aktualizacja',
  'misc.updateNow': 'Aktualizuj teraz',
  'misc.updateLater': 'Później',
  'misc.downloading': 'Pobieranie...',
  'misc.installing': 'Instalowanie...',
  'misc.beta':
    'OpenHuman jest we wczesnej fazie beta. Chętnie poznamy Twoje uwagi — każdy zgłoszony błąd pomaga nam szybciej wydać poprawki.',
  'misc.betaFeedback': 'Wyślij uwagi',
  'mnemonic.title': 'Fraza odzyskiwania',
  'mnemonic.warning': 'Zapisz te słowa w kolejności i przechowuj je w bezpiecznym miejscu.',
  'mnemonic.copyWarning':
    'Nigdy nie udostępniaj swojej frazy odzyskiwania. Każdy, kto ma te słowa, może uzyskać dostęp do Twojego konta.',
  'mnemonic.copied': 'Fraza odzyskiwania skopiowana do schowka',
  'mnemonic.reveal': 'Pokaż frazę',
  'mnemonic.revealPhrase': 'Pokaż frazę odzyskiwania',
  'mnemonic.hidden': 'Fraza odzyskiwania jest ukryta',
  'privacy.title': 'Prywatność i bezpieczeństwo',
  'privacy.description': 'Raport o danych wysyłanych do usług zewnętrznych.',
  'privacy.empty': 'Nie wykryto żadnych zewnętrznych transferów danych.',
  'privacy.whatLeavesComputer': 'Co opuszcza Twój komputer',
  'privacy.loading': 'Ładowanie szczegółów prywatności...',
  'privacy.loadError':
    'Nie udało się załadować listy prywatności. Kontrolki analityki poniżej nadal działają.',
  'privacy.noCapabilities': 'Żadna funkcja obecnie nie ujawnia ruchu danych.',
  'privacy.sentTo': 'Wysłano do',
  'privacy.leavesDevice': 'Opuszcza urządzenie',
  'privacy.staysLocal': 'Zostaje lokalnie',
  'privacy.anonymizedAnalytics': 'Analityka produktu',
  'privacy.shareAnonymizedData': 'Udostępniaj analitykę produktu i diagnostykę',
  'privacy.shareAnonymizedDataDesc':
    'Pomóż ulepszać OpenHuman, udostępniając raporty awarii i zdarzenia użycia o ograniczonej prywatności, w tym stabilny identyfikator konta i metadane wersji aplikacji. Wiadomości, klucze portfela, klucze API i tokeny sesji nigdy nie są zbierane.',
  'privacy.meetingFollowUps': 'Działania po spotkaniach',
  'privacy.autoHandoffMeet': 'Automatycznie przekazuj transkrypcje Google Meet do orchestratora',
  'privacy.autoHandoffMeetDesc':
    'Gdy spotkanie Google Meet się kończy, orchestrator OpenHuman może odczytać transkrypcję i wykonać akcje, np. przygotować wiadomości, zaplanować działania lub opublikować podsumowanie w podłączonym workspace Slack. Domyślnie wyłączone.',
  'privacy.analyticsDisclaimer':
    'Po włączeniu analityka produktu i diagnostyka mogą obejmować raporty awarii i zdarzenia użycia o ograniczonej prywatności, stabilny identyfikator konta oraz metadane wersji aplikacji. Wiadomości, klucze portfela, klucze API i tokeny sesji nigdy nie są zbierane. Możesz zmienić to ustawienie w dowolnym momencie.',
  'settings.about.version': 'Wersja',
  'settings.about.updateAvailable': 'jest dostępna',
  'settings.about.softwareUpdates': 'Aktualizacje oprogramowania',
  'settings.about.lastChecked': 'Ostatnio sprawdzone',
  'settings.about.checking': 'Sprawdzanie...',
  'settings.about.checkForUpdates': 'Sprawdź aktualizacje',
  'settings.about.releases': 'Wydania',
  'settings.about.releasesDesc':
    'Przeglądaj notatki o wydaniach i wcześniejsze buildy na GitHubie.',
  'settings.about.openReleases': 'Otwórz wydania na GitHubie',
  'settings.about.connection': 'Połączenie',
  'settings.about.connectionMode': 'Tryb',
  'settings.about.connectionModeLocal': 'Lokalny',
  'settings.about.connectionModeCloud': 'Chmura',
  'settings.about.connectionModeUnset': 'Nie wybrano',
  'settings.about.serverUrl': 'URL serwera',
  'settings.about.serverUrlUnavailable': 'Niedostępny',
  'settings.about.connectionHelperLocal':
    'Uruchomiony w procesie przez powłokę Tauri przy starcie aplikacji. Port wybierany jest przy każdym starcie, więc URL zmienia się między uruchomieniami.',
  'settings.about.connectionHelperCloud':
    'Połączono ze zdalnym rdzeniem. Zmień to w BootCheck lub w wyborze trybu chmury.',
  'settings.heartbeat.title': 'Heartbeat i pętle',
  'settings.usage.title': 'Zużycie i limity',
  'settings.usage.menuDesc': 'Koszty, zużycie tokenów, budżety i aktywność w tle',
  'settings.costDashboard.title': 'Panel kosztów',
  'settings.costDashboard.sevenDayCost': 'Dzienny koszt z 7 dni',
  'settings.costDashboard.sevenDayTokens': 'Zużycie tokenów z 7 dni',
  'settings.costDashboard.totalSpend': 'Suma z 7 dni',
  'settings.costDashboard.monthlyPace': 'Tempo miesięczne',
  'settings.costDashboard.budgetLimit': 'Limit budżetu',
  'settings.costDashboard.utilization': 'Wykorzystanie',
  'settings.costDashboard.modelBreakdown': 'Rozbicie per model',
  'settings.costDashboard.model': 'Model AI',
  'settings.costDashboard.provider': 'Dostawca',
  'settings.costDashboard.cost': 'Koszt',
  'settings.costDashboard.tokens': 'Tokeny',
  'settings.costDashboard.requests': 'Żądania',
  'settings.costDashboard.percentOfTotal': '% całości',
  'settings.costDashboard.inputTokens': 'Wejście',
  'settings.costDashboard.outputTokens': 'Wyjście',
  'settings.costDashboard.budgetNormal': 'Zgodnie z planem',
  'settings.costDashboard.budgetWarning': 'Ostrzeżenie',
  'settings.costDashboard.budgetExceeded': 'Ponad budżet',
  'settings.costDashboard.noBudget': 'Nie ustawiono limitu',
  'settings.costDashboard.noData': 'Brak zarejestrowanych kosztów z ostatnich 7 dni.',
  'settings.costDashboard.noModels': 'Brak aktywności modeli w ostatnich 7 dniach.',
  'settings.costDashboard.loading': 'Ładowanie panelu kosztów…',
  'settings.costDashboard.disabledHint':
    'Panel kosztów jest wyłączony w konfiguracji. Ustaw [cost.dashboard] enabled = true w config.toml, aby włączyć go ponownie.',
  'settings.costDashboard.subtitle':
    'Bieżące wydatki i zużycie tokenów w całym roju. Słupki odświeżają się automatycznie co kilka sekund — bez przeładowywania strony.',
  'settings.costDashboard.summaryAriaLabel': 'Metryki podsumowania kosztów',
  'settings.costDashboard.lastSevenDays': 'ostatnie 7 dni',
  'settings.costDashboard.utilizationOf': 'z',
  'settings.costDashboard.thisMonth': 'w tym miesiącu',
  'settings.costDashboard.monthlyPaceHint':
    'Prognozowane miesięczne wydatki przy bieżącym dziennym tempie (średnia × 30).',
  'settings.costDashboard.budgetLimitHint':
    'Miesięczny budżet odczytany z cost.monthly_limit_usd w config.toml.',
  'settings.costDashboard.dailyTarget': 'Cel dzienny',
  'settings.costDashboard.today': 'Dzisiaj',
  'settings.costDashboard.todayBadge': 'DZISIAJ',
  'settings.costDashboard.unknownProvider': '—',
  'settings.costDashboard.justNow': 'Przed chwilą',
  'settings.costDashboard.secondsAgo': '{value} s temu',
  'settings.costDashboard.minutesAgo': '{value} min temu',
  'settings.costDashboard.hoursAgo': '{value} godz. temu',
  'settings.costDashboard.daysAgo': '{value} dni temu',
  'settings.costDashboard.updated': 'Zaktualizowano',
  'settings.costDashboard.refresh': 'Odśwież',
  'settings.costDashboard.utcNote': 'Dni grupowane według UTC',
  'settings.costDashboard.stackedNote': 'Wejście + wyjście skumulowane',
  'settings.costDashboard.modelBreakdownHint': 'Zagregowane z ostatnich 7 dni.',
  'settings.costDashboard.categoryDistribution': 'Wydatki według kategorii',
  'settings.costDashboard.categoryDistributionHint':
    'Wywnioskowane z ostatnich rekordów czatu, embeddingów, głosu, obrazu i rerankingu.',
  'settings.costDashboard.noCategories': 'Nie zapisano jeszcze wydatków według kategorii.',
  'settings.costDashboard.categoryMeta': '{requests} żądań • {tokens} tokenów',
  'settings.costDashboard.usageLog': 'Dziennik użycia',
  'settings.costDashboard.usageLogHint':
    'Najnowsze rekordy z ostatnich {days} dni, limit {limit} wierszy.',
  'settings.costDashboard.logTotal': '{requests} żądań • {cost}',
  'settings.costDashboard.noUsageLog': 'Brak rekordów użycia dla tego okresu.',
  'settings.costDashboard.when': 'Kiedy',
  'settings.costDashboard.category': 'Kategoria',
  'settings.costDashboard.session': 'Sesja',
  'settings.costDashboard.noDataHint':
    'Wyślij wiadomość do agenta — zużycie tokenów z następnego wywołania dostawcy pojawi się na wykresie w ciągu około 10 sekund.',
  'settings.search.title': 'Wyszukiwarka',
  'settings.search.menuDesc':
    'Użyj domyślnie wyszukiwarki zarządzanej przez OpenHuman lub podłącz własnego dostawcę z kluczem API.',
  'settings.search.description':
    'Wybierz wyszukiwarkę używaną przez agenta. Zarządzana korzysta z backendu OpenHuman (bez konfiguracji). Parallel i Brave działają bezpośrednio z Twojego urządzenia, używając Twojego klucza API.',
  'settings.search.engineAria': 'Wyszukiwarka',
  'settings.search.engineDisabledLabel': 'Disabled',
  'settings.search.engineDisabledDesc':
    'Usuń narzędzia wyszukiwania z kontekstu agenta i listy dostępnych narzędzi.',
  'settings.search.engineManagedLabel': 'OpenHuman zarządzane',
  'settings.search.engineManagedDesc': 'Domyślnie. Przez backend OpenHuman — bez klucza API.',
  'settings.search.localManagedUnavailable':
    'Wyszukiwarka zarządzana przez OpenHuman jest niedostępna dla użytkowników lokalnych. Dodaj własny klucz API Parallel lub Brave, aby włączyć wyszukiwanie w sieci.',
  'settings.search.engineParallelLabel': 'Parallel',
  'settings.search.engineParallelDesc':
    'Bezpośrednie API Parallel: szukaj, wyciąg, czat, badania, wzbogacenie, narzędzia datasetowe.',
  'settings.search.engineBraveLabel': 'Brave Search',
  'settings.search.engineBraveDesc':
    'Bezpośrednie API Brave Search: web, wiadomości, obrazy i wideo.',
  'settings.search.engineQueritLabel': 'Querit',
  'settings.search.engineQueritDesc':
    'Bezpośrednie API Querit: wyszukiwanie w sieci z filtrami strony, zakresu czasu, kraju i języka.',
  'settings.search.statusConfigured': 'Skonfigurowano',
  'settings.search.statusNeedsKey': 'Wymaga klucza API',
  'settings.search.fallbackToManaged':
    'Brak klucza — do czasu jego zapisania wyszukiwarka przejdzie w tryb zarządzany.',
  'settings.search.getApiKey': 'Pobierz klucz API',
  'settings.search.save': 'Zapisz',
  'settings.search.clear': 'Wyczyść',
  'settings.search.show': 'Pokaż',
  'settings.search.hide': 'Ukryj',
  'settings.search.statusSaving': 'Zapisywanie…',
  'settings.search.statusSaved': 'Zapisano.',
  'settings.search.statusError': 'Niepowodzenie',
  'settings.search.parallelKeyLabel': 'Klucz API Parallel',
  'settings.search.braveKeyLabel': 'Klucz API Brave Search',
  'settings.search.queritKeyLabel': 'Klucz API Querit',
  'settings.search.placeholderStored': '•••••••• (zapisane)',
  'settings.search.placeholderParallel': 'pk_...',
  'settings.search.placeholderBrave': 'BSA...',
  'settings.search.placeholderQuerit': 'Klucz API Querit',
  'settings.search.allowedSitesLabel': 'Dozwolone witryny',
  'settings.search.allowedSitesHint':
    'Hosty, które asystent może otwierać i odczytywać — poprzez pobieranie stron i narzędzie przeglądarki — jeden na linię, np. reuters.com. Host obejmuje również swoje subdomeny. Samo wyszukiwanie w internecie nie jest ograniczone przez tę listę.',
  'settings.search.allowedSitesAllOn':
    'Asystent może otworzyć dowolną publiczną witrynę. Adresy lokalne i prywatne pozostają zablokowane.',
  'settings.search.allowedSitesPlaceholder': 'reuters.com\napnews.com\ngithub.com',
  'settings.search.allowedSitesSave': 'Zapisz witryny',
  'settings.search.accessModeAria': 'Tryb dostępu do sieci',
  'settings.search.accessAllowAll': 'Zezwalaj na wszystko',
  'settings.search.accessCustom': 'Niestandardowe',
  'settings.search.accessBlockAll': 'Blokuj wszystko',
  'settings.search.accessBlockAllHint':
    'Cały dostęp do sieci jest zablokowany — asystent nie może otwierać ani czytać żadnej witryny.',
  // ─── Settings global search bar ────────────────────────────
  'settings.settingsSearch.placeholder': 'Szukaj w ustawieniach…',
  'settings.settingsSearch.ariaLabel': 'Szukaj w ustawieniach',
  'settings.settingsSearch.clear': 'Wyczyść wyszukiwanie',
  'settings.settingsSearch.resultsLabel': 'Wyniki wyszukiwania',
  'settings.settingsSearch.noResults': 'Nie znaleziono ustawień dla „{query}”',
  'settings.embeddings.title': 'Embeddings',
  'settings.embeddings.description':
    'Wybierz, który dostawca embeddings konwertuje pamięć na wektory do wyszukiwania semantycznego. Zmiana dostawcy, modelu lub wymiarów unieważnia zapisane wektory i wymaga pełnego resetu pamięci.',
  'settings.embeddings.providerAria': 'Dostawca embeddings',
  'settings.embeddings.statusConfigured': 'Skonfigurowano',
  'settings.embeddings.statusNeedsKey': 'Wymaga klucza API',
  'settings.embeddings.requiresSignIn': 'Wymagane logowanie do OpenHuman',
  'settings.embeddings.managedLoginRequired':
    'Zarządzane osadzania wymagają logowania do OpenHuman. Zaloguj się, aby użyć backendu OpenHuman.',
  'settings.embeddings.managedBannerIntro':
    'Zarządzane osadzania są kierowane przez backend OpenHuman i wymagają sesji konta OpenHuman.',
  'settings.embeddings.managedBannerLocalSession':
    'Zakończ sesję lokalną i zaloguj się, aby użyć tego dostawcy, albo przełącz się na lokalnego dostawcę osadzań lub dostawcę z własnym kluczem.',
  'settings.embeddings.managedBannerRemoteSession':
    'Zaloguj się ponownie, aby odświeżyć sesję OpenHuman, albo przełącz się na lokalnego dostawcę osadzań lub dostawcę z własnym kluczem.',
  'settings.embeddings.signInAgain': 'Zaloguj się ponownie',
  'settings.embeddings.apiKeyLabel': 'Klucz API {provider}',
  'settings.embeddings.placeholderStored': '•••••••• (zapisane)',
  'settings.embeddings.placeholderKey': 'Wklej swój klucz API…',
  'settings.embeddings.keyStoredEncrypted': 'Twój klucz API jest zaszyfrowany na tym urządzeniu.',
  'settings.embeddings.show': 'Pokaż',
  'settings.embeddings.hide': 'Ukryj',
  'settings.embeddings.save': 'Zapisz',
  'settings.embeddings.clear': 'Wyczyść',
  'settings.embeddings.model': 'Model',
  'settings.embeddings.dimensions': 'Wymiary',
  'settings.embeddings.customEndpoint': 'Niestandardowy endpoint',
  'settings.embeddings.customModelPlaceholder': 'Nazwa modelu',
  'settings.embeddings.customDimsPlaceholder': 'Wymiary',
  'settings.embeddings.applyCustom': 'Zastosuj',
  'settings.embeddings.testConnection': 'Przetestuj połączenie',
  'settings.embeddings.testing': 'Testowanie…',
  'settings.embeddings.testSuccess': 'Połączono — wymiarów: {dims}',
  'settings.embeddings.connectionTestFailed': 'Test nie powiódł się',
  'settings.embeddings.verifyFallback':
    'Nie można zweryfikować punktu końcowego osadzeń. Upewnij się, że działa i udostępnia model osadzeń, a następnie zapisz ponownie.',
  'settings.embeddings.testFailed': 'Niepowodzenie: {error}',
  'settings.embeddings.saving': 'Zapisywanie…',
  'settings.embeddings.saved': 'Zapisano.',
  'settings.embeddings.errorPrefix': 'Niepowodzenie',
  'settings.embeddings.wipeTitle': 'Zresetować wektory pamięci?',
  'settings.embeddings.wipeBody':
    'Zmiana dostawcy, modelu lub wymiarów embeddings usunie wszystkie zapisane wektory pamięci. Pamięć trzeba odbudować, zanim wyszukiwanie znów zadziała. Tej operacji nie można cofnąć.',
  'settings.embeddings.cancel': 'Anuluj',
  'settings.embeddings.confirmWipe': 'Wyczyść i zastosuj',
  'settings.embeddings.setupTitle': 'Skonfiguruj {provider}',
  'settings.embeddings.saveAndSwitch': 'Zapisz i przełącz',
  'settings.embeddings.optional': 'opcjonalne',
  'settings.embeddings.vectorSearchDisabled':
    'Wyszukiwanie wektorowe jest wyłączone. Pamięć będzie używać tylko dopasowania słów kluczowych i świeżości — bez rankingu semantycznego.',
  'settings.embeddings.clearKey': 'Wyczyść klucz API',
  'pages.settings.ai.embeddings': 'Embeddingi',
  'pages.settings.ai.embeddingsDesc': 'Model kodowania wektorowego do wyszukiwania w pamięci',
  'mcp.alphaBadge': 'Alfa',
  'mcp.alphaBannerText':
    'Obsługa serwerów MCP jest we wczesnej fazie alpha. Rejestr, instalacja i podpinanie narzędzi mogą się zmieniać między wydaniami.',
  'mcp.toolList.noTools': 'Brak dostępnych narzędzi.',
  'mcp.setup.secretDialog.title': 'Konfiguracja MCP — wpisz sekret',
  'mcp.setup.secretDialog.bodyPrefix': 'Asystent konfiguracji MCP potrzebuje',
  'mcp.setup.secretDialog.bodySuffix':
    '. Wartość jest wysyłana bezpośrednio do procesu rdzenia i nigdy nie trafia do rozmowy AI.',
  'mcp.setup.secretDialog.inputLabel': 'Wartość',
  'mcp.setup.secretDialog.inputPlaceholder': 'Wklej tutaj',
  'mcp.setup.secretDialog.show': 'Pokaż',
  'mcp.setup.secretDialog.hide': 'Ukryj',
  'mcp.setup.secretDialog.submit': 'Wyślij',
  'mcp.setup.secretDialog.cancel': 'Anuluj',
  'mcp.setup.secretDialog.submitting': 'Wysyłanie…',
  'mcp.setup.secretDialog.errorPrefix': 'Nie udało się wysłać:',
  'mcp.setup.secretDialog.privacyNote':
    'Przechowywane zaszyfrowane w lokalnej tabeli sekretów MCP. Nigdy nie są logowane ani wysyłane do modelu.',
  'devices.betaBadge': 'Beta',
  'devices.betaText':
    'Ta funkcja jest obecnie w fazie beta. Sparuj iPhone z tą instalacją OpenHuman, aby używać go jako zdalnego klienta.',
  'devices.comingSoonDescription':
    'Parowanie urządzeń pojawi się wkrótce. Ta strona będzie służyć do parowania iPhone’ów i zarządzania połączonymi urządzeniami.',
  'devices.title': 'Urządzenia',
  'devices.pairIphone': 'Sparuj iPhone',
  'devices.noPaired': 'Brak sparowanych urządzeń',
  'devices.emptyState': 'Zeskanuj kod QR w aplikacji iPhone, aby połączyć go z tą sesją OpenHuman.',
  'devices.devicePairedTitle': 'Urządzenie sparowane',
  'devices.devicePairedMessage': 'iPhone został pomyślnie podłączony.',
  'devices.deviceRevokedTitle': 'Urządzenie unieważnione',
  'devices.deviceRevokedMessage': 'Usunięto {label}.',
  'devices.revokeFailedTitle': 'Nie udało się unieważnić',
  'devices.online': 'Online',
  'devices.offline': 'Offline',
  'devices.lastSeenNever': 'Nigdy',
  'devices.lastSeenNow': 'Przed chwilą',
  'devices.lastSeenMinutes': '{count} min temu',
  'devices.lastSeenHours': '{count} godz. temu',
  'devices.lastSeenDays': '{count} dni temu',
  'devices.revoke': 'Unieważnij',
  'devices.revokeAria': 'Unieważnij {label}',
  'devices.confirmRevokeTitle': 'Unieważnić urządzenie?',
  'devices.confirmRevokeBody':
    '{label} nie będzie już mogło się łączyć. Tej operacji nie można cofnąć.',
  'devices.loadFailed': 'Nie udało się załadować urządzeń: {message}',
  'devices.pairModal.title': 'Sparuj iPhone',
  'devices.pairModal.loading': 'Generowanie kodu parowania…',
  'devices.pairModal.instructions': 'Otwórz aplikację OpenHuman na iPhone i zeskanuj ten kod.',
  'devices.pairModal.expiresIn': 'Kod wygasa za ~{count} minutę',
  'devices.pairModal.expiresInPlural': 'Kod wygasa za ~{count} minut',
  'devices.pairModal.showDetails': 'Pokaż szczegóły',
  'devices.pairModal.hideDetails': 'Ukryj szczegóły',
  'devices.pairModal.channelId': 'ID kanału',
  'devices.pairModal.pairingUrl': 'URL parowania',
  'devices.pairModal.expiredTitle': 'Kod QR wygasł',
  'devices.pairModal.expiredBody': 'Wygeneruj nowy kod, aby kontynuować parowanie.',
  'devices.pairModal.generateNewCode': 'Wygeneruj nowy kod',
  'devices.pairModal.successTitle': 'Sparowano z iPhone',
  'devices.pairModal.autoClose': 'Automatyczne zamykanie…',
  'devices.pairModal.errorPrefix': 'Nie udało się utworzyć parowania: {message}',
  'devices.pairModal.errorTitle': 'Coś poszło nie tak',
  'devices.pairModal.copyUrl': 'Skopiuj',
  'mcp.catalog.searchAria': 'Szukaj serwerów MCP',
  'mcp.catalog.searchPlaceholder': 'Szukaj serwerów MCP...',
  'mcp.catalog.loadFailed': 'Nie udało się załadować katalogu',
  'mcp.catalog.noResults': 'Nie znaleziono serwerów.',
  'mcp.catalog.noResultsFor': 'Nie znaleziono serwerów dla „{query}”.',
  'mcp.catalog.loadMore': 'Załaduj więcej',
  'mcp.configAssistant.title': 'Asystent konfiguracji',
  'mcp.configAssistant.empty': 'Zapytaj o konfigurację, wymagane zmienne lub kroki instalacji.',
  'mcp.configAssistant.autoPromptCta': 'Uzyskaj pomoc w konfiguracji krok po kroku',
  'mcp.configAssistant.suggestedValues': 'Sugerowane wartości:',
  'mcp.configAssistant.valueHidden': '(wartość ukryta)',
  'mcp.configAssistant.applySuggested': 'Zastosuj sugerowane wartości',
  'mcp.configAssistant.reinstallHint': 'Aby je zastosować, zainstaluj ponownie z tymi wartościami.',
  'mcp.configAssistant.thinking': 'Myślę...',
  'mcp.configAssistant.inputPlaceholder':
    'Zadaj pytanie (Enter aby wysłać, Shift+Enter nowa linia)',
  'mcp.configAssistant.send': 'Wyślij',
  'mcp.configAssistant.failedResponse': 'Nie udało się uzyskać odpowiedzi',
  'mcp.toolList.availableSingular': 'Dostępne {count} narzędzie',
  'mcp.toolList.availablePlural': 'Dostępnych narzędzi: {count}',
  'mcp.toolList.tryTool': 'Wypróbuj',
  'mcp.toolList.tryToolAria': 'Otwórz playground wykonania dla {name}',
  'mcp.playground.title': 'Uruchom {name}',
  'mcp.playground.close': 'Zamknij playground',
  'mcp.playground.inputSchema': 'Schemat wejścia',
  'mcp.playground.argsLabel': 'Argumenty (JSON)',
  'mcp.playground.argsHelp':
    'Wpisz JSON zgodny ze schematem wejścia. Puste wejście jest traktowane jako {}.',
  'mcp.playground.runShortcut': '⌘/Ctrl + Enter, aby uruchomić',
  'mcp.playground.format': 'Formatuj',
  'mcp.playground.invalidJson': 'Nieprawidłowy JSON',
  'mcp.playground.run': 'Uruchom narzędzie',
  'mcp.playground.running': 'Uruchamianie…',
  'mcp.playground.result': 'Wynik',
  'mcp.playground.resultError': 'Narzędzie zwróciło błąd',
  'mcp.playground.copyResult': 'Skopiuj wynik',
  'mcp.playground.copied': 'Skopiowano',
  'mcp.playground.history': 'Historia',
  'mcp.playground.historyEmpty': 'Brak wywołań w tej sesji.',
  'mcp.playground.historyLoad': 'Załaduj',
  'mcp.playground.unexpectedError': 'Nieoczekiwany błąd podczas wywoływania narzędzia.',
  'mcp.catalog.deployed': 'Wdrożono',
  'mcp.catalog.installCount': 'Instalacji: {count}',
  'app.update.dismissNotification': 'Odrzuć powiadomienie o aktualizacji',
  'bootCheck.rpcAuthSuffix': 'przy każdym RPC.',
  'app.localAiDownload.expandAria': 'Rozwiń postęp pobierania',
  'app.localAiDownload.collapseAria': 'Zwiń postęp pobierania',
  'app.localAiDownload.dismissAria': 'Odrzuć powiadomienie o pobieraniu',
  'mobile.nav.ariaLabel': 'Nawigacja mobilna',
  'progress.stepsAria': 'Kroki postępu',
  'progress.stepAria': 'Krok {current} z {total}',
  'workspace.vaultsTitle': 'Sejfy wiedzy',
  'workspace.vaultsDesc':
    'Wskaż lokalny folder; pliki są dzielone na fragmenty i zwierciadłowo odzwierciedlane w pamięci.',
  'calls.title': 'Rozmowy',
  'calls.comingSoonBody': 'Rozmowy wspomagane przez AI są już wkrótce. Pozostań w kontakcie.',
  'art.rotatingTetrahedronAria': 'Obracający się odwrócony statek tetraedryczny',
  'mcp.installed.title': 'Zainstalowane',
  'mcp.installed.browseCatalog': 'Przeglądaj katalog',
  'mcp.installed.empty': 'Brak zainstalowanych serwerów MCP.',
  'mcp.installed.toolSingular': '{count} narzędzie',
  'mcp.installed.toolPlural': 'Narzędzia: {count}',
  'mcp.health.title': 'Kondycja',
  'mcp.health.summaryAria': 'Podsumowanie kondycji połączeń MCP',
  'mcp.health.connectedCount': 'Połączono: {count}',
  'mcp.health.connectingCount': 'Łączenie: {count}',
  'mcp.health.errorCount': 'Błędy: {count}',
  'mcp.health.disconnectedCount': 'Bezczynne: {count}',
  'mcp.health.retryAll': 'Ponów wszystko ({count})',
  'mcp.health.retryAllAria': 'Ponów wszystkie serwery MCP z błędem: {count}',
  'mcp.health.disconnectAll': 'Rozłącz wszystko ({count})',
  'mcp.health.disconnectAllAria': 'Rozłącz wszystkie połączone serwery MCP: {count}',
  'mcp.health.disconnectConfirm.title': 'Rozłączyć wszystkie serwery MCP?',
  'mcp.health.disconnectConfirm.body':
    'To rozłączy obecnie połączone serwery MCP ({count}). Zainstalowane konfiguracje i sekrety zostaną zachowane; każdy serwer możesz połączyć ponownie później.',
  'mcp.health.disconnectConfirm.cancel': 'Anuluj',
  'mcp.health.disconnectConfirm.confirm': 'Rozłącz wszystko',
  'mcp.health.opErrorGeneric': 'Operacja zbiorcza nie powiodła się. Zobacz logi.',
  'mcp.health.bulkPartialFailure': '{failed} z {total} serwerów nie powiodło się. Sprawdź logi.',
  'mcp.installed.search.landmarkAria': 'Szukaj w zainstalowanych serwerach MCP',
  'mcp.installed.search.inputAria': 'Filtruj zainstalowane serwery MCP według nazwy',
  'mcp.installed.search.placeholder': 'Filtruj serwery…',
  'mcp.installed.search.clearAria': 'Wyczyść filtr',
  'mcp.installed.search.countMatches': '{shown} z {total} serwerów',
  'mcp.installed.search.noMatches': 'Brak serwerów pasujących do „{query}”.',
  'mcp.inventory.openButton': 'Inwentarz',
  'mcp.inventory.openAria': 'Otwórz panel udostępnianego inwentarza MCP',
  'mcp.inventory.title': 'Udostępniany inwentarz MCP',
  'mcp.inventory.subtitle':
    'Wyeksportuj zainstalowane serwery MCP jako przenośny manifest bez sekretów albo zaimportuj manifest od członka zespołu. Wartości sekretów env nigdy nie są dołączane ani importowane.',
  'mcp.inventory.close': 'Zamknij panel inwentarza',
  'mcp.inventory.tablistAria': 'Sekcje inwentarza',
  'mcp.inventory.tab.export': 'Eksport',
  'mcp.inventory.tab.import': 'Importuj',
  'mcp.inventory.export.empty':
    'Nie zainstalowano jeszcze serwerów MCP — nie ma czego eksportować. Najpierw zainstaluj jeden z katalogu.',
  'mcp.inventory.export.privacyTitle': 'Co zawiera ten manifest',
  'mcp.inventory.export.privacyBody':
    'Tylko nazwy serwerów, nazwy kwalifikowane, NAZWY KLUCZY zmiennych env i konfiguracja bez sekretów. Wartości sekretów, identyfikatory Twojego urządzenia i znaczniki czasu instalacji są celowo usuwane.',
  'mcp.inventory.export.serverCount': 'Serwery w tym manifeście: {count}',
  'mcp.inventory.export.copy': 'Kopiuj',
  'mcp.inventory.export.copied': 'Skopiowano',
  'mcp.inventory.export.copyAria': 'Skopiuj JSON manifestu do schowka',
  'mcp.inventory.export.download': 'Pobierz',
  'mcp.inventory.export.downloadAria': 'Pobierz manifest jako plik JSON',
  'mcp.inventory.import.trustTitle': 'Traktuj importowane manifesty jak niezaufany kod',
  'mcp.inventory.import.trustBody':
    'Serwer MCP to narzędzie, do którego dajesz agentowi dostęp. Importuj manifesty tylko ze źródeł, którym ufasz. Każda instalacja wymaga jawnego kliknięcia; nic nie instaluje się automatycznie.',
  'mcp.inventory.import.pasteLabel': 'Wklej JSON manifestu',
  'mcp.inventory.import.pastePlaceholder': 'Wklej manifest tutaj albo prześlij poniżej plik .json.',
  'mcp.inventory.import.preview': 'Podgląd',
  'mcp.inventory.import.clear': 'Wyczyść',
  'mcp.inventory.import.uploadFile': 'lub prześlij plik .json',
  'mcp.inventory.import.uploadFileAria': 'Prześlij plik manifestu .json',
  'mcp.inventory.import.fileTooLarge': 'Plik jest za duży (ponad 1 MB). Odmowa wczytania.',
  'mcp.inventory.import.fileReadFailed': 'Nie udało się odczytać pliku.',
  'mcp.inventory.import.parseErrorPrefix': 'Nie udało się sparsować manifestu:',
  'mcp.inventory.import.previewHeading': 'Podgląd',
  'mcp.inventory.import.previewCounts':
    '{total} serwerów — nowe: {newly}, już zainstalowane: {already}',
  'mcp.inventory.import.previewEmpty': 'Manifest nie zawiera serwerów.',
  'mcp.inventory.import.exportedFrom': 'Wyeksportowano z {exporter}',
  'mcp.inventory.import.exportedAt': 'o {when}',
  'mcp.inventory.import.statusNew': 'Nowy',
  'mcp.inventory.import.statusAlreadyInstalled': 'Już zainstalowany',
  'mcp.inventory.import.envKeysLabel': 'Klucze env',
  'mcp.inventory.import.install': 'Zainstaluj',
  'mcp.inventory.import.installAria': 'Zainstaluj {name} z tego manifestu',
  'mcp.inventory.import.skipped': 'pominięto',
  'mcp.inventory.parseError.empty': 'Manifest jest pusty.',
  'mcp.inventory.parseError.invalidJson': 'Nieprawidłowy JSON.',
  'mcp.inventory.parseError.rootNotObject': 'Manifest musi być obiektem JSON w korzeniu.',
  'mcp.inventory.parseError.unsupportedSchema':
    'Nieobsługiwany schemat manifestu — ten plik nie został utworzony przez zgodny eksporter.',
  'mcp.inventory.parseError.missingExportedAt':
    'Brak pola `exported_at` albo ma ono nieprawidłową wartość.',
  'mcp.inventory.parseError.missingExportedBy':
    'Brak pola `exported_by` albo ma ono nieprawidłową wartość.',
  'mcp.inventory.parseError.invalidServers':
    'Brak tablicy `servers` albo ma ona nieprawidłową wartość.',
  'mcp.inventory.parseError.serverNotObject': 'Wpis serwera nie jest obiektem.',
  'mcp.inventory.parseError.serverMissingQualifiedName':
    'We wpisie serwera brakuje qualified_name.',
  'mcp.inventory.parseError.serverMissingDisplayName': 'We wpisie serwera brakuje display_name.',
  'mcp.inventory.parseError.serverEnvKeysNotArray':
    'Wpis serwera ma pole env_keys, które nie jest tablicą stringów.',
  'mcp.inventory.parseError.serverContainsEnv':
    'Wpis serwera zawiera mapę wartości `env`. Odmowa importu — manifesty mogą przenosić tylko env_keys (nazwy), nigdy wartości sekretów.',
  'mcp.inventory.parseError.duplicateQualifiedName':
    'W manifeście znaleziono zduplikowaną wartość qualified_name. Każdy serwer może wystąpić najwyżej raz.',
  'mcp.tab.loading': 'Ładowanie serwerów MCP...',
  'mcp.tab.emptyDetail': 'Wybierz serwer lub przeglądaj katalog.',
  'mcp.tab.filter.all': 'Wszystkie',
  'mcp.tab.filter.installed': 'Zainstalowane ({count})',
  'mcp.tab.filter.registry': 'Rejestr',
  'mcp.tab.column.name': 'Nazwa',
  'mcp.tab.column.description': 'Opis',
  'mcp.tab.column.type': 'Typ',
  'mcp.tab.column.author': 'Autor',
  'mcp.tab.column.action': 'Akcja',
  'mcp.tab.transport.hosted': 'Hostowany',
  'mcp.tab.transport.local': 'Stdio',
  'mcp.tab.transportFilter.label': 'Typ',
  'mcp.tab.transportFilter.aria': 'Filtruj serwery według transportu',
  'mcp.tab.link.website': 'Strona',
  'mcp.tab.link.repo': 'Repozytorium',
  'mcp.tab.transport.hostedHint':
    'Działa na zdalnym serwerze — logowanie lub token jest konfigurowany przy instalacji',
  'mcp.tab.transport.localHint': 'Działa na Twoim urządzeniu — może wymagać tokena przy instalacji',
  'mcp.tab.officialBadge': 'Oficjalny',
  'mcp.tab.officialHint': 'Oficjalny serwer dostawcy',
  'mcp.tab.badge.installed': 'Zainstalowane',
  'mcp.tab.badge.registry': 'Rejestr',
  'mcp.tab.action.manage': 'Zarządzaj',
  'mcp.tab.aria.viewDetails': 'Zobacz szczegóły dla {name}',
  'mcp.tab.aria.installServer': 'Zainstaluj {name}',
  'mcp.install.loadingDetail': 'Ładowanie szczegółów serwera...',
  'mcp.install.back': 'Wstecz',
  'mcp.install.title': 'Zainstaluj {name}',
  'mcp.install.requiredEnv': 'Wymagane zmienne środowiskowe',
  'mcp.install.enterValue': 'Wpisz wartość dla {key}',
  'mcp.install.show': 'Pokaż',
  'mcp.install.hide': 'Ukryj',
  'mcp.install.configLabel': 'Konfiguracja (opcjonalny JSON)',
  'mcp.install.configPlaceholder': '{"key": "value"}',
  'mcp.install.missingRequired': 'Pole „{key}” jest wymagane',
  'mcp.install.invalidJson': 'Konfiguracja nie jest poprawnym JSON-em',
  'mcp.install.failedDetail': 'Nie udało się załadować szczegółów serwera',
  'mcp.install.failedInstall': 'Instalacja nieudana',
  'mcp.install.button': 'Zainstaluj',
  'mcp.install.installing': 'Instalowanie...',
  'mcp.install.by': 'autor:',
  'mcp.install.useCount': '{count} instalacji',
  'mcp.install.connections': 'Dostępne połączenia',
  'mcp.install.published': 'opublikowane',
  'mcp.install.configureAndInstall': 'Skonfiguruj i zainstaluj',
  'mcp.install.configureTitle': 'Skonfiguruj {name}',
  'mcp.install.advancedConfig': 'Zaawansowana konfiguracja',
  'mcp.detail.suggestedEnvReady': 'Gotowe sugerowane wartości środowiska',
  'mcp.detail.suggestedEnvBody':
    'Zainstaluj ten serwer ponownie z sugerowanymi wartościami, aby je zastosować: {keys}',
  'mcp.detail.connect': 'Połącz',
  'mcp.detail.connecting': 'Łączenie...',
  'mcp.detail.authenticate': 'Zaloguj się',
  'mcp.detail.authRequired':
    'Ten serwer wymaga zalogowania się lub dodania tokena dostępu, zanim będzie mógł się połączyć. Kliknij „Zaloguj się”, aby uwierzytelnić.',
  'mcp.detail.disconnect': 'Rozłącz',
  'mcp.detail.hideAssistant': 'Ukryj asystenta',
  'mcp.detail.helpConfigure': 'Pomóż skonfigurować',
  'mcp.detail.confirmUninstall': 'Potwierdzić odinstalowanie?',
  'mcp.detail.confirmUninstallAction': 'Tak, odinstaluj',
  'mcp.detail.uninstall': 'Odinstaluj',
  'mcp.detail.envVars': 'Zmienne środowiskowe',
  'mcp.detail.reconfigure': 'Skonfiguruj ponownie',
  'mcp.detail.reconfigureHint':
    'Wprowadź nowe wartości dla każdej zmiennej, a następnie połącz ponownie. Spowoduje to zastąpienie zapisanych wartości.',
  'mcp.detail.saveReconnect': 'Zapisz i połącz ponownie',
  'mcp.detail.reconfigureSaving': 'Zapisywanie…',
  'mcp.detail.reconfigureSuccess': 'Środowisko zaktualizowane i połączone ponownie.',
  'mcp.detail.reconfigureReconnectFailed':
    'Zapisano, ale ponowne połączenie z nowymi wartościami nie powiodło się.',
  'mcp.detail.enable': 'Włącz',
  'mcp.detail.disable': 'Wyłącz',
  'mcp.status.disabled': 'Wyłączony',
  'mcp.status.unauthorized': 'Wymagane logowanie',
  'mcp.detail.tools': 'Narzędzia',
  'mcp.connectAuth.title': 'Połącz {name}',
  'mcp.connectAuth.hint':
    'Dodaj uwierzytelnianie wymagane przez ten serwer, a następnie połącz się. Tokeny są przechowywane w postaci zaszyfrowanej. Pozostaw puste dla serwerów, które nie wymagają uwierzytelniania.',
  'mcp.connectAuth.requiredLabel': 'Wymagane',
  'mcp.connectAuth.customHeadersLabel': 'Niestandardowe nagłówki',
  'mcp.connectAuth.customHeadersEmpty':
    'Brak niestandardowych nagłówków. Dodaj jeden, jeśli ten serwer wymaga nagłówka uwierzytelniania, którego rejestr nie zadeklarował.',
  'mcp.connectAuth.addHeader': '+ Dodaj nagłówek',
  'mcp.connectAuth.headerName': 'Nazwa nagłówka',
  'mcp.connectAuth.headerValue': 'Wartość',
  'mcp.connectAuth.removeHeader': 'Usuń nagłówek',
  'mcp.connectAuth.howToGetToken': 'Pomoc i konfiguracja',
  'mcp.connectAuth.tokenProvider': 'Token zdobędziesz na:',
  'mcp.connectAuth.findToken': 'Skąd wziąć token?',
  'mcp.connectAuth.hideHelp': 'Ukryj pomoc',
  'mcp.connectAuth.schemeLabel': 'Jak wysłać wartość',
  'mcp.connectAuth.schemeBearer': 'Bearer',
  'mcp.connectAuth.schemeRaw': 'Brak',
  'mcp.connectAuth.reconnectFailed': 'Zapisano poświadczenia, ale połączenie nie powiodło się.',
  'mcp.connectAuth.oauthHint':
    'Ten serwer używa OAuth. Zaloguj się przez przeglądarkę, aby autoryzować OpenHuman.',
  'mcp.connectAuth.signIn': 'Zaloguj się przez przeglądarkę',
  'mcp.connectAuth.oauthWaiting': 'Oczekiwanie na logowanie…',
  'mcp.connectAuth.oauthOrToken':
    'Masz już token dostępu? Wklej go zamiast tego poniżej jako nagłówek Authorization.',
  'mcp.connectAuth.oauthTimeout':
    'Upłynął limit czasu oczekiwania na logowanie w przeglądarce. Spróbuj ponownie.',
  'mcp.connectAuth.authError.oauthRequired':
    'Ten serwer używa OAuth. Użyj “Zaloguj się przez przeglądarkę” — wklejony token nie zostanie zaakceptowany.',
  'mcp.connectAuth.authError.tokenRejected':
    'Serwer odrzucił ten token. Sprawdź, czy jest poprawny i czy nie wygasł.',
  'mcp.connectAuth.authError.credentialRequired':
    'Ten serwer wymaga uwierzytelnienia. Dodaj token lub zaloguj się.',
  'onboarding.skipForNow': 'Pomiń na razie',
  'onboarding.localAI.continueWithCloud': 'Kontynuuj z chmurą',
  'onboarding.localAI.useLocalAnyway':
    'Użyj lokalnego AI mimo to (niezalecane dla Twojego urządzenia)',
  'onboarding.localAI.useLocalInstead': 'Użyj lokalnego AI (połącz Ollama teraz)',
  'onboarding.localAI.setupIssue': 'Konfiguracja lokalnego AI napotkała problem',
  'autonomy.title': 'Autonomia agenta',
  'autonomy.maxActionsLabel': 'Maks. akcji na godzinę',
  'autonomy.maxActionsHelp':
    'Maksymalna liczba akcji narzędzi, którą agent może uruchomić w ciągu kolejnej godziny. Nowa wartość obowiązuje od następnego czatu. Zadania cron i nasłuchy kanałów zachowują dotychczasowy limit do restartu OpenHuman.',
  'autonomy.statusSaving': 'Zapisywanie…',
  'autonomy.statusSaved': 'Zapisano.',
  'autonomy.statusFailed': 'Niepowodzenie',
  'autonomy.unlimitedNote': 'Bez limitu — ograniczenia tempa wyłączone.',
  'autonomy.invalidIntegerMsg':
    'Musi być dodatnią liczbą całkowitą (użyj presetu Bez limitu, aby usunąć limit).',
  'autonomy.presetUnlimited': 'Bez limitu (domyślnie)',
  'triggers.toggleFailed': 'Nie udało się: {action} dla {trigger}: {message}',
  'settings.ai.overview': 'Przegląd systemu AI',
  'settings.ai.configStatus': 'Stan konfiguracji',
  'settings.ai.fallbackMode': 'Tryb awaryjny',
  'settings.ai.loadedFromRuntime': 'Wczytane ze środowiska',
  'settings.ai.loadingDuration': 'Czas wczytywania',
  'settings.ai.localRuntime': 'Lokalne środowisko modelu',
  'settings.ai.openManager': 'Otwórz menedżera',
  'settings.ai.retryDownload': 'Ponów pobieranie',
  'settings.ai.state': 'Stan',
  'settings.ai.targetModel': 'Model docelowy',
  'settings.ai.download': 'Pobierz',
  'settings.ai.localModelUnavailable': 'Stan modelu lokalnego niedostępny.',
  'settings.ai.soulConfig': 'Konfiguracja persony SOUL',
  'settings.ai.refreshing': 'Odświeżanie...',
  'settings.ai.refreshSoul': 'Odśwież SOUL',
  'settings.ai.loadingSoul': 'Wczytywanie konfiguracji SOUL...',
  'settings.ai.identity': 'Tożsamość',
  'settings.ai.personality': 'Osobowość',
  'settings.ai.safetyRules': 'Zasady bezpieczeństwa',
  'settings.ai.source': 'Źródło',
  'settings.ai.loaded': 'Wczytano',
  'settings.ai.toolsConfig': 'Konfiguracja TOOLS',
  'settings.ai.refreshTools': 'Odśwież TOOLS',
  'settings.ai.toolsAvailable': 'Dostępne narzędzia',
  'settings.ai.tools': 'narzędzia',
  'settings.ai.activeSkills': 'Aktywne umiejętności',
  'settings.ai.skills': 'umiejętności',
  'settings.ai.skillsOverview': 'Przegląd umiejętności',
  'settings.ai.refreshingAll': 'Odświeżanie wszystkiego...',
  'settings.ai.refreshAll': 'Odśwież całą konfigurację AI',
  'settings.notifications.suppressAll': 'Wycisz wszystkie powiadomienia',
  'settings.notifications.suppressAllDesc':
    'Blokuj wszystkie systemowe powiadomienia z osadzonych aplikacji niezależnie od fokusa.',
  'settings.notifications.toggleDnd': 'Przełącz tryb Nie przeszkadzać',
  'settings.notifications.categories': 'Kategorie',
  'settings.notifications.categoryFooter':
    'Wyłączenie kategorii zatrzymuje nowe powiadomienia tego typu w centrum powiadomień. Istniejące pozostają do czasu wyczyszczenia.',
  'settings.billing.movedToWeb': 'Rozliczenia przeniesione do sieci',
  'settings.billing.openDashboard': 'Otwórz panel rozliczeń',
  'settings.billing.movedToWebDesc':
    'Zmiany subskrypcji, metody płatności, kredyty i faktury są teraz zarządzane w TinyHumans w sieci.',
  'settings.billing.backToSettings': 'Powrót do ustawień',
  'settings.billing.openingBrowser': 'Otwieranie przeglądarki...',
  'settings.billing.browserNotOpen':
    'Jeśli przeglądarka się nie otworzyła, użyj przycisku powyżej.',
  'settings.billing.browserOpenFailed':
    'Nie udało się otworzyć przeglądarki automatycznie. Użyj przycisku powyżej.',
  'settings.tools.chooseCapabilities':
    'Wybierz, z jakich możliwości OpenHuman może korzystać w Twoim imieniu.',
  'settings.tools.saveChanges': 'Zapisz zmiany',
  'settings.tools.preferencesSaved': 'Preferencje zapisane',
  'settings.tools.saveFailed': 'Nie udało się zapisać preferencji. Spróbuj ponownie.',
  'settings.screenAwareness.mode': 'Tryb',
  'settings.screenAwareness.allExceptBlacklist': 'Wszystko oprócz czarnej listy',
  'settings.screenAwareness.whitelistOnly': 'Tylko biała lista',
  'settings.screenAwareness.screenMonitoring': 'Monitorowanie ekranu',
  'settings.screenAwareness.saveSettings': 'Zapisz ustawienia',
  'settings.screenAwareness.session': 'Sesja',
  'settings.screenAwareness.status': 'Stan',
  'settings.screenAwareness.active': 'Aktywna',
  'settings.screenAwareness.stopped': 'Zatrzymana',
  'settings.screenAwareness.remaining': 'Pozostało',
  'settings.screenAwareness.startSession': 'Rozpocznij sesję',
  'settings.screenAwareness.stopSession': 'Zatrzymaj sesję',
  'settings.screenAwareness.analyzeNow': 'Analizuj teraz',
  'settings.screenAwareness.macosOnly':
    'Przechwytywanie ekranu i zarządzanie uprawnieniami są obecnie obsługiwane tylko na macOS.',
  'connections.comingSoon': 'Wkrótce',
  'connections.setUp': 'Skonfiguruj',
  'connections.configured': 'Skonfigurowano',
  'connections.unavailable': 'Niedostępne',
  'connections.checking': 'Sprawdzanie…',
  'connections.walletConfigured':
    'Lokalne tożsamości EVM, BTC, Solana i Tron są skonfigurowane z Twojej frazy odzyskiwania.',
  'connections.walletReady':
    'Skonfiguruj lokalne tożsamości EVM, BTC, Solana i Tron z jednej frazy odzyskiwania.',
  'connections.walletError':
    'Nie można sprawdzić stanu portfela. Dotknij, aby ponowić z panelu Frazy odzyskiwania.',
  'connections.walletChecking': 'Sprawdzanie stanu portfela...',
  'connections.walletIdentities': 'Tożsamości portfela',
  'connections.walletDerived':
    'Wyprowadzone lokalnie z Twojej frazy odzyskiwania i przechowywane tylko jako bezpieczne metadane.',
  'connections.privacySecurity': 'Prywatność i bezpieczeństwo',
  'connections.privacySecurityDesc':
    'Wszystkie dane i poświadczenia są przechowywane lokalnie z polityką zerowego retencji. Twoje informacje są szyfrowane i nigdy nie są udostępniane stronom trzecim.',
  'channels.status.connecting': 'Łączenie',
  'channels.status.notConfigured': 'Nieskonfigurowany',
  'channels.noActiveRoute': 'Brak aktywnej trasy',
  'channels.activeRoute': 'Aktywna trasa',
  'channels.loadingDefinitions': 'Wczytywanie definicji kanałów...',
  'channels.channelConnections': 'Połączenia kanałów',
  'channels.configureAuthModes': 'Skonfiguruj tryby uwierzytelniania dla każdego kanału.',
  'channels.configNotAvailable': 'Konfiguracja dla',
  'channels.channel': 'kanał',
  'devOptions.coreModeNotSet': 'Tryb rdzenia: nie ustawiony',
  'devOptions.coreModeNotSetDesc':
    'Wybór trybu uruchamiania nie został jeszcze potwierdzony. Użyj „Przełącz tryb”, aby wybrać Lokalny lub Chmurowy.',
  'devOptions.local': 'Lokalny',
  'devOptions.embeddedCoreSidecar': 'Wbudowany sidecar rdzenia',
  'devOptions.sidecarSpawned': 'Uruchamiany w procesie powłoki Tauri przy starcie aplikacji.',
  'devOptions.cloud': 'Chmura',
  'devOptions.remoteCoreRpc': 'Zdalne RPC rdzenia',
  'devOptions.token': 'Token dostępu',
  'devOptions.tokenNotSet': 'nie ustawiony — RPC zwróci 401',
  'devOptions.triggerSentryTest': 'Wyzwól test Sentry (staging)',
  'devOptions.triggerSentryTestDesc':
    'Wysyła oznaczony błąd, aby zweryfikować potok Sentry. Issue #1072 — usuń po weryfikacji.',
  'devOptions.sendTestEvent': 'Wyślij zdarzenie testowe',
  'devOptions.sending': 'Wysyłanie…',
  'devOptions.eventSent': 'Zdarzenie wysłane',
  'devOptions.sentryDisabled': '(brak ID — Sentry wyłączone w tej kompilacji)',
  'devOptions.failed': 'Niepowodzenie',
  'devOptions.appLogs': 'Dzienniki aplikacji',
  'devOptions.appLogsDesc':
    'Otwórz folder z rotacyjnymi dziennikami dziennymi. Dołącz najnowszy plik podczas zgłaszania błędu.',
  'devOptions.openLogsFolder': 'Otwórz folder dzienników',
  'mnemonic.phraseSaved': 'Fraza odzyskiwania zapisana',
  'mnemonic.walletReady': 'Wielołańcuchowe tożsamości portfela są gotowe. Powrót do ustawień...',
  'mnemonic.writeDownWords': 'Zapisz te',
  'mnemonic.wordsInOrder':
    'słów w kolejności i przechowuj je w bezpiecznym miejscu. Ta fraza zabezpiecza Twój lokalny klucz szyfrowania oraz tożsamości portfeli EVM, BTC, Solana i Tron.',
  'mnemonic.cannotRecover':
    'Tej frazy nie da się odzyskać, jeśli ją utracisz, i powinna pozostać wyłącznie lokalna na Twoim urządzeniu.',
  'mnemonic.copyToClipboard': 'Skopiuj do schowka',
  'mnemonic.alreadyHavePhrase': 'Mam już frazę odzyskiwania',
  'mnemonic.consentSaved':
    'Zapisałem(am) tę frazę i wyrażam zgodę na jej użycie do konfiguracji lokalnego portfela',
  'mnemonic.enterPhraseToRestore':
    'Wprowadź swoją frazę odzyskiwania poniżej, aby przywrócić lokalne tożsamości portfela, lub wklej pełną frazę w dowolne pole (12 słów dla nowych kopii zapasowych; 24-słowne frazy ze starszych wersji nadal działają).',
  'mnemonic.words': 'Słowa',
  'mnemonic.validPhrase': 'Prawidłowa fraza odzyskiwania',
  'mnemonic.generateNewPhrase': 'Wygeneruj zamiast tego nową frazę odzyskiwania',
  'mnemonic.securingData': 'Zabezpieczanie Twoich danych...',
  'mnemonic.saveRecoveryPhrase': 'Zapisz frazę odzyskiwania',
  'mnemonic.userNotLoaded': 'Użytkownik nie wczytany. Zaloguj się ponownie lub odśwież stronę.',
  'mnemonic.invalidPhrase': 'Nieprawidłowa fraza odzyskiwania. Sprawdź słowa i spróbuj ponownie.',
  'mnemonic.somethingWentWrong': 'Coś poszło nie tak. Spróbuj ponownie.',
  'mnemonic.walletAlreadyConfigured': 'Twój portfel jest już skonfigurowany.',
  'mnemonic.walletSource': 'Źródło',
  'mnemonic.walletWordCount': 'Długość frazy odzyskiwania',
  'mnemonic.walletLastUpdated': 'Ostatnia aktualizacja',
  'mnemonic.replaceWallet': 'Zastąp portfel',
  'mnemonic.replaceWalletWarning':
    'Spowoduje to trwałe zastąpienie Twojego obecnego portfela. Upewnij się, że masz kopię zapasową frazy odzyskiwania przed kontynuowaniem.',
  'mnemonic.replaceWalletConfirm': 'Rozumiem, zastąp mój portfel',
  'mnemonic.loadingWalletStatus': 'Sprawdzanie statusu portfela...',
  'mnemonic.viewAccounts': 'Konta portfela',
  'mnemonic.revealRecoveryPhrase': 'Ujawnij frazę odzyskiwania',
  'mnemonic.hidePhrase': 'Ukryj frazę',
  'team.failedToCreate': 'Nie udało się utworzyć zespołu',
  'team.invalidInviteCode': 'Nieprawidłowy lub wygasły kod zaproszenia',
  'team.failedToSwitch': 'Nie udało się przełączyć zespołu',
  'team.failedToLeave': 'Nie udało się opuścić zespołu',
  'team.role.owner': 'Właściciel',
  'team.role.admin': 'Administrator',
  'team.role.billingManager': 'Menedżer rozliczeń',
  'team.role.member': 'Członek',
  'team.active': 'Aktywny',
  'team.personalTeam': 'Zespół osobisty',
  'team.manageTeam': 'Zarządzaj zespołem',
  'team.switching': 'Przełączanie...',
  'team.switch': 'Przełącz',
  'team.leaving': 'Opuszczanie...',
  'team.leave': 'Opuść',
  'team.yourTeams': 'Twoje zespoły',
  'team.createNewTeam': 'Utwórz nowy zespół',
  'team.teamName': 'Nazwa zespołu',
  'team.creating': 'Tworzenie...',
  'team.joinExistingTeam': 'Dołącz do istniejącego zespołu',
  'team.personalAutoCreatedNote':
    'Twój zespół osobisty jest tworzony automatycznie. Aby współpracować, dołącz do istniejącego zespołu, używając kodu zaproszenia poniżej.',
  'team.inviteCode': 'Kod zaproszenia',
  'team.joining': 'Dołączanie...',
  'team.join': 'Dołącz',
  'team.leaveTeam': 'Opuść zespół',
  'team.confirmLeave': 'Czy na pewno chcesz opuścić',
  'team.leaveWarning':
    'Stracisz dostęp do zespołu i wszystkich jego zasobów. Aby wrócić, będziesz potrzebować nowego zaproszenia.',
  'team.management': 'Zarządzanie zespołem',
  'team.notFound': 'Nie znaleziono zespołu',
  'team.accessDenied': 'Brak dostępu',
  'team.members': 'Członkowie',
  'team.membersDesc': 'Zarządzaj członkami zespołu i ich rolami',
  'team.invites': 'Zaproszenia',
  'team.invitesDesc': 'Generuj kody zaproszeń i zarządzaj nimi',
  'team.settings': 'Ustawienia zespołu',
  'team.settingsDesc': 'Edytuj nazwę i ustawienia zespołu',
  'team.editSettings': 'Edytuj ustawienia zespołu',
  'team.enterName': 'Wpisz nazwę zespołu',
  'team.saving': 'Zapisywanie...',
  'team.saveChanges': 'Zapisz zmiany',
  'team.delete': 'Usuń zespół',
  'team.deleteDesc': 'Trwale usuń ten zespół',
  'team.deleting': 'Usuwanie...',
  'team.failedToUpdate': 'Nie udało się zaktualizować zespołu',
  'team.failedToDelete': 'Nie udało się usunąć zespołu',
  'team.manageTitle': 'Zarządzaj zespołem {name}',
  'team.planCreated': 'Plan {plan} • Utworzono {date}',
  'team.confirmDelete': 'Czy na pewno usunąć {name}?',
  'team.deleteWarning':
    'Tej operacji nie można cofnąć. Wszystkie dane zespołu zostaną trwale usunięte.',
  'voice.title': 'Dyktowanie głosowe',
  'voice.settings': 'Ustawienia głosu',
  'voice.settingsDesc': 'Przytrzymaj skrót, aby dyktować i wstawiać tekst do aktywnego pola.',
  'voice.hotkey': 'Skrót klawiszowy',
  'voice.activationMode': 'Tryb aktywacji',
  'voice.tapToToggle': 'Dotknij, aby przełączyć',
  'voice.writingStyle': 'Styl pisania',
  'voice.verbatimTranscription': 'Transkrypcja dosłowna',
  'voice.naturalCleanup': 'Naturalne porządkowanie',
  'voice.autoStart': 'Uruchamiaj serwer głosowy automatycznie z rdzeniem',
  'voice.customDictionary': 'Słownik użytkownika',
  'voice.customDictionaryDesc':
    'Dodaj nazwy, terminy techniczne i słowa branżowe, aby poprawić dokładność rozpoznawania.',
  'voice.addWord': 'Dodaj słowo...',
  'voice.sttDisabled':
    'Dyktowanie głosowe jest wyłączone do czasu pobrania i przygotowania lokalnego modelu STT.',
  'voice.openLocalAiModel': 'Otwórz lokalny model AI',
  'voice.serverRestarted': 'Serwer głosowy uruchomiony ponownie z nowymi ustawieniami.',
  'voice.settingsSaved': 'Ustawienia głosu zapisane.',
  'voice.serverStarted': 'Serwer głosowy uruchomiony.',
  'voice.serverStopped': 'Serwer głosowy zatrzymany.',
  'voice.saveVoiceSettings': 'Zapisz ustawienia głosu',
  'voice.startVoiceServer': 'Uruchom serwer głosowy',
  'voice.stopVoiceServer': 'Zatrzymaj serwer głosowy',
  'voice.debugTitle': 'Debug głosu',
  'voice.failedToLoadSettings': 'Nie udało się załadować ustawień głosu',
  'voice.failedToSaveSettings': 'Nie udało się zapisać ustawień głosu',
  'voice.failedToStartServer': 'Nie udało się uruchomić serwera głosu',
  'voice.failedToStopServer': 'Nie udało się zatrzymać serwera głosu',
  'voice.sttDisabledPrefix':
    'Dyktowanie głosem jest wyłączone, dopóki nie zostanie pobrany lokalny model STT. Użyj sekcji',
  'voice.sttDisabledSuffix': 'powyżej, aby zainstalować Whisper.',
  'voice.debug.failedToLoadVoiceDebugData': 'Nie udało się załadować danych debugowania głosu',
  'voice.debug.settingsSaved': 'Ustawienia debugowania zapisane.',
  'voice.debug.failedToSaveSettings': 'Nie udało się zapisać ustawień głosu',
  'voice.debug.runtimeStatus': 'Status środowiska uruchomieniowego',
  'voice.debug.runtimeStatusDesc': 'Diagnostyka na żywo serwera głosowego i silnika mowy na tekst.',
  'voice.debug.server': 'Server',
  'voice.debug.unavailable': 'Unavailable',
  'voice.debug.ready': 'Ready',
  'voice.debug.notReady': 'Nie gotowy',
  'voice.debug.hotkey': 'Hotkey',
  'voice.debug.notAvailable': 'n/a',
  'voice.debug.mode': 'Mode',
  'voice.debug.transcriptions': 'Transcriptions',
  'voice.debug.serverError': 'Błąd serwera',
  'voice.debug.advancedSettings': 'Ustawienia zaawansowane',
  'voice.debug.advancedSettingsDesc':
    'Niskopoziomowe parametry dostrajania nagrywania i wykrywania ciszy.',
  'voice.debug.minimumRecordingSeconds': 'Minimalna długość nagrania (sekundy)',
  'voice.debug.silenceThreshold': 'Próg ciszy (RMS)',
  'voice.debug.silenceThresholdDesc':
    'Nagrania z energią poniżej tego progu są traktowane jako cisza i pomijane. Niżej = bardziej czułe.',
  'voice.debug.alwaysOn': 'Ciągłe nasłuchiwanie',
  'voice.debug.alwaysOnDesc':
    'Utrzymuje mikrofon włączony i automatycznie wysyła to, co mówisz, do agenta, bez skrótu. Wstrzymuje się, gdy ekran jest zablokowany.',
  'voice.providers.saved': 'Zapisano dostawców głosu.',
  'voice.providers.failedToSave': 'Nie udało się zapisać dostawców głosu',
  'voice.providers.ellipsis': '…',
  'voice.providers.installing': 'Instalowanie',
  'voice.providers.installingBusy': 'Instalowanie…',
  'voice.providers.reinstallLocally': 'Zainstaluj ponownie lokalnie',
  'voice.providers.repair': 'Napraw',
  'voice.providers.retryLocally': 'Spróbuj ponownie lokalnie',
  'voice.providers.installLocally': 'Zainstaluj lokalnie',
  'voice.providers.whisperReady': 'Whisper jest gotowy.',
  'voice.providers.whisperInstallStarted': 'Instalacja Whisper rozpoczęta',
  'voice.providers.queued': 'w kolejce',
  'voice.providers.failedToInstallWhisper': 'Nie udało się zainstalować Whisper',
  'voice.providers.piperReady': 'Piper jest gotowy.',
  'voice.providers.piperInstallStarted': 'Instalacja Piper rozpoczęta',
  'voice.providers.failedToInstallPiper': 'Nie udało się zainstalować Piper',
  'voice.providers.title': 'Dostawcy głosu',
  'voice.providers.desc':
    'Wybierz, gdzie ma działać transkrypcja i synteza. Użyj przycisków „Zainstaluj lokalnie”, aby pobrać binarki i modele do przestrzeni roboczej. Lokalnych dostawców można zapisać przed zakończeniem instalacji — bez ręcznego ustawiania WHISPER_BIN czy PIPER_BIN.',
  'voice.providers.sttProvider': 'Dostawca mowy na tekst',
  'voice.providers.sttProviderAria': 'Dostawca STT',
  'voice.providers.cloudWhisperProxy': 'Chmura (proxy Whisper)',
  'voice.providers.localWhisper': 'Whisper lokalnie',
  'voice.providers.installRequired': ' (wymagana instalacja)',
  'voice.providers.whisperInstalledTitle':
    'Whisper jest zainstalowany. Kliknij, aby zainstalować ponownie.',
  'voice.providers.whisperDownloadTitle':
    'Pobierz whisper.cpp i model GGML do przestrzeni roboczej.',
  'voice.providers.installed': 'Zainstalowano',
  'voice.providers.installFailed': 'Instalacja nieudana',
  'voice.providers.notInstalled': 'Nie zainstalowano',
  'voice.providers.whisperModel': 'Model Whisper',
  'voice.providers.whisperModelAria': 'Model Whisper',
  'voice.providers.whisperModelTiny': 'Tiny (39 MB, najszybszy)',
  'voice.providers.whisperModelBase': 'Podstawowy (74 MB)',
  'voice.providers.whisperModelSmall': 'Mały (244 MB)',
  'voice.providers.whisperModelMedium': 'Medium (769 MB, polecany)',
  'voice.providers.whisperModelLargeTurbo': 'Large v3 Turbo (1.5 GB, najlepsza dokładność)',
  'voice.providers.ttsProvider': 'Dostawca tekstu na mowę',
  'voice.providers.ttsProviderAria': 'Dostawca TTS',
  'voice.providers.cloudElevenLabsProxy': 'Chmura (proxy ElevenLabs)',
  'voice.providers.localPiper': 'Piper lokalnie',
  'voice.providers.piperInstalledTitle':
    'Piper jest zainstalowany. Kliknij, aby zainstalować ponownie.',
  'voice.providers.piperDownloadTitle':
    'Pobierz Piper i głos en_US-lessac-medium do przestrzeni roboczej.',
  'voice.providers.piperVoice': 'Głos Piper',
  'voice.providers.piperVoiceAria': 'Głos Piper',
  'voice.providers.customVoiceOption': 'Inny (wpisz poniżej)…',
  'voice.providers.customVoiceAria': 'Identyfikator głosu Piper (niestandardowy)',
  'voice.providers.customVoicePlaceholder': 'en_US-lessac-medium',
  'voice.providers.piperVoicesDesc':
    'Głosy pochodzą z huggingface.co/rhasspy/piper-voices. Zmiana głosu może wymagać kliknięcia Zainstaluj / Zainstaluj ponownie, aby pobrać nowy plik .onnx.',
  'voice.providers.mascotVoice': 'Głos maskotki',
  'voice.providers.mascotVoiceDescPrefix':
    'Głos ElevenLabs, którego maskotka używa do mówionych odpowiedzi, konfiguruje się w',
  'voice.providers.mascotSettings': 'Ustawienia maskotki',
  'voice.providers.mascotVoiceDescSuffix': '.',
  'voice.providers.hotkeyPlaceholder': 'Fn',
  'voice.providers.piperPreset.lessacMedium': 'US · Lessac (neutralny, zalecany)',
  'voice.providers.piperPreset.lessacHigh': 'US · Lessac (wyższa jakość, większy)',
  'voice.providers.piperPreset.ryanMedium': 'US · Ryan (męski)',
  'voice.providers.piperPreset.amyMedium': 'US · Amy (żeński)',
  'voice.providers.piperPreset.librittsHigh': 'US · LibriTTS (wielu mówców)',
  'voice.providers.piperPreset.alanMedium': 'GB · Alan (męski)',
  'voice.providers.piperPreset.jennyDiocoMedium': 'GB · Jenny Dioco (żeński)',
  'voice.providers.piperPreset.northernEnglishMaleMedium': 'GB · Północnoangielski (męski)',
  'voice.providers.chip.cloud': 'OpenHuman (zarządzany)',
  'voice.providers.chip.cloudAria': 'Zarządzany dostawca OpenHuman jest zawsze włączony',
  'voice.providers.chip.whisper': 'Whisper (lokalnie)',
  'voice.providers.chip.enableWhisper': 'Włącz lokalny Whisper STT',
  'voice.providers.chip.disableWhisper': 'Wyłącz lokalny Whisper STT',
  'voice.providers.chip.piper': 'Piper (lokalnie)',
  'voice.providers.chip.enablePiper': 'Włącz lokalny Piper TTS',
  'voice.providers.chip.disablePiper': 'Wyłącz lokalny Piper TTS',
  'voice.providers.chip.enableProvider': 'Włącz',
  'voice.providers.chip.disableProvider': 'Wyłącz',
  'voice.providers.chip.apiKeyLabel': 'Klucz API',
  'voice.providers.chip.apiKeyPlaceholder': 'sk-…',
  'voice.providers.chip.comingSoon': 'wkrótce',
  'voice.modal.title': 'Skonfiguruj',
  'voice.modal.desc':
    'Wpisz swój klucz API, aby włączyć tego dostawcę. Możesz przetestować połączenie przed zapisem.',
  'voice.modal.testKey': 'Przetestuj klucz',
  'voice.modal.testing': 'Testowanie…',
  'voice.modal.saveAndEnable': 'Zapisz i włącz',
  'voice.modal.enable': 'Włącz',
  'voice.modal.whisperDesc':
    'Wybierz rozmiar modelu i zainstaluj binarkę Whisper oraz model GGML w przestrzeni roboczej. Większe modele są dokładniejsze, ale wolniejsze.',
  'voice.modal.piperDesc':
    'Wybierz głos i zainstaluj binarkę Piper oraz model ONNX w przestrzeni roboczej. Piper działa w pełni offline z niskim opóźnieniem.',
  'voice.routing.title': 'Routing głosu',
  'voice.routing.desc': 'Wybierz, którzy włączeni dostawcy obsługują STT i TTS.',
  'voice.routing.save': 'Zapisz',
  'voice.routing.testStt': 'Testuj STT',
  'voice.routing.testTts': 'Testuj TTS',
  'voice.routing.elevenlabsVoice': 'Głos ElevenLabs',
  'voice.routing.elevenlabsVoiceAria': 'Wybór głosu ElevenLabs',
  'voice.routing.elevenlabsVoiceIdAria': 'Identyfikator głosu ElevenLabs (niestandardowy)',
  'voice.routing.elevenlabsVoiceDesc':
    'Wybierz wybrany głos lub wklej własne ID głosu z panelu ElevenLabs.',
  'voice.externalProviders.title': 'Zewnętrzni dostawcy głosu',
  'voice.externalProviders.desc':
    'Podłącz API STT/TTS innych firm, np. Deepgram, ElevenLabs lub OpenAI, bezpośrednio.',
  'voice.externalProviders.keySet': 'Klucz ustawiony',
  'voice.externalProviders.noKey': 'Brak klucza API',
  'voice.externalProviders.test': 'Test',
  'voice.externalProviders.testing': 'Testowanie…',
  'voice.externalProviders.remove': 'Usuń',
  'voice.externalProviders.provider': 'Dostawca',
  'voice.externalProviders.selectProvider': 'Wybierz dostawcę…',
  'voice.externalProviders.apiKey': 'Klucz API',
  'voice.externalProviders.apiKeyPlaceholder': 'sk-…',
  'voice.externalProviders.add': 'Dodaj',
  'pttSettings.title': 'Naciśnij, aby mówić',
  'pttSettings.description':
    'Przytrzymaj klawisz, aby mówić do OpenHuman, gdy korzystasz z innej aplikacji. Zwolnienie klawisza wysyła nagranie; jeśli opcja „Czytaj odpowiedzi" jest włączona, OpenHuman odczyta odpowiedź na głos.',
  'pttSettings.shortcutLabel': 'Skrót klawiszowy',
  'pttSettings.shortcutPlaceholder': 'Naciśnij klawisz (np. F13)',
  'pttSettings.shortcutUnsetHint':
    'Naciśnij, aby mówić jest wyłączone — wybierz skrót, aby je włączyć.',
  'pttSettings.speakRepliesLabel': 'Czytaj odpowiedzi agenta na głos',
  'pttSettings.showOverlayLabel': 'Pokazuj nakładkę podczas przytrzymania',
  'pttSettings.errorConflictsWithDictation':
    'Ten skrót jest już używany przez dyktowanie. Wybierz inny klawisz.',
  'pttSettings.errorModifierOnly':
    'Wybierz zwykły klawisz (np. F13) — skróty złożone tylko z modyfikatorów nie działają dla naciśnij, aby mówić.',
  'pttSettings.errorEmpty': 'Wybierz klawisz do przypisania.',
  'pttSettings.errorAccessibility':
    'macOS wymaga uprawnienia Dostępność dla tego skrótu. Otwórz Ustawienia systemowe → Prywatność i bezpieczeństwo → Dostępność i włącz OpenHuman.',
  'pttSettings.errorShortcutInUse': 'Inna aplikacja używa już tego skrótu. Wybierz inny.',
  'pttSettings.errorUnsupportedWayland':
    'Sesje Wayland nie obsługują jeszcze globalnych skrótów w OpenHuman — przełącz się na sesję X11 lub użyj przełącznika dyktowania w aplikacji.',
  'pttSettings.exclusiveFullscreenHint':
    'W grach na wyłącznym pełnym ekranie nakładka nie zostanie wyświetlona — usłyszysz tylko sygnał dźwiękowy. Przełącz na pełny ekran bez ramki, aby zobaczyć nakładkę.',
  'pttOverlay.listening': 'Słucham…',
  'pttOverlay.idle': 'Gotowy',
  'autocomplete.title': 'Autouzupełnianie',
  'autocomplete.settings': 'Ustawienia',
  'autocomplete.acceptWithTab': 'Akceptuj Tabem',
  'autocomplete.stylePreset': 'Styl',
  'autocomplete.style.balanced': 'Zrównoważony',
  'autocomplete.style.concise': 'Zwięzły',
  'autocomplete.style.formal': 'Formalny',
  'autocomplete.style.casual': 'Swobodny',
  'autocomplete.style.custom': 'Własny',
  'autocomplete.disabledApps':
    'Wyłączone aplikacje (jeden identyfikator pakietu/aplikacji w wierszu)',
  'autocomplete.saveSettings': 'Zapisz ustawienia',
  'autocomplete.saving': 'Zapisywanie…',
  'autocomplete.runtime': 'Środowisko',
  'autocomplete.running': 'Działa',
  'autocomplete.start': 'Uruchom',
  'autocomplete.stop': 'Zatrzymaj',
  'autocomplete.settingsSaved': 'Ustawienia autouzupełniania zapisane.',
  'autocomplete.started': 'Autouzupełnianie uruchomione.',
  'autocomplete.didNotStart': 'Autouzupełnianie nie wystartowało. Sprawdź, czy jest włączone.',
  'autocomplete.stopped': 'Autouzupełnianie zatrzymane.',
  'autocomplete.advancedSettings': 'Ustawienia zaawansowane',
  'autocomplete.debugTitle': 'Debug autouzupełniania',
  'chat.agentChat': 'Czat z agentem',
  'chat.overrides': 'Nadpisania',
  'chat.model': 'Model',
  'chat.temperature': 'Temperatura',
  'chat.conversation': 'Rozmowa',
  'chat.startAgentConversation': 'Rozpocznij rozmowę z agentem.',
  'chat.you': 'Ty',
  'chat.agent': 'Agent',
  'chat.askAgent': 'Zapytaj agenta o cokolwiek...',
  'chat.sendMessage': 'Wyślij wiadomość',
  'composio.triageTitle': 'Wyzwalacze integracji',
  'composio.triageDesc':
    'Gdy włączone, każdy przychodzący wyzwalacz Composio przechodzi przez krok klasyfikacji AI — jedna tura lokalnego LLM na wyzwalacz. Wyłącz globalnie lub dla wybranych integracji, jeśli wolisz ręczny przegląd. Jeśli zmienna środowiskowa',
  'composio.disableAllTriage': 'Wyłącz klasyfikację AI dla wszystkich wyzwalaczy',
  'composio.triggersStillRecorded':
    'Wyzwalacze są nadal zapisywane do historii — żadna tura LLM nie jest uruchamiana.',
  'composio.disableSpecificIntegrations': 'Wyłącz klasyfikację AI dla konkretnych integracji',
  'composio.settingsSaved': 'Ustawienia zapisane',
  'composio.saveFailed': 'Nie udało się zapisać. Spróbuj ponownie.',
  'cron.title': 'Zadania cron',
  'cron.scheduledJobs': 'Zaplanowane zadania',
  'cron.manageCronJobs': 'Zarządzaj zadaniami cron z poziomu harmonogramu rdzenia.',
  'cron.refreshCronJobs': 'Odśwież zadania cron',
  'localModel.modelStatus': 'Stan modelu',
  'localModel.downloadModels': 'Pobierz modele',
  'localModel.usage': 'Użycie',
  'localModel.usageDesc':
    'Wybierz, które podsystemy korzystają z modelu lokalnego. Wszystko wyłączone używa chmury.',
  'localModel.enableRuntime': 'Włącz lokalne środowisko AI',
  'localModel.enableRuntimeDesc':
    'Główny przełącznik. Domyślnie wyłączony — Ollama pozostaje bezczynna. Gdy włączony, podsumowywanie drzewa, inteligencja ekranu i autouzupełnianie zawsze korzystają z modelu lokalnego.',
  'localModel.advancedSettings': 'Ustawienia zaawansowane',
  'localModel.debugTitle': 'Debug modelu lokalnego',
  'screenAwareness.debugTitle': 'Debug świadomości ekranu',
  'screenAwareness.debug.debugAndDiagnostics': 'Debug i diagnostyka',
  'screenAwareness.debug.collapse': 'Zwiń',
  'screenAwareness.debug.expand': 'Rozwiń',
  'screenAwareness.debug.failedToSave': 'Nie udało się zapisać świadomości ekranu',
  'screenAwareness.debug.policyTitle': 'Polityka świadomości ekranu',
  'screenAwareness.debug.baselineFps': 'Bazowe FPS',
  'screenAwareness.debug.useVisionModel': 'Użyj modelu wizji',
  'screenAwareness.debug.useVisionModelDesc':
    'Wysyłaj zrzuty ekranu do LLM wizyjnego po bogatszy kontekst. Gdy wyłączone, używany jest tylko tekst OCR z LLM tekstowym — szybciej i bez modelu wizji.',
  'screenAwareness.debug.keepScreenshots': 'Zachowuj zrzuty ekranu',
  'screenAwareness.debug.keepScreenshotsDesc':
    'Zapisuj zrzuty ekranu w przestrzeni roboczej zamiast usuwać po przetworzeniu',
  'screenAwareness.debug.allowlist': 'Lista dozwolonych (jedna reguła na linię)',
  'screenAwareness.debug.denylist': 'Lista blokowanych (jedna reguła na linię)',
  'screenAwareness.debug.saveSettings': 'Zapisz ustawienia świadomości ekranu',
  'screenAwareness.debug.sessionStats': 'Statystyki sesji',
  'screenAwareness.debug.framesEphemeral': 'Klatki (ulotne)',
  'screenAwareness.debug.panicStop': 'Awaryjne zatrzymanie',
  'screenAwareness.debug.defaultPanicHotkey': 'Cmd+Shift+.',
  'screenAwareness.debug.vision': 'Wizja',
  'screenAwareness.debug.idle': 'bezczynne',
  'screenAwareness.debug.visionQueue': 'Kolejka wizji',
  'screenAwareness.debug.lastVision': 'Ostatnia wizja',
  'screenAwareness.debug.notAvailable': 'n/d',
  'screenAwareness.debug.visionSummaries': 'Podsumowania wizji',
  'screenAwareness.debug.refreshing': 'Odświeżanie…',
  'screenAwareness.debug.noSummaries': 'Brak podsumowań.',
  'screenAwareness.debug.unknownApp': 'Nieznana aplikacja',
  'screenAwareness.debug.macosOnly':
    'Świadomość ekranu V1 jest obecnie obsługiwana tylko na macOS.',
  'memory.debugTitle': 'Debug pamięci',
  'memory.documents': 'Dokumenty',
  'memory.filterByNamespace': 'Filtruj po przestrzeni nazw...',
  'memory.refresh': 'Odśwież',
  'memory.noDocumentsFound': 'Nie znaleziono dokumentów.',
  'memory.delete': 'Usuń',
  'memory.rawResponse': 'Surowa odpowiedź',
  'memory.namespaces': 'Przestrzenie nazw',
  'memory.noNamespacesFound': 'Nie znaleziono przestrzeni nazw.',
  'memory.queryRecall': 'Zapytanie i przywołanie',
  'memory.namespace': 'Przestrzeń nazw',
  'memory.queryText': 'Tekst zapytania...',
  'memory.defaultMaxChunks': '10',
  'memory.maxChunks': 'maks. fragmentów',
  'memory.query': 'Zapytaj',
  'memory.recall': 'Przywołaj',
  'memory.queryLabel': 'Zapytanie',
  'memory.recallLabel': 'Przywołanie',
  'memory.queryResult': 'Wynik zapytania',
  'memory.recallResult': 'Wynik przywołania',
  'memory.clearNamespace': 'Wyczyść przestrzeń nazw',
  'memory.clearNamespaceDescription': 'Trwale usuń wszystkie dokumenty w przestrzeni nazw.',
  'memory.selectNamespace': 'Wybierz przestrzeń nazw...',
  'memory.exampleNamespace': 'np. skill:gmail:user@example.com',
  'memory.clear': 'Wyczyść',
  'memory.deleteConfirm': 'Usunąć dokument „{documentId}” w przestrzeni „{namespace}”?',
  'memory.clearNamespaceConfirm':
    'To trwale usunie WSZYSTKIE dokumenty w przestrzeni „{namespace}”. Kontynuować?',
  'memory.clearNamespaceSuccess': 'Wyczyszczono przestrzeń „{namespace}”.',
  'memory.clearNamespaceEmpty': 'Nic do wyczyszczenia w „{namespace}”.',
  'webhooks.debugTitle': 'Debug webhooków',
  'webhooks.failedToLoadDebugData': 'Nie udało się załadować danych debugowania webhooków',
  'webhooks.clearLogsConfirm': 'Wyczyścić wszystkie zebrane logi debugowania webhooków?',
  'webhooks.failedToClearLogs': 'Nie udało się wyczyścić logów webhooków',
  'webhooks.loading': 'Ładowanie...',
  'webhooks.refresh': 'Odśwież',
  'webhooks.clearing': 'Czyszczenie...',
  'webhooks.clearLogs': 'Wyczyść logi',
  'webhooks.registered': 'zarejestrowane',
  'webhooks.captured': 'przechwycone',
  'webhooks.live': 'na żywo',
  'webhooks.disconnected': 'rozłączone',
  'webhooks.lastEvent': 'Ostatnie zdarzenie',
  'webhooks.at': 'o',
  'webhooks.registeredWebhooks': 'Zarejestrowane webhooki',
  'webhooks.noActiveRegistrations': 'Brak aktywnych rejestracji.',
  'webhooks.resolvingBackendUrl': 'Rozpoznawanie URL backendu…',
  'webhooks.capturedRequests': 'Przechwycone żądania',
  'webhooks.noRequestsCaptured': 'Nie przechwycono jeszcze żądań webhooków.',
  'webhooks.unrouted': 'nierozesłane',
  'webhooks.pending': 'oczekujące',
  'webhooks.requestHeaders': 'Nagłówki żądania',
  'webhooks.queryParams': 'Parametry zapytania',
  'webhooks.requestBody': 'Treść żądania',
  'webhooks.responseHeaders': 'Nagłówki odpowiedzi',
  'webhooks.responseBody': 'Treść odpowiedzi',
  'webhooks.rawPayload': 'Surowy ładunek',
  'webhooks.empty': '[puste]',
  'providerSetup.error.defaultDetails': 'Konfiguracja dostawcy nieudana.',
  'providerSetup.error.providerFallback': 'Dostawca',
  'providerSetup.error.credentialsRejected':
    'Dostawca {provider} odrzucił dane logowania. Sprawdź klucz API i spróbuj ponownie.',
  'providerSetup.error.endpointNotRecognized':
    'Dostawca {provider} nie rozpoznał endpointu. Sprawdź URL bazowy i spróbuj ponownie.',
  'providerSetup.error.providerUnavailable':
    'Dostawca {provider} jest teraz niedostępny. Spróbuj ponownie lub sprawdź status dostawcy.',
  'providerSetup.error.unreachable':
    'Nie udało się połączyć z {provider}. Sprawdź URL endpointu i połączenie sieciowe, potem spróbuj ponownie.',
  'providerSetup.error.couldNotReachWithMessage': 'Nie udało się połączyć z {provider}: {message}',
  'providerSetup.error.technicalDetails': 'Szczegóły techniczne',
  'notifications.routingTitle': 'Trasowanie powiadomień',
  'notifications.routing.pipelineStats': 'Statystyki pipeline',
  'notifications.routing.total': 'Razem',
  'notifications.routing.unread': 'Nieprzeczytane',
  'notifications.routing.unscored': 'Niezocenione',
  'notifications.routing.intelligenceTitle': 'Inteligencja powiadomień',
  'notifications.routing.intelligenceDesc':
    'Każde powiadomienie z Twoich podłączonych kont jest oceniane przez lokalny model AI. Powiadomienia o wysokiej wadze są automatycznie kierowane do agenta orchestratora, by nic ważnego nie umknęło.',
  'notifications.routing.howItWorks': 'Jak to działa',
  'notifications.routing.level.drop': 'Odrzuć',
  'notifications.routing.level.dropDesc': 'Szum / spam — zapisane, ale nie pokazywane',
  'notifications.routing.level.acknowledge': 'Potwierdź',
  'notifications.routing.level.acknowledgeDesc': 'Niski priorytet — widoczne w centrum powiadomień',
  'notifications.routing.level.react': 'Reaguj',
  'notifications.routing.level.reactDesc':
    'Średni priorytet — uruchamia ukierunkowaną odpowiedź agenta',
  'notifications.routing.level.escalate': 'Eskaluj',
  'notifications.routing.level.escalateDesc': 'Wysoki priorytet — przekierowane do orchestratora',
  'notifications.routing.perProvider': 'Routing per dostawca',
  'notifications.routing.threshold': 'Próg',
  'notifications.routing.routeToOrchestrator': 'Kieruj do orchestratora',
  'notifications.routing.loadSettingsError':
    'Nie udało się załadować ustawień. Otwórz panel ponownie.',
  'common.reload': 'Odśwież',
  'common.skip': 'Pomiń',
  'common.disable': 'Wyłącz',
  'common.enable': 'Włącz',
  'chat.safetyTimeout':
    'Brak odpowiedzi agenta po 2 minutach. Spróbuj ponownie lub sprawdź połączenie.',
  'chat.filter.general': 'Ogólne',
  'chat.filter.subconscious': 'Podświadomość',
  'chat.filter.meetings': 'Spotkania',
  'chat.filter.tasks': 'Zadania',
  'chat.selectThread': 'Wybierz wątek',
  'chat.threads': 'Wątki',
  'chat.noThreads': 'Brak wątków',
  'chat.noLabelThreads': 'Brak wątków „{label}”',
  'chat.deleteThread': 'Usuń wątek',
  'chat.deleteThreadConfirm': 'Czy na pewno chcesz usunąć „{title}”?',
  'chat.untitledThread': 'Wątek bez tytułu',
  'chat.editThreadTitle': 'Edytuj tytuł wątku',
  'chat.hideSidebar': 'Ukryj panel boczny',
  'chat.showSidebar': 'Pokaż panel boczny',
  'chat.searchThreads': 'Szukaj rozmów',
  'layout.resizeSidebar': 'Zmień rozmiar panelu bocznego',
  'layout.showSidebar': 'Pokaż panel boczny',
  'chat.newThreadShortcut': 'Nowy wątek (/new)',
  'chat.new': 'Nowy',
  'chat.failedToLoadMessages': 'Nie udało się wczytać wiadomości',
  'chat.thinkingIteration': 'Myślę... ({n})',
  'chat.thinkingDots': 'Myślę...',
  'chat.approachingLimit': 'Zbliżasz się do limitu',
  'chat.approachingLimitMsg': 'Wykorzystano {pct}% dostępnego limitu.',
  'chat.upgrade': 'Podnieś plan',
  'chat.weeklyLimitHit': 'Wykorzystano przewidziany budżet cyklu.',
  'chat.resets': 'Reset',
  'chat.topUpToContinue': 'Doładuj, aby kontynuować.',
  'chat.budgetComplete': 'Twój budżet jest wyczerpany. Doładuj kredyty lub zmień plan.',
  'chat.topUp': 'Doładuj',
  'chat.cycle': 'Cykl',
  'chat.cycleSpent': 'Wydane w tym cyklu',
  'chat.cycleRemaining': 'Pozostało',
  'chat.left': 'pozostało',
  'chat.setup': 'Skonfiguruj',
  'chat.switchToText': 'Przełącz na tekst',
  'chat.superContext.label': 'Superkontekst',
  'chat.superContext.hint':
    'Superkontekst pozwala OpenHuman zebrać i przygotować kontekst ze wszystkich dostępnych danych, aby udzielić wysoce trafnej odpowiedzi. Superkontekst jest we wczesnej wersji beta.',
  'chat.transcribing': 'Transkrypcja...',
  'chat.stopAndSend': 'Zatrzymaj i wyślij',
  'chat.startTalking': 'Zacznij mówić',
  'chat.playingVoiceReply': 'Odtwarzanie odpowiedzi głosowej',
  'chat.voiceHint': 'Użyj mikrofonu, aby mówić',
  'chat.micUnavailable': 'Mikrofon niedostępny',
  'chat.turn': 'tura',
  'chat.turns': 'tury',
  'chat.openWorkerThread': 'Otwórz wątek workera',
  'chat.attachment.attach': 'Dołącz obraz',
  'chat.attachment.remove': 'Usuń {name}',
  'chat.attachment.tooMany': 'Maksymalnie {max} obrazów na wiadomość',
  'chat.attachment.tooManyFiles': 'Maksymalnie {max} plików na wiadomość',
  'chat.attachment.tooManyVideos': 'Maksymalnie {max} filmów na wiadomość',
  'chat.attachment.videoNotSupported':
    'Ten model nie odczytuje filmów. Możesz użyć poziomu Rozumowanie OpenHuman, aby dołączyć film.',
  'chat.attachment.dropToAttach': 'Upuść pliki, aby je dołączyć',
  'chat.attachment.tooLarge': 'Obraz przekracza limit rozmiaru {max}',
  'chat.attachment.unsupportedType':
    'Nieobsługiwany typ pliku. Użyj obrazu (PNG, JPEG, WebP, GIF, BMP) lub pliku PDF, TXT albo Markdown.',
  'chat.attachment.imageNotSupported':
    'Ten model nie może odczytywać obrazów. Możesz użyć poziomu Rozumowanie OpenHuman, aby dołączyć obraz.',
  'chat.attachment.readFailed': 'Nie można odczytać pliku',
  'memory.searchAria': 'Szukaj w pamięci',
  'memory.searchPlaceholder': 'Szukaj wpisów pamięci...',
  'memory.sourceFilter.all': 'Wszystkie źródła',
  'memory.sourceFilter.email': 'E-mail',
  'memory.sourceFilter.calendar': 'Kalendarz',
  'memory.sourceFilter.telegram': 'Telegram',
  'memory.sourceFilter.aiInsight': 'Wniosek AI',
  'memory.sourceFilter.system': 'System',
  'memory.sourceFilter.trading': 'Handel',
  'memory.sourceFilter.security': 'Bezpieczeństwo',
  'memory.ingestionActivity': 'Aktywność pobierania',
  'memory.events': 'zdarzenia',
  'memory.event': 'zdarzenie',
  'memory.overTheLast': 'w ciągu ostatnich',
  'memory.months': 'miesięcy',
  'memory.peak': 'Szczyt',
  'memory.perDay': '/dzień',
  'memory.less': 'Mniej',
  'memory.more': 'Więcej',
  'memory.on': 'w',
  'memory.loading': 'Wczytywanie pamięci',
  'memory.fetching': 'Pobieranie wpisów pamięci...',
  'memory.analyzing': 'Analiza pamięci',
  'memory.analyzingHint': 'Przetwarzanie wspomnień w celu wydobycia wniosków...',
  'memory.noMatches': 'Brak dopasowań',
  'memory.noMatchesHint': 'Spróbuj zmienić wyszukiwane słowa lub filtry.',
  'memory.allCaughtUp': 'Wszystko nadrobione',
  'memory.allCaughtUpHint': 'Brak nowych wpisów do przetworzenia.',
  'memory.noAnalysis': 'Brak analizy',
  'memory.noAnalysisHint': 'Uruchom analizę, aby odkryć wzorce w swoich wspomnieniach.',
  'memory.emptyHint': 'Zacznij używać aplikacji, aby utworzyć pierwsze wspomnienia.',
  'mic.unavailable': 'Mikrofon niedostępny',
  'mic.permissionDenied': 'Odmowa dostępu do mikrofonu',
  'mic.failedToStartRecorder': 'Nie udało się uruchomić rejestratora',
  'mic.deviceUnavailable': 'Wybrany mikrofon jest niedostępny — spróbuj innego urządzenia.',
  'mic.deviceInUse': 'Mikrofon jest używany przez inną aplikację.',
  'mic.error': 'Błąd mikrofonu',
  'mic.transcribing': 'Transkrypcja...',
  'mic.retryingTranscription': 'Ponawianie próby… ({attempt} z {max})',
  'mic.tapToSend': 'Dotknij, aby wysłać',
  'mic.waitingForAgent': 'Czekam na agenta...',
  'mic.tapAndSpeak': 'Dotknij i mów',
  'mic.stopRecording': 'Zatrzymaj nagrywanie i wyślij',
  'mic.startRecording': 'Rozpocznij nagrywanie',
  'mic.deviceSelector': 'Urządzenie mikrofonowe',
  'mic.tapToSendCountdown': 'Dotknij, aby wysłać ({seconds}s)',
  'token.usageLimitReached': 'Osiągnięto limit użycia',
  'token.approachingLimit': 'Zbliżasz się do limitu',
  'token.planClickForDetails': 'plan — kliknij, aby zobaczyć szczegóły',
  'token.sessionTokens': 'Wej: {in} | Wyj: {out} | Tury: {turns}',
  'token.limit': 'Limit osiągnięty',
  'token.inLabel': 'WEJ',
  'token.outLabel': 'WYJ',
  'token.inputTokens': 'Tokeny wejściowe w tej sesji',
  'token.outputTokens': 'Tokeny wyjściowe w tej sesji',
  'token.turnsCount': 'Tury wnioskowania w tej sesji',
  'token.turn': 'tura',
  'token.turns': 'tury',
  'token.ctxLabel': 'CTX',
  'token.contextWindow': 'Użycie okna kontekstu (ostatnia tura)',
  'token.cachedLabel': 'Z pamięci',
  'token.costLabel': 'Koszt',
  'token.costTitle': 'Szacowany koszt tej sesji (USD)',
  'token.sessionUsageTitle': 'Użycie sesji',
  'token.subAgentsHeading': 'Użycie podagentów',
  'token.byAgentHeading': 'Wg agenta',
  'token.orchestrator': 'Orkiestrator',
  'token.noSubAgents': 'Brak użycia podagentów',
  'token.popInput': 'Tokeny wejściowe',
  'token.popOutput': 'Tokeny wyjściowe',
  'token.popCacheHit': 'Trafienie w pamięci podręcznej',
  'token.popContext': 'Okno kontekstu',
  'token.tipInput': 'Tokeny wysłane do modelu w tej sesji — Twoje prompty plus historia rozmowy.',
  'token.tipOutput': 'Tokeny wygenerowane przez model w tej sesji.',
  'token.tipCacheHit':
    'Tokeny wejściowe podane z buforowanego prefiksu promptu, rozliczane po niższej stawce.',
  'token.clickForDetails': 'Kliknij, aby zobaczyć szczegóły użycia sesji',
  'catalog.noCapabilityBinding': 'Brak powiązanej możliwości',
  'catalog.downloadFailed': 'Pobieranie nie powiodło się',
  'catalog.active': 'Aktywny',
  'catalog.installed': 'Zainstalowany',
  'catalog.notDownloaded': 'Nie pobrany',
  'catalog.inUse': 'W użyciu',
  'catalog.use': 'Użyj',
  'catalog.deleteModel': 'Usuń model',
  'catalog.download': 'Pobierz',
  'navigator.recent': 'Ostatnie',
  'navigator.today': 'Dziś',
  'navigator.thisWeek': 'Ten tydzień',
  'navigator.sources': 'Źródła',
  'navigator.email': 'E-mail',
  'navigator.slack': 'Slack',
  'navigator.chat': 'Czat',
  'navigator.documents': 'Dokumenty',
  'navigator.people': 'Ludzie',
  'navigator.topics': 'Tematy',
  'dreams.description':
    'Sny to refleksje generowane przez AI, syntetyzujące wzorce z Twoich wspomnień.',
  'dreams.comingSoon': 'Wkrótce',
  'assignment.memoryLlm': 'LLM pamięci',
  'assignment.memoryLlmAria': 'Wybór LLM pamięci',
  'assignment.embedder': 'Embedder',
  'assignment.loaded': 'Wczytano',
  'assignment.notDownloaded': 'Nie pobrano',
  'assignment.usedForExtractSummarise': 'Używany do ekstrakcji i podsumowywania',
  'insights.knownFacts': 'Znane fakty',
  'insights.preferences': 'Preferencje',
  'insights.relationships': 'Relacje',
  'insights.skills': 'Umiejętności',
  'insights.opinions': 'Opinie',
  'insights.other': 'Inne',
  'insights.title': 'Wnioski',
  'insights.empty': 'Brak wniosków. Wnioski są generowane wraz ze wzrostem pamięci.',
  'insights.description': 'Na podstawie {count} relacji w Twoim grafie pamięci.',
  'insights.items': 'elementów',
  'insights.more': 'więcej',
  'calls.joiningCall': 'Dołączanie do rozmowy',
  'calls.meetWindowOpening': 'Otwieranie okna Meet...',
  'calls.failedToStart': 'Nie udało się uruchomić rozmowy Meet',
  'calls.couldNotStart': 'Nie można rozpocząć rozmowy',
  'calls.failedToClose': 'Nie udało się zakończyć rozmowy',
  'calls.couldNotClose': 'Nie można zamknąć rozmowy',
  'calls.joinMeet': 'Dołącz do rozmowy Google Meet',
  'calls.joinMeetDescription': 'Wprowadź link Google Meet, aby dołączyć.',
  'calls.meetLink': 'Link Meet',
  'calls.displayName': 'Wyświetlana nazwa',
  'calls.openingMeet': 'Otwieranie Meet...',
  'calls.joinCall': 'Dołącz do rozmowy',
  'calls.activeCalls': 'Aktywne rozmowy',
  'calls.leave': 'Opuść',
  'workspace.wipeConfirm':
    'Czy na pewno chcesz wyczyścić całą pamięć? Tej operacji nie można cofnąć.',
  'workspace.resetTreeConfirm': 'Czy na pewno chcesz przebudować drzewo pamięci?',
  'workspace.wipeTitle': 'Wyczyść pamięć',
  'workspace.resetting': 'Resetowanie...',
  'workspace.resetMemory': 'Zresetuj pamięć',
  'workspace.resetTreeTitle': 'Przebuduj drzewo pamięci',
  'workspace.rebuilding': 'Przebudowa...',
  'workspace.resetMemoryTree': 'Zresetuj drzewo pamięci',
  'workspace.building': 'Budowanie...',
  'workspace.buildSummaryTrees': 'Zbuduj drzewa podsumowań',
  'workspace.viewVault': 'Pokaż sejf',
  'workspace.openingVaultTitle': 'Otwieranie sejfu w Obsidianie',
  'workspace.openingVaultMessage':
    'Jeśli Obsidian się nie otworzy, zainstaluj go z obsidian.md lub użyj „Pokaż folder”. Ścieżka sejfu:',
  'workspace.openVaultFailedTitle': 'Nie udało się otworzyć sejfu w Obsidianie',
  'workspace.openVaultFailedMessage':
    'Użyj „Pokaż folder”, aby otworzyć katalog sejfu bezpośrednio. Ścieżka sejfu:',
  'workspace.revealVaultFailed': 'Nie udało się pokazać folderu sejfu',
  'workspace.revealFolder': 'Pokaż folder',
  'workspace.checkingVault': 'Sprawdzanie…',
  'workspace.vaultNotRegisteredHelp':
    'Obsidian otwiera tylko foldery dodane jako sejf. W Obsidianie wybierz „Otwórz folder jako sejf” i wskaż folder poniżej — wystarczy to zrobić raz. Następnie ponownie kliknij Pokaż sejf.',
  'workspace.obsidianNotFoundHelp':
    'Nie znaleziono Obsidiana na tym urządzeniu. Zainstaluj go lub — jeśli jest zainstalowany w niestandardowym miejscu — ustaw jego folder konfiguracyjny w sekcji Zaawansowane.',
  'workspace.openAnyway': 'Otwórz w Obsidianie mimo to',
  'workspace.installObsidian': 'Zainstaluj Obsidiana',
  'workspace.obsidianAdvanced': 'Obsidian zainstalowany gdzie indziej?',
  'workspace.obsidianConfigDirLabel': 'Folder konfiguracji Obsidiana',
  'workspace.obsidianConfigDirHint':
    'Ścieżka do folderu zawierającego obsidian.json (np. ~/.config/obsidian). Zostaw puste, aby wykryć automatycznie.',
  'workspace.obsidianConfigDirPlaceholder': '~/.config/obsidian',
  'workspace.graphLoadFailed': 'Nie udało się wczytać grafu pamięci',
  'workspace.loadingGraph': 'Wczytywanie grafu pamięci...',
  'workspace.graphViewMode': 'Tryb widoku grafu pamięci',
  'workspace.trees': 'Drzewa',
  'workspace.contacts': 'Kontakty',
  'graph.noContactMentions': 'Brak wzmianek o kontakcie',
  'graph.noMemory': 'Brak pamięci',
  'graph.source': 'Źródło',
  'graph.topic': 'Temat',
  'graph.global': 'Globalne',
  'graph.document': 'Dokument',
  'graph.contact': 'Kontakt',
  'graph.nodes': 'węzły',
  'graph.parentChild': 'rodzic-dziecko',
  'graph.documentContact': 'dokument-kontakt',
  'graph.link': 'powiązanie',
  'graph.links': 'powiązania',
  'graph.children': 'dzieci',
  'graph.clickToOpenObsidian': 'Kliknij, aby otworzyć w Obsidianie',
  'graph.person': 'Osoba',
  'graph.resetView': 'Resetuj widok',
  'modal.dontShowAgain': 'Nie pokazuj podobnych sugestii',
  'reflections.loading': 'Wczytywanie refleksji...',
  'reflections.empty': 'Brak refleksji',
  'reflections.title': 'Refleksje',
  'reflections.proposedAction': 'Proponowane działanie',
  'reflections.act': 'Wykonaj',
  'reflections.dismiss': 'Odrzuć',
  'reflections.viewConversation': 'Zobacz',
  'subconscious.mode.label': 'Tryb podświadomości',
  'subconscious.mode.off.title': 'Wyłączony',
  'subconscious.mode.off.desc': 'Podświadomość jest wyłączona.',
  'subconscious.mode.simple.title': 'Prosty',
  'subconscious.mode.simple.desc': 'Obserwacja tylko do odczytu. Tylko dostęp do pamięci i plików.',
  'subconscious.mode.aggressive.title': 'Agresywny',
  'subconscious.mode.aggressive.desc':
    'Pełny dostęp do narzędzi. Może pisać, tworzyć agentów i delegować zadania.',
  'subconscious.mode.aggressiveWarning':
    'Tryb agresywny daje podświadomości pełny dostęp do narzędzi, w tym pisanie i tworzenie podagentów.',
  'subconscious.interval.label': 'Częstotliwość',
  'subconscious.interval.minutes': '{n} min',
  'subconscious.interval.hours': '{n} godz',
  'subconscious.interval.oneHour': '1 godzina',
  'subconscious.interval.oneDay': '24 godziny',
  'whatsapp.chatsSynced': 'rozmów zsynchronizowano',
  'whatsapp.chatSynced': 'rozmowa zsynchronizowana',
  'sync.active': 'Aktywna',
  'sync.recent': 'Ostatnia',
  'sync.idle': 'Bezczynna',
  'sync.memorySources': 'Źródła pamięci',
  'sync.noConnectedSources': 'Brak połączonych źródeł',
  'sync.chunks': 'fragmentów',
  'sync.lastChunk': 'Ostatni fragment:',
  'sync.pending': 'oczekujące',
  'sync.processed': 'przetworzone',
  'sync.syncing': 'Synchronizacja…',
  'sync.sync': 'Synchronizuj',
  'sync.failedToLoad': 'Nie udało się wczytać stanu synchronizacji',
  'sync.noContent':
    'Żadna treść nie została jeszcze zsynchronizowana do pamięci. Podłącz integrację, aby zacząć.',
  'memorySyncInterval.title': 'Harmonogram synchronizacji',
  'memorySyncInterval.lastSynced': 'Ostatnia synchronizacja',
  'memorySyncInterval.never': 'nigdy',
  'memorySyncInterval.everyHours': 'Co {h} godz.',
  'memorySyncInterval.everyMinutes': 'Co {m} min',
  'memorySyncInterval.manual': 'Tylko ręcznie',
  'memorySyncInterval.saveFailed': 'Nie udało się zaktualizować harmonogramu synchronizacji',
  'memorySources.title': 'Źródła pamięci',
  'memorySources.empty': 'Brak źródeł pamięci. Dodaj jedno, aby zacząć zasilać pamięć.',
  'memorySources.customSources': 'Własne źródła',
  'memorySources.addSource': 'Dodaj źródło',
  'memorySources.noCustomSources':
    'Brak własnych źródeł. Dodaj folder, repozytorium GitHub, kanał RSS lub stronę internetową, aby zacząć.',
  'memorySources.loadingConnections': 'Wczytywanie połączeń…',
  'memorySources.noConnections':
    'Nie znaleziono aktywnych połączeń Composio. Najpierw połącz integrację.',
  'memorySources.pickConnection': 'Wybierz połączenie',
  'memorySources.selectConnection': '— Wybierz połączenie —',
  'memorySources.comingSoon': 'Wkrótce',
  'memorySources.composioListFailed': 'Nie udało się wczytać połączeń Composio.',
  'memorySources.browse': 'Przeglądaj…',
  'memorySources.folderPathPlaceholder': '/Users/you/notes',
  'memorySources.globPatternPlaceholder': '**/*.md',
  'memorySources.repoUrlPlaceholder': 'https://github.com/org/repo',
  'memorySources.branchPlaceholder': 'main',
  'memorySources.feedUrlPlaceholder': 'https://example.com/feed.xml',
  'memorySources.pageUrlPlaceholder': 'https://example.com/article',
  'memorySources.cssSelectorPlaceholder': 'article',
  'memorySources.searchQueryPlaceholder': 'from:user AI safety',
  'memorySources.kind.composio': 'Integracja',
  'memorySources.kind.conversation': 'Rozmowa',
  'memorySources.kind.folder': 'Folder lokalny',
  'memorySources.kind.github_repo': 'Repozytorium GitHub',
  'memorySources.kind.twitter_query': 'Wyszukiwanie Twittera',
  'memorySources.kind.rss_feed': 'Kanał RSS',
  'memorySources.kind.web_page': 'Strona internetowa',
  'memorySources.sync.successTitle': 'Synchronizowanie',
  'memorySources.sync.successMessage': 'Postęp pojawi się za chwilę.',
  'memorySources.sync.failedTitle': 'Synchronizacja nie powiodła się:',
  'memorySources.sync.completeTitle': 'Zsynchronizowano',
  'memorySources.sync.itemsSynced': 'zsynchronizowanych elementów',
  'memorySources.sync.upToDate': 'Aktualne',
  'memorySources.sync.failedLabel': 'Niepowodzenie',
  'time.justNow': 'przed chwilą',
  'time.secondsAgoSuffix': 's temu',
  'time.minutesAgoSuffix': 'min temu',
  'time.hoursAgoSuffix': 'godz. temu',
  'time.daysAgoSuffix': 'd temu',
  'memorySources.pickKind': 'Jaki typ źródła chcesz dodać?',
  'memorySources.backToKinds': 'Wróć do typów źródeł',
  'memorySources.label': 'Etykieta',
  'memorySources.labelPlaceholder': 'Moje notatki badawcze',
  'memorySources.add': 'Dodaj',
  'memorySources.adding': 'Dodawanie…',
  'memorySources.added': 'Źródło dodane',
  'memorySources.removed': 'Źródło usunięte',
  'memorySources.remove': 'Usuń',
  'memorySources.enable': 'Włącz',
  'memorySources.disable': 'Wyłącz',
  'memorySources.toggleFailed': 'Nie udało się przełączyć',
  'memorySources.removeFailed': 'Nie udało się usunąć',
  'memorySources.folderPath': 'Ścieżka folderu',
  'memorySources.globPattern': 'Wzorzec glob',
  'memorySources.repoUrl': 'URL repozytorium',
  'memorySources.branch': 'Gałąź',
  'memorySources.feedUrl': 'URL kanału',
  'memorySources.pageUrl': 'URL strony',
  'memorySources.cssSelector': 'Selektor CSS (opcjonalnie)',
  'memorySources.searchQuery': 'Zapytanie wyszukiwania',
  'memorySources.build.title': 'Zbuduj',
  'memorySources.build.building': 'Budowanie…',
  'memorySources.build.successTitle': 'Drzewo zbudowane',
  'memorySources.build.failedTitle': 'Budowanie nie powiodło się',
  'memorySources.build.sealsMessage': 'pieczętowanie zakończone',
  'memorySources.allIn.button': 'Włącz wszystko',
  'memorySources.allIn.title': 'Włączyć wszystko?',
  'memorySources.allIn.message':
    'Spowoduje to włączenie wszystkich źródeł pamięci i usunięcie wszystkich limitów synchronizacji. Buduje najbogatszy wykres pamięci, ale może zużywać więcej kredytów.',
  'memorySources.allIn.confirm': 'Tak',
  'memorySources.allIn.cancel': 'Nie',
  'memorySources.allIn.success':
    'Wszystkie źródła włączone bez limitów. Synchronizacja uruchomiona.',
  'memorySources.allIn.failed': 'Nie udało się włączyć wszystkiego. Spróbuj ponownie.',
  'memorySources.settings.button': 'Ustawienia',
  'memorySources.settings.title': 'Ustawienia synchronizacji',
  'memorySources.settings.maxPrs': 'Maksymalna liczba pull requestów',
  'memorySources.settings.maxIssues': 'Maksymalna liczba zgłoszeń',
  'memorySources.settings.maxCommits': 'Maksymalna liczba commitów',
  'memorySources.settings.maxItems': 'Maksymalna liczba elementów',
  'memorySources.settings.sinceDays': 'Okres wsteczny (dni)',
  'memorySources.settings.syncDepthDays': 'Głębokość synchronizacji (dni)',
  'memorySources.settings.maxTokens': 'Maksymalna liczba tokenów na synchronizację',
  'memorySources.settings.maxCost': 'Maksymalny koszt na synchronizację (USD)',
  'memorySources.settings.unlimited': 'Bez limitu',
  'memorySources.settings.unlimitedTooltip':
    'Wybrano synchronizację maksimum dla {toolkit}. Limity możesz zmienić tutaj.',
  'memorySources.settings.maxed': 'Pełny',
  'memorySources.settings.save': 'Zapisz',
  'memorySources.settings.saving': 'Zapisywanie…',
  'memorySources.settings.saved': 'Ustawienia zapisane',
  'memorySources.settings.saveFailed': 'Nie udało się zapisać ustawień',
  'backend.aiBackend': 'Backend AI',
  'backend.cloud': 'Chmura',
  'backend.recommended': 'Zalecane',
  'backend.cloudDescription':
    'Szybkie, mocne modele kierowane przez backend OpenHuman. Gotowe do użycia od razu.',
  'backend.privacyNote':
    'Prompty i wybrany kontekst mogą być wysyłane do skonfigurowanego backendu/dostawcy. Użyj trybu lokalnego dla obsługiwanych workloadów na urządzeniu.',
  'backend.local': 'Lokalny',
  'backend.advanced': 'Zaawansowane',
  'backend.localDescription':
    'Uruchom modele na własnej maszynie z Ollamą. Pełna prywatność, wymaga konfiguracji.',
  'backend.ramRecommended': 'Zalecane 16 GB+ RAM',
  'subconscious.tasks': 'zadań',
  'subconscious.ticks': 'tików',
  'subconscious.last': 'Ostatnio',
  'subconscious.failed': 'nieudane',
  'subconscious.tickInterval': 'Interwał tików',
  'subconscious.runNow': 'Uruchom teraz',
  'subconscious.providerUnavailableTitle': 'Podświadomość wstrzymana',
  'subconscious.providerSettings': 'Ustawienia AI',
  'subconscious.scratchpadInfo':
    'Przy każdym cyklu podświadomość sprawdza, co się zmieniło w połączonych źródłach, a następnie zapisuje zadania na Twojej liście rzeczy do zrobienia, aktualizuje Twoje cele lub powiadamia Cię, gdy coś wymaga uwagi. Sprawdź Ustawienia → Dostęp agenta, aby skonfigurować tryb i częstotliwość.',
  'subconscious.approvalNeeded': 'Wymagana zgoda',
  'subconscious.requiresApproval': 'Wymaga zgody',
  'subconscious.fixInConnections': 'Napraw w Połączeniach',
  'subconscious.goAhead': 'Działaj',
  'subconscious.activeTasks': 'Aktywne zadania',
  'subconscious.noActiveTasks': 'Brak aktywnych zadań',
  'subconscious.default': 'Domyślne',
  'subconscious.addTaskPlaceholder': 'Dodaj nowe zadanie...',
  'subconscious.activityLog': 'Dziennik aktywności',
  'subconscious.noActivity': 'Brak aktywności',
  'subconscious.decision.nothingNew': 'Nic nowego',
  'subconscious.decision.completed': 'Ukończone',
  'subconscious.decision.evaluating': 'Ocena',
  'subconscious.decision.waitingApproval': 'Oczekiwanie na zgodę',
  'subconscious.decision.failed': 'Niepowodzenie',
  'subconscious.decision.cancelled': 'Anulowane',
  'subconscious.decision.skipped': 'Pominięte',
  // Subconscious triggers (event-driven orchestrator) debug panel
  'subconsciousTriggers.title': 'Wyzwalacze podświadomości',
  'subconsciousTriggers.subtitle': 'Sterowany zdarzeniami orkiestrator w tle',
  'subconsciousTriggers.pipeline': 'Potok',
  'subconsciousTriggers.mode': 'Tryb',
  'subconsciousTriggers.orchestrator': 'Orkiestrator',
  'subconsciousTriggers.running': 'Działa',
  'subconsciousTriggers.stopped': 'Zatrzymany',
  'subconsciousTriggers.promotionsPerHour': 'Awanse / godzina',
  'subconsciousTriggers.queueDepth': 'Głębokość kolejki',
  'subconsciousTriggers.orchestratorThread': 'Wątek orkiestratora',
  'subconsciousTriggers.userThread': 'Wątek użytkownika',
  'subconsciousTriggers.disabledHint': 'Włącz tryb sterowany zdarzeniami, aby uruchomić potok.',
  'subconsciousTriggers.enable': 'Włącz',
  'subconsciousTriggers.disable': 'Wyłącz',
  'actionable.complete': 'Zakończ',
  'actionable.dismiss': 'Odrzuć',
  'actionable.snooze': 'Odłóż',
  'actionable.new': 'Nowe',
  'stats.storage': 'Pamięć',
  'stats.files': 'plików',
  'stats.documents': 'Dokumenty',
  'stats.today': 'dziś',
  'stats.namespaces': 'Przestrzenie nazw',
  'stats.relations': 'Relacje',
  'stats.firstMemory': 'Pierwsze wspomnienie',
  'stats.latest': 'Ostatnie',
  'stats.sessions': 'Sesje',
  'stats.tokens': 'tokenów',
  'bootCheck.invalidUrl': 'Wprowadź adres URL środowiska.',
  'bootCheck.urlMustStartWith': 'Adres musi zaczynać się od http:// lub https://',
  'bootCheck.validUrlRequired':
    'To nie wygląda na prawidłowy adres URL (spróbuj https://core.example.com/rpc)',
  'bootCheck.tokenRequired': 'Aby się połączyć, potrzebujemy tokenu uwierzytelniania.',
  'bootCheck.httpPublicWarning':
    'To zwykły adres HTTP na publicznym hoście — ruch nie będzie szyfrowany. Użyj HTTPS, chyba że ufasz tej sieci.',
  'bootCheck.chooseCoreMode': 'Wybierz środowisko',
  'bootCheck.connectToCore': 'Połącz się ze swoim środowiskiem',
  'bootCheck.desktopDescription':
    'OpenHuman potrzebuje środowiska do działania. Wybierz, gdzie ma się znajdować.',
  'bootCheck.webDescription':
    'W przeglądarce OpenHuman łączy się ze środowiskiem, którym zarządzasz. Wpisz jego URL i token poniżej lub pobierz aplikację desktopową, aby uruchomić środowisko bezpośrednio na komputerze.',
  'bootCheck.preferDesktop': 'Wolisz wszystko trzymać na własnym urządzeniu?',
  'bootCheck.downloadDesktop': 'Pobierz aplikację desktopową',
  'bootCheck.localRecommended': 'Uruchom lokalnie (zalecane)',
  'bootCheck.localDescription':
    'Działa bezpośrednio na Twoim komputerze. Najszybsze, w pełni prywatne, bez konfiguracji.',
  'bootCheck.cloudMode': 'Uruchom w chmurze (zaawansowane)',
  'bootCheck.cloudDescription':
    'Połącz się ze środowiskiem hostowanym w innym miejscu. Działa 24×7, więc nie musisz trzymać tego urządzenia włączonego.',
  'bootCheck.coreRpcUrl': 'URL środowiska',
  'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
  'bootCheck.authToken': 'Token uwierzytelniania',
  'bootCheck.bearerTokenPlaceholder': 'Token bearer ze zdalnego środowiska',
  'bootCheck.storedLocally': 'Przechowywany wyłącznie na tym urządzeniu. Wysyłany jako ',
  'bootCheck.testing': 'Testowanie…',
  'bootCheck.testConnection': 'Testuj połączenie',
  'bootCheck.connectedOk': 'Połączono. Możesz działać.',
  'bootCheck.authFailed': 'Ten token nie zadziałał. Sprawdź go i spróbuj ponownie.',
  'bootCheck.unreachablePrefix': 'Nie udało się połączyć:',
  'bootCheck.checkingCore': 'Budzenie środowiska…',
  'bootCheck.cannotReach': 'Nie można połączyć się ze środowiskiem',
  'bootCheck.cannotReachDesc': 'Nie udało się połączyć z Twoim środowiskiem. Spróbować innego?',
  'bootCheck.switchMode': 'Wybierz inne środowisko',
  'bootCheck.quit': 'Zakończ',
  'bootCheck.legacyDetected': 'Wykryto starsze środowisko w tle',
  'bootCheck.legacyDescription':
    'Osobno zainstalowany daemon OpenHuman już działa na tym urządzeniu. Musimy go usunąć, zanim wbudowane środowisko przejmie kontrolę.',
  'bootCheck.removing': 'Usuwanie…',
  'bootCheck.removeContinue': 'Usuń i kontynuuj',
  'bootCheck.localNeedsRestart': 'Lokalne środowisko wymaga restartu',
  'bootCheck.localNeedsRestartDesc':
    'Twoje lokalne środowisko jest w innej wersji niż ta aplikacja. Szybki restart przywróci zgodność.',
  'bootCheck.restarting': 'Restartowanie…',
  'bootCheck.restartCore': 'Zrestartuj środowisko',
  'bootCheck.cloudNeedsUpdate': 'Środowisko chmurowe wymaga aktualizacji',
  'bootCheck.cloudNeedsUpdateDesc':
    'Twoje środowisko chmurowe jest w innej wersji niż ta aplikacja. Uruchom aktualizację, aby przywrócić zgodność.',
  'bootCheck.updating': 'Aktualizowanie…',
  'bootCheck.updateCloudCore': 'Zaktualizuj środowisko chmurowe',
  'bootCheck.versionCheckFailed': 'Sprawdzenie wersji środowiska nie powiodło się',
  'bootCheck.versionCheckFailedDesc':
    'Środowisko działa, ale nie raportuje wersji. Może być nieaktualne. Zrestartuj lub zaktualizuj, aby kontynuować.',
  'bootCheck.working': 'Pracuję…',
  'bootCheck.restartUpdateCore': 'Zrestartuj / zaktualizuj środowisko',
  'bootCheck.unexpectedError': 'Nieoczekiwany błąd sprawdzania uruchamiania',
  'bootCheck.actionFailed': 'Coś poszło nie tak. Spróbuj ponownie.',
  'bootCheck.portConflictTitle': 'Nie udało się uruchomić silnika aplikacji',
  'bootCheck.portConflictBody':
    'Inny proces używa portu sieciowego potrzebnego OpenHumanowi. Spróbujemy to naprawić automatycznie.',
  'bootCheck.portConflictFixButton': 'Napraw automatycznie',
  'bootCheck.portConflictFixing': 'Naprawianie…',
  'bootCheck.portConflictFixFailed':
    'Automatyczna naprawa się nie powiodła. Zrestartuj komputer i spróbuj ponownie.',
  'bootCheck.portConflictOwner': '{name} (PID {pid}) używa portu sieciowego potrzebnego OpenHuman.',
  'bootCheck.portConflictGuidance':
    'Zamknij ten program, aby zwolnić port, lub wymuś jego zamknięcie poniżej, a następnie spróbuj ponownie.',
  'bootCheck.portConflictForceQuit': 'Wymuś zamknięcie {name}',
  'bootCheck.portConflictForceQuitting': 'Zamykanie {name}…',
  'bootCheck.portConflictForceQuitFailed':
    'Nie udało się zamknąć tego programu. Może być konieczne zamknięcie go ręcznie i ponowienie próby.',
  'notifications.justNow': 'przed chwilą',
  'notifications.minAgo': '{n} min temu',
  'notifications.hrAgo': '{n} godz. temu',
  'notifications.dayAgo': '{n} dni temu',
  'notifications.category.messages': 'Wiadomości',
  'notifications.category.agents': 'Agenci',
  'notifications.category.skills': 'Umiejętności',
  'notifications.category.system': 'System',
  'notifications.category.meetings': 'Spotkania',
  'notifications.category.reminders': 'Przypomnienia',
  'notifications.category.important': 'Ważne',
  'notifications.filterAll': 'Wszystkie',
  'notifications.filterEmpty': 'Brak powiadomień w tej kategorii',
  'about.update.status.checking': 'Sprawdzanie...',
  'about.update.status.available': 'Dostępna wersja {version}',
  'about.update.status.availableNoVersion': 'Dostępna aktualizacja',
  'about.update.status.downloading': 'Pobieranie...',
  'about.update.status.readyToInstall': 'Wersja {version} gotowa do instalacji',
  'about.update.status.readyToInstallNoVersion':
    'Nowa wersja została pobrana i jest gotowa. Zrestartuj, aby zastosować.',
  'about.update.status.installing': 'Instalowanie...',
  'about.update.status.restarting': 'Restartowanie...',
  'about.update.status.upToDate': 'Używasz najnowszej wersji.',
  'about.update.status.error': 'Sprawdzenie aktualizacji nie powiodło się',
  'about.update.status.default': 'Sprawdź aktualizacje',
  'welcome.connectionFailed': 'Połączenie nie powiodło się: {status} {statusText}',
  'welcome.connectionFailedMsg': 'Połączenie nie powiodło się: {message}',
  'welcome.continueLocally': 'Kontynuuj lokalnie',
  'welcome.continueLocallyExperimental': 'Kontynuuj lokalnie (Eksperymentalne)',
  'welcome.localSessionStarting': 'Rozpoczynanie sesji lokalnej...',
  'welcome.localSessionDesc':
    'Używa lokalnego profilu offline i pomija logowanie OAuth TinyHumans.',
  'chat.agentChatDesc': 'Otwórz bezpośrednią sesję czatu z agentem.',
  'chat.modelPlaceholder': 'gpt-4o',
  'channels.activeRouteValue': '{channel} przez {authMode}',
  'privacy.dataKind.messages': 'Wiadomości',
  'privacy.dataKind.agents': 'Agenci',
  'privacy.dataKind.skills': 'Umiejętności',
  'privacy.dataKind.system': 'System',
  'privacy.dataKind.meetings': 'Spotkania',
  'privacy.dataKind.reminders': 'Przypomnienia',
  'privacy.dataKind.important': 'Ważne',
  'onboarding.enableLocalAI': 'Włącz lokalne AI',
  'onboarding.skills.status.available': 'Dostępne',
  'onboarding.skills.status.connected': 'Połączone',
  'onboarding.skills.status.connecting': 'Łączenie',
  'onboarding.skills.status.error': 'Błąd',
  'onboarding.skills.status.unavailable': 'Niedostępne',
  'composio.statusUnavailable': 'Status niedostępny',
  'composio.authExpired': 'Autoryzacja wygasła',
  'composio.reconnect': 'Połącz ponownie',
  'composio.expiredAuthorization': 'Autoryzacja {name} wygasła',
  'composio.expiredDescription':
    'Połącz ponownie, aby ponownie włączyć narzędzia {name}. OpenHuman utrzyma tę integrację jako niedostępną, dopóki nie odświeżysz dostępu OAuth.',
  'composio.envVarOverrides': 'jest ustawiona, nadpisuje to ustawienie.',
  'composio.previewBadge': 'Podgląd',
  'composio.previewTooltip':
    'Integracja z agentem wkrótce — możesz się połączyć, ale agent nie może jeszcze użyć tego zestawu narzędzi.',
  'memory.day.sun': 'nd.',
  'memory.day.mon': 'pn.',
  'memory.day.tue': 'wt.',
  'memory.day.wed': 'śr.',
  'memory.day.thu': 'cz.',
  'memory.day.fri': 'pt.',
  'memory.day.sat': 'sb.',
  'memory.ingesting': 'Pobieranie',
  'memory.ingestionQueued': 'W kolejce',
  'memory.ingestingTitle': 'Pobieranie {title}',
  'mic.noAudioCaptured': 'Nie nagrano dźwięku',
  'mic.noSpeechDetected': 'Nie wykryto mowy',
  'mic.lowConfidenceResult': 'Nie udało się wyraźnie zrozumieć dźwięku — spróbuj ponownie',
  'mic.failedToStopRecording': 'Nie udało się zatrzymać nagrywania: {message}',
  'mic.transcriptionFailed': 'Transkrypcja nie powiodła się: {message}',
  'reflections.kind.retrospective': 'Retrospektywa',
  'reflections.kind.derivedFact': 'Wywiedziony fakt',
  'reflections.kind.moodInsight': 'Wnioski o nastroju',
  'reflections.kind.relationshipInsight': 'Wnioski o relacjach',
  'graph.tooltip.summary': 'Podsumowanie',
  'graph.tooltip.contact': 'Kontakt',
  'localModel.usage.never': 'Nigdy',
  'localModel.usage.mediumLoad': 'Średnie obciążenie',
  'localModel.usage.lowLoad': 'Niskie obciążenie',
  'localModel.usage.idleMode': 'Tryb bezczynności',
  'localModel.rebootstrapComplete': 'Ponowna inicjalizacja modelu zakończona.',
  'localModel.modelsVerified': 'Modele lokalne zweryfikowane.',
  'accounts.addModal.allConnected': 'Wszystkie połączone',
  'accounts.addModal.title': 'Dodaj konto',
  'accounts.respondQueue.empty': 'Pusto',
  'accounts.respondQueue.hide': 'Ukryj kolejkę odpowiedzi',
  'accounts.respondQueue.loadFailed': 'Nie udało się wczytać kolejki odpowiedzi',
  'accounts.respondQueue.loading': 'Wczytywanie kolejki…',
  'accounts.respondQueue.pending': 'Oczekujące',
  'accounts.respondQueue.show': 'Pokaż kolejkę odpowiedzi',
  'accounts.respondQueue.title': 'Kolejka odpowiedzi',
  'accounts.webviewHost.almostReady': 'Już prawie gotowe...',
  'accounts.webviewHost.loadTimeout': 'Limit czasu wczytywania webview',
  'accounts.webviewHost.loading': 'Wczytywanie {providerName}...',
  'accounts.webviewHost.loadingAccount': 'Wczytywanie konta',
  'accounts.webviewHost.restoringSession': 'Przywracanie sesji...',
  'accounts.webviewHost.retryLoading': 'Ponów wczytywanie',
  'accounts.webviewHost.takingLonger': '{providerName} trwa dłużej niż oczekiwano.',
  'accounts.webviewHost.timeoutHint': 'Wskazówka dot. limitu czasu',
  'app.connectionBadge.composio': 'Composio',
  'app.connectionBadge.messaging': 'Wiadomości',
  'app.connectionIndicator.connected': 'Połączono z OpenHuman AI 🚀',
  'app.connectionIndicator.connecting': 'Łączenie',
  'app.connectionIndicator.coreOffline': 'Rdzeń offline',
  'app.connectionIndicator.disconnected': 'Rozłączono',
  'app.connectionIndicator.offline': 'Offline',
  'app.connectionIndicator.reconnecting': 'Ponowne łączenie…',
  'app.errorFallback.componentStack': 'Stos komponentów',
  'app.errorFallback.contactSupport': 'Skontaktuj się z pomocą',
  'app.errorFallback.copyEventId': 'Kopiuj',
  'app.errorFallback.eventIdCopied': 'Skopiowano',
  'app.errorFallback.eventIdLabel': 'Identyfikator błędu',
  'app.errorFallback.revealLogs': 'Pokaż dzienniki',
  'app.errorFallback.downloadLatest': 'Pobierz najnowszą wersję',
  'app.errorFallback.heading': 'Coś poszło nie tak',
  'app.errorFallback.hint': 'Wskazówka',
  'app.errorFallback.reloadApp': 'Przeładuj aplikację',
  'app.errorFallback.subheading': 'Spróbuj przeładować lub pobrać najnowszą wersję.',
  'app.errorFallback.tryRecover': 'Spróbuj odzyskać',
  'app.localAiDownload.installing': 'Instalowanie...',
  'app.localAiDownload.preparing': 'Przygotowanie...',
  'app.openhumanLink.accounts.continueWith': 'Kontynuuj z logowaniem {label}',
  'app.openhumanLink.accounts.done': 'Gotowe',
  'app.openhumanLink.accounts.intro': 'Podłącz konta, których używasz na co dzień.',
  'app.openhumanLink.accounts.webviewNote': 'Każde konto otwiera się we własnym oknie webview.',
  'app.openhumanLink.billing.openDashboard': 'Otwórz panel',
  'app.openhumanLink.billing.stayOnTrial': 'Zostań w wersji próbnej',
  'app.openhumanLink.billing.trialCredit': 'Kredyty za rejestrację',
  'app.openhumanLink.billing.trialDesc':
    'Oferty kredytów mogą się różnić w zależności od promocji i kwalifikacji konta.',
  'app.openhumanLink.defaultBody':
    'Jeszcze nie gotowe w popupie. Otwórz pełną stronę ustawień, gdy będziesz potrzebować.',
  'app.openhumanLink.discord.intro':
    'Dołącz do społeczności, dziel się opiniami i bądź na bieżąco.',
  'app.openhumanLink.discord.openInvite': 'Otwórz zaproszenie',
  'app.openhumanLink.discord.perk1': 'Pomoc bezpośrednio od twórców',
  'app.openhumanLink.discord.perk2': 'Wczesny dostęp do nowych funkcji',
  'app.openhumanLink.discord.perk3': 'Wymiana skryptów i przepisów',
  'app.openhumanLink.discord.perk4': 'Możliwość wpływu na priorytety',
  'app.openhumanLink.discordReport.intro':
    'Przepraszamy — coś poszło nie tak po naszej stronie. Staramy się rejestrować takie błędy automatycznie, ale udostępnienie szczegółów na Discord pomaga nam szybciej je naprawić.',
  'app.openhumanLink.discordReport.openDiscord': 'Otwórz Discord',
  'app.openhumanLink.done': 'Gotowe',
  'app.openhumanLink.notifications.desktopOnly':
    'Natywne powiadomienia są dostępne tylko w aplikacji desktopowej (uruchom `pnpm dev:app`).',
  'app.openhumanLink.notifications.permissionOff':
    'Uprawnienie do powiadomień jest wyłączone. Włącz OpenHuman w Ustawieniach systemu → Powiadomienia, a następnie spróbuj ponownie.',
  'app.openhumanLink.notifications.triggerFailed':
    'OpenHuman nie mógł wywołać powiadomienia systemowego. Sprawdź ustawienia powiadomień systemu operacyjnego i spróbuj ponownie.',
  'app.openhumanLink.notifications.welcomeBody':
    'Otrzymasz tutaj powiadomienia, gdy coś będzie wymagać Twojej uwagi.',
  'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman jest gotowy do pracy',
  'app.openhumanLink.status.closed': 'Zamknięte',
  'app.openhumanLink.status.connected': 'Połączono',
  'app.openhumanLink.status.error': 'Błąd',
  'app.openhumanLink.status.loading': 'Ładowanie…',
  'app.openhumanLink.status.needsSignIn': 'Wymagane logowanie',
  'app.openhumanLink.status.timedOut': 'Przekroczono czas',
  'app.openhumanLink.loadingChannelSetup': 'Wczytywanie konfiguracji kanału',
  'app.openhumanLink.maybeLater': 'Może później',
  'app.openhumanLink.notifications.asking': 'Pytanie systemu operacyjnego…',
  'app.openhumanLink.notifications.blocked': 'Zablokowane',
  'app.openhumanLink.notifications.blockedStep1': 'Otwórz Ustawienia systemowe → Powiadomienia.',
  'app.openhumanLink.notifications.blockedStep2': 'Znajdź OpenHuman na liście aplikacji.',
  'app.openhumanLink.notifications.blockedStep3': 'Włącz „Zezwalaj na powiadomienia” i wróć tutaj.',
  'app.openhumanLink.notifications.intro':
    'Włącz powiadomienia, aby otrzymywać alerty od agenta i kanałów.',
  'app.openhumanLink.notifications.promptHint': 'Twój system zapyta o zgodę za chwilę.',
  'app.openhumanLink.notifications.retry': 'Ponów powiadomienie testowe',
  'app.openhumanLink.notifications.send': 'Wyślij powiadomienie testowe',
  'app.openhumanLink.notifications.sendFailed': 'Nie udało się wysłać: {error}',
  'app.openhumanLink.notifications.sent':
    'Wysłano powiadomienie testowe. Jeśli go nie otrzymałeś(aś), przejdź do Ustawienia systemowe → Powiadomienia → OpenHuman, włącz „Zezwalaj na powiadomienia” i ustaw styl banera na „Trwały”.',
  'app.openhumanLink.skipForNow': 'Pomiń na razie',
  'app.openhumanLink.telegramUnavailable': 'Telegram niedostępny',
  'app.openhumanLink.title.accounts': 'Podłącz swoje aplikacje',
  'app.openhumanLink.title.billing': 'Rozliczenia i kredyty',
  'app.openhumanLink.title.discord': 'Dołącz do społeczności',
  'app.openhumanLink.title.discordReport': 'Zgłoś ten błąd',
  'app.openhumanLink.title.messaging': 'Podłącz kanał komunikacji',
  'app.openhumanLink.title.notifications': 'Zezwól na powiadomienia',
  'app.persistRehydration.body':
    'Trwa odzyskiwanie stanu. Jeśli widzisz ten ekran zbyt długo, zresetuj aplikację.',
  'app.persistRehydration.heading': 'Przywracanie sesji',
  'app.persistRehydration.resetCta': 'Resetowanie…',
  'app.persistRehydration.resetting': 'Resetowanie…',
  'app.routeLoading.initializing': 'Inicjalizacja OpenHuman...',
  'app.update.currentlyOn': '{version}',
  'app.update.errorFallback': 'Coś poszło nie tak podczas aktualizacji.',
  'app.update.header.default': 'Aktualizacja',
  'app.update.header.error': 'Aktualizacja nie powiodła się',
  'app.update.header.installing': 'Instalowanie aktualizacji',
  'app.update.header.readyToInstall': 'Aktualizacja gotowa do instalacji',
  'app.update.header.restarting': 'Restartowanie…',
  'app.update.later': 'Później',
  'app.update.newVersionReady': 'Nowa wersja jest gotowa do instalacji.',
  'app.update.progress.downloaded': 'pobrano {amount}',
  'app.update.progress.installing': 'Instalowanie nowej wersji…',
  'app.update.progress.restarting': 'Uruchamianie aplikacji ponownie…',
  'app.update.progress.working': '{percent}%',
  'app.update.restartNote': 'Restart zamknie wszystkie aktywne sesje czatu i wątki.',
  'app.update.restartNow': 'Zrestartuj teraz',
  'app.update.versionReady': 'Wersja {newVersion} jest gotowa do instalacji.',
  'channels.discord.accountLinked': 'Konto powiązane',
  'channels.discord.connect': 'Połącz',
  'channels.discord.linkTokenExpired': 'Token powiązania wygasł. Spróbuj ponownie.',
  'channels.discord.linkTokenInstruction': '{token}',
  'channels.discord.linkTokenLabel': 'Etykieta tokenu powiązania',
  'channels.discord.linkTokenOnce': 'Token jednorazowego powiązania',
  'channels.discord.picker.allPermissionsOk': 'Bot ma wszystkie wymagane uprawnienia w tym kanale.',
  'channels.discord.picker.botNotInServers': 'Bot nie jest na serwerach',
  'channels.discord.picker.category': 'Kategoria',
  'channels.discord.picker.channel': 'Kanał',
  'channels.discord.picker.checkingPermissions': 'Sprawdzanie uprawnień',
  'channels.discord.picker.loadingChannels': 'Wczytywanie kanałów...',
  'channels.discord.picker.loadingServers': 'Wczytywanie serwerów...',
  'channels.discord.picker.missingPermissions': 'Brakujące uprawnienia',
  'channels.discord.picker.noChannels': 'Nie znaleziono kanałów tekstowych',
  'channels.discord.picker.noServers': 'Nie znaleziono serwerów',
  'channels.discord.picker.selectChannel': 'Wybierz kanał',
  'channels.discord.picker.selectServer': 'Wybierz serwer',
  'channels.discord.picker.server': 'Serwer',
  'channels.discord.picker.serverChannelSelection': 'Wybór serwera i kanału',
  'channels.discord.savedRestartRequired':
    'Kanał zapisany. Zrestartuj aplikację, aby go aktywować.',
  'channels.telegram.connect': 'Połącz',
  'channels.telegram.managedDmConnecting': 'Łączenie zarządzanego DM',
  'channels.telegram.managedDmTimeout': 'Limit czasu zarządzanego DM',
  'channels.telegram.reconnect': 'Połącz ponownie',
  'channels.telegram.savedRestartRequired':
    'Kanał zapisany. Zrestartuj aplikację, aby go aktywować.',
  'channels.web.alwaysAvailable': 'Zawsze dostępny',
  'chat.approval.approve': 'Zatwierdź',
  'chat.approval.alwaysAllow': 'Zawsze zezwalaj',
  'chat.approval.alwaysAllowHint':
    'Przestań pytać o to narzędzie — dodaj je do listy Zawsze zezwalaj',
  'chat.approval.deciding': 'Przetwarzanie…',
  'chat.approval.deny': 'Odrzuć',
  'chat.approval.error': 'Nie udało się zapisać decyzji — spróbuj ponownie.',
  'chat.approval.fallback': 'Agent chce wykonać akcję wymagającą Twojej zgody.',
  'chat.approval.title': 'Wymagana zgoda',
  'chat.approval.tool': 'Narzędzie:',
  'channels.authMode.managed_dm': 'Zaloguj się z OpenHuman',
  'channels.authMode.oauth': 'Logowanie OAuth',
  'channels.authMode.bot_token': 'Użyj własnego tokena bota',
  'channels.authMode.api_key': 'Użyj własnego klucza API',
  'channels.fieldRequired': 'Pole {field} jest wymagane',
  'channels.mcp.title': 'Serwery MCP',
  'channels.mcp.description':
    'Przeglądaj serwery Model Context Protocol i zarządzaj nimi, aby rozszerzyć AI o nowe narzędzia.',
  'channels.discord.displayName': 'Discord',
  'channels.discord.description': 'Wysyłaj i odbieraj wiadomości przez Discord.',
  'channels.discord.authMode.bot_token.description': 'Podaj własny token bota Discord.',
  'channels.discord.authMode.oauth.description':
    'Zainstaluj bota OpenHuman na swoim serwerze Discord przez OAuth.',
  'channels.discord.authMode.managed_dm.description':
    'Powiąż swoje osobiste konto Discord z botem OpenHuman.',
  'channels.discord.fields.bot_token.label': 'Token bota',
  'channels.discord.fields.bot_token.placeholder': 'Twój token bota Discord',
  'channels.discord.fields.guild_id.label': 'ID serwera (gildii)',
  'channels.discord.fields.guild_id.placeholder': 'Opcjonalne: ogranicz do konkretnego serwera',
  'channels.telegram.displayName': 'Telegram',
  'channels.telegram.description': 'Wysyłaj i odbieraj wiadomości przez Telegram.',
  'channels.telegram.authMode.managed_dm.description':
    'Pisz bezpośrednio do bota OpenHuman na Telegramie.',
  'channels.telegram.authMode.bot_token.description':
    'Podaj własny token bota Telegram z @BotFather.',
  'channels.telegram.fields.bot_token.label': 'Token bota',
  'channels.telegram.fields.bot_token.placeholder': '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11',
  'channels.telegram.fields.allowed_users.label': 'Dozwoleni użytkownicy',
  'channels.telegram.fields.allowed_users.placeholder':
    'Oddzielone przecinkami nazwy użytkowników Telegrama',
  'channels.telegram.remoteControlTitle': 'Sterowanie zdalne (Telegram)',
  'channels.telegram.remoteControlBody':
    'Z dozwolonego czatu Telegram wyślij /status, /sessions, /new lub /help. Trasowanie modelu nadal używa /model i /models.',
  'channels.web.displayName': 'Sieć',
  'channels.web.description': 'Czatuj przez wbudowany interfejs webowy.',
  'channels.web.authMode.managed_dm.description':
    'Użyj wbudowanego czatu webowego — bez konfiguracji.',
  'channels.yuanbao.connect': 'Połącz',
  'channels.yuanbao.connecting': 'Łączenie…',
  'channels.yuanbao.fieldRequired': '{field} jest wymagane',
  'channels.yuanbao.reconnect': 'Połącz ponownie',
  'channels.yuanbao.savedRestartRequired':
    'Kanał zapisany. Zrestartuj aplikację, aby go aktywować.',
  'channels.yuanbao.unexpectedStatus': 'Nieoczekiwany status połączenia: {status}',
  'chat.unsubscribeApproval.approve': 'Zatwierdź i wypisz',
  'chat.unsubscribeApproval.approved': '✓ Pomyślnie wypisano.',
  'chat.unsubscribeApproval.denied': '✕ Żądanie odrzucone.',
  'chat.unsubscribeApproval.deny': 'Odrzuć',
  'chat.unsubscribeApproval.processing': 'Przetwarzanie...',
  'chat.unsubscribeApproval.title': 'Żądanie wypisania',
  'commandPalette.ariaLabel': 'Paleta poleceń',
  'commandPalette.description': 'Opis',
  'commandPalette.label': 'Polecenia',
  'commandPalette.noResults': 'Brak wyników',
  'commandPalette.placeholder': 'Wpisz polecenie lub wyszukaj…',
  'commandPalette.searchAria': 'Szukaj poleceń',
  'commandPalette.shortcutHint': 'Wciśnij ?, aby zobaczyć wszystkie skróty',
  'commandPalette.title': 'Paleta poleceń',
  'kbd.ariaLabel': 'Skrót klawiszowy: {shortcut}',
  'shortcuts.title': 'Skróty klawiszowe',
  'shortcuts.subtitle': 'Przyspiesz swoją pracę dzięki tym skrótom klawiszowym.',
  'shortcuts.menuDesc': 'Przeglądaj wszystkie skróty klawiszowe w aplikacji.',
  'shortcuts.empty': 'Obecnie brak dostępnych skrótów klawiszowych.',
  'shortcuts.openHint': 'Otwórz tę listę w dowolnej chwili za pomocą',
  'shortcuts.group.navigation': 'Nawigacja',
  'shortcuts.group.profiles': 'Profile',
  'shortcuts.group.chat': 'Czat',
  'shortcuts.group.view': 'Widok',
  'shortcuts.group.general': 'Ogólne',
  'shortcuts.group.help': 'Pomoc',
  'shortcuts.action.home': 'Przejdź do strony głównej',
  'shortcuts.action.chat': 'Przejdź do czatu',
  'shortcuts.action.knowledge': 'Przejdź do Wiedzy i pamięci',
  'shortcuts.action.connections': 'Przejdź do Połączeń',
  'shortcuts.action.activity': 'Przejdź do Aktywności',
  'shortcuts.action.settings': 'Otwórz ustawienia',
  'shortcuts.action.newChat': 'Nowy czat',
  'shortcuts.action.toggleSidebar': 'Przełącz panel boczny',
  'shortcuts.action.commandPalette': 'Paleta poleceń',
  'iosMascot.connectedTo': 'Połączono z',
  'iosMascot.defaultPairedLabel': 'Komputer',
  'iosMascot.disconnect': 'Rozłącz',
  'iosMascot.error.generic': 'Coś poszło nie tak. Spróbuj ponownie.',
  'iosMascot.error.sendFailed': 'Nie udało się wysłać. Sprawdź połączenie.',
  'iosMascot.pushToTalk': 'Naciśnij i mów',
  'iosMascot.sendMessage': 'Wyślij wiadomość',
  'iosMascot.thinking': 'Myślę...',
  'iosMascot.typeMessage': 'Napisz wiadomość...',
  'iosPair.connectedLoading': 'Połączono! Ładowanie...',
  'iosPair.connecting': 'Łączenie z komputerem...',
  'iosPair.desktopLabel': 'Komputer',
  'iosPair.error.camera':
    'Skanowanie kamerą nieudane. Sprawdź uprawnienia do kamery i spróbuj ponownie.',
  'iosPair.error.connectionFailed':
    'Połączenie nieudane. Upewnij się, że aplikacja na komputerze działa i spróbuj ponownie.',
  'iosPair.error.invalidQr':
    'Nieprawidłowy kod QR. Upewnij się, że skanujesz kod parowania OpenHuman.',
  'iosPair.error.unreachableDesktop':
    'Nie udało się dotrzeć do komputera. Upewnij się, że oba urządzenia są online i spróbuj ponownie.',
  'iosPair.expired': 'Kod QR wygasł. Poproś komputer o wygenerowanie nowego.',
  'iosPair.instructions':
    'Otwórz OpenHuman na komputerze, przejdź do Ustawienia > Urządzenia i kliknij „Sparuj telefon”, aby pokazać kod QR.',
  'iosPair.retryScan': 'Skanuj ponownie',
  'iosPair.scanQrCode': 'Zeskanuj kod QR',
  'iosPair.scannerOpening': 'Otwieranie skanera...',
  'iosPair.step.openDesktop': 'Otwórz OpenHuman na komputerze',
  'iosPair.step.openSettings': 'Przejdź do Ustawienia > Urządzenia',
  'iosPair.step.showQr': 'Kliknij „Sparuj telefon”, aby pokazać kod QR',
  'iosPair.title': 'Sparuj z komputerem',
  'composio.connect.additionalConfigRequired': 'Wymagana dodatkowa konfiguracja',
  'composio.connect.atlassianSubdomainHint': 'acme',
  'composio.connect.atlassianSubdomainLabel': 'Subdomena Atlassian',
  'composio.connect.connect': 'Połącz',
  'composio.connect.connectedAccounts': 'Połączone konta',
  'composio.connect.defaultLabel': 'Domyślne',
  'composio.connect.disconnectAccount': 'Usuń',
  'composio.connect.addAnotherAccount': 'Dodaj kolejne konto',
  'composio.connect.dynamicsOrgNameHint':
    'Na przykład „myorg” dla myorg.crm.dynamics.com. Wprowadź tylko krótką nazwę organizacji, nie pełny URL.',
  'composio.connect.dynamicsOrgNameLabel': 'Nazwa organizacji Dynamics 365',
  'composio.connect.connectionFailed': 'Połączenie nie powiodło się (status: {status}).',
  'composio.connect.disconnectFailed': 'Rozłączenie nie powiodło się: {msg}',
  'composio.connect.disconnecting': 'Rozłączanie…',
  'composio.connect.idleDescription': 'Połącz swoje konto',
  'composio.connect.idleDescriptionSuffix':
    '. Otworzymy okno przeglądarki, tam zaakceptujesz dostęp, a ta aplikacja wykryje połączenie automatycznie.',
  'composio.connect.isConnected': 'jest połączone.',
  'composio.connect.manage': 'Zarządzaj',
  'composio.connect.needsFieldsPrefix': 'Aby się połączyć',
  'composio.connect.needsFieldsSuffix':
    'potrzebujemy nieco więcej informacji. Uzupełnij brakujące pola poniżej i spróbuj ponownie.',
  'composio.connect.needsSubdomain': 'Aby się połączyć',
  'composio.connect.needsSubdomainSuffix':
    'wprowadź swoją subdomenę Atlassian (np. acme dla acme.atlassian.net) i spróbuj ponownie.',
  'composio.connect.oauthComplete': 'Czekam na zakończenie OAuth…',
  'composio.connect.oauthTimeout': 'Przekroczono czas oczekiwania na OAuth',
  'composio.connect.permissions': 'Uprawnienia',
  'composio.connect.permissionsDefault': 'Odczyt + zapis włączone domyślnie',
  'composio.connect.permissionsNote': 'może wystawiać',
  'composio.connect.permissionsNoteSuffix':
    'uprawnienia agenta OpenHuman są kontrolowane poniżej przełącznikami odczytu, zapisu i administracji.',
  'composio.connect.reopenBrowser': 'Otwórz przeglądarkę ponownie',
  'composio.connect.requestingUrl': 'Żądanie URL połączenia…',
  'composio.connect.requiredFieldEmpty': 'To pole jest wymagane.',
  'composio.connect.retryConnection': 'Ponów połączenie',
  'composio.connect.scopeLoadError': 'Nie udało się wczytać preferencji uprawnień: {msg}',
  'composio.connect.scopeSaveError': 'Nie udało się zapisać uprawnienia {key}: {msg}',
  'composio.connect.scope.read': 'Odczyt',
  'composio.connect.scope.readHint': 'Pozwól agentowi odczytywać dane z tego połączenia.',
  'composio.connect.scope.write': 'Zapis',
  'composio.connect.scope.writeHint':
    'Pozwól agentowi tworzyć lub modyfikować dane przez to połączenie.',
  'composio.connect.scope.admin': 'Administracja',
  'composio.connect.scope.adminHint':
    'Pozwól agentowi zarządzać ustawieniami, uprawnieniami lub akcjami destrukcyjnymi.',
  'composio.connect.subdomainInvalid':
    'Wprowadź tylko krótką subdomenę (np. „acme”), nie pełny URL. Powinna zawierać tylko litery, cyfry i myślniki.',
  'composio.connect.subdomainRequired': 'Wprowadź subdomenę Atlassian, aby kontynuować.',
  'composio.connect.wabaIdHint':
    'Znajdziesz je przez GET /me/businesses, a następnie GET /{business_id}/owned_whatsapp_business_accounts z tokenem dostępu Meta.',
  'composio.connect.wabaIdLabel': 'ID WhatsApp Business Account',
  'composio.connect.atlassianSubdomainPlaceholder': 'your-subdomain',
  'composio.connect.dynamicsOrgNamePlaceholder': 'myorg',
  'composio.connect.wabaIdPlaceholder': 'e.g. 123456789012345',
  'composio.connect.wabaIdRequired':
    'Wprowadź swoje ID WhatsApp Business Account (WABA ID), aby kontynuować.',
  'composio.connect.waitingFor': 'Oczekiwanie na',
  'composio.connect.waitingHint': 'Może to potrwać chwilę.',
  'composio.triggers.heading': 'Wyzwalacze',
  'composio.triggers.listenFrom': 'Nasłuchuj zdarzeń z',
  'composio.triggers.loadError': 'Nie udało się wczytać wyzwalaczy',
  'composio.triggers.sessionExpired':
    'Twoja sesja OpenHuman wygasła. Zaloguj się ponownie, aby wczytać wyzwalacze.',
  'composio.triggers.needsConfiguration': 'Wymaga konfiguracji',
  'composio.triggers.noneAvailable': 'Brak dostępnych wyzwalaczy dla',
  'conversations.taskKanban.moveLeft': 'Przesuń w lewo',
  'conversations.taskKanban.moveRight': 'Przesuń w prawo',
  'conversations.taskKanban.title': 'Zadania',
  'conversations.threadTodo.title': 'Plan',
  'conversations.planReview.title': 'Przejrzyj plan',
  'conversations.planReview.subtitle':
    'Zatwierdź, aby go uruchomić, odrzuć, aby go odrzucić, lub wyślij opinię, aby go poprawić.',
  'conversations.planReview.approve': 'Zatwierdź i uruchom',
  'conversations.planReview.reject': 'Odrzuć',
  'conversations.planReview.feedbackLabel': 'Poproś o zmiany',
  'conversations.planReview.feedbackPlaceholder': 'Opisz, co zmienić…',
  'conversations.planReview.sendFeedback': 'Wyślij opinię',
  'conversations.threadGoal.label': 'Cel',
  'conversations.threadGoal.setCta': 'Ustaw cel',
  'conversations.threadGoal.placeholder': 'Co ma osiągnąć ten wątek?',
  'conversations.threadGoal.save': 'Zapisz',
  'conversations.threadGoal.cancel': 'Anuluj',
  'conversations.threadGoal.edit': 'Edytuj cel',
  'conversations.threadGoal.clear': 'Wyczyść cel',
  'conversations.threadGoal.complete': 'Oznacz jako ukończone',
  'conversations.threadGoal.pause': 'Wstrzymaj',
  'conversations.threadGoal.resume': 'Wznów',
  'conversations.threadGoal.tokensSuffix': 'tokeny',
  'conversations.threadGoal.status.active': 'Aktywny',
  'conversations.threadGoal.status.paused': 'Wstrzymany',
  'conversations.threadGoal.status.budget_limited': 'Budżet wyczerpany',
  'conversations.threadGoal.status.complete': 'Ukończony',
  'conversations.taskKanban.approval.default': 'Domyślne',
  'conversations.taskKanban.approval.notRequired': 'Niewymagane',
  'conversations.taskKanban.approval.notRequiredBadge': 'bez zatwierdzenia',
  'conversations.taskKanban.approval.required': 'Wymagane',
  'conversations.taskKanban.approval.requiredBadge': 'zatwierdzenie',
  'conversations.taskKanban.approval.requiredBeforeExecution': 'Wymagane przed wykonaniem',
  'conversations.taskKanban.briefButton': 'Brief zadania',
  'conversations.taskKanban.briefTitle': 'Brief zadania',
  'conversations.taskKanban.closeBrief': 'Zamknij brief zadania',
  'conversations.taskKanban.field.acceptanceCriteria': 'Kryteria akceptacji',
  'conversations.taskKanban.field.allowedTools': 'Dozwolone narzędzia',
  'conversations.taskKanban.field.approval': 'Zatwierdzenie',
  'conversations.taskKanban.field.assignedAgent': 'Przypisany agent',
  'conversations.taskKanban.field.blocker': 'Bloker',
  'conversations.taskKanban.field.evidence': 'Dowody',
  'conversations.taskKanban.field.notes': 'Notatki',
  'conversations.taskKanban.field.objective': 'Cel',
  'conversations.taskKanban.field.plan': 'Plan',
  'conversations.taskKanban.field.status': 'Status',
  'conversations.taskKanban.field.title': 'Tytuł',
  'conversations.taskKanban.saveChanges': 'Zapisz zmiany',
  'conversations.taskKanban.deleteCard': 'Usuń',
  'conversations.taskKanban.workTask': 'Pracuj nad zadaniem',
  'conversations.taskKanban.viewWork': 'Zobacz pracę',
  'conversations.taskKanban.startingTask': 'Uruchamianie…',
  'conversations.taskKanban.updateFailed':
    'Nie udało się zaktualizować zadania; zmian nie zapisano.',
  'conversations.taskKanban.sourcesButton': 'Źródła',
  'conversations.taskKanban.source.openExternal': 'Otwórz zadanie zewnętrzne',
  'conversations.taskKanban.source.openExternalShort': 'Otwórz',
  'conversations.taskKanban.source.unknownProvider': 'Nieznane źródło',
  'conversations.taskKanban.source.urgencyValue': 'Pilność {percent}%',
  'conversations.taskKanban.sources.desktopOnly':
    'Kontrolki źródeł zadań są dostępne w aplikacji desktopowej.',
  'conversations.taskKanban.sources.title': 'Źródła zadań',
  'conversations.taskKanban.sources.statusEnabled': 'Automatyczne odpytywanie włączone',
  'conversations.taskKanban.sources.manage': 'Zarządzaj źródłami',
  'conversations.taskKanban.source.title': 'Źródło',
  'conversations.taskKanban.source.sourceId': 'ID źródła',
  'conversations.taskKanban.source.externalId': 'ID zewnętrzne',
  'conversations.taskKanban.source.repo': 'Repozytorium',
  'conversations.taskKanban.source.urgency': 'Pilność',
  'conversations.toolTimeline.turn': 'tura',
  'conversations.toolTimeline.step': 'Krok',
  'conversations.toolTimeline.workerThread': 'wątek workera',
  'conversations.subagent.viewProcessing': 'Zobacz pełne przetwarzanie',
  'conversations.subagent.parent': 'Nadrzędny',
  'conversations.subagent.thinking': 'Myślenie',
  'conversations.subagent.thoughts': 'Myśli',
  'conversations.subagent.response': 'Odpowiedź',
  'conversations.subagent.toolCalls': 'Wywołania narzędzi',
  'conversations.subagent.working': 'Pracuje…',
  'conversations.subagent.noOutputYet': 'Brak wyników',
  'conversations.subagent.input': 'Wejście',
  'conversations.subagent.output': 'Wyjście',
  'conversations.subagent.noOutput': 'Brak zwróconych danych wyjściowych',
  'conversations.subagent.close': 'Zamknij',
  'conversations.subagent.cancel': 'Anuluj zadanie',
  'conversations.subagent.cancelling': 'Anulowanie…',
  'conversations.subagent.cancelFailed': 'Nie udało się anulować zadania. Spróbuj ponownie.',
  'conversations.subagent.statusRunning': 'w toku',
  'conversations.subagent.statusCompleted': 'zakończono',
  'conversations.subagent.statusFailed': 'niepowodzenie',
  'conversations.subagent.statusAwaitingUser': 'oczekiwanie na użytkownika',
  'conversations.subagent.statusCancelled': 'anulowano',
  'conversations.agentTaskInsights.title': 'Wgląd w zadania agenta',
  'conversations.agentTaskInsights.response': 'Odpowiedź',
  'conversations.agentTaskInsights.processSourceTitle': 'Źródło procesu agenta',
  'conversations.agentTaskInsights.stepsHeading': 'Kroki',
  'conversations.agentTaskInsights.sourcesHeading': 'Źródła',
  'conversations.agentTaskInsights.noSteps': 'Brak zarejestrowanych kroków',
  'conversations.agentTaskInsights.viewProcessSource': 'Zobacz pełne źródło procesu agenta',
  'conversations.agentTaskInsights.processing': 'Przetwarzanie',
  'conversations.agentTaskInsights.done': 'Gotowe',
  'conversations.agentTaskInsights.failed': 'Niepowodzenie',
  'conversations.agentTaskInsights.running': 'W toku',
  'conversations.agentTaskInsights.cancelled': 'Anulowano',
  'conversations.agentTaskInsights.awaitingUser': 'Oczekiwanie na dane',
  'conversations.agentTaskInsights.viewDetails': 'Zobacz szczegóły',
  'conversations.agentTaskInsights.subagentsHeading': 'Podagenci',
  'daemon.serviceBlockingGate.body':
    'Rdzeń OpenHuman nie odpowiada. Spróbuj ponownie lub pobierz najnowszą wersję aplikacji.',
  'daemon.serviceBlockingGate.downloadHint':
    'Jeśli problem się powtarza, pobierz najnowszą wersję.',
  'daemon.serviceBlockingGate.downloadLatest': 'Pobierz najnowszą wersję',
  'daemon.serviceBlockingGate.retryCore': 'Ponów rdzeń',
  'daemon.serviceBlockingGate.retryFailed':
    'Ponowna próba się nie powiodła. Pobierz najnowszą wersję aplikacji i spróbuj ponownie.',
  'daemon.serviceBlockingGate.retrying': 'Ponawianie...',
  'daemon.serviceBlockingGate.title': 'Rdzeń OpenHuman jest niedostępny',
  'home.banners.discordSubtitle': 'Pomoc, opinie i wczesny dostęp do funkcji.',
  'home.banners.discordTitle': 'Dołącz do naszego Discorda',
  'home.banners.earlyBirdDismiss': 'Odrzuć baner early bird',
  'home.banners.earlyBirdFirstSub': 'pierwszą subskrypcję.',
  'home.banners.earlyBirdOn': 'Early bird na',
  'home.banners.earlyBirdTitle': 'Pierwszych 1000 użytkowników otrzymuje 60% zniżki.',
  'home.banners.earlyBirdUseCode': 'Użyj kodu early bird',
  'home.banners.getSubscription': 'wykup subskrypcję',
  'home.banners.promoCreditsBody': 'Masz {amount} w kredytach promo. Możesz',
  'home.banners.promoCreditsUsage': 'i uzyskaj 10x więcej użycia.',
  'intelligence.memoryChunk.detail.chunk': 'Fragment',
  'intelligence.memoryChunk.detail.copyChunkId': 'Skopiuj ID fragmentu',
  'intelligence.memoryChunk.detail.embeddingInfo': 'bge-m3 1024 wymiarów',
  'intelligence.memoryChunk.detail.noEmbedding': 'Brak embeddingu',
  'intelligence.memoryChunk.letterhead.from': 'od',
  'intelligence.memoryChunk.letterhead.to': 'do',
  'intelligence.memoryChunk.mentioned.chunkOne': '1 fragment',
  'intelligence.memoryChunk.mentioned.chunkOther': '{count} fragmentów',
  'intelligence.memoryChunk.mentioned.heading': 'w z m i a n k o w a n e',
  'intelligence.memoryChunk.scoreBars.ariaScore': '{name} wynik {pct} procent',
  'intelligence.memoryChunk.scoreBars.atThreshold': 'na progu {threshold}',
  'intelligence.memoryChunk.scoreBars.dropped': 'odrzucone',
  'intelligence.memoryChunk.scoreBars.heading': 'd l a c z e g o   z a c h o w a n e',
  'intelligence.memoryChunk.scoreBars.kept': 'zachowane',
  'intelligence.diagram.title': 'Diagram architektury',
  'intelligence.diagram.description':
    'Najnowsze lokalne wyjście architektury ze skonfigurowanego punktu końcowego diagramów.',
  'intelligence.diagram.refresh': 'Refresh',
  'intelligence.diagram.refreshAria': 'Odśwież diagram',
  'intelligence.diagram.emptyTitle': 'Brak dostępnego diagramu',
  'intelligence.diagram.emptyDescription':
    'Wygeneruj diagram architektury z orkiestratora, a ten panel odświeży się ze skonfigurowanego lokalnego punktu końcowego.',
  'intelligence.diagram.skillInstallCommand': 'npx skills add yizhiyanhua-ai/fireworks-tech-graph',
  'intelligence.diagram.promptExample':
    'Wygeneruj diagram architektury bieżącego roju w ciemnym stylu terminala',
  'intelligence.diagram.imageAlt': 'Najnowszy wygenerowany diagram architektury OpenHuman',
  'intelligence.diagram.refreshesEvery': 'Odświeża co {seconds}s',
  'intelligence.memoryText.entityTypePrefix': 'Typ encji',
  'intelligence.screenDebug.active': 'Aktywne',
  'intelligence.screenDebug.app': 'Aplikacja',
  'intelligence.screenDebug.bounds': 'Granice',
  'intelligence.screenDebug.captureAlt': 'Wynik testu przechwytywania',
  'intelligence.screenDebug.captureFailed': 'Niepowodzenie',
  'intelligence.screenDebug.captureSuccess': 'Powodzenie',
  'intelligence.screenDebug.captureTest': 'Test przechwytywania',
  'intelligence.screenDebug.capturing': 'Przechwytywanie',
  'intelligence.screenDebug.frames': 'Klatki',
  'intelligence.screenDebug.idle': 'Bezczynne',
  'intelligence.screenDebug.lastApp': 'Ostatnia aplikacja',
  'intelligence.screenDebug.mode': 'Tryb',
  'intelligence.screenDebug.permAccessibility': 'Uprawnienie: dostępność',
  'intelligence.screenDebug.permInput': 'Uprawnienie: wejście',
  'intelligence.screenDebug.permScreen': 'Dostępność',
  'intelligence.screenDebug.permissions': 'Uprawnienia',
  'intelligence.screenDebug.platformNotSupported': 'Platforma nieobsługiwana',
  'intelligence.screenDebug.recentVisionSummaries': 'Ostatnie podsumowania wizji',
  'intelligence.screenDebug.session': 'Sesja',
  'intelligence.screenDebug.size': 'Rozmiar',
  'intelligence.screenDebug.status': 'Stan',
  'intelligence.screenDebug.testCapture': 'Testuj przechwytywanie',
  'intelligence.screenDebug.time': 'Czas',
  'intelligence.screenDebug.title': 'Tytuł',
  'intelligence.screenDebug.unknown': 'Nieznane',
  'intelligence.screenDebug.visionQueue': 'Kolejka wizji',
  'intelligence.screenDebug.visionState': 'Stan wizji',
  'intelligence.tasks.activeBoardOne': '1 aktywna tablica w rozmowach',
  'intelligence.tasks.activeBoardOther': '{count} aktywnych tablic w rozmowach',
  'intelligence.tasks.empty': 'Brak tablic zadań agenta',
  'intelligence.tasks.emptyHint': 'Tablice pojawią się tutaj po rozpoczęciu pracy z agentem.',
  'intelligence.tasks.failedToLoad': 'Nie udało się wczytać',
  'intelligence.tasks.live': 'na żywo',
  'intelligence.tasks.loadingBoards': 'Wczytywanie tablic zadań…',
  'intelligence.tasks.threadPrefix': 'Wątek {thread}',
  'intelligence.tasks.subtitle':
    'Twoje zadania i tablice zadań agentów w całej przestrzeni roboczej.',
  'intelligence.tasks.newTask': 'Nowe zadanie',
  'intelligence.tasks.personalBoardTitle': 'Zadania agenta',
  'intelligence.tasks.personalEmpty': 'Brak zadań osobistych',
  'intelligence.tasks.composer.title': 'Nowe zadanie',
  'intelligence.tasks.composer.titleLabel': 'Tytuł',
  'intelligence.tasks.composer.titlePlaceholder': 'Co trzeba zrobić?',
  'intelligence.tasks.composer.statusLabel': 'Status',
  'intelligence.tasks.composer.attachLabel': 'Dołącz do rozmowy',
  'intelligence.tasks.composer.attachNone': 'Osobiste (bez rozmowy)',
  'intelligence.tasks.composer.objectiveLabel': 'Cel',
  'intelligence.tasks.composer.objectivePlaceholder': 'Opcjonalnie — oczekiwany wynik',
  'intelligence.tasks.composer.notesLabel': 'Notatki',
  'intelligence.tasks.composer.notesPlaceholder': 'Opcjonalne notatki',
  'intelligence.tasks.composer.create': 'Utwórz zadanie',
  'intelligence.tasks.composer.creating': 'Tworzenie…',
  'intelligence.tasks.composer.createFailed': 'Nie udało się utworzyć zadania',
  'intelligence.tasks.composer.assignAgentLabel': 'Pozwól agentowi zająć się tym automatycznie',
  'intelligence.tasks.composer.assignAgentHint':
    'Tablica zadań przejmie je i wykona za Ciebie. Wyłącz dla zwykłego zadania osobistego.',
  'intelligence.tasks.sourceList.subtitle':
    'Zadania ze źródeł czekające na przekształcenie w pracę agenta.',
  'intelligence.tasks.sourceList.empty': 'Brak oczekujących zadań ze źródeł.',
  'intelligence.tasks.sourceList.queued': 'W kolejce',
  'intelligence.tasks.sourceList.workOnTask': 'Pracuj nad zadaniem',
  'intelligence.tasks.sourcePlan.title': 'Dopracuj zadanie źródłowe',
  'intelligence.tasks.sourcePlan.subtitle':
    'Sprawdź szkic badawczy przed utworzeniem zadania agenta.',
  'intelligence.tasks.sourcePlan.researchAgent': 'Szkic agenta badawczego',
  'intelligence.tasks.sourcePlan.approve': 'Zatwierdź plan',
  'intelligence.tasks.sourcePlan.creating': 'Tworzenie zadania…',
  'intelligence.tasks.sourcePlan.createFailed': 'Nie udało się utworzyć zadania agenta',
  'intelligence.tasks.workTaskFailed': 'Nie udało się rozpocząć pracy nad zadaniem',
  'intelligence.workTask.sourceTaskHeading': 'Zadanie źródłowe:',
  'intelligence.workTask.repositoryLine': '- Repozytorium: {repo}',
  'intelligence.workTask.externalIdLine': '- Identyfikator zewnętrzny: {externalId}',
  'intelligence.workTask.urlLine': '- Adres: {url}',
  'intelligence.workTask.closingInstruction':
    'Zacznij od krótkiego powtórzenia konkretnego planu wdrożenia, a następnie go zrealizuj. Utrzymuj widoczność postępów w tym wątku i aktualizuj tablicę zadań, gdy zmienia się stan pracy.',
  'intelligence.agentWork.subtitle':
    'Każdy przebieg agenta w tle, pogrupowany według stanu cyklu życia.',
  'intelligence.agentWork.loading': 'Ładowanie pracy agenta…',
  'intelligence.agentWork.failedToLoad': 'Nie udało się załadować pracy agenta',
  'intelligence.agentWork.empty': 'Brak przebiegów agenta w tle.',
  'intelligence.agentWork.bucket.needsInput': 'Wymaga reakcji',
  'intelligence.agentWork.bucket.working': 'W toku',
  'intelligence.agentWork.bucket.completed': 'Ukończone',
  'intelligence.agentWork.bucket.failed': 'Niepowodzenie',
  'intelligence.agentWork.bucket.stopped': 'Zatrzymane',
  'intelligence.agentWork.column.agent': 'Agent',
  'intelligence.agentWork.column.status': 'Status',
  'intelligence.agentWork.column.elapsed': 'Czas trwania',
  'intelligence.agentWork.column.cost': 'Koszt',
  'intelligence.agentWork.column.tokens': 'Tokeny',
  'intelligence.agentWork.status.pending': 'Oczekujące',
  'intelligence.agentWork.status.running': 'W toku',
  'intelligence.agentWork.status.awaitingUser': 'Wymaga reakcji',
  'intelligence.agentWork.status.paused': 'Wstrzymane',
  'intelligence.agentWork.status.completed': 'Ukończone',
  'intelligence.agentWork.status.failed': 'Niepowodzenie',
  'intelligence.agentWork.status.cancelled': 'Anulowane',
  'intelligence.agentWork.status.interrupted': 'Przerwane',
  'intelligence.agentWork.kind.subagent': 'Podagent',
  'intelligence.agentWork.kind.workerThread': 'Wątek workera',
  'intelligence.agentWork.kind.backgroundAgent': 'Agent w tle',
  'intelligence.agentWork.kind.teamMember': 'Członek zespołu',
  'intelligence.agentWork.kind.workflowChild': 'Element podrzędny przepływu',
  'intelligence.agentWork.openThread': 'Otwórz wątek',
  'intelligence.agentWork.openWorker': 'Otwórz proces',
  'worktree.label': 'Worktree',
  'worktree.dirty': 'Niezatwierdzone zmiany',
  'worktree.clean': 'Czyste',
  'worktree.changedFile': 'zmieniony plik',
  'worktree.changedFiles': 'zmienione pliki',
  'worktree.removing': 'Usuwanie…',
  'worktree.removeFailed': 'Nie udało się usunąć worktree',
  'worktree.diffFailed': 'Nie udało się załadować diffa',
  'worktree.diffLoading': 'Ładowanie diffa…',
  'worktree.diffEmpty': 'Brak zmian względem HEAD.',
  'worktree.dirtyConfirm':
    'To worktree ma niezatwierdzone zmiany. Jego usunięcie odrzuci tę pracę. Gałąź workera zostaje zachowana.',
  'worktree.action.open': 'Otwórz folder',
  'worktree.action.diff': 'Diff',
  'worktree.action.hideDiff': 'Ukryj diff',
  'worktree.action.remove': 'Usuń',
  'worktree.action.removeAnyway': 'Odrzuć i usuń',
  'worktree.action.preserve': 'Zachowaj',
  'worktree.panel.subtitle':
    'Izolowane drzewa robocze git utworzone przez równoległe procesy agentów.',
  'worktree.panel.loading': 'Ładowanie worktree…',
  'worktree.panel.failedToLoad': 'Nie udało się załadować worktree',
  'worktree.panel.empty':
    'Brak izolowanych worktree. Pojawią się tutaj równoległe procesy z izolacją worktree.',
  'worktree.panel.overlapsTitle': 'Nakładające się zmiany',
  'worktree.panel.overlapHint':
    'Te pliki zostały zmienione przez więcej niż jedno worktree — uzgodnij je przed scaleniem.',
  'intelligence.agentWork.action.stop': 'Zatrzymaj',
  'intelligence.agentWork.action.retry': 'Ponów',
  'intelligence.agentWork.action.continue': 'Kontynuuj',
  'intelligence.agentWork.action.followUp': 'Dopytaj',
  'intelligence.agentWork.action.send': 'Wyślij',
  'intelligence.agentWork.action.cancel': 'Anuluj',
  'intelligence.agentWork.action.continuePlaceholder': 'Odpowiedz, aby odblokować tego agenta…',
  'intelligence.agentWork.action.followUpPlaceholder': 'Wyślij instrukcję uzupełniającą…',
  'intelligence.agentWork.action.failed': 'Akcja nie powiodła się',
  'intelligence.teams.subtitle': 'Skoordynowane zespoły agentów i zadania, które dzielą.',
  'intelligence.teams.loading': 'Ładowanie zespołów…',
  'intelligence.teams.failedToLoad': 'Nie udało się załadować zespołów',
  'intelligence.teams.empty': 'Brak zespołów agentów',
  'intelligence.teams.emptyHint':
    'Zespoły pojawiają się tutaj, gdy agent tworzy skoordynowane podagenty, aby dzielić wspólny cel.',
  'intelligence.teams.refresh': 'Odśwież',
  'intelligence.teams.backToList': 'Wszystkie zespoły',
  'intelligence.teams.status.active': 'Aktywny',
  'intelligence.teams.status.closed': 'Zamknięty',
  'intelligence.teams.header.lead': 'lider',
  'intelligence.teams.header.taskCount': '{count} zadań',
  'intelligence.teams.header.memberCount': '{count} członków',
  'intelligence.teams.member.active': 'Aktywny',
  'intelligence.teams.member.pending': 'Oczekujący',
  'intelligence.teams.member.idle': 'Bezczynny',
  'intelligence.teams.member.stopped': 'Zatrzymany',
  'intelligence.teams.column.todo': 'Do zrobienia',
  'intelligence.teams.column.ready': 'Gotowe',
  'intelligence.teams.column.inProgress': 'W toku',
  'intelligence.teams.column.blocked': 'Zablokowane',
  'intelligence.teams.column.done': 'Zrobione',
  'intelligence.teams.emptyColumn': 'Puste',
  'intelligence.teams.unclaimed': 'Nieprzypisane',
  'intelligence.teams.pickedUpBy': 'Przejęte przez {name}',
  'intelligence.teams.depLockTitle': '{count} niespełnionych zależności',
  'intelligence.teams.gate.pending': 'Bramka oczekuje',
  'intelligence.teams.gate.passed': 'Bramka zaliczona',
  'intelligence.teams.gate.failed': 'Bramka niezaliczona',
  'intelligence.teams.gate.label': 'Bramka: {status}',
  'intelligence.teams.activity.title': 'Aktywność zespołu',
  'intelligence.teams.activity.empty': 'Brak wiadomości',
  'intelligence.teams.activity.toTeam': 'zespół',
  'intelligence.teams.member.start': 'Uruchom',
  'intelligence.teams.composer.placeholder': 'Wiadomość do członka zespołu…',
  'intelligence.teams.composer.send': 'Wyślij',
  'intelligence.teams.composer.recipient': 'Odbiorca',
  'intelligence.teams.composer.toTeam': 'Cały zespół',
  'intelligence.teams.action.blocked': 'Oczekiwanie na zależności',
  'intelligence.teams.action.alreadyClaimed': 'Już przejęte przez innego członka zespołu',
  'intelligence.teams.action.alreadyActive': 'Członek zespołu już działa',
  'intelligence.teams.action.noClaimableTask': 'Brak gotowego zadania dla tego członka zespołu',
  'intelligence.teams.action.unknownTask': 'Nie znaleziono zadania',
  'intelligence.refine.objectiveDefault':
    'Przekształć zadanie źródłowe w gotowe do wdrożenia zadanie agenta: {title}',
  'intelligence.refine.sourceLine': 'Źródło: {url}',
  'intelligence.refine.sourceIntake': 'Źródło: przyjęcie źródła zadań',
  'intelligence.refine.repositoryLine': 'Repozytorium: {repo}',
  'intelligence.refine.externalTaskLine': 'Zadanie zewnętrzne: {externalId}',
  'intelligence.refine.planStep1':
    'Przeczytaj powiązane zadanie źródłowe i potwierdź dokładnie żądane zachowanie.',
  'intelligence.refine.planStep2':
    'Przejrzyj odpowiednie ścieżki kodu i wskaż najmniejszą granicę wdrożenia.',
  'intelligence.refine.planStep3':
    'Wdróż zmianę z ukierunkowanymi testami wokół zachowania widocznego dla użytkownika.',
  'intelligence.refine.planStep4':
    'Uruchom ukierunkowaną walidację i zapisz wszelkie pozostałe ryzyka lub prace następcze.',
  'intelligence.refine.acceptance1':
    'Wymagania zadania źródłowego są odzwierciedlone w ostatecznym wdrożeniu.',
  'intelligence.refine.acceptance2':
    'Odpowiednie testy jednostkowe lub integracyjne obejmują zmienione zachowanie.',
  'intelligence.refine.acceptance3':
    'Wyniki walidacji i wszelkie nierozwiązane ryzyka są zapisywane po zakończeniu.',
  'notifications.card.dismiss': 'Odrzuć powiadomienie',
  'notifications.card.importanceTitle': 'Ważność: {pct}%',
  'notifications.center.empty': 'Brak powiadomień',
  'notifications.center.emptyHint': 'Nowe powiadomienia pojawią się tutaj.',
  'notifications.center.filterAll': 'Wszystkie',
  'notifications.center.markAllRead': 'Oznacz wszystkie jako przeczytane',
  'notifications.center.title': 'Powiadomienia',
  'notifications.meeting.joinListen': 'Dołącz (tylko słuchanie)',
  'notifications.meeting.joinActive': 'Dołącz i odpowiadaj',
  'notifications.meeting.skip': 'Nie to',
  'notifications.meeting.alwaysJoin': 'Zawsze dołączaj',
  'notifications.meeting.actionError': 'Nie udało się wykonać tej akcji. Spróbuj ponownie.',
  'oauth.button.connecting': 'Łączenie...',
  'oauth.button.loopbackTimeout':
    'Logowanie przekroczyło limit czasu — przeglądarka nie ukończyła przekierowania OAuth. Spróbuj ponownie.',
  'oauth.login.continueWith': 'Kontynuuj z',
  'onboarding.contextGathering.buildingDesc':
    'Analizujemy Twój kontekst, aby spersonalizować pierwsze rozmowy.',
  'onboarding.contextGathering.buildingProfile': 'Budowanie Twojego profilu...',
  'onboarding.contextGathering.continueToChat': 'Przejdź do czatu',
  'onboarding.contextGathering.coreAlive':
    'Rdzeń jest osiągalny — pierwsze uruchomienie może potrwać minutę.',
  'onboarding.contextGathering.coreAliveProbing': 'Sprawdzanie połączenia z rdzeniem…',
  'onboarding.contextGathering.coreUnreachable':
    'Rdzeń nie odpowiada. Możesz kontynuować i spróbować ponownie później.',
  'onboarding.contextGathering.errorDesc':
    'Twój czat jest gotowy. Będziemy nadal budować pełny profil w tle, więc możesz już teraz kontynuować i dopracowywać go z czasem.',
  'onboarding.contextGathering.stillWorkingDesc':
    'Pierwsze uruchomienie może potrwać 30–60 sekund podczas rozgrzewania lokalnego modelu i narzędzi. Możesz przejść do czatu w każdej chwili — budowa profilu działa w tle.',
  'onboarding.contextGathering.stillWorkingTitle': 'Trwa praca nad Twoim profilem…',
  'onboarding.contextGathering.title': 'Zbieranie kontekstu',
  'openhuman.team_list_teams': 'Lista zespołów',
  'overlay.ariaAttention': 'Wiadomość uwagi',
  'overlay.ariaCompanion': 'Companion aktywny',
  'overlay.ariaOrb': 'Nakładka OpenHuman',
  'overlay.ariaVoiceActive': 'Wejście głosowe aktywne',
  'overlay.companion.error': 'Błąd',
  'overlay.companion.listening': 'Słucham…',
  'overlay.companion.pointing': 'Wskazuję…',
  'overlay.companion.speaking': 'Mówię…',
  'overlay.companion.thinking': 'Myślę…',
  'overlay.orbTitle': 'Przeciągnij, aby przesunąć · Kliknij dwukrotnie, aby zresetować pozycję',
  'pages.settings.account.connections': 'Połączenia',
  'pages.settings.account.connectionsDesc': 'Przeglądaj i zarządzaj połączeniami kont',
  'pages.settings.account.migration': 'Importuj z innego asystenta',
  'pages.settings.account.migrationDesc':
    'Przenieś pamięć i notatki z OpenClaw (a wkrótce również Hermes) do tej przestrzeni roboczej.',
  'pages.settings.account.privacy': 'Prywatność',
  'pages.settings.account.privacyDesc':
    'Zarządzaj udostępnianiem danych i anonimowymi preferencjami użycia',
  'pages.settings.account.recoveryPhrase': 'Fraza odzyskiwania',
  'pages.settings.account.recoveryPhraseDesc':
    'Zarządzaj swoją frazą odzyskiwania BIP39 do szyfrowania i dostępu do portfela',
  'pages.settings.account.team': 'Zespół',
  'pages.settings.account.teamDesc': 'Zarządzaj zespołem, członkami i zaproszeniami',
  'pages.settings.accountSection.description':
    'Fraza odzyskiwania, zespół, połączenia i ustawienia prywatności.',
  'pages.settings.accountSection.title': 'Konto',
  'pages.settings.ai.llm': 'LLM',
  'pages.settings.ai.llmDesc': 'Dostawcy modeli językowych i trasowanie',
  'pages.settings.ai.voice': 'Głos',
  'pages.settings.ai.voiceDesc': 'Konfiguracja STT i TTS dla rozmów głosowych',
  'pages.settings.aiSection.description':
    'Dostawcy modeli językowych, lokalna Ollama i głos (STT / TTS).',
  'pages.settings.aiSection.title': 'AI',
  'settings.developerMenu.composio.title': 'Composio',
  'settings.developerMenu.composio.desc':
    'Tryb trasowania, wyzwalacze integracji i archiwum historii wyzwalaczy.',
  'pages.settings.features.desktopCompanion': 'Towarzysz pulpitu',
  'pages.settings.features.desktopCompanionDesc':
    'Asystent głosowy ze świadomością ekranu — słucha, widzi, mówi, wskazuje',
  'pages.settings.features.messagingChannels': 'Kanały komunikacji',
  'pages.settings.features.messagingChannelsDesc':
    'Konfiguruj kanały takie jak Telegram, Discord i Slack',
  'pages.settings.features.notifications': 'Powiadomienia',
  'pages.settings.features.notificationsDesc':
    'Steruj alertami systemowymi i kategoriami powiadomień',
  'pages.settings.features.screenAwareness': 'Świadomość ekranu',
  'pages.settings.features.screenAwarenessDesc':
    'Uprawnienia, monitorowanie i sesje przechwytywania ekranu',
  'pages.settings.features.tools': 'Narzędzia',
  'pages.settings.features.toolsDesc': 'Wybierz, z jakich możliwości OpenHuman może korzystać',
  'pages.settings.featuresSection.description': 'Świadomość ekranu, komunikacja i narzędzia.',
  'pages.settings.featuresSection.title': 'Funkcje',
  'privacy.dataKind.credentials': 'Poświadczenia',
  'privacy.dataKind.derived': 'Wyprowadzone',
  'privacy.dataKind.diagnostics': 'Diagnostyka',
  'privacy.dataKind.metadata': 'Metadane',
  'privacy.dataKind.raw': 'Surowe',
  'privacy.whatLeaves.link.label': 'Co opuszcza mój komputer?',
  'rewards.community.achievementsUnlocked': 'Odblokowano {unlocked} z {total} osiągnięć',
  'rewards.community.connectDiscord': 'Połącz Discord',
  'rewards.community.connectDiscordError':
    'Nie udało się rozpocząć łączenia z Discord. Spróbuj ponownie.',
  'rewards.community.connectingDiscord': 'Łączenie…',
  'rewards.community.cumulativeTokens': 'Łączna liczba tokenów',
  'rewards.community.currentStreak': 'Aktualna seria',
  'rewards.community.disconnectDiscord': 'Rozłącz',
  'rewards.community.disconnectDiscordError':
    'Nie udało się rozłączyć konta Discord. Spróbuj ponownie.',
  'rewards.community.disconnectingDiscord': 'Rozłączanie…',
  'rewards.community.discordAccount': 'Konto Discord',
  'rewards.community.discordConnected': 'Discord połączony',
  'rewards.community.discordConnectedAs': 'Połączono jako {username}',
  'rewards.community.discordLinkedNotInGuild': 'Powiązane, ale nie na serwerze',
  'rewards.community.discordMember': 'Dołączono do serwera',
  'rewards.community.discordNotLinked': 'Nie powiązane',
  'rewards.community.discordServer': 'Serwer Discord',
  'rewards.community.discordStatusUnavailable': 'Status członkostwa niedostępny',
  'rewards.community.discordWaiting': 'Oczekiwanie na synchronizację z backendem',
  'rewards.community.heroSubtitle':
    'Odblokuj ekskluzywne kanały, odznaki wspierających i nagrody synchronizowane z backendem, łącząc swoje konto Discord.',
  'rewards.community.heroTitle': 'Zdobywaj nagrody i role na Discordzie',
  'rewards.community.joinDiscord': 'Dołącz do Discorda',
  'rewards.community.loadingRewards': 'Wczytywanie nagród…',
  'rewards.community.locked': 'Zablokowane',
  'rewards.community.retrying': 'Ponawianie…',
  'rewards.community.roleAssigned': 'Rola przypisana',
  'rewards.community.roleAssignmentCount': 'Przypisano {assigned} z {unlocked} ról',
  'rewards.community.roleClaimDesc':
    'Odblokowałeś role Discord, ale nie dołączyłeś jeszcze do serwera OpenHuman. Dołącz, aby zostały przypisane automatycznie.',
  'rewards.community.roleClaimTitle': 'Odbierz swoje role Discord',
  'rewards.community.roleJoinToClaim': 'Dołącz do serwera, aby odebrać',
  'rewards.community.rolePending': 'Synchronizowanie roli…',
  'rewards.community.rolesAndRewards': 'Role i nagrody',
  'rewards.community.streakDays': '{n} dni',
  'rewards.community.syncPending': 'Synchronizacja nagród w toku',
  'rewards.community.syncPendingDesc':
    'Trwa synchronizacja Twoich nagród. Spróbuj ponownie za chwilę.',
  'rewards.community.syncUnavailable': 'Synchronizacja niedostępna',
  'rewards.community.tryAgain': 'Ponawianie…',
  'rewards.community.unknown': 'Nieznane',
  'rewards.community.unlocked': 'Odblokowane',
  'rewards.community.yourProgress': 'Twój postęp',
  'rewards.coupon.colCode': 'Kod',
  'rewards.coupon.colRedeemed': 'Zrealizowano',
  'rewards.coupon.colReward': 'Nagroda',
  'rewards.coupon.colStatus': 'Status',
  'rewards.coupon.loadingHistory': 'Wczytywanie historii nagród…',
  'rewards.coupon.noCodes': 'Nie zrealizowano jeszcze żadnych kodów.',
  'rewards.coupon.pending': 'Oczekujące',
  'rewards.coupon.placeholder': 'Kod kuponu',
  'rewards.coupon.promoCredits': 'Kredyty promocyjne',
  'rewards.coupon.recentRedemptions': 'Ostatnie realizacje',
  'rewards.coupon.redeemAccepted':
    '{code} zaakceptowany. {amount} zostanie odblokowane po wykonaniu wymaganej akcji.',
  'rewards.coupon.redeemButton': 'Zrealizuj kod',
  'rewards.coupon.redeemSuccess': '{code} zrealizowany. {amount} dodano do Twoich kredytów.',
  'rewards.coupon.redeemedCodes': 'Zrealizowane kody',
  'rewards.coupon.redeeming': 'Realizacja...',
  'rewards.coupon.statusApplied': 'Zastosowano',
  'rewards.coupon.statusPendingAction': 'Oczekuje na akcję',
  'rewards.coupon.statusRedeemed': 'Zrealizowano',
  'rewards.coupon.subtitle': 'Wprowadź kod, aby otrzymać kredyty promocyjne.',
  'rewards.coupon.title': 'Zrealizuj kod kuponu',
  'rewards.referralSection.activity': 'Aktywność poleceń',
  'rewards.referralSection.apply': 'Stosowanie…',
  'rewards.referralSection.applying': 'Stosowanie…',
  'rewards.referralSection.colReferredUser': 'Polecony użytkownik',
  'rewards.referralSection.colReward': 'Nagroda',
  'rewards.referralSection.colStatus': 'Status',
  'rewards.referralSection.colUpdated': 'Zaktualizowano',
  'rewards.referralSection.completed': 'Zakończone',
  'rewards.referralSection.copyCode': 'Kopiuj kod',
  'rewards.referralSection.copyFailed': 'Kopiowanie nie powiodło się',
  'rewards.referralSection.haveCode': 'Masz kod polecający?',
  'rewards.referralSection.haveCodeDesc':
    'Wprowadź kod, który otrzymałeś(aś) od znajomego, aby uzyskać bonus.',
  'rewards.referralSection.linked': 'Powiązane',
  'rewards.referralSection.linkedCode': '(kod {code})',
  'rewards.referralSection.loading': 'Wczytywanie programu poleceń…',
  'rewards.referralSection.retry': 'Ponów',
  'rewards.referralSection.noReferrals': 'Brak poleceń',
  'rewards.referralSection.pendingReferrals': 'Oczekujące polecenia',
  'rewards.referralSection.placeholder': 'Kod polecający',
  'rewards.referralSection.share': 'Udostępnij',
  'rewards.referralSection.statusCompleted': 'Zakończone',
  'rewards.referralSection.statusExpired': 'Wygasłe',
  'rewards.referralSection.statusJoined': 'Dołączył(a)',
  'rewards.referralSection.subtitle': 'Zaproś znajomych do OpenHuman i zarabiajcie kredyty razem.',
  'rewards.referralSection.title': 'Zapraszaj znajomych, zarabiaj kredyty',
  'rewards.referralSection.totalEarned': 'Łącznie zarobione',
  'rewards.referralSection.yourCode': 'Twój kod',
  'settings.ai.addCloudProvider': 'Dodaj dostawcę chmurowego',
  'settings.ai.addProvider': 'Zapisywanie…',
  'settings.ai.apiKeyFieldLabel': 'Klucz API',
  'settings.ai.apiKeyRequired': 'Wklej swój klucz API, aby kontynuować.',
  'settings.ai.apiKeyStoredEncrypted': 'Klucz API przechowywany w postaci zaszyfrowanej',
  'settings.ai.apiKeysEncrypted': 'auth-profiles.json',
  'settings.ai.clearStoredKey': 'Wyczyść zapisany klucz',
  'settings.ai.connectProvider': 'Połącz dostawcę',
  'settings.ai.customRouting': 'Własne trasowanie',
  'settings.ai.defaultResolvesTo': 'OpenHuman',
  'settings.ai.discard': 'Odrzuć',
  'settings.ai.editProvider': 'Edytuj dostawcę',
  'settings.ai.llmProviders': 'Dostawcy LLM',
  'settings.ai.llmProvidersDesc': 'Skonfiguruj dostawców chmurowych i lokalnych modeli językowych.',
  'settings.ai.localOllama': 'Lokalny (Ollama)',
  'settings.ai.modelLabel': 'Model',
  'settings.ai.noCustomProviders': 'Brak własnych dostawców',
  'settings.ai.openAiCompat.authHeaderExample': 'Authorization: Bearer <Twój klucz>',
  'settings.ai.openAiCompat.authHeaderLabel': 'Nagłówek uwierzytelniania',
  'settings.ai.openAiCompat.baseUrlLabel': 'Bazowy URL',
  'settings.ai.openAiCompat.baseUrlUnavailable': 'Niedostępny',
  'settings.ai.openAiCompat.clearKey': 'Wyczyść klucz',
  'settings.ai.openAiCompat.description':
    'Skieruj lokalne harnesy do tego serwera /v1, aby kierować ruch przez dostawców skonfigurowanych poniżej. Uwierzytelnianie używa stabilnego klucza ustawionego tutaj, nie wewnętrznego tokenu rdzenia aplikacji.',
  'settings.ai.openAiCompat.keyConfigured': 'Klucz skonfigurowany',
  'settings.ai.openAiCompat.keyRequired': 'Klucz wymagany',
  'settings.ai.openAiCompat.rotateKey': 'Rotuj klucz',
  'settings.ai.openAiCompat.setKey': 'Ustaw klucz',
  'settings.ai.openAiCompat.title': 'Endpoint kompatybilny z OpenAI',
  'settings.ai.providerLabel': 'Dostawca',
  'skills.mcpComingSoon.title': 'Serwery MCP',
  'skills.mcpComingSoon.description':
    'Zarządzanie serwerami MCP pojawi się wkrótce. Ta zakładka będzie służyć do wyszukiwania, łączenia i monitorowania integracji z serwerami MCP.',
  'settings.ai.routing': 'Trasowanie',
  'settings.ai.claudeCode.button': 'Claude Code',
  'settings.ai.claudeCode.inlineNotConnected':
    'Brak połączenia — kieruje czat przez lokalne Claude Code CLI.',
  'settings.ai.claudeCode.checkingSignIn': 'Sprawdzanie logowania…',
  'settings.ai.claudeCode.inlineConnected': 'Połączono.',
  'settings.ai.claudeCode.signedInAs': 'Zalogowano jako',
  'settings.ai.claudeCode.subscriptionFallback': 'Subskrypcja Claude',
  'settings.ai.claudeCode.usingApiKeyEnv': 'Używa ANTHROPIC_API_KEY',
  'settings.ai.claudeCode.cliNotInstalled': 'CLI nie jest zainstalowane',
  'settings.ai.claudeCode.signInUnknown': 'Nieznany stan logowania',
  'settings.ai.claudeCode.connectedNotSignedIn': 'Połączono · nie zalogowano',
  'settings.ai.claudeCode.modalTitle': 'Claude Code CLI',
  'settings.ai.claudeCode.modalDescription':
    'Kieruje zadania czatu, agentowe i wnioskowania przez lokalnie zainstalowane Claude Code CLI. Bez klucza API — używa własnego logowania CLI.',
  'settings.ai.claudeCode.close': 'Zamknij',
  'settings.ai.claudeCode.connection': 'Połączenie',
  'settings.ai.claudeCode.enabled': 'Włączone',
  'settings.ai.claudeCode.notEnabled': 'Nie włączone',
  'settings.ai.claudeCode.disconnect': 'Rozłącz',
  'settings.ai.claudeCode.disconnecting': 'Rozłączanie…',
  'settings.ai.claudeCode.enable': 'Włącz Claude Code',
  'settings.ai.claudeCode.enabling': 'Włączanie…',
  'settings.ai.claudeCode.authentication': 'Uwierzytelnianie',
  'settings.ai.claudeCode.recheck': 'Sprawdź ponownie',
  'settings.ai.claudeCode.checking': 'Sprawdzanie…',
  'settings.ai.claudeCode.openingTerminal': 'Otwieranie terminala…',
  'settings.ai.claudeCode.signIn': 'Zaloguj się przez Claude',
  'settings.ai.claudeCode.reconnect': 'Połącz ponownie',
  'settings.ai.claudeCode.loginHint':
    'Otwiera terminal z poleceniem claude login. Po zakończeniu kliknij Sprawdź ponownie.',
  'settings.ai.claudeCode.loginError': 'Nie można otworzyć terminala logowania. Spróbuj ponownie.',
  'settings.ai.claudeCode.fullAccess': 'Pełny dostęp',
  'settings.ai.claudeCode.fullAccessOn':
    'Claude Code może uruchamiać polecenia, korzystać z sieci i tworzyć podagentów.',
  'settings.ai.claudeCode.fullAccessOff':
    'Akceptuj tylko zmiany — automatycznie stosuje zmiany w plikach, ogranicza polecenia i sieć.',
  'settings.ai.claudeCode.sandboxNoteMac':
    'W systemie macOS katalog ~/.openhuman pozostaje chroniony przez piaskownicę w obu trybach.',
  'settings.ai.claudeCode.sandboxNoteOther':
    'Pełny dostęp nie jest ograniczony na tej platformie — włącz go tylko, jeśli ufasz przestrzeni roboczej.',
  'settings.ai.claudeCode.enableToCheck': 'Włącz Claude Code, aby sprawdzić logowanie.',
  'settings.ai.claudeCode.usingApiKeyEnvDetail': 'Używa ANTHROPIC_API_KEY ze środowiska.',
  'settings.ai.claudeCode.notFoundInstall':
    'Nie znaleziono Claude Code CLI — zainstaluj poleceniem: npm install -g @anthropic-ai/claude-code',
  'settings.ai.claudeCode.unknownDetail':
    'Nie udało się ustalić stanu logowania. Twoje claude CLI może być starsze niż obsługa statusu uwierzytelniania — spróbuj Połącz ponownie, a następnie Sprawdź ponownie.',
  'settings.ai.claudeCode.notSignedIn': 'Nie zalogowano.',
  'settings.ai.routingCustom': 'Własne trasowanie',
  'settings.ai.routingDefault': 'Domyślne',
  'settings.ai.routingDesc':
    'Wybierz, którzy dostawcy obsługują które workloady (czat, tło, embeddingi).',
  'settings.ai.saveChanges': 'Zapisywanie…',
  'settings.ai.saving': 'Zapisywanie…',
  'settings.ai.unsavedChange': 'niezapisana zmiana',
  'settings.ai.unsavedChanges': 'niezapisane zmiany',
  'settings.ai.workloadGroupBackground': 'Grupa workloadów: tło',
  'settings.ai.workloadGroupChat': 'Grupa workloadów: czat',
  'settings.ai.disconnectProvider': 'Rozłącz {label}',
  'settings.ai.connectProviderLabel': 'Połącz {label}',
  'settings.ai.editProviderEndpoint': 'Edytuj punkt końcowy {label}',
  'settings.ai.defaultLocalEndpoint': 'http://localhost:11434/v1',
  'settings.ai.editEndpoint': 'Edytuj endpoint',
  'settings.ai.endpointUrlLabel': 'URL endpointu',
  'settings.ai.localRuntimeHelper':
    'Miejsce, w którym dostępny jest {label}. Domyślnie jest to localhost; wskaż zdalny host (na przykład http://10.0.0.4:11434/v1), aby użyć współdzielonej instancji.',
  'settings.ai.endpointUrlRequired': 'URL endpointu jest wymagany.',
  'settings.ai.endpointProtocolRequired': 'Endpoint musi zaczynać się od http:// lub https://.',
  'settings.ai.connectProviderDialog': 'Połącz {label}',
  'settings.ai.getProviderApiKey': 'Pobierz API Key',
  'settings.ai.or': 'lub',
  'settings.ai.codexOauthMissingAuthUrl':
    'Codex OAuth nie zwrócił adresu URL autoryzacji. Spróbuj zalogować się ponownie.',
  'settings.ai.codexOauthMissingCallbackUrl':
    'Wklej adres URL przekierowania z przeglądarki po zalogowaniu.',
  'settings.ai.openRouterOauthDescription':
    'Zaloguj się przez OpenRouter i zaimportuj kontrolowany przez użytkownika klucz API z użyciem PKCE.',
  'settings.ai.connecting': 'Łączenie...',
  'settings.ai.backgroundLoops': 'Pętle w tle',
  'settings.ai.backgroundLoopsDesc':
    'Zobacz, co działa bez wiadomości na czacie, wstrzymaj pracę heartbeat i sprawdź ostatnie wiersze księgi kredytów.',
  'settings.ai.heartbeatControls': 'Sterowanie heartbeat',
  'settings.ai.heartbeatControlsDesc':
    'Domyślnie wyłączone. Włączenie uruchamia pętlę; wyłączenie przerywa działające zadanie.',
  'settings.ai.heartbeatLoop': 'Pętla heartbeat',
  'settings.ai.heartbeatLoopDesc':
    'Główny harmonogram dla planera i opcjonalnej inferencji podświadomości.',
  'settings.ai.subconsciousInference': 'Inferencja podświadomości',
  'settings.ai.subconsciousInferenceDesc':
    'Uruchamia opartą na modelu ocenę zadań i refleksji podczas taktów heartbeat.',
  'settings.ai.calendarMeetingChecks': 'Sprawdzanie spotkań w kalendarzu',
  'settings.ai.calendarMeetingChecksDesc':
    'Wywołuje listę wydarzeń kalendarza dla aktywnych połączeń Google Calendar.',
  'settings.ai.calendarCap': 'Limit kalendarza',
  'settings.ai.connectionsPerTick': '{count} poł./takt',
  'settings.ai.meetingLookahead': 'Wyprzedzenie spotkań',
  'settings.ai.minutesShort': '{count} min',
  'settings.ai.reminderLookahead': 'Wyprzedzenie przypomnień',
  'settings.ai.cronReminderChecks': 'Sprawdzanie przypomnień cron',
  'settings.ai.cronReminderChecksDesc':
    'Skanuje włączone zadania cron pod kątem zbliżających się elementów podobnych do przypomnień.',
  'settings.ai.relevantNotificationChecks': 'Sprawdzanie istotnych powiadomień',
  'settings.ai.relevantNotificationChecksDesc':
    'Promuje pilne powiadomienia lokalne do proaktywnych alertów.',
  'settings.ai.externalDelivery': 'Dostarczanie zewnętrzne',
  'settings.ai.externalDeliveryDesc':
    'Pozwala alertom heartbeat wysyłać proaktywne wiadomości do kanałów zewnętrznych.',
  'settings.ai.interval': 'Interwał',
  'settings.ai.running': 'Działa...',
  'settings.ai.plannerTickNow': 'Takt planera teraz',
  'settings.ai.loadingHeartbeatControls': 'Ładowanie sterowania heartbeat...',
  'settings.ai.heartbeatControlsUnavailable': 'Sterowanie heartbeat jest niedostępne.',
  'settings.ai.loopMap': 'Mapa pętli',
  'settings.ai.plannerSummary':
    'Planner: {sourceEvents} zdarzeń źródłowych, {sent} wysłanych, {deduped} zdeduplikowanych.',
  'settings.ai.routeLabel': 'trasa: {route}',
  'settings.ai.on': 'wł.',
  'settings.ai.off': 'wył.',
  'settings.ai.recentUsageLedger': 'Ostatnia księga zużycia',
  'settings.ai.recentUsageLedgerDesc':
    'Wiersze backendu pokazują dzisiejszą akcję i czas; tagi źródła wymagają obsługi backendu.',
  'settings.ai.latestSpend': 'Ostatni wydatek: {amount} o {time} ({action})',
  'settings.ai.topActions': 'Najczęstsze akcje',
  'settings.ai.noSpendRows': 'Brak załadowanych wierszy wydatków.',
  'settings.ai.topHours': 'Najczęstsze godziny',
  'settings.ai.noHourlySpend': 'Brak wydatków godzinowych.',
  'settings.ai.openhumanDefault': 'OpenHuman (domyślny)',
  'settings.ai.localModelResolved': 'Ollama · {model}',
  'settings.ai.customRoutingForWorkload': 'Niestandardowy routing dla {label}',
  'settings.ai.loadingModels': 'Ładowanie modeli...',
  'settings.ai.enterModelIdManually': 'lub wpisz ID modelu ręcznie:',
  'settings.ai.modelIdPlaceholderForProvider': 'ID modelu {slug}',
  'settings.ai.modelIdPlaceholder': 'model-id',
  'settings.ai.selectModel': 'Wybierz model...',
  'settings.ai.temperatureOverride': 'Nadpisanie temperatury',
  'settings.ai.temperatureOverrideSlider': 'Nadpisanie temperatury (suwak)',
  'settings.ai.temperatureOverrideValue': 'Nadpisanie temperatury (wartość)',
  'settings.ai.temperatureOverrideDesc':
    'Niższa = bardziej deterministyczna. Pozostaw niezaznaczone, aby użyć domyślnej wartości dostawcy.',
  'settings.ai.modelVision': 'Obsługuje wizję (wejście obrazu)',
  'settings.ai.modelVisionDesc':
    'Włącz, jeśli ten model akceptuje obrazy. Pozwala dołączać obrazy w czacie, gdy ten model jest wybrany.',
  'settings.ai.testFailed': 'Test nie powiódł się',
  'settings.ai.testingModel': 'Testowanie modelu...',
  'settings.ai.modelResponse': 'Odpowiedź modelu',
  'settings.ai.providerWithValue': 'Dostawca: {value}',
  'settings.ai.noneDash': '—',
  'settings.ai.promptHelloWorld': 'Prompt: Witaj świecie',
  'settings.ai.startedAt': 'Uruchomiono: {value}',
  'settings.ai.waitingForModelResponse': 'Oczekiwanie na odpowiedź wybranego modelu...',
  'settings.ai.response': 'Odpowiedź',
  'settings.ai.testing': 'Testowanie...',
  'settings.ai.test': 'Testuj',
  'settings.ai.slugMissingError': 'Wpisz nazwę dostawcy, aby wygenerować slug.',
  'settings.ai.slugInUseError': 'Ta nazwa dostawcy jest już używana.',
  'settings.ai.slugReservedError': 'Wybierz inną nazwę dostawcy.',
  'settings.ai.providerNamePlaceholder': 'Mój dostawca',
  'settings.ai.slugLabel': 'Slug identyfikatora:',
  'settings.ai.openAiUrlLabel': 'URL OpenAI',
  'settings.ai.openAiUrlPlaceholder': 'https://api.openai.com/v1',
  'settings.ai.keepExistingKeyPlaceholder': 'Pozostaw puste, aby zachować istniejący klucz',
  'settings.ai.reindexingMemory': 'Ponowne indeksowanie pamięci',
  'settings.ai.reindexingMemoryMessage':
    'Embeddingi są przetwarzane ponownie. Elementy pamięci ({pending}) są ponownie embeddingowane w ramach bieżącego modelu — semantyczne przywoływanie jest ograniczone do czasu zakończenia. Wyszukiwanie słów kluczowych nadal działa, a ponowne embeddingowanie będzie kontynuowane w tle, jeśli zamkniesz ten widok.',
  'settings.ai.signInWithOpenRouter': 'Zaloguj się z OpenRouter',
  'settings.ai.weekBudget': 'Budżet tygodniowy',
  'settings.ai.cycleRemaining': 'Pozostało w cyklu',
  'settings.ai.cycleTotalSpend': 'Łączne wydatki w cyklu',
  'settings.ai.avgSpendRow': 'Średni wiersz wydatków',
  'settings.ai.backgroundApiReads': 'Odczyty API w tle',
  'settings.ai.backgroundWakeups': 'Wybudzenia w tle',
  'settings.ai.budgetMath': 'Obliczenia budżetu',
  'settings.ai.rowsLeft': 'Pozostałe wiersze',
  'settings.ai.rowsPerFullWeekBudget': 'Wiersze na pełny budżet tygodniowy',
  'settings.ai.sampleBurnRate': 'Przykładowe tempo zużycia',
  'settings.ai.projectedEmpty': 'Prognozowane wyczerpanie',
  'settings.ai.apiReadsPerDollarRemaining': 'Pozostałe odczyty API na $',
  'settings.ai.loopCallBudget': 'Budżet wywołań pętli',
  'settings.ai.heartbeatTicks': 'Takty heartbeat',
  'settings.ai.calendarPlannerCalls': 'Wywołania planera kalendarza',
  'settings.ai.calendarFanoutCap': 'Limit rozsyłania kalendarza',
  'settings.ai.subconsciousModelCalls': 'Wywołania modelu podświadomości',
  'settings.ai.composioSyncScans': 'Skanowania synchronizacji Composio',
  'settings.ai.totalBackgroundApiReadBudget': 'Łączny budżet odczytów API w tle',
  'settings.ai.memoryWorkerPolls': 'Odpytywania procesu pamięci',
  'settings.ai.defaultProviderName': 'OpenHuman',
  'settings.ai.routing.managed': 'Zarządzane',
  'settings.ai.routing.managedAlwaysOn': 'Always on',
  'settings.ai.routing.managedHint':
    'Managed is always available as a fallback. To use your own model, choose a routing mode below.',
  'settings.ai.routing.managedDesc':
    'OpenHuman uruchomi całą inferencję w chmurze, wybierze najlepszy model dla zadania, zoptymalizuje koszty i zachowa najbezpieczniejsze domyślne ustawienia routingu.',
  'settings.ai.routing.managedMsg':
    'OpenHuman obsłuży całą inferencję dla każdego obciążenia i automatycznie wybierze najlepszą ścieżkę pod kątem kosztu, jakości i bezpieczeństwa.',
  'settings.ai.routing.useYourOwn': 'Użyj własnych modeli',
  'settings.ai.routing.useYourOwnDesc':
    'Wybierz jednego dostawcę i model, a następnie kieruj każde obciążenie przez niego. To proste, ale może być nieefektywne, ponieważ lekka i ciężka inferencja współdzielą tę samą ścieżkę.',
  'settings.ai.routing.advanced': 'Zaawansowane',
  'settings.ai.routing.advancedDesc':
    'Wybierz różne modele dla różnych zadań. To najlepsza opcja dla ścisłej optymalizacji kosztów i największej kontroli.',
  'settings.ai.routing.customDesc':
    'Precyzyjny routing zapewnia najlepszą optymalizację kosztów i największą kontrolę. Użyj poniższych wierszy, aby zdecydować, które obciążenia pozostają zarządzane, które używają wspólnej domyślnej ścieżki, a które są przypięte do konkretnego modelu.',
  'settings.ai.routing.chatAndConversations': 'Czat i rozmowy',
  'settings.ai.routing.chatDesc':
    'Modele używane podczas bezpośredniej interakcji z użytkownikiem, odpowiedzi, rozumowania, pętli agentów i pomocy w kodowaniu.',
  'settings.ai.routing.backgroundTasks': 'Zadania w tle',
  'settings.ai.routing.bgTasksDesc':
    'Modele używane poza głównym przepływem rozmowy do podsumowań, heartbeat, uczenia i oceny podświadomości.',
  'settings.ai.routing.workload.chat.label': 'Chat',
  'settings.ai.routing.workload.chat.description':
    'Direct conversational back-and-forth — “Quick” mode in Conversations',
  'settings.ai.routing.workload.chat.hint':
    'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
  'settings.ai.routing.workload.reasoning.label': 'Reasoning',
  'settings.ai.routing.workload.reasoning.description':
    'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
  'settings.ai.routing.workload.reasoning.hint':
    'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
  'settings.ai.routing.workload.agentic.label': 'Agentic',
  'settings.ai.routing.workload.agentic.description':
    'Sub-agent runners, tool loops, GIF decisions',
  'settings.ai.routing.workload.agentic.hint':
    'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
  'settings.ai.routing.workload.coding.label': 'Coding',
  'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
  'settings.ai.routing.workload.coding.hint':
    'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
  'settings.ai.routing.workload.vision.label': 'Vision',
  'settings.ai.routing.workload.vision.description':
    'Image understanding for the vision sub-agent — always multimodal',
  'settings.ai.routing.workload.vision.hint':
    'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
  'settings.ai.routing.workload.memory.label': 'Memory summarization',
  'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
  'settings.ai.routing.workload.memory.hint':
    'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
  'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
  'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
  'settings.ai.routing.workload.heartbeat.hint':
    'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
  'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
  'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
  'settings.ai.routing.workload.learning.hint':
    'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
  'settings.ai.routing.workload.subconscious.label': 'Subconscious',
  'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
  'settings.ai.routing.workload.subconscious.hint':
    'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
  'settings.ai.routing.addCustomProvider': 'Dodaj własnego dostawcę',
  'settings.ai.globalModel.title': 'Wybierz jeden model do wszystkiego',
  'settings.ai.globalModel.desc':
    'To kieruje całą inferencję przez jeden model. Jest prostsze, ale może być nieefektywne pod kątem kosztu i jakości, ponieważ lekkie i ciężkie zadania użyją tej samej ścieżki.',
  'settings.ai.globalModel.noProviders':
    'Najpierw dodaj lub połącz dostawcę. Potem możesz tutaj kierować każde obciążenie przez jeden model.',
  'settings.ai.globalModel.provider': 'Dostawca',
  'settings.ai.globalModel.model': 'Model AI',
  'settings.ai.globalModel.loadingModels': 'Ładowanie modeli…',
  'settings.ai.globalModel.enterModelId': 'Wpisz ID modelu',
  'settings.ai.globalModel.appliesToAll':
    'Stosuje tego samego dostawcę i model do czatu, rozumowania, kodowania, pamięci, heartbeat, uczenia i podświadomości. Embeddingi są konfigurowane osobno. Zmiany zapiszą się po kliknięciu zapisz.',
  'settings.ai.globalModel.saving': 'Zapisywanie…',
  'settings.ai.globalModel.saved': 'Zapisano',
  'settings.ai.workload.noModel': 'Nie wybrano modelu',
  'settings.ai.workload.changeModel': 'Zmień model',
  'settings.ai.workload.chooseModel': 'Wybierz model',
  'settings.ai.provider.ollama': 'Ollama',
  'settings.autocomplete.appFilter.acceptSuggestion': 'Akceptuj sugestię',
  'settings.autocomplete.appFilter.app': 'Aplikacja',
  'settings.autocomplete.appFilter.currentSuggestion': 'Bieżąca sugestia',
  'settings.autocomplete.appFilter.contextOverride': 'Nadpisanie kontekstu (opcjonalne)',
  'settings.autocomplete.appFilter.debounce': 'Opóźnienie',
  'settings.autocomplete.appFilter.debugFocus': 'Debug fokusa',
  'settings.autocomplete.appFilter.enabled': 'Włączone',
  'settings.autocomplete.appFilter.getSuggestion': 'Pobierz sugestię',
  'settings.autocomplete.appFilter.lastError': 'Ostatni błąd',
  'settings.autocomplete.appFilter.liveLogs': 'Dziennik na żywo',
  'settings.autocomplete.appFilter.model': 'Model',
  'settings.autocomplete.appFilter.noLogs': ') :',
  'settings.autocomplete.appFilter.phase': 'Faza',
  'settings.autocomplete.appFilter.platformSupported': 'Platforma obsługiwana',
  'settings.autocomplete.appFilter.refreshStatus': 'Odświeżanie…',
  'settings.autocomplete.appFilter.refreshing': 'Odświeżanie…',
  'settings.autocomplete.appFilter.running': 'Działa',
  'settings.autocomplete.appFilter.runtime': 'Środowisko',
  'settings.autocomplete.appFilter.test': 'Testuj',
  'settings.autocomplete.completionStyle.acceptedCompletion':
    'Zapisano {count} zaakceptowane uzupełnienie — używane do personalizacji przyszłych sugestii.',
  'settings.autocomplete.completionStyle.acceptedCompletions':
    'Zapisano {count} zaakceptowanych uzupełnień — używane do personalizacji przyszłych sugestii.',
  'settings.autocomplete.completionStyle.clearHistory': 'Czyszczenie…',
  'settings.autocomplete.completionStyle.clearing': 'Czyszczenie…',
  'settings.autocomplete.completionStyle.debounce': 'Opóźnienie debounce (ms)',
  'settings.autocomplete.completionStyle.enabled': 'Włączone',
  'settings.autocomplete.completionStyle.maxChars': 'Maks. znaków',
  'settings.autocomplete.completionStyle.noHistory':
    'Brak zaakceptowanych uzupełnień. Akceptuj sugestie Tabem, aby rozpocząć personalizację.',
  'settings.autocomplete.completionStyle.overlayTtl': 'TTL nakładki (ms)',
  'settings.autocomplete.completionStyle.personalizationHistory': 'Historia personalizacji',
  'settings.autocomplete.completionStyle.styleExamples': 'Przykłady stylu (jeden w wierszu)',
  'settings.autocomplete.completionStyle.styleInstructions': 'Instrukcje stylu',
  'settings.autocomplete.debug.acceptedPrefix': 'Zaakceptowano: {value}',
  'settings.autocomplete.debug.acceptFailed': 'Nie udało się zaakceptować sugestii',
  'settings.autocomplete.debug.alreadyRunning': 'Autouzupełnianie już działa.',
  'settings.autocomplete.debug.clearHistoryFailed': 'Nie udało się wyczyścić historii',
  'settings.autocomplete.debug.didNotStart': 'Autouzupełnianie nie wystartowało.',
  'settings.autocomplete.debug.disabledInSettings':
    'Autouzupełnianie jest wyłączone w ustawieniach. Włącz je i zapisz najpierw.',
  'settings.autocomplete.debug.fetchSuggestionFailed': 'Nie udało się pobrać bieżącej sugestii',
  'settings.autocomplete.debug.inspectFocusedElementFailed':
    'Nie udało się zbadać aktywnego elementu',
  'settings.autocomplete.debug.loadSettingsFailed':
    'Nie udało się wczytać ustawień autouzupełniania',
  'settings.autocomplete.debug.noSuggestionApplied': 'Nie zastosowano sugestii.',
  'settings.autocomplete.debug.noSuggestionReturned': 'Nie zwrócono sugestii.',
  'settings.autocomplete.debug.refreshStatusFailed':
    'Nie udało się odświeżyć statusu autouzupełniania',
  'settings.autocomplete.debug.saveAdvancedSettingsFailed':
    'Nie udało się zapisać ustawień zaawansowanych',
  'settings.autocomplete.debug.startFailed': 'Nie udało się uruchomić autouzupełniania',
  'settings.autocomplete.debug.stopFailed': 'Nie udało się zatrzymać autouzupełniania',
  'settings.autocomplete.debug.suggestionPrefix': 'Sugestia: {value}',
  'settings.autocomplete.shared.none': 'Brak',
  'settings.autocomplete.shared.notApplicable': 'nd.',
  'settings.autocomplete.shared.unknown': 'Nieznane',
  'settings.billing.autoRecharge.addAmount': 'Dodaj tę kwotę',
  'settings.billing.autoRecharge.addCard': 'Dodaj kartę',
  'settings.billing.autoRecharge.amountHint': 'Minimalna kwota doładowania to równowartość 5 USD.',
  'settings.billing.autoRecharge.defaultCard': 'Karta domyślna',
  'settings.billing.autoRecharge.lastRechargeFailed': 'Ostatnie doładowanie nie powiodło się',
  'settings.billing.autoRecharge.lastRecharged': 'Ostatnio doładowano',
  'settings.billing.autoRecharge.expires': 'Wygasa {date}',
  'settings.billing.autoRecharge.noCards': 'Brak kart',
  'settings.billing.autoRecharge.paymentMethods': 'Metody płatności',
  'settings.billing.autoRecharge.rechargeInProgress': 'Doładowanie w toku',
  'settings.billing.autoRecharge.spentThisWeek': 'Wykorzystano ${spent} z ${limit} w tym tygodniu',
  'settings.billing.autoRecharge.rechargeWhen': 'Doładuj, gdy saldo spadnie poniżej',
  'settings.billing.autoRecharge.saveSettings': 'Zapisywanie…',
  'settings.billing.autoRecharge.saving': 'Zapisywanie…',
  'settings.billing.autoRecharge.setDefault': ':',
  'settings.billing.autoRecharge.subtitle':
    'Automatycznie doładowuj kredyty, gdy saldo spadnie poniżej progu.',
  'settings.billing.autoRecharge.title': 'Włącz automatyczne doładowanie',
  'settings.billing.autoRecharge.toggleAriaLabel': 'Przełącz automatyczne doładowanie',
  'settings.billing.autoRecharge.weeklyLimit': 'Tygodniowy limit wydatków',
  'settings.billing.history.desc': 'Twoje ostatnie transakcje i rozliczenia.',
  'settings.billing.history.empty': 'Brak historii do wyświetlenia.',
  'settings.billing.history.openPortal': 'Otwórz portal',
  'settings.billing.history.posted': 'Zaksięgowano',
  'settings.billing.history.title': 'Historia rozliczeń',
  'settings.billing.inferenceBudget.cycleEnds': 'Koniec cyklu',
  'settings.billing.inferenceBudget.exhausted': 'Wyczerpane',
  'settings.billing.inferenceBudget.loadError': 'Błąd wczytywania',
  'settings.billing.inferenceBudget.noBudgetDesc':
    'Brak aktywnego budżetu cyklicznego. Wykup plan, aby zacząć.',
  'settings.billing.inferenceBudget.noRecurringBudget': 'Brak budżetu cyklicznego',
  'settings.billing.inferenceBudget.noRecurringPlanBudget': 'Brak cyklicznego budżetu planu',
  'settings.billing.inferenceBudget.noRecurringWeeklyDesc':
    'Twój obecny plan nie zawiera cyklicznego tygodniowego budżetu inferencji. Zużycie jest opłacane z dostępnych kredytów.',
  'settings.billing.inferenceBudget.remaining': 'Pozostało',
  'settings.billing.inferenceBudget.remainingSummary': 'Pozostało {remaining} / {budget}',
  'settings.billing.inferenceBudget.spentThisCycle': 'Wydano {amount} w tym cyklu',
  'settings.billing.inferenceBudget.cycleEndsOn': 'Cykl kończy się {date}',
  'settings.billing.inferenceBudget.exhaustedDesc':
    'Subskrypcyjne zużycie zostało wyczerpane. Doładuj kredyty, aby korzystać dalej bez czekania na nowy cykl.',
  'settings.billing.inferenceBudget.discountVsPayg':
    'O {pct}% taniej za wywołanie niż w pay-as-you-go.',
  'settings.billing.inferenceBudget.cycleSpend': 'Wydatki w cyklu',
  'settings.billing.inferenceBudget.totalAmount': '{amount} łącznie',
  'settings.billing.inferenceBudget.inference': 'Inferencja',
  'settings.billing.inferenceBudget.integrations': 'Integracje',
  'settings.billing.inferenceBudget.calls': '{count} wywołań',
  'settings.billing.inferenceBudget.dailySpend': 'Wydatki dzienne',
  'settings.billing.inferenceBudget.dailySpendPoint': '{date}: {amount}',
  'settings.billing.inferenceBudget.topModels': 'Najczęstsze modele',
  'settings.billing.inferenceBudget.noInferenceUsage': 'Brak zużycia inferencji w tym cyklu.',
  'settings.billing.inferenceBudget.topIntegrations': 'Najczęstsze integracje',
  'settings.billing.inferenceBudget.noIntegrationUsage': 'Brak zużycia integracji w tym cyklu.',
  'settings.billing.inferenceBudget.tenHourCap': 'Limit 10-godzinny',
  'settings.billing.inferenceBudget.title': 'Budżet inferencji',
  'settings.billing.inferenceBudget.unableToLoad': 'Nie udało się załadować danych zużycia',
  'settings.billing.inferenceBudget.notAvailable': 'n/d',
  'settings.billing.payAsYouGo.available': 'Dostępne',
  'settings.billing.payAsYouGo.chargeCustomAmount': 'Otwieranie…',
  'settings.billing.payAsYouGo.chooseTopUpDesc': 'Wybierz kwotę doładowania lub wprowadź własną.',
  'settings.billing.payAsYouGo.chooseTopUpTitle': 'Wybierz kwotę doładowania',
  'settings.billing.payAsYouGo.creditBalanceDesc':
    'Twoje aktualne saldo kredytów dostępne do użycia.',
  'settings.billing.payAsYouGo.creditBalanceTitle': 'Saldo kredytów',
  'settings.billing.payAsYouGo.customAmount': 'Własna kwota',
  'settings.billing.payAsYouGo.enterAmount': 'Wprowadź kwotę',
  'settings.billing.payAsYouGo.opening': 'Otwieranie',
  'settings.billing.payAsYouGo.promotionalCredits': 'Kredyty promocyjne',
  'settings.billing.payAsYouGo.topUpBalance': 'Doładuj saldo',
  'settings.billing.payAsYouGo.topUpCredits': 'Doładuj kredyty',
  'settings.billing.payAsYouGo.unableToLoad': 'Nie można wczytać salda.',
  'settings.billing.subscription.annual': 'Roczna',
  'settings.billing.subscription.billedAnnually': 'Rozliczane rocznie',
  'settings.billing.subscription.chooseSubtitle': 'Wybierz plan dopasowany do Twoich potrzeb.',
  'settings.billing.subscription.chooseTitle': 'Wybierz plan',
  'settings.billing.subscription.cryptoDesc':
    'Możesz zapłacić również w kryptowalucie — skontaktuj się z nami.',
  'settings.billing.subscription.cryptoQuestion': 'Wolisz zapłacić kryptowalutą?',
  'settings.billing.subscription.current': 'Bieżący',
  'settings.billing.subscription.currentPlan': 'Bieżący plan',
  'settings.billing.subscription.monthly': 'Miesięczna',
  'settings.billing.subscription.paymentConfirmed': 'Płatność potwierdzona',
  'settings.billing.subscription.perMonth': 'miesięcznie',
  'settings.billing.subscription.popular': 'Popularne',
  'settings.billing.subscription.save': '{pct}',
  'settings.billing.subscription.upgrade': 'Podnieś plan',
  'settings.billing.subscription.waiting': 'Oczekiwanie',
  'settings.billing.subscription.waitingPayment': 'Oczekiwanie na płatność',
  'settings.composio.apiKeyDesc':
    'Klucz API Composio jest obecnie przechowywany na tym urządzeniu.',
  'settings.composio.apiKeyExamplePlaceholder': 'ck_live_xxxxxxxxxxxxxxxx',
  'settings.composio.apiKeyLabel': 'Klucz API Composio',
  'settings.composio.apiKeyStored': 'Klucz API zapisany',
  'settings.composio.apiKeyStoredPlaceholder': '••••••••••••••••',
  'settings.composio.clearedToBackend': 'Przełączono na tryb backendowy',
  'settings.composio.confirmItem1': 'Konto w app.composio.dev z kluczem API',
  'settings.composio.confirmItem2':
    'Ponowne powiązanie każdej integracji przez Twoje osobiste konto Composio',
  'settings.composio.confirmItem3':
    'Uwaga: wyzwalacze Composio (webhooks w czasie rzeczywistym) nie działają jeszcze w trybie bezpośrednim — tylko synchroniczne wywołania narzędzi',
  'settings.composio.confirmNeedItems': 'Będziesz potrzebować:',
  'settings.composio.confirmSwitch': 'Rozumiem, przełącz na tryb bezpośredni',
  'settings.composio.confirmTitle': '⚠️ Przełączanie na tryb bezpośredni',
  'settings.composio.confirmWarning':
    'Twoje istniejące integracje (Gmail, Slack, GitHub itp. połączone przez OpenHuman) nie będą widoczne — żyją w tenant Composio zarządzanym przez OpenHuman.',
  'settings.composio.intro':
    'Composio integruje 250+ zewnętrznych aplikacji jako narzędzia, z których może korzystać Twój agent. Wybierz, jak kierować te wywołania.',
  'settings.composio.title': 'Composio',
  'settings.composio.modeDirect': 'Bezpośredni (przynieś własny klucz API)',
  'settings.composio.modeDirectDesc':
    'Wywołania trafiają bezpośrednio do backend.composio.dev. Suwerennie / przyjazne offline. Wywołania narzędzi działają synchronicznie; webhooks wyzwalaczy w czasie rzeczywistym nie są jeszcze trasowane w trybie bezpośrednim.',
  'settings.composio.modeManaged': 'Zarządzany (OpenHuman robi to za Ciebie)',
  'settings.composio.modeManagedDesc':
    'OpenHuman pośredniczy w wywołaniach narzędzi przez nasz backend (zalecane). Uwierzytelnianie jest pośredniczone; nie musisz wklejać klucza API Composio. Webhooks są w pełni trasowane.',
  'settings.composio.routingMode': 'Tryb trasowania',
  'settings.composio.saveErrorNoKey':
    'Nie udało się zapisać. Tryb bezpośredni wymaga niepustego klucza API.',
  'settings.composio.saving': 'Zapisywanie…',
  'settings.composio.switching': 'Przełączanie…',
  'settings.companion.title': 'Towarzysz komputerowy',
  'settings.companion.session': 'Sesja',
  'settings.companion.activeLabel': 'Aktywna',
  'settings.companion.inactiveStatus': 'Nieaktywna',
  'settings.companion.stopping': 'Zatrzymywanie…',
  'settings.companion.stopSession': 'Zatrzymaj sesję',
  'settings.companion.starting': 'Uruchamianie…',
  'settings.companion.startSession': 'Uruchom sesję',
  'settings.companion.sessionId': 'ID sesji',
  'settings.companion.turns': 'Tury',
  'settings.companion.remaining': 'Pozostało',
  'settings.companion.configuration': 'Konfiguracja',
  'settings.companion.hotkey': 'Skrót klawiszowy',
  'settings.companion.activationMode': 'Tryb aktywacji',
  'settings.companion.sessionTtl': 'TTL sesji',
  'settings.companion.screenCapture': 'Przechwytywanie ekranu',
  'settings.companion.appContext': 'Kontekst aplikacji',
  'settings.cron.jobs.commandRequired': 'Polecenie jest wymagane dla zadań typu shell',
  'settings.cron.jobs.createJob': 'Nowe zaplanowane zadanie',
  'settings.cron.jobs.created': 'Utworzono zadanie',
  'settings.cron.jobs.custom': 'Niestandardowe',
  'settings.cron.jobs.desc': 'Zadania cykliczne uruchamiane przez harmonogram rdzenia.',
  'settings.cron.jobs.edit': 'Edytuj',
  'settings.cron.jobs.editJob': 'Edytuj zaplanowane zadanie',
  'settings.cron.jobs.empty': 'Nie znaleziono zadań cron rdzenia.',
  'settings.cron.jobs.errorCreate': 'Nie udało się utworzyć zadania cron: {message}',
  'settings.cron.jobs.errorLoadList': 'Nie udało się załadować zadań cron rdzenia: {message}',
  'settings.cron.jobs.errorLoadRuns': 'Nie udało się załadować historii uruchomień: {message}',
  'settings.cron.jobs.errorRemove': 'Nie udało się usunąć zadania cron rdzenia: {message}',
  'settings.cron.jobs.errorRun': 'Nie udało się uruchomić zadania cron rdzenia: {message}',
  'settings.cron.jobs.errorToggle': 'Nie udało się zaktualizować zadania cron rdzenia: {message}',
  'settings.cron.jobs.errorUpdate': 'Nie udało się zaktualizować zadania cron: {message}',
  'settings.cron.jobs.formAtLabel': 'Uruchom o',
  'settings.cron.jobs.formCancel': 'Anuluj',
  'settings.cron.jobs.formCommand': 'Polecenie shell',
  'settings.cron.jobs.formCommandPlaceholder': 'np. curl https://example.com/health',
  'settings.cron.jobs.formCreate': 'Utwórz',
  'settings.cron.jobs.formCronCustom': 'Wyrażenie niestandardowe',
  'settings.cron.jobs.formCronCustomPlaceholder': 'np. */30 * * * *',
  'settings.cron.jobs.formCronPreset': 'Ustawienie wstępne',
  'settings.cron.jobs.formCronPreview': 'Uruchomienia: {preview}',
  'settings.cron.jobs.formDeleteAfterRun': 'Usuń po pierwszym uruchomieniu',
  'settings.cron.jobs.formDelivery': 'Tryb dostarczania',
  'settings.cron.jobs.formDeliveryNone': 'Brak (tylko wynik)',
  'settings.cron.jobs.formDeliveryProactive': 'Proaktywny (powiadomienie push)',
  'settings.cron.jobs.formError': 'Nie udało się zapisać zadania',
  'settings.cron.jobs.formEveryLabel': 'Interwał (milisekundy)',
  'settings.cron.jobs.formEveryPlaceholder': 'np. 3600000',
  'settings.cron.jobs.formJobType': 'Typ zadania',
  'settings.cron.jobs.formJobTypeAgent': 'Agent (zapytanie AI)',
  'settings.cron.jobs.formJobTypeShell': 'Polecenie shell',
  'settings.cron.jobs.formName': 'Nazwa zadania',
  'settings.cron.jobs.formNamePlaceholder': 'np. daily-report, cleanup-task',
  'settings.cron.jobs.formPrompt': 'Zapytanie agenta',
  'settings.cron.jobs.formPromptPlaceholder': 'Co agent ma robić przy każdym uruchomieniu?',
  'settings.cron.jobs.formPromptRequired': 'Zapytanie jest wymagane dla zadań agenta',
  'settings.cron.jobs.formSave': 'Zapisz',
  'settings.cron.jobs.formSaving': 'Zapisywanie…',
  'settings.cron.jobs.formScheduleAt': 'Jednorazowe (uruchom o)',
  'settings.cron.jobs.formScheduleCron': 'Cykliczne (cron)',
  'settings.cron.jobs.formScheduleEvery': 'Interwał (co N ms)',
  'settings.cron.jobs.formScheduleRequired': 'Harmonogram jest wymagany',
  'settings.cron.jobs.formScheduleType': 'Typ harmonogramu',
  'settings.cron.jobs.formSessionIsolated': 'Izolowana (zalecane)',
  'settings.cron.jobs.formSessionMain': 'Sesja główna',
  'settings.cron.jobs.formSessionTarget': 'Docelowa sesja',
  'settings.cron.jobs.lastStatus': 'Ostatni status',
  'settings.cron.jobs.loading': 'Wczytywanie zadań cron...',
  'settings.cron.jobs.loadingRuns': 'Wczytywanie uruchomień',
  'settings.cron.jobs.nextRun': 'Następne uruchomienie',
  'settings.cron.jobs.pause': 'Wstrzymaj',
  'settings.cron.jobs.paused': 'Wstrzymane',
  'settings.cron.jobs.recentRuns': 'Ostatnie uruchomienia',
  'settings.cron.jobs.removing': 'Usuwanie',
  'settings.cron.jobs.resume': 'Wznów',
  'settings.cron.jobs.runningNow': 'Uruchamiane teraz',
  'settings.cron.jobs.saving': 'Zapisywanie…',
  'settings.cron.jobs.schedule': 'Harmonogram',
  'settings.cron.jobs.title': 'Zadania cron rdzenia',
  'settings.cron.jobs.updated': 'Zaktualizowano zadanie',
  'settings.cron.jobs.viewRuns': 'Zobacz uruchomienia',
  'settings.cron.schedule.every2hours': 'Co 2 godziny',
  'settings.cron.schedule.every30min': 'Co 30 minut',
  'settings.cron.schedule.every6hours': 'Co 6 godzin',
  'settings.cron.schedule.everyHour': 'Co godzinę',
  'settings.cron.schedule.onceDaily': 'Raz dziennie (9:00)',
  'settings.localModel.deviceCapability.active': 'Aktywne',
  'settings.localModel.deviceCapability.appliedTier': 'Zastosowany poziom',
  'settings.localModel.deviceCapability.applying': 'Stosowanie',
  'settings.localModel.deviceCapability.cores': '{count}',
  'settings.localModel.deviceCapability.couldNotLoadPresets': 'Nie udało się wczytać presetów',
  'settings.localModel.deviceCapability.cpu': 'CPU',
  'settings.localModel.deviceCapability.customModelIds': 'Własne ID modeli',
  'settings.localModel.deviceCapability.detected': 'Wykryto',
  'settings.localModel.deviceCapability.disabled': 'Wyłączone',
  'settings.localModel.deviceCapability.disabledDesc':
    'Lokalne AI wyłączone — używana jest chmura jako rezerwa.',
  'settings.localModel.deviceCapability.downloadingModels': '(pobieranie modeli)',
  'settings.localModel.deviceCapability.downloadingSetupDesc':
    'Pobieranie instalatora OllamaSetup (~2 GB) i rozpakowywanie. Pierwsza instalacja może potrwać minutę.',
  'settings.localModel.deviceCapability.failedToApplyPreset': 'Nie udało się zastosować presetu',
  'settings.localModel.deviceCapability.gpu': 'GPU',
  'settings.localModel.deviceCapability.installFailed': 'Instalacja Ollama nie powiodła się',
  'settings.localModel.deviceCapability.installFailedDesc':
    'Instalator zakończył pracę, zanim Ollama była gotowa. Kliknij ponów, aby spróbować jeszcze raz, lub zainstaluj ręcznie z ollama.com.',
  'settings.localModel.deviceCapability.installFirst': 'Najpierw uruchom Ollamę.',
  'settings.localModel.deviceCapability.installFirstDesc':
    'Lokalne poziomy zależą od zewnętrznie zarządzanego endpointu Ollama. Uruchom go samodzielnie, pobierz potrzebne modele i pozostań przy „Wyłączone (rezerwa chmurowa)”, dopóki środowisko nie będzie osiągalne.',
  'settings.localModel.deviceCapability.installOllamaFirst':
    'Najpierw uruchom Ollamę, aby użyć tego poziomu',
  'settings.localModel.deviceCapability.installingOllama': 'Instalowanie Ollama',
  'settings.localModel.deviceCapability.loadingDeviceInfo': 'Wczytywanie informacji o urządzeniu',
  'settings.localModel.deviceCapability.localAiDisabled':
    'Lokalne AI wyłączone — używana jest rezerwa chmurowa.',
  'settings.localModel.deviceCapability.modelTier': 'Poziom modelu',
  'settings.localModel.deviceCapability.needsOllama': 'Wymaga Ollama',
  'settings.localModel.deviceCapability.notDetected': 'Nie wykryto',
  'settings.localModel.deviceCapability.disabledLowercase': 'wyłączone',
  'settings.localModel.deviceCapability.presetDetails':
    'Czat: {chatModel} · Wizja: {visionModel} · Docelowy RAM: {targetRamGb} GB',
  'settings.localModel.deviceCapability.ram': 'RAM',
  'settings.localModel.deviceCapability.recommended': 'Zalecane',
  'settings.localModel.deviceCapability.retryInstall': 'Ponawianie…',
  'settings.localModel.deviceCapability.retrying': 'Ponawianie…',
  'settings.localModel.deviceCapability.starting': 'Uruchamianie…',
  'settings.localModel.download.audioPathPlaceholder': 'Bezwzględna ścieżka do pliku audio',
  'settings.localModel.download.capabilityChat': 'Czat',
  'settings.localModel.download.capabilityEmbedding': 'Embeddingi',
  'settings.localModel.download.capabilityAssets': 'Zasoby możliwości',
  'settings.localModel.download.capabilityStt': 'STT',
  'settings.localModel.download.capabilityTts': 'TTS',
  'settings.localModel.download.capabilityVision': 'Wizja',
  'settings.localModel.download.downloading': 'Pobieranie...',
  'settings.localModel.download.embeddingDimensions': 'Wymiary: {dimensions}',
  'settings.localModel.download.embeddingModel': 'Model embeddingu: {modelId}',
  'settings.localModel.download.embeddingPlaceholder': 'Jeden ciąg wejściowy w wierszu...',
  'settings.localModel.download.embeddingVectors': 'Wektory: {count}',
  'settings.localModel.download.noThinkMode': 'Tryb bez myślenia',
  'settings.localModel.download.notAvailable': 'nd.',
  'settings.localModel.download.promptPlaceholder':
    'Wpisz dowolny prompt i uruchom go na modelu lokalnym...',
  'settings.localModel.download.quantizationPref': 'Preferencja kwantyzacji',
  'settings.localModel.download.runEmbeddingTest': 'Uruchamianie...',
  'settings.localModel.download.runPromptTest': 'Uruchom test promptu',
  'settings.localModel.download.runSummaryTest': 'Uruchom test podsumowania',
  'settings.localModel.download.runTranscriptionTest': 'Uruchamianie...',
  'settings.localModel.download.runTtsTest': 'Uruchamianie...',
  'settings.localModel.download.runVisionTest': 'Uruchamianie...',
  'settings.localModel.download.running': 'Uruchamianie...',
  'settings.localModel.download.runningPrompt': 'Uruchamianie promptu',
  'settings.localModel.download.summaryHelper':
    'Wywołuje `openhuman.inference_summarize` przez rdzeń Rust',
  'settings.localModel.download.summarizePlaceholder':
    'Wklej tekst do podsumowania modelem lokalnym...',
  'settings.localModel.download.testCustomPrompt': 'Testuj własny prompt',
  'settings.localModel.download.testEmbeddings': 'Testuj embeddingi',
  'settings.localModel.download.testSummarization': 'Testuj podsumowywanie',
  'settings.localModel.download.testVisionPrompt': 'Testuj prompt wizji',
  'settings.localModel.download.testVoiceInput': 'Testuj wejście głosowe (STT)',
  'settings.localModel.download.testVoiceOutput': 'Testuj wyjście głosowe (TTS)',
  'settings.localModel.download.transcript': 'Transkrypcja:',
  'settings.localModel.download.ttsOutput': 'Wyjście: {outputPath}',
  'settings.localModel.download.ttsOutputPlaceholder': 'Opcjonalna ścieżka wyjściowa WAV',
  'settings.localModel.download.ttsPlaceholder': 'Wprowadź tekst do syntezy...',
  'settings.localModel.download.ttsVoice': 'Głos: {voiceId}',
  'settings.localModel.download.visionImagePlaceholder':
    'Jedno odniesienie do obrazu w wierszu (data URI, URL lub marker lokalnej ścieżki)',
  'settings.localModel.download.visionPromptPlaceholder': 'Wprowadź prompt dla modelu wizji...',
  'settings.localModel.status.allChecksPassed': 'Wszystkie testy zaliczone',
  'settings.localModel.status.artifact': 'Artefakt',
  'settings.localModel.status.backend': 'Zaplecze',
  'settings.localModel.status.binary': 'Plik binarny',
  'settings.localModel.status.bootstrapResume': 'Inicjalizacja / wznowienie',
  'settings.localModel.status.checking': 'Sprawdzanie...',
  'settings.localModel.status.checkingOllama': 'Sprawdzanie Ollama',
  'settings.localModel.status.contextBelowMinimumBadge':
    '{contextLength} ctx - poniżej minimum {required}',
  'settings.localModel.status.contextBelowMinimumTitle':
    'Odrzucone: okno kontekstu {contextLength} tokenów jest poniżej minimum {required} tokenów wymaganego przez warstwę pamięci. Cichy obcięcie kontekstu uszkodziłoby recall.',
  'settings.localModel.status.contextOkBadge': '{contextLength} ctx ✓',
  'settings.localModel.status.contextOkTitle':
    'Okno kontekstu {contextLength} tokenów spełnia minimum warstwy pamięci wynoszące {required} tokenów.',
  'settings.localModel.status.contextUnknownBadge': 'ctx nieznane',
  'settings.localModel.status.contextUnknownTitle':
    'Okno kontekstu nieznane; nie udało się potwierdzić, że spełnia minimum {required} tokenów warstwy pamięci.',
  'settings.localModel.status.customLocation': 'Własna lokalizacja',
  'settings.localModel.status.customLocationDesc': 'Wskaż ręcznie ścieżkę do binarki Ollama.',
  'settings.localModel.status.diagnosticsHint':
    'Kliknij „Uruchom diagnostykę”, aby zweryfikować, że Ollama działa i modele są zainstalowane.',
  'settings.localModel.status.downloadingUnknown': 'Pobieranie (rozmiar nieznany)',
  'settings.localModel.status.eta': 'Pozostały czas',
  'settings.localModel.status.expectedModels': 'Oczekiwane modele',
  'settings.localModel.status.expectedChat': 'Czat: {model}',
  'settings.localModel.status.expectedEmbedding': 'Embeddingi: {model}',
  'settings.localModel.status.expectedVision': 'Wizja: {model}',
  'settings.localModel.status.externalProcess': 'Zewnętrzny proces',
  'settings.localModel.status.forceRebootstrap': 'Wymuś ponowną inicjalizację',
  'settings.localModel.status.generationTps': 'TPS generowania',
  'settings.localModel.status.hideErrorDetails': 'Ukryj szczegóły błędu',
  'settings.localModel.status.installManually': 'Zainstaluj ręcznie',
  'settings.localModel.status.installManuallyFrom': 'Zainstaluj ręcznie z',
  'settings.localModel.status.installOllama': 'Uruchamianie…',
  'settings.localModel.status.installedModels': 'Zainstalowane modele',
  'settings.localModel.status.installing': 'Instalowanie...',
  'settings.localModel.status.installingOllama': 'Instalowanie środowiska Ollama...',
  'settings.localModel.status.issues': 'Problemy',
  'settings.localModel.status.issuesFound': 'Znaleziono {count} problemów',
  'settings.localModel.status.lastLatency': 'Ostatnie opóźnienie',
  'settings.localModel.status.model': 'Model',
  'settings.localModel.status.notAvailable': 'nd.',
  'settings.localModel.status.notFound': 'Nie znaleziono',
  'settings.localModel.status.notRunning': 'Nie działa',
  'settings.localModel.status.ollamaBinaryPath': 'Ścieżka binarki Ollama',
  'localModel.ollamaServer.helperText': 'Przykład: http://192.168.1.5:11434',
  'localModel.ollamaServer.label': 'Adres URL serwera Ollama',
  'localModel.ollamaServer.modelCount': 'modele',
  'localModel.ollamaServer.placeholder': 'http://localhost:11434',
  'localModel.ollamaServer.reachable': 'Dostępny',
  'localModel.ollamaServer.resetButton': 'Przywróć domyślne',
  'localModel.ollamaServer.saveButton': 'Zapisz',
  'localModel.ollamaServer.testButton': 'Testuj połączenie',
  'localModel.ollamaServer.unreachable': 'Niedostępny',
  'localModel.ollamaServer.validationError': 'Musi być poprawnym adresem http:// lub https://',
  'settings.localModel.status.ollamaDiagnostics': 'Diagnostyka Ollama',
  'settings.localModel.status.ollamaNotInstalled': 'Środowisko Ollama niedostępne',
  'settings.localModel.status.ollamaNotInstalledDesc':
    'OpenHuman traktuje teraz Ollamę jako zewnętrzne środowisko inferencji. Uruchom własny serwer Ollama, pobierz potrzebne modele i skieruj na niego trasowanie workloadów.',
  'settings.localModel.status.progress': 'Postęp',
  'settings.localModel.status.provider': 'Dostawca',
  'settings.localModel.status.retryBootstrap': 'Ponów inicjalizację',
  'settings.localModel.status.runDiagnostics': 'Sprawdzanie...',
  'settings.localModel.status.running': 'Działa',
  'settings.localModel.status.runningExternalProcess': 'Działa przez zewnętrzny proces',
  'settings.localModel.status.runtimeStatus': 'Stan środowiska',
  'settings.localModel.status.server': 'Serwer',
  'settings.localModel.status.setPath': 'Ustawianie...',
  'settings.localModel.status.setting': 'Ustawianie...',
  'settings.localModel.status.showErrorDetails': 'Ukryj szczegóły błędu',
  'settings.localModel.status.showInstallErrorDetails': 'Ukryj szczegóły błędu',
  'settings.localModel.status.suggestedFixes': 'Sugerowane poprawki',
  'settings.localModel.status.thenSetPath': 'Następnie ustaw ścieżkę',
  'settings.localModel.status.triggering': 'Uruchamianie...',
  'settings.localModel.status.unavailable': 'Niedostępne',
  'settings.localModel.status.working': 'Pracuję...',
  'settings.developerMenu.ai.title': 'Konfiguracja AI',
  'settings.developerMenu.ai.desc':
    'Dostawcy chmurowi, lokalne modele Ollama i trasowanie per workload',
  'settings.developerMenu.screenAwareness.title': 'Świadomość ekranu',
  'settings.developerMenu.screenAwareness.desc':
    'Uprawnienia do przechwytywania ekranu, polityka monitorowania i kontrola sesji',
  'settings.developerMenu.messagingChannels.title': 'Kanały komunikacji',
  'settings.developerMenu.messagingChannels.desc':
    'Konfiguruj tryby uwierzytelniania Telegram/Discord i domyślne trasowanie',
  'settings.developerMenu.tools.title': 'Narzędzia',
  'settings.developerMenu.tools.desc':
    'Włącz lub wyłącz możliwości, z których OpenHuman może korzystać w Twoim imieniu',
  'settings.developerMenu.agentChat.title': 'Czat z agentem',
  'settings.developerMenu.agentChat.desc':
    'Testuj rozmowę z agentem z nadpisaniami modelu i temperatury',
  'settings.developerMenu.devWorkflow.title': 'Przepływ pracy dev',
  'settings.developerMenu.devWorkflow.desc':
    'Autonomiczny agent, który wybiera Twoje zgłoszenia GitHub i cyklicznie tworzy PR-y',
  'settings.developerMenu.devWorkflow.panelDesc':
    'Skonfiguruj autonomicznego agenta deweloperskiego, który wybiera zgłoszenia GitHub przypisane do Ciebie i automatycznie tworzy pull requesty zgodnie z harmonogramem.',
  'settings.developerMenu.skillsRunner.title': 'Runner umiejętności',
  'settings.developerMenu.skillsRunner.desc':
    'Uruchom dowolną dołączoną umiejętność ad hoc — wypełnij jej dane wejściowe i rozpocznij autonomiczne uruchomienie w tle',
  'settings.developerMenu.skillsRunner.panelDesc':
    'Wybierz dołączoną umiejętność, wypełnij zadeklarowane dane wejściowe i uruchom zadanie w tle bez oczekiwania na wynik. Użyj przepływu pracy dev, jeśli potrzebujesz cyklicznego zadania według harmonogramu cron.',
  'settings.skillsRunner.skill': 'Umiejętność',
  'settings.skillsRunner.selectSkill': 'Wybierz umiejętność…',
  'settings.skillsRunner.loadingSkills': 'Wczytywanie umiejętności…',
  'settings.skillsRunner.loadingDescription': 'Wczytywanie danych wejściowych umiejętności…',
  'settings.skillsRunner.noInputs': 'Ta umiejętność nie deklaruje danych wejściowych.',
  'settings.skillsRunner.placeholder.required': 'wymagane',
  'settings.skillsRunner.runNow': 'Uruchom teraz',
  'settings.skillsRunner.starting': 'Uruchamianie…',
  'settings.skillsRunner.started': 'Uruchomiono — ID uruchomienia:',
  'settings.skillsRunner.logPath': 'Dziennik:',
  'settings.skillsRunner.error.listSkills': 'Nie udało się wczytać umiejętności:',
  'settings.skillsRunner.error.describe': 'Nie udało się wczytać danych wejściowych:',
  'settings.skillsRunner.error.missingRequired': 'Brak wymaganych danych wejściowych:',
  'settings.skillsRunner.error.run': 'Nie udało się rozpocząć uruchomienia:',
  'settings.skillsRunner.error.preflightGate': 'Brama preflight nie powiodła się',
  'settings.skillsRunner.error.runtimeUnavailable': 'Runtime niedostępny',
  'settings.skillsRunner.error.runtimeUnavailableDefault': 'niedostępny',
  'settings.skillsRunner.schedule.heading': 'Harmonogram (cykliczny)',
  'settings.skillsRunner.schedule.help':
    'Zapisz tę umiejętność i dane wejściowe jako cykliczne zadanie cron. Agent wywoła run_workflow przy każdym tyknięciu.',
  'settings.skillsRunner.schedule.frequency': 'Częstotliwość',
  'settings.skillsRunner.schedule.every30min': 'Co 30 minut',
  'settings.skillsRunner.schedule.everyHour': 'Co godzinę',
  'settings.skillsRunner.schedule.every2hours': 'Co 2 godziny',
  'settings.skillsRunner.schedule.every6hours': 'Co 6 godzin',
  'settings.skillsRunner.schedule.onceDaily': 'Raz dziennie (9:00)',
  'settings.skillsRunner.schedule.save': 'Zapisz harmonogram',
  'settings.skillsRunner.schedule.saving': 'Zapisywanie…',
  'settings.skillsRunner.schedule.saved': 'Harmonogram zapisany.',
  'settings.skillsRunner.schedule.error': 'Nie udało się zapisać harmonogramu:',
  'settings.skillsRunner.schedule.loadingJobs': 'Wczytywanie istniejących harmonogramów…',
  'settings.skillsRunner.schedule.noJobs':
    'Nie zapisano jeszcze harmonogramów dla tej umiejętności.',
  'settings.skillsRunner.schedule.existing': 'Zaplanowane zadania dla tej umiejętności:',
  'settings.skillsRunner.schedule.inputsLabel': 'Dane wejściowe',
  'settings.skillsRunner.schedule.inputsNone': 'Brak danych wejściowych',
  'settings.skillsRunner.schedule.runNow': 'Uruchom',
  'settings.skillsRunner.schedule.remove': 'Usuń',
  'settings.skillsRunner.scheduleEnabled': 'Włączone',
  'settings.skillsRunner.scheduleDisabled': 'Wstrzymane',
  'settings.skillsRunner.scheduleToggleAria': 'Przełącz włączenie harmonogramu',
  'settings.skillsRunner.schedule.history': 'Historia',
  'settings.skillsRunner.schedule.historyLoading': 'Wczytywanie historii…',
  'settings.skillsRunner.schedule.historyEmpty': 'Brak uruchomień dla tego harmonogramu.',
  'settings.skillsRunner.schedule.historyNoOutput': 'Nie przechwycono wyjścia.',
  'settings.skillsRunner.schedule.active': 'Aktywne',
  'settings.skillsRunner.schedule.lastRunLabel': 'ostatnio:',
  'settings.skillsRunner.recentRuns.headingForSkill': 'Ostatnie uruchomienia tej umiejętności',
  'settings.skillsRunner.recentRuns.headingAll': 'Ostatnie uruchomienia umiejętności (wszystkie)',
  'settings.skillsRunner.recentRuns.refresh': 'Odśwież',
  'settings.skillsRunner.recentRuns.loading': 'Wczytywanie ostatnich uruchomień…',
  'settings.skillsRunner.recentRuns.empty': 'Brak ostatnich uruchomień.',
  'settings.skillsRunner.viewer.loading': 'Wczytywanie logu…',
  'settings.skillsRunner.viewer.tailing': 'Śledzenie na żywo',
  'settings.skillsRunner.viewer.fetching': 'pobieranie',
  'settings.skillsRunner.viewer.error': 'Odczyt logu nie powiódł się:',
  'settings.skillsRunner.repoPicker.loading': 'Wczytywanie repozytoriów…',
  'settings.skillsRunner.repoPicker.select': 'Wybierz repozytorium…',
  'settings.skillsRunner.repoPicker.empty':
    'Nie zwrócono repozytoriów. Połącz GitHub przez Composio, aby wypełnić tę listę.',
  'settings.skillsRunner.repoPicker.notConnected':
    'GitHub nie jest połączony przez Composio. Najpierw połącz go w Umiejętności → Composio.',
  'settings.skillsRunner.repoPicker.privateTag': '(prywatne)',
  'settings.skillsRunner.branchPicker.needRepo': 'Najpierw wybierz repozytorium…',
  'settings.skillsRunner.branchPicker.loading': 'Wczytywanie gałęzi…',
  'settings.skillsRunner.branchPicker.select': 'Wybierz gałąź…',
  'settings.devWorkflow.githubRepository': 'Repozytorium GitHub',
  'settings.devWorkflow.loadingRepositories': 'Wczytywanie repozytoriów...',
  'settings.devWorkflow.selectRepository': 'Wybierz repozytorium',
  'settings.devWorkflow.privateTag': '(prywatne)',
  'settings.devWorkflow.detectingForkInfo': 'Wykrywanie informacji o forku...',
  'settings.devWorkflow.forkDetected': 'Wykryto fork',
  'settings.devWorkflow.upstream': 'Nadrzędne:',
  'settings.devWorkflow.forkPrNote': 'PR-y będą tworzone względem repozytorium upstream.',
  'settings.devWorkflow.notForkNote':
    'To nie jest fork. PR-y będą tworzone bezpośrednio względem tego repozytorium.',
  'settings.devWorkflow.targetBranch': 'Gałąź docelowa',
  'settings.devWorkflow.targetBranchNote': 'PR-y będą tworzone względem tej gałęzi',
  'settings.devWorkflow.loadingBranches': 'Wczytywanie gałęzi...',
  'settings.devWorkflow.runFrequency': 'Częstotliwość uruchamiania',
  'settings.devWorkflow.runFrequencyNote':
    'Jak często agent ma sprawdzać zgłoszenia i tworzyć PR-y.',
  'settings.devWorkflow.updateConfiguration': 'Aktualizuj konfigurację',
  'settings.devWorkflow.saveConfiguration': 'Zapisz konfigurację',
  'settings.devWorkflow.remove': 'Usuń',
  'settings.devWorkflow.saved': 'Zapisano',
  'settings.devWorkflow.activeConfiguration': 'Aktywna konfiguracja',
  'settings.devWorkflow.activeConfigRepository': 'Repozytorium:',
  'settings.devWorkflow.activeConfigUpstream': 'Nadrzędne:',
  'settings.devWorkflow.activeConfigTargetBranch': 'Gałąź docelowa:',
  'settings.devWorkflow.activeConfigSchedule': 'Harmonogram:',
  'settings.devWorkflow.enabled': 'Włączone',
  'settings.devWorkflow.paused': 'Wstrzymane',
  'settings.devWorkflow.nextRun': 'Następne uruchomienie',
  'settings.devWorkflow.lastRun': 'Ostatnie uruchomienie',
  'settings.devWorkflow.runNow': 'Uruchom teraz',
  'settings.devWorkflow.running': 'Uruchamianie…',
  'settings.devWorkflow.recentRuns': 'Ostatnie uruchomienia',
  'settings.devWorkflow.cronSaveError': 'Nie udało się zapisać konfiguracji',
  'settings.devWorkflow.lastOutput': 'Ostatnie wyjście',
  'settings.devWorkflow.noOutput': 'Nie przechwycono wyjścia',
  'settings.devWorkflow.runningStatus':
    'Agent działa — wybiera zgłoszenie i pracuje nad poprawką...',
  'settings.devWorkflow.errorNotConnected':
    'GitHub nie jest połączony. Najpierw połącz GitHub przez Ustawienia > Zaawansowane > Composio.',
  'settings.devWorkflow.errorToolNotEnabled':
    'Narzędzie GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER nie jest włączone na tym backendzie. Poproś administratora o włączenie go w integracji Composio (backend#842).',
  'settings.devWorkflow.errorNotAuthenticated': 'Brak uwierzytelnienia. Najpierw się zaloguj.',
  'settings.devWorkflow.errorNoRepositories': 'Nie znaleziono repozytoriów dla tego konta GitHub.',
  'settings.devWorkflow.schedule.every30min': 'Co 30 minut',
  'settings.devWorkflow.schedule.everyHour': 'Co godzinę',
  'settings.devWorkflow.schedule.every2hours': 'Co 2 godziny',
  'settings.devWorkflow.schedule.every6hours': 'Co 6 godzin',
  'settings.devWorkflow.schedule.onceDaily': 'Raz dziennie (9:00)',
  'settings.developerMenu.tasks.title': 'Zadania',
  'settings.developerMenu.tasks.desc':
    'Przeglądaj tablice zadań i zarządzaj nimi — Twoje własne zadania oraz tablice tworzone przez agentów w rozmowach.',
  'settings.developerMenu.cronJobs.title': 'Zadania cron',
  'settings.developerMenu.cronJobs.desc':
    'Przeglądaj i konfiguruj zaplanowane zadania dla umiejętności runtime',
  'settings.developerMenu.localModelDebug.title': 'Debug modelu lokalnego',
  'settings.developerMenu.localModelDebug.desc':
    'Konfiguracja Ollama, pobieranie zasobów, testy modeli i diagnostyka',
  'settings.developerMenu.webhooks.title': 'Webhooks',
  'settings.developerMenu.webhooks.desc':
    'Sprawdź rejestracje webhooków w runtime i logi przechwyconych żądań',
  'settings.developerMenu.eventLog.title': 'Dziennik zdarzeń',
  'settings.developerMenu.eventLog.desc':
    'Kolorowany strumień na żywo wszystkich zdarzeń agenta, narzędzi i systemu',
  'settings.developerMenu.eventLog.allTypes': 'Wszystkie typy',
  'settings.developerMenu.eventLog.filterAgent': 'Filtruj...',
  'settings.developerMenu.eventLog.download': 'Pobierz',
  'settings.developerMenu.eventLog.events': 'zdarzenia',
  'settings.developerMenu.eventLog.live': 'Na żywo',
  'settings.developerMenu.eventLog.disconnected': 'Rozłączono',
  'settings.developerMenu.eventLog.waiting': 'Oczekiwanie na zdarzenia...',
  'settings.developerMenu.eventLog.notConnected': 'Brak połączenia z rdzeniem',
  'settings.developerMenu.eventLog.jumpToLatest': 'Przejdź do najnowszego',
  'settings.developerMenu.eventLog.badge.tool': 'TOOL',
  'settings.developerMenu.eventLog.badge.agent': 'AGENT',
  'settings.developerMenu.eventLog.badge.info': 'INFO',
  'settings.developerMenu.eventLog.badge.mem': 'MEM',
  'settings.developerMenu.eventLog.badge.chan': 'CHAN',
  'settings.developerMenu.eventLog.badge.cron': 'CRON',
  'settings.developerMenu.eventLog.badge.hook': 'HOOK',
  'settings.developerMenu.eventLog.badge.warn': 'WARN',
  'settings.developerMenu.eventLog.badge.skill': 'SKILL',
  'settings.developerMenu.eventLog.badge.comp': 'COMP',
  'settings.developerMenu.eventLog.badge.mcp': 'MCP',
  'settings.developerMenu.intelligence.title': 'Inteligencja',
  'settings.developerMenu.intelligence.desc':
    'Przestrzeń pamięci, silnik podświadomości, sny i ustawienia',
  'settings.developerMenu.notificationRouting.title': 'Trasowanie powiadomień',
  'settings.developerMenu.notificationRouting.desc':
    'Punktacja ważności AI i eskalacja orkiestratora dla alertów integracji',
  'settings.developerMenu.composeioTriggers.title': 'Wyzwalacze ComposeIO',
  'settings.developerMenu.composeioTriggers.desc':
    'Przeglądaj historię i archiwum wyzwalaczy ComposeIO',
  'settings.developerMenu.composioRouting.title': 'Trasowanie Composio (tryb bezpośredni)',
  'settings.developerMenu.composioRouting.desc':
    'Użyj własnego klucza API Composio i kieruj wywołania bezpośrednio do backend.composio.dev',
  'settings.developerMenu.integrationTriggers.title': 'Wyzwalacze integracji',
  'settings.developerMenu.integrationTriggers.desc':
    'Konfiguruj ustawienia klasyfikacji AI dla wyzwalaczy integracji Composio',
  'settings.developerMenu.mcpServer.title': 'Serwer MCP',
  'settings.developerMenu.mcpServer.desc':
    'Skonfiguruj zewnętrznych klientów MCP do połączenia z OpenHumanem',
  'settings.developerMenu.autonomy.title': 'Autonomia agenta',
  'settings.developerMenu.autonomy.desc': 'Limity szybkości akcji narzędzi i progi bezpieczeństwa',
  'settings.developerMenu.autocomplete.title': 'Autouzupełnianie',
  'settings.developerMenu.autocomplete.desc': 'Ustawienia autouzupełniania AI i panel debugowania',
  'settings.developerMenu.voiceDebug.title': 'Głos (debugowanie)',
  'settings.developerMenu.voiceDebug.desc':
    'Status środowiska uruchomieniowego dyktowania głosowego i ustawienia debugowania',
  'settings.mcpServer.title': 'Serwer MCP',
  'settings.mcpServer.toolsSectionTitle': 'Dostępne narzędzia',
  'settings.mcpServer.toolsSectionDesc':
    'Narzędzia udostępniane przez serwer stdio MCP podczas uruchamiania openhuman-core mcp',
  'settings.mcpServer.configSectionTitle': 'Konfiguracja klienta',
  'settings.mcpServer.configSectionDesc':
    'Wybierz swojego klienta MCP, aby wygenerować poprawny fragment konfiguracji',
  'settings.mcpServer.copySnippet': 'Skopiuj do schowka',
  'settings.mcpServer.copied': 'Skopiowano!',
  'settings.mcpServer.openConfigFile': 'Otwórz plik konfiguracyjny',
  'settings.mcpServer.binaryPathNotFound':
    'Nie znaleziono pliku binarnego OpenHuman. Jeśli uruchamiasz ze źródeł, zbuduj: cargo build --bin openhuman-core',
  'settings.mcpServer.openConfigError': 'Nie udało się otworzyć pliku konfiguracyjnego',
  'settings.mcpServer.clientClaudeDesktop': 'Claude Desktop',
  'settings.mcpServer.clientCursor': 'Cursor',
  'settings.mcpServer.clientCodex': 'Codex',
  'settings.mcpServer.clientZed': 'Zed',
  'settings.mcpServer.configFilePath': 'Plik konfiguracyjny',
  'settings.mcpServer.clientSelectorAriaLabel': 'Selektor klienta MCP',
  'settings.appearance.menuDesc': 'Wybierz jasny, ciemny lub dopasowany do systemu motyw',
  'settings.agentAccess.title': 'Dostęp agenta do systemu',
  'settings.agentAccess.menuDesc':
    'Kontroluj, gdzie agent może czytać/pisać oraz czy może używać powłoki.',
  'settings.agentAccess.loadError': 'Nie udało się wczytać ustawień dostępu',
  'settings.agentAccess.saveError': 'Nie udało się zapisać ustawień dostępu',
  'settings.agentAccess.saved': 'Zapisano — zostanie zastosowane w następnej wiadomości.',
  'settings.agentAccess.desktopOnly':
    'Ustawienia dostępu są dostępne tylko w aplikacji desktopowej.',
  'settings.agentAccess.loading': 'Wczytywanie…',
  'settings.agentAccess.accessMode': 'Tryb dostępu',
  'settings.agentAccess.tier.readonly.title': 'Tylko do odczytu',
  'settings.agentAccess.tier.readonly.desc':
    'Czyta pliki i uruchamia polecenia tylko do odczytu, aby eksplorować — ale nigdy nie zapisuje, nie edytuje ani nie uruchamia niczego, co zmienia stan.',
  'settings.agentAccess.tier.supervised.title': 'Pytaj przed edycją',
  'settings.agentAccess.tier.supervised.desc':
    'Tworzy nowe pliki swobodnie, ale pyta o Twoją zgodę przed edycją istniejącego pliku, uruchomieniem polecenia, dostępem do sieci lub instalacją czegokolwiek.',
  'settings.agentAccess.tier.full.title': 'Pełny dostęp',
  'settings.agentAccess.tier.full.desc':
    'Uruchamia polecenia z pełnym dostępem Twojego konta — może czytać/pisać wszędzie, gdzie to dozwolone, oprócz magazynów poświadczeń i systemowych. Polecenia destrukcyjne, dostęp do sieci i instalacje nadal proszą o zgodę.',
  'settings.agentAccess.defaultTag': '(domyślny)',
  'settings.agentAccess.fullWarning':
    '⚠ Pełny dostęp uruchamia polecenia z pełnymi uprawnieniami Twojego konta i nie jest sandboxowany. Włącz to tylko wtedy, gdy ufasz agentowi na tym komputerze. Katalogi poświadczeń i systemowe pozostają zablokowane, a akcje destrukcyjne, sieciowe i instalacyjne nadal proszą o zgodę.',
  'settings.agentAccess.confine.label': 'Ogranicz do przestrzeni roboczej',
  'settings.agentAccess.confine.desc':
    'Ogranicz agenta do katalogu przestrzeni roboczej (oraz dodanych folderów), niezależnie od wybranego trybu dostępu. Wyłączone — może sięgać wszędzie, gdzie Twój użytkownik, oprócz zawsze zablokowanych katalogów poświadczeń i systemowych.',
  'settings.agentAccess.requireTaskPlanApproval.label': 'Wymagaj zatwierdzenia planu zadania',
  'settings.agentAccess.requireTaskPlanApproval.desc':
    'Wstrzymaj, zanim przypisany agent wykona opis zadania utworzony przez agenta.',
  'settings.agentAccess.tinyplaceAutopilot.title': 'Autonomiczny agent tiny.place',
  'settings.agentAccess.tinyplaceAutopilot.desc':
    'Pozwól OpenHuman działać na tiny.place samodzielnie: zgodnie z harmonogramem szuka wartościowej pracy — najpierw otwartych nagród —, wykonuje to, co pasuje do jego umiejętności, i działa z Twojej tożsamości. Działa bez nadzoru i może wydawać środki, więc podczas testów używaj devnet. Domyślnie wyłączone.',
  'settings.agentAccess.tinyplaceAutopilot.label': 'Uruchamiaj automatycznie',
  'settings.agentAccess.timeout.label': 'Limit czasu akcji',
  'settings.agentAccess.timeout.desc':
    'Jak długo pojedyncze narzędzie lub akcja może działać przed anulowaniem. Zwiększ tę wartość, jeśli duży lokalny model jest przerywany, zanim zakończy odpowiedź.',
  'settings.agentAccess.timeout.unit': 'sekundy',
  'settings.agentAccess.timeout.invalid': 'Wprowadź całkowitą liczbę sekund w dozwolonym zakresie',
  'settings.agentAccess.timeout.envOverride':
    'Zmienna środowiskowa OPENHUMAN_TOOL_TIMEOUT_SECS zastępuje to ustawienie, więc zmiany tutaj nie odniosą skutku, dopóki nie zostanie ona usunięta.',
  'settings.agentAccess.grantedFolders': 'Przyznane foldery',
  'settings.agentAccess.alwaysAllow': 'Zawsze dozwolone narzędzia',
  'settings.agentAccess.alwaysAllowDesc':
    'Narzędzia oznaczone w czacie jako „Zawsze zezwalaj” działają bez pytania. Usuń narzędzie, aby znów wymagało potwierdzenia.',
  'settings.agentAccess.alwaysAllowNone': 'Brak zawsze dozwolonych narzędzi.',
  'settings.agentAccess.grantedDesc':
    'Foldery, do których agent może czytać i pisać, oprócz przestrzeni roboczej. Magazyny poświadczeń (~/.ssh, ~/.gnupg, ~/.aws, keychains) i katalogi systemowe (/etc, /System, C:\\Windows, …) są zawsze zablokowane, nawet w przyznanym folderze.',
  'settings.agentAccess.noneGranted': 'Brak przyznanych folderów.',
  'settings.agentAccess.readWrite': 'odczyt + zapis',
  'settings.agentAccess.readOnly': 'tylko do odczytu',
  'settings.agentAccess.remove': 'Usuń',
  'settings.agentAccess.pathPlaceholder': 'Bezwzględna ścieżka folderu',
  'settings.agentAccess.accessLevelLabel': 'Poziom dostępu',
  'settings.agentAccess.add': 'Dodaj',
  'settings.agentAccess.saving': 'Zapisywanie…',
  'settings.agentAccess.changesApply': 'Zmiany zostaną zastosowane w następnej wiadomości.',
  'settings.agentAccess.directories': 'Katalogi',
  'settings.agentAccess.actionSandbox': 'Piaskownica akcji',
  'settings.agentAccess.readWriteAccess': 'odczyt + zapis',
  'settings.agentAccess.actionSandboxDesc':
    'Domyślny katalog roboczy dla narzędzi shell, plików i git.',
  'settings.agentAccess.actionDir.edit': 'Edytuj',
  'settings.agentAccess.actionDir.save': 'Zapisz',
  'settings.agentAccess.actionDir.cancel': 'Anuluj',
  'settings.agentAccess.actionDir.placeholder': 'Ścieżka bezwzględna, np. /Users/you/Projects',
  'settings.agentAccess.actionDir.envLocked':
    'Ustawione przez OPENHUMAN_ACTION_DIR. Zmień zmienną środowiskową, aby zastąpić.',
  'settings.agentAccess.actionDir.saved': 'Zaktualizowano katalog akcji.',
  'settings.agentAccess.internalState': 'Stan wewnętrzny',
  'settings.agentAccess.agentBlocked': 'zablokowane dla agenta',
  'settings.agentAccess.internalStateDesc':
    'Bazy danych pamięci, sesje, tokeny i inne podstawowe dane. Niedostępne dla narzędzi agenta.',
  'settings.agentAccess.actionDirInputLabel': 'Ścieżka piaskownicy działań',
  'settings.agentAccess.actionDirSave': 'Zapisz',
  'settings.agentAccess.actionDirSaving': 'Zapisywanie…',
  'settings.agentAccess.actionDirSaved': 'Piaskownica działań zaktualizowana.',
  'settings.agentAccess.actionDirEmptyError': 'Ścieżka nie może być pusta.',
  'settings.agentAccess.actionDirSaveError': 'Nie udało się zaktualizować piaskownicy działań.',
  'settings.agentAccess.actionDirEnvOverrideError':
    'OPENHUMAN_ACTION_DIR jest ustawione — usuń zmienną środowiskową, aby edytować to w Ustawieniach.',
  'settings.agentAccess.actionDirEnvOverrideNote':
    'Nadpisane przez OPENHUMAN_ACTION_DIR — usuń zmienną środowiskową, aby zarządzać tym w Ustawieniach.',
  'settings.agentAccess.approvalHistory': 'Historia zatwierdzeń',
  'settings.agentAccess.approvalHistoryDesc':
    'Przegląd wcześniejszych decyzji Zatwierdź / Odrzuć żądanych przez agenta.',
  'settings.agentAccess.viewApprovalHistory': 'Wyświetl historię zatwierdzeń',

  // ── Panel Uprawnień ───────────────────────────────────────────────
  'settings.permissions.title': 'Uprawnienia',
  'settings.permissions.menuDesc': 'Wybierz, co może robić Twój asystent i gdzie może pracować.',
  'settings.permissions.accessMode': 'Co może robić asystent?',
  'settings.permissions.accessModeDesc':
    'Wybierz, ile swobody ma asystent podczas wykonywania działań na Twoim komputerze.',
  'settings.permissions.preset.readonly.title': 'Patrzeć, nie dotykać',
  'settings.permissions.preset.readonly.desc':
    'Asystent może czytać pliki i eksplorować — ale nigdy nie pisze, edytuje ani nie uruchamia niczego zmieniającego stan.',
  'settings.permissions.preset.supervised.title': 'Najpierw zapytaj',
  'settings.permissions.preset.supervised.desc':
    'Może swobodnie tworzyć nowe pliki, ale zawsze prosi o Twoją zgodę przed edycją, uruchamianiem poleceń lub dostępem do sieci.',
  'settings.permissions.preset.full.title': 'Pełna kontrola',
  'settings.permissions.preset.full.desc':
    'Działa z pełnym dostępem do Twojego konta. Destrukcyjne polecenia, dostęp do sieci i instalacje nadal wymagają zatwierdzenia.',
  'settings.permissions.folders': 'Gdzie może pracować?',
  'settings.permissions.foldersDesc':
    'Domyślny folder, który asystent odczytuje i zapisuje. Możesz dodać więcej folderów w ustawieniach zaawansowanych.',

  'settings.meetings.title': 'Spotkania',
  'settings.meetings.menuDesc':
    'Automatyczne dołączanie, podsumowania i transkrypcje Asystenta spotkań',
  'settings.meetings.desktopOnly': 'Ustawienia spotkań są dostępne tylko na komputerze.',
  'settings.meetings.loading': 'Ładowanie…',
  'settings.meetings.loadError': 'Nie udało się załadować ustawień spotkań.',
  'settings.meetings.saveError': 'Nie udało się zapisać ustawień spotkań.',
  'settings.meetings.saved': 'Zapisano',
  'settings.meetings.saving': 'Zapisywanie…',
  'settings.meetings.autoJoin.title': 'Zasada automatycznego dołączania',
  'settings.meetings.autoJoin.desc': 'Gdy wydarzenie w kalendarzu ma link Google Meet',
  'settings.meetings.autoJoin.askEachTime': 'Pytaj za każdym razem',
  'settings.meetings.autoJoin.always': 'Zawsze dołączaj',
  'settings.meetings.autoJoin.never': 'Nigdy nie dołączaj',
  'settings.meetings.autoSummarize.title': 'Podsumowanie po rozmowie',
  'settings.meetings.autoSummarize.desc': 'Generuj podsumowanie po zakończeniu rozmowy',
  'settings.meetings.autoSummarize.ask': 'Pytaj po rozmowie',
  'settings.meetings.autoSummarize.always': 'Zawsze podsumowuj',
  'settings.meetings.autoSummarize.never': 'Nigdy nie podsumowuj',
  'settings.meetings.listenOnly': 'Tryb tylko słuchanie',
  'settings.meetings.listenOnlyDesc': 'Dołącz z wyciszonym mikrofonem',
  'settings.meetings.ingestTranscripts': 'Pobieraj transkrypcje backendu',
  'settings.meetings.ingestTranscriptsDesc': 'Przechowuj transkrypcje spotkań w pamięci',
  'settings.sandbox.title': 'Wykonanie w piaskownicy',
  'settings.sandbox.menuDesc': 'Konfiguruj backendy piaskownicy do izolacji narzędzi agenta.',
  'settings.sandbox.loading': 'Ładowanie…',
  'settings.sandbox.desktopOnly':
    'Ustawienia piaskownicy są dostępne tylko w aplikacji desktopowej.',
  'settings.sandbox.loadError': 'Nie udało się załadować ustawień piaskownicy.',
  'settings.sandbox.saveError': 'Nie udało się zapisać ustawień piaskownicy.',
  'settings.sandbox.saved': 'Zapisano — dotyczy nowych sesji agenta.',
  'settings.sandbox.saving': 'Zapisywanie…',
  'settings.sandbox.status': 'Status',
  'settings.sandbox.dockerStatus': 'Docker',
  'settings.sandbox.available': 'Dostępny',
  'settings.sandbox.unavailable': 'Niedostępny',
  'settings.sandbox.detectedBackend': 'Backend systemu operacyjnego',
  'settings.sandbox.enableLabel': 'Włącz wykonanie w piaskownicy',
  'settings.sandbox.enableDesc': 'Uruchamiaj narzędzia agenta w izolowanym środowisku piaskownicy.',
  'settings.sandbox.backendLabel': 'Backend',
  'settings.sandbox.backendDesc':
    'Wybierz backend izolacji do użycia przy wykonaniu w piaskownicy.',
  'settings.sandbox.backend.auto': 'Automatyczny (wykryj najlepszy dostępny)',
  'settings.sandbox.backend.docker': 'Docker',
  'settings.sandbox.backend.landlock': 'Landlock (Linux)',
  'settings.sandbox.backend.firejail': 'Firejail (Linux)',
  'settings.sandbox.backend.bubblewrap': 'Bubblewrap (Linux)',
  'settings.sandbox.backend.none': 'Brak (bez piaskownicy)',
  'settings.sandbox.dockerSettings': 'Ustawienia Docker',
  'settings.sandbox.dockerImage': 'Obraz',
  'settings.sandbox.dockerImagePlaceholder': 'alpine:3.20',
  'settings.sandbox.memoryLimit': 'Limit pamięci',
  'settings.sandbox.memoryUnit': 'MB',
  'settings.sandbox.cpuLimit': 'Limit CPU',
  'settings.sandbox.cpuUnit': 'rdzenie',
  'settings.sandbox.envPassthrough': 'Przekazywanie zmiennych środowiskowych',
  'settings.sandbox.envPassthroughDesc': 'Zmienne środowiskowe przekazywane do piaskownicy.',
  'settings.sandbox.noEnvVars': 'Nie skonfigurowano żadnych zmiennych środowiskowych.',
  'settings.approvalHistory.title': 'Historia zatwierdzeń',
  'settings.approvalHistory.subtitle':
    'Ostatnie decyzje o zatwierdzeniu narzędzi, najnowsze najpierw.',
  'settings.approvalHistory.refresh': 'Refresh',
  'settings.approvalHistory.loading': 'Ładowanie historii zatwierdzeń…',
  'settings.approvalHistory.retry': 'Retry',
  'settings.approvalHistory.emptyState': 'Brak zarejestrowanych decyzji o zatwierdzeniu.',
  'settings.approvalHistory.errorGeneric':
    'Nie udało się załadować historii zatwierdzeń. Spróbuj ponownie.',
  'settings.approvalHistory.decidedAt': 'Zdecydowano {date}',
  'settings.approvalHistory.decision.approveOnce': 'Zatwierdzone raz',
  'settings.approvalHistory.decision.approveAlways': 'Zawsze dozwolone',
  'settings.approvalHistory.decision.deny': 'Denied',
  'settings.theme.variantLight': 'Jasny',
  'settings.theme.variantDark': 'Ciemny',
  'settings.theme.variantAuto': 'Automatyczny',
  'settings.theme.variantAria': 'Wariant motywu',
  'settings.theme.backdropHeading': 'Tło',
  'settings.theme.backdrop.mesh': 'Siatka',
  'settings.theme.backdrop.solid': 'Jednolity',
  'settings.theme.backdrop.image': 'Obraz',
  'settings.theme.backdropImageUrl': 'URL obrazu tła',
  'settings.theme.backdropDots': 'Pokaż kropki tła',
  'settings.theme.backdropHint':
    'Siatka pokazuje animowany gradient; Jednolity używa płaskiego tła; Obraz wyświetla Twój własny.',
  'settings.theme.autoForkHint':
    'Edycja gotowego motywu automatycznie zapisuje zmiany jako nowy motyw niestandardowy.',
  'settings.theme.title': 'Studio motywów',
  'settings.theme.menuDesc': 'W pełni dostosuj kolory i czcionki lub wybierz gotowy motyw.',
  'settings.theme.presetsHeading': 'Motywy',
  'settings.theme.builtInBadge': 'Gotowy',
  'settings.theme.customBadge': 'Własny',
  'settings.theme.customizeHint':
    'Wbudowane motywy są tylko do odczytu. Zduplikuj ten motyw, aby edytować jego kolory i czcionki.',
  'settings.theme.duplicate': 'Zduplikuj i dostosuj',
  'settings.theme.copyName': '{name} (własny)',
  'settings.theme.importedName': 'Zaimportowany motyw',
  'settings.theme.contrastWarn':
    'Niski kontrast między tekstem a tłem — ten motyw może być trudny do odczytania.',
  'settings.theme.group.surfaces': 'Powierzchnie',
  'settings.theme.group.text': 'Tekst',
  'settings.theme.group.borders': 'Obramowania',
  'settings.theme.group.accents': 'Kolory akcentów',
  'settings.theme.showShades': 'Pokaż wszystkie odcienie akcentów',
  'settings.theme.hideShades': 'Ukryj wszystkie odcienie akcentów',
  'settings.theme.fontsHeading': 'Czcionki',
  'settings.theme.fontRole.title': 'Tytuł',
  'settings.theme.fontRole.heading': 'Nagłówek',
  'settings.theme.fontRole.body': 'Tekst podstawowy',
  'settings.theme.fontRole.mono': 'Czcionka o stałej szerokości',
  'settings.theme.fontRole.serif': 'Szeryfowa',
  'settings.theme.fontCurrent': 'Bieżąca',
  'settings.theme.actions': 'Zarządzaj motywem',
  'settings.theme.reset': 'Zresetuj zmiany',
  'settings.theme.delete': 'Usuń motyw',
  'settings.theme.export': 'Kopiuj JSON',
  'settings.theme.copied': 'Skopiowano!',
  'settings.theme.import': 'Importuj motyw',
  'settings.theme.importHint': 'Wklej wyeksportowany JSON motywu, aby dodać go jako własny motyw.',
  'settings.theme.importApply': 'Importuj',
  'settings.theme.importError': 'Nie udało się przetworzyć tego JSON motywu.',
  'settings.appearance.title': 'Wygląd',
  'settings.appearance.themeHeading': 'Motyw',
  'settings.appearance.themeAria': 'Motyw',
  'settings.appearance.modeLight': 'Jasny',
  'settings.appearance.modeLightDesc': 'Jasne powierzchnie, ciemny tekst.',
  'settings.appearance.modeDark': 'Ciemny',
  'settings.appearance.modeDarkDesc': 'Przyciemnione powierzchnie, łatwiejsze dla oczu po zmroku.',
  'settings.appearance.modeSystem': 'Dopasuj do systemu',
  'settings.appearance.modeSystemDesc':
    'Postępuj zgodnie z ustawieniem wyglądu Twojego systemu operacyjnego.',
  'settings.appearance.helperText':
    'Tryb ciemny przełącza całą aplikację — czat, ustawienia, panele — na przyciemnioną paletę. „Dopasuj do systemu” podąża za wyglądem systemu i aktualizuje się na żywo.',
  'settings.appearance.fontSizeHeading': 'Rozmiar czcionki',
  'settings.appearance.fontSizeAria': 'Rozmiar czcionki',
  'settings.appearance.fontSizeSmall': 'Mały',
  'settings.appearance.fontSizeSmallDesc': 'Zwarty tekst — więcej na ekranie.',
  'settings.appearance.fontSizeMedium': 'Średni',
  'settings.appearance.fontSizeMediumDesc': 'Domyślny, zrównoważony rozmiar.',
  'settings.appearance.fontSizeLarge': 'Duży',
  'settings.appearance.fontSizeLargeDesc': 'Większy tekst dla łatwiejszego czytania.',
  'settings.appearance.fontSizeXLarge': 'Bardzo duży',
  'settings.appearance.fontSizeXLargeDesc': 'Największy tekst dla maksymalnej czytelności.',
  'settings.appearance.fontSizeHelperText':
    'Skaluje tekst w całej aplikacji — czat, ustawienia i panele — niezależnie od ustawienia czcionki w systemie.',
  'settings.appearance.tabBarHeading': 'Dolny pasek zakładek',
  'settings.appearance.tabBarAlwaysShowLabels': 'Zawsze pokazuj etykiety',
  'settings.appearance.tabBarAlwaysShowLabelsDesc':
    'Wyłączone — etykiety pojawiają się tylko po najechaniu lub dla aktywnej zakładki.',
  'settings.appearance.chatHeading': 'Czat',
  'settings.appearance.assistantTextMode': 'Odpowiedzi asystenta jako tekst',
  'settings.appearance.hideAgentInsights': 'Ukryj myślenie agenta',
  'settings.appearance.hideAgentInsightsDesc':
    'Zwija oś czasu z krokami agenta na żywo w czacie. Migający link „Przetwarzanie” nadal pozwala otworzyć pełny przebieg.',
  'settings.appearance.assistantTextModeDesc':
    'Wyświetla odpowiedzi asystenta jako tekst bez ramki, a Twoje wiadomości pozostawia w dymkach.',
  'settings.mascot.active': 'Aktywny',
  'settings.mascot.characterDesc': 'Wybierz charakter maskotki OpenHuman.',
  'settings.mascot.characterDraft': 'Wersja robocza',
  'settings.mascot.characterHeading': 'Charakter',
  'settings.mascot.customGifError':
    'Wprowadź URL .gif HTTPS, URL .gif loopback HTTP, URL file:// .gif lub lokalną ścieżkę .gif.',
  'settings.mascot.customGifHeading': 'Własny awatar GIF',
  'settings.mascot.customGifLabel': 'URL własnego awatara GIF',
  'settings.mascot.customGifPlaceholder': 'https://example.com/avatar.gif',
  'settings.mascot.characterPreview': 'Podgląd',
  'settings.mascot.characterStates': 'stanów',
  'settings.mascot.characterVisemes': 'wizemów',
  'settings.mascot.colorAria': 'Kolor OpenHuman',
  'settings.mascot.colorDesc': 'Wybierz kolor maskotki używany w całej aplikacji.',
  'settings.mascot.colorHeading': 'Kolor',
  'settings.mascot.colorBlack': 'Czarny',
  'settings.mascot.colorBurgundy': 'Burgundowy',
  'settings.mascot.colorCustom': 'Własny',
  'settings.mascot.colorNavy': 'Granatowy',
  'settings.mascot.primaryColor': 'Kolor podstawowy',
  'settings.mascot.secondaryColor': 'Kolor dodatkowy',
  'settings.mascot.colorYellow': 'Żółty',
  'settings.mascot.libraryUnavailable': 'Biblioteka OpenHuman niedostępna',
  'settings.mascot.title': 'OpenHuman',
  'settings.mascot.loadingLibrary': 'Wczytywanie biblioteki OpenHuman…',
  'settings.mascot.loadDetailError': 'Nie udało się wczytać maskotki.',
  'settings.mascot.loadLibraryError': 'Nie udało się wczytać biblioteki maskotek.',
  'settings.mascot.localDefault': 'Lokalny OpenHuman (domyślny)',
  'settings.mascot.menuTitle': 'Maskotka',
  'settings.mascot.menuDesc': 'Wybierz kolor maskotki używany w aplikacji',
  'settings.mascot.noCharacters': 'Nie ma jeszcze dostępnych postaci OpenHuman',
  'settings.mascot.noColorVariants': 'Brak wariantów kolorystycznych',
  'settings.mascot.voice.current': 'bieżący',
  'settings.mascot.voice.customDesc':
    'Znajdź ID głosów w api.elevenlabs.io/v1/voices lub w panelu ElevenLabs. Przechowywane jest tylko ID — Twój klucz API pozostaje na backendzie.',
  'settings.mascot.voice.customHeading': 'Własne ID głosu',
  'settings.mascot.voice.customOption': 'Inne (wklej ID głosu)…',
  'settings.mascot.voice.customPlaceholder': 'np. 21m00Tcm4TlvDq8ikWAM',
  'settings.mascot.voice.desc':
    'Wybierz głos ElevenLabs, którego maskotka używa do odpowiedzi głosowych. Filtruj po płci, wybierz z listy lub pozwól aplikacji dobrać głos pasujący do języka interfejsu.',
  'settings.mascot.voice.genderFemale': 'Kobiecy',
  'settings.mascot.voice.genderHeading': 'Płeć głosu',
  'settings.mascot.voice.genderMale': 'Męski',
  'settings.mascot.voice.heading': 'Głos',
  'settings.mascot.voice.preset': 'Preset głosu',
  'settings.mascot.voice.presetHeading': 'Preset głosu',
  'settings.mascot.voice.preview': 'Podgląd głosu',
  'settings.mascot.voice.previewError': 'Podgląd głosu nie powiódł się',
  'settings.mascot.voice.previewText': 'Cześć, jestem Twoim asystentem. To jest podgląd głosu.',
  'settings.mascot.voice.previewing': 'Odsłuchiwanie…',
  'settings.mascot.voice.reset': 'Przywróć domyślny',
  'settings.mascot.voice.useLocaleDefault': 'Dopasuj do języka aplikacji',
  'settings.mascot.voice.useLocaleDefaultDesc':
    'Automatyczny dobór głosu do bieżącego języka interfejsu.',
  'settings.persona.title': 'Profil asystenta',
  'settings.persona.menuTitle': 'Profil asystenta',
  'settings.persona.menuDesc':
    'Imię, osobowość, awatar i głos — Twój asystent jako jedna tożsamość',
  'settings.persona.identityHeading': 'Tożsamość',
  'settings.persona.identityDesc':
    'Wyświetlana nazwa i krótki opis Twojego asystenta. Pokazane w aplikacji; nie zmienia sposobu rozumowania asystenta.',
  'settings.persona.displayNameLabel': 'Wyświetlana nazwa',
  'settings.persona.displayNamePlaceholder': 'np. Nova',
  'settings.persona.descriptionLabel': 'Opis',
  'settings.persona.descriptionPlaceholder': 'np. Spokojny, zwięzły asystent dla mojego zespołu.',
  'settings.persona.soul.heading': 'Osobowość (SOUL.md)',
  'settings.persona.soul.desc':
    'Prompt osobowości, którym asystent kieruje się w każdej rozmowie. Edycje są zapisywane w Twojej przestrzeni roboczej i wchodzą w życie w następnej odpowiedzi.',
  'settings.persona.soul.editorLabel': 'Zawartość SOUL.md',
  'settings.persona.soul.reset': 'Przywróć domyślne',
  'settings.persona.soul.usingDefault': 'Używam dołączonej wartości domyślnej',
  'settings.persona.soul.loadError': 'Nie udało się wczytać SOUL.md',
  'settings.persona.soul.saveError': 'Nie udało się zapisać SOUL.md',
  'settings.persona.soul.resetError': 'Nie udało się zresetować SOUL.md',
  'settings.persona.appearanceHeading': 'Awatar i głos',
  'settings.persona.appearanceDesc':
    'Kolor maskotki, własny awatar GIF i głos odpowiedzi są konfigurowane w ustawieniach Maskotki.',
  'settings.persona.openMascotSettings': 'Otwórz ustawienia Maskotki',
  'settings.memoryWindow.balanced.badge': 'Zalecane',
  'settings.memoryWindow.balanced.hint':
    'Rozsądna wartość domyślna — dobra ciągłość bez nadmiernych tokenów na każde uruchomienie.',
  'settings.memoryWindow.balanced.label': 'Zrównoważone',
  'settings.memoryWindow.description':
    'Ile zapamiętanego kontekstu OpenHuman wstrzykuje do każdego nowego uruchomienia agenta. Większe okno daje większą świadomość poprzednich rozmów, ale używa więcej tokenów — i kosztuje więcej — przy każdym uruchomieniu.',
  'settings.memoryWindow.extended.badge': 'Więcej kontekstu',
  'settings.memoryWindow.extended.hint':
    'Więcej długoterminowej pamięci wstrzykiwanej do każdego uruchomienia. Wyższy koszt tokenów na turę.',
  'settings.memoryWindow.extended.label': 'Rozszerzone',
  'settings.memoryWindow.maximum.badge': 'Najwyższy koszt',
  'settings.memoryWindow.maximum.hint':
    'Największe bezpieczne okno. Najlepsza ciągłość, znacząco wyższy rachunek za tokeny przy każdym uruchomieniu.',
  'settings.memoryWindow.maximum.label': 'Maksymalne',
  'settings.memoryWindow.minimal.badge': 'Najtańsze',
  'settings.memoryWindow.minimal.hint':
    'Najmniejsze okno pamięci. Najtańsze, najszybsze, najmniejsza ciągłość między uruchomieniami.',
  'settings.memoryWindow.minimal.label': 'Minimalne',
  'settings.memoryWindow.title': 'Okno pamięci długoterminowej',
  'settings.agentbox.title': 'AgentBox',
  'settings.agentbox.desc': 'Stan adaptera platformy handlowej GMI Cloud i konfiguracja dostawcy',
  'settings.agentbox.intro':
    'Stan tylko do odczytu adaptera platformy handlowej AgentBox. Tryb oraz dostawca GMI MaaS są ustawiane przez zmienne środowiskowe podczas uruchamiania rdzenia.',
  'settings.agentbox.modeLabel': 'Tryb platformy handlowej',
  'settings.agentbox.providerHeading': 'Dostawca GMI MaaS',
  'settings.agentbox.slug': 'Identyfikator dostawcy',
  'settings.agentbox.baseUrl': 'Podstawowy adres URL',
  'settings.agentbox.model': 'Model',
  'settings.agentbox.notConfigured':
    'Nie skonfigurowano. Ustaw zmienne środowiskowe GMI_MAAS_BASE_URL, GMI_MAAS_API_KEY oraz GMI_MODELS.',
  'settings.agentbox.unavailable': 'Stan AgentBox niedostępny',
  'settings.modelHealth.title': 'Kondycja modeli',
  'settings.modelHealth.desc':
    'Jakość, współczynnik halucynacji i porównanie kosztów aktywnych modeli',
  'settings.modelHealth.allStatuses': 'Wszystkie statusy',
  'settings.modelHealth.models': 'modele',
  'settings.modelHealth.loading': 'Wczytywanie danych modeli...',
  'settings.modelHealth.empty': 'Brak zarejestrowanych modeli',
  'settings.modelHealth.col.model': 'Model',
  'settings.modelHealth.col.quality': 'Jakość',
  'settings.modelHealth.col.halluc': 'Wsp. haluc.',
  'settings.modelHealth.col.cost': 'Koszt / 1M wyjścia',
  'settings.modelHealth.col.agents': 'Agenci',
  'settings.modelHealth.col.status': 'Stan',
  'settings.modelHealth.badge.keep': 'Zostaw',
  'settings.modelHealth.badge.replace': 'Zastąp',
  'settings.modelHealth.badge.staging': 'Test staging',
  'settings.modelHealth.badge.vision': 'Tylko wizja',
  'settings.modelHealth.swap': 'Zamienić?',
  'settings.modelHealth.modal.title': 'Zastąpić model?',
  'settings.modelHealth.modal.hallucRate': 'Współczynnik halucynacji',
  'settings.modelHealth.modal.cancel': 'Anuluj',
  'settings.modelHealth.modal.apply': 'Zastosuj zamianę',
  'settings.modelHealth.tag.cheaper': 'TAŃSZY',
  'settings.modelHealth.tag.better': 'LEPSZY',
  'settings.desktopAgent.title': 'Agent pulpitu',
  'settings.desktopAgent.description':
    'Sprawdź i przyznaj uprawnienia wymagane przez agenta pulpitu.',
  'settings.desktopAgent.microphone': 'Mikrofon',
  'settings.desktopAgent.grant': 'Przyznaj',
  'settings.desktopAgent.notRequiredOnOs': 'Niewymagane w tym systemie operacyjnym',
  'settings.desktopAgent.allGranted':
    'Wszystko gotowe — agent pulpitu ma wszystkie wymagane uprawnienia.',
  'settings.desktopAgent.recheck': 'Sprawdź ponownie',
  'settings.desktopAgent.restartAndRecheck': 'Uruchom ponownie rdzeń i sprawdź ponownie',
  'settings.desktopAgent.seamless.title': 'Działania agenta',
  'settings.desktopAgent.seamless.label': 'Pozwól agentowi działać bez pytania',
  'settings.desktopAgent.seamless.description':
    'Przyznaj pełny dostęp i automatycznie zatwierdzaj działania na pulpicie (otwieranie aplikacji, sterowanie ich interfejsami), aby agent wykonywał je bez prośby o zatwierdzenie.',
  'settings.desktopAgent.seamless.note':
    'Tylko działania na pulpicie pomijają prośbę — uruchamianie poleceń powłoki, edycja plików, żądania sieciowe i instalowanie oprogramowania nadal pytają. Wyłączenie tego zatrzymuje automatyczne zatwierdzanie działań na pulpicie, ale poziom dostępu pozostaje bez zmian.',
  'settings.desktopAgent.beta':
    'Beta — agent pulpitu jest eksperymentalny i może nie zawsze działać zgodnie z oczekiwaniami.',
  'settings.desktopAgent.wakeWordHint': 'Powiedz „Hey Tiny” przed poleceniem, aby obudzić agenta.',
  'settings.screenIntel.permissions.accessibility': 'Dostępność',
  'settings.screenIntel.permissions.grantHint': 'System otworzy okno żądania uprawnień.',
  'settings.screenIntel.permissions.inputMonitoring': 'Monitorowanie wejścia',
  'settings.screenIntel.permissions.macosAppliesPrivacy': 'macOS stosuje politykę prywatności do:',
  'settings.screenIntel.permissions.openInputMonitoring': 'Żądanie…',
  'settings.screenIntel.permissions.refreshStatus': 'Odświeżanie…',
  'settings.screenIntel.permissions.refreshing': 'Odświeżanie…',
  'settings.screenIntel.permissions.requestAccessibility': 'Żądanie…',
  'settings.screenIntel.permissions.requestScreenRecording': 'Żądanie…',
  'settings.screenIntel.permissions.requesting': 'Żądanie…',
  'settings.screenIntel.permissions.restartRefresh': 'Restartowanie rdzenia…',
  'settings.screenIntel.permissions.restartingCore': 'Restartowanie rdzenia…',
  'settings.screenIntel.permissions.screenRecording': 'Nagrywanie ekranu',
  'settings.screenIntel.permissions.title': 'Uprawnienia',
  'skills.card.moreActions': 'Więcej akcji',
  'skills.channelIcon.discord': 'Discord',
  'skills.channelIcon.imessage': 'iMessage',
  'skills.channelIcon.telegram': 'Telegram',
  'skills.channelIcon.web': 'Sieć',
  'skills.channelIcon.yuanbao': 'Yuanbao',
  'skills.composio.poweredBy': 'Napędzane przez Composio',
  'skills.composio.staleStatusTitle': 'Połączenia pokazują nieaktualny status',
  'skills.create.allowedTools': 'Dozwolone narzędzia',
  'skills.create.allowedToolsHelp': 'Renderowane do nagłówka frontmatter SKILL.md jako',
  'skills.create.allowedToolsPlaceholder': 'node_exec, fetch',
  'skills.create.author': 'Autor',
  'skills.create.authorPlaceholder': 'Twoje imię',
  'skills.create.commaSeparated': '(rozdzielone przecinkami)',
  'skills.create.createBtn': 'Utwórz umiejętność',
  'skills.create.createError': 'Nie udało się utworzyć umiejętności',
  'skills.create.creating': 'Tworzenie…',
  'skills.create.description': 'Opis',
  'skills.create.descriptionPlaceholder': 'Co robi ta umiejętność?',
  'skills.create.optional': '(opcjonalnie)',
  'skills.create.inputs.heading': 'Inputs',
  'skills.create.inputs.help':
    'Zadeklaruj parametry potrzebne umiejętności. Skills Runner wyrenderuje dla nich formularz w czasie działania.',
  'skills.create.inputs.add': 'Dodaj dane wejściowe',
  'skills.create.inputs.row.name': 'Nazwa danych wejściowych',
  'skills.create.inputs.row.namePlaceholder': 'np. repo',
  'skills.create.inputs.row.nameError':
    'Tylko litery, cyfry, podkreślenia i myślniki; musi zaczynać się od litery.',
  'skills.create.inputs.row.description': 'Opis danych wejściowych',
  'skills.create.inputs.row.descriptionPlaceholder': 'Co należy wpisać w tym polu?',
  'skills.create.inputs.row.type': 'Type',
  'skills.create.inputs.row.required': 'Required',
  'skills.create.inputs.row.remove': 'Usuń dane wejściowe',
  'skills.create.inputs.type.string': 'Text',
  'skills.create.inputs.type.integer': 'Number',
  'skills.create.inputs.type.boolean': 'Tak / Nie',
  'skills.create.license': 'Licencja',
  'skills.create.licensePlaceholder': 'MIT',
  'skills.create.name': 'Nazwa',
  'skills.create.namePlaceholder': 'np. Dziennik transakcji',
  'skills.create.scope': 'Zakres',
  'skills.create.scopeProjectHint': '/.openhuman/skills/',
  'skills.create.scopeUserHint':
    'Zapisane do ~/.openhuman/skills/<slug>/SKILL.md — dostępne we wszystkich przestrzeniach roboczych.',
  'skills.create.slugLabel': 'Etykieta slug',
  'skills.create.subtitle': 'SKILL.md',
  'skills.create.tags': 'Tagi',
  'skills.create.tagsPlaceholder': 'handel, badania',
  'skills.create.title': 'Nowa umiejętność',
  'skills.detail.allowedTools': 'Dozwolone narzędzia',
  'skills.detail.author': 'Autor',
  'skills.detail.license': 'Licencja',
  'skills.detail.bundledResources': 'Dołączone zasoby',
  'skills.detail.description': 'Opis',
  'skills.detail.closeAriaLabel': 'Zamknij szczegóły umiejętności',
  'skills.detail.location': 'Lokalizacja',
  'skills.detail.noBundledResources': 'Brak dołączonych zasobów.',
  'skills.detail.platforms': 'Platformy',
  'skills.detail.relatedSkills': 'Powiązane skille',
  'skills.detail.source': 'URL źródła',
  'skills.detail.sourceFormat': 'Format',
  'skills.detail.stars': 'Gwiazdki',
  'skills.detail.tags': 'Tagi',
  'skills.detail.warnings': 'Ostrzeżenia',
  'skills.detail.version': 'Wersja',
  'skills.install.errors.alreadyInstalledHint':
    'Umiejętność z tym slugiem już istnieje w przestrzeni roboczej. Usuń ją najpierw lub zmień `metadata.id` / `name` w frontmatter.',
  'skills.install.errors.alreadyInstalledTitle': 'Umiejętność już zainstalowana',
  'skills.install.errors.fetchFailedHint':
    'Żądanie nie zostało zrealizowane pomyślnie. Sprawdź, że URL wskazuje na osiągalny plik publiczny i że host zwrócił odpowiedź 2xx.',
  'skills.install.errors.fetchFailedTitle': 'Pobieranie nie powiodło się',
  'skills.install.errors.fetchTimedOutHint':
    'Zdalny host nie odpowiedział w czasie. Spróbuj ponownie lub zwiększ limit czasu (1-600 s).',
  'skills.install.errors.fetchTimedOutTitle': 'Przekroczono limit czasu pobierania',
  'skills.install.errors.fetchTooLargeHint':
    'SKILL.md musi mieć poniżej 1 MiB. Podziel dołączone zasoby na pliki `references/` lub `scripts/` zamiast wstawiać je inline.',
  'skills.install.errors.fetchTooLargeTitle': 'SKILL.md zbyt duży',
  'skills.install.errors.genericHint': 'Backend zwrócił błąd. Surowa wiadomość pokazana poniżej.',
  'skills.install.errors.genericTitle': 'Nie udało się zainstalować umiejętności',
  'skills.install.errors.invalidSkillHint':
    'Frontmatter musi być poprawnym YAML-em z niepustymi polami `name` i `description`, zakończonym `---`.',
  'skills.install.errors.invalidSkillTitle': 'SKILL.md nie został sparsowany',
  'skills.install.errors.invalidUrlHint':
    'Dozwolone są tylko publiczne adresy HTTPS. Prywatne, loopback i metadanowe hosty są zablokowane.',
  'skills.install.errors.invalidUrlTitle': 'URL odrzucony',
  'skills.install.errors.unsupportedUrlHint':
    'Działają tylko bezpośrednie linki `.md`. Dla GitHuba linkuj do pliku (github.com/owner/repo/blob/.../SKILL.md) — drzewa i korzenie repo nie są instalowane.',
  'skills.install.errors.unsupportedUrlTitle': 'Forma URL nieobsługiwana',
  'skills.install.errors.writeFailedHint':
    'Katalog umiejętności w przestrzeni roboczej nie był zapisywalny. Sprawdź uprawnienia systemu plików dla `<workspace>/.openhuman/skills/`.',
  'skills.install.errors.writeFailedTitle': 'Nie udało się zapisać SKILL.md',
  'skills.install.fetchLog': 'Dziennik pobierania',
  'skills.install.fetchingPrefix': 'Pobieranie',
  'skills.install.fetchingSuffix': 'może to potrwać do skonfigurowanego limitu czasu.',
  'skills.install.installBtn': 'Instalowanie…',
  'skills.install.installComplete': 'Instalacja zakończona',
  'skills.install.installing': 'Instalowanie…',
  'skills.install.parseWarnings': 'Ostrzeżenia parsowania',
  'skills.install.rawError': 'Surowy błąd',
  'skills.install.subtitleMiddle': 'przez HTTPS i instaluje pod',
  'skills.install.subtitlePrefix': 'Pobiera pojedynczy',
  'skills.install.subtitleSuffix': 'tylko HTTPS; prywatne i loopback hosty są zablokowane.',
  'skills.install.successDiscovered': 'Odkryto {count} nowych umiejętności.',
  'skills.install.successNoNewIds':
    'Umiejętność zainstalowana, ale nie pojawiły się nowe ID — katalog może już zawierać umiejętność z tym samym slugiem.',
  'skills.install.timeoutHint': '(sekundy, opcjonalne)',
  'skills.install.timeoutHelp':
    'Domyślnie 60 sekund. Wartości spoza zakresu 1-600 są ograniczane po stronie serwera.',
  'skills.install.timeoutInvalid': 'Musi być liczbą całkowitą między 1 a 600.',
  'skills.install.timeoutLabel': 'Limit czasu',
  'skills.install.timeoutPlaceholder': '60',
  'skills.install.title': 'Zainstaluj umiejętność z URL',
  'skills.install.urlHelpMiddle': 'plik.',
  'skills.install.urlHelpPrefix': 'Bezpośredni link do',
  'skills.install.urlHelpSuffix': 'URL-e przepisują się na',
  'skills.install.urlInvalidPrefix': 'URL musi być poprawnie sformułowanym',
  'skills.install.urlInvalidSuffix': 'linkiem.',
  'skills.install.urlLabel': 'URL umiejętności',
  'skills.install.urlPlaceholder': 'https://raw.githubusercontent.com/owner/repo/main/SKILL.md',
  'skills.meetingBots.bannerDesc':
    'Wklej link Google Meet, a OpenHuman dołączy jako gość, mówi, słucha i odpowiada.',
  'skills.meetingBots.bannerTitle': 'Wyślij OpenHuman na spotkanie',
  'skills.meetingBots.busyTitle': 'OpenHuman jest zajęty',
  'skills.meetingBots.comingSoon': 'Wkrótce',
  'skills.meetingBots.couldNotLeaveTitle': 'Nie można opuścić spotkania',
  'skills.meetingBots.couldNotStartTitle': 'Nie udało się uruchomić OpenHuman',
  'skills.meetingBots.displayName': 'Wyświetlana nazwa',
  'skills.meetingBots.failedToStart': 'Nie udało się uruchomić OpenHuman.',
  'skills.meetingBots.joiningMessage': 'Powinien pojawić się jako uczestnik w ciągu kilku sekund.',
  'skills.meetingBots.joiningTitle': 'OpenHuman dołącza do spotkania',
  'skills.meetingBots.meetingLink': 'Link spotkania',
  'skills.meetingBots.modalAriaLabel': 'Wyślij OpenHuman na spotkanie',
  'skills.meetingBots.modalDesc':
    'OpenHuman dołącza jako anonimowy gość, transmituje wideo do rozmowy i odpowiada przez agenta.',
  'skills.meetingBots.modalTitle': 'Wyślij OpenHuman na spotkanie',
  'skills.meetingBots.newBadge': 'Nowość',
  'skills.meetingBots.platformComingSoon': 'Obsługa {label} jest już wkrótce.',
  'skills.meetingBots.platformHints.gmeet': 'meet.google.com/abc-defg-hij',
  'skills.meetingBots.platformHints.teams': 'teams.microsoft.com/...',
  'skills.meetingBots.platformHints.webex': 'webex.com/meet/...',
  'skills.meetingBots.platformHints.zoom': 'zoom.us/j/...',
  'skills.meetingBots.platforms.gmeet': 'Google Meet',
  'skills.meetingBots.platforms.teams': 'Microsoft Teams',
  'skills.meetingBots.platforms.webex': 'Webex',
  'skills.meetingBots.platforms.zoom': 'Zoom',
  'skills.meetingBots.sendTo': 'Wyślij do',
  'skills.meetingBots.serverOverloaded':
    'OpenHuman jest teraz mocno obciążony. Spróbuj ponownie za kilka minut.',
  'skills.meetingBots.soonSuffix': 'wkrótce',
  'skills.meetingBots.starting': 'Uruchamianie…',
  'skills.meetingBots.recentCallsAriaLabel': 'Ostatnie rozmowy na spotkaniach',
  'skills.meetingBots.recentCallsHeading': 'Ostatnie rozmowy',
  'skills.meetingBots.recentCallsEmpty':
    'Brak poprzednich rozmów — historia spotkań pojawi się tutaj.',
  'skills.meetingBots.recentCallsLoading': 'Ładowanie\u2026',
  'skills.meetingBots.recentCallAddedBy': 'Dodane przez {name}',
  'skills.meetingBots.recentCallParticipants': 'Uczestnicy: {names}',
  'skills.meetingBots.recentCallTurnSingular': '{count} tura',
  'skills.meetingBots.recentCallTurnPlural': '{count} tury',
  'skills.meetingBots.recentCallDuration': '{seconds}s rozmowy',
  'skills.meetingBots.callDetailLoading': 'Ładowanie transkrypcji…',
  'skills.meetingBots.callDetailError': 'Nie udało się załadować transkrypcji.',
  'skills.meetingBots.callDetailRetry': 'Spróbuj ponownie',
  'skills.meetingBots.callDetailEmpty':
    'Dla tego połączenia nie zarejestrowano transkrypcji ani podsumowania.',
  'skills.meetingBots.callSummaryHeading': 'Podsumowanie',
  'skills.meetingBots.callKeyPointsHeading': 'Kluczowe punkty',
  'skills.meetingBots.callActionItemsHeading': 'Zadania do wykonania',
  'skills.meetingBots.callTranscriptHeading': 'Transkrypcja',
  'skills.meetingBots.liveBadge': 'Na żywo',
  'skills.meetingBots.liveTitle': 'Na spotkaniu',
  'skills.meetingBots.liveStatusJoining': 'Dołączanie\u2026',
  'skills.meetingBots.liveStatusActive': 'Na żywo na spotkaniu',
  'skills.meetingBots.liveStatusListening': 'Słuchanie (wyciszony)',
  'skills.meetingBots.liveStatusEnded': 'Spotkanie zakończone',
  'skills.meetingBots.liveStatusError': 'Nie można dołączyć',
  'skills.meetingBots.liveTranscriptHeading': 'Transkrypcja na żywo',
  'skills.meetingBots.liveTranscriptEmpty': 'Oczekiwanie na mowę…',
  'skills.meetingBots.leaveButton': 'Wyjdź',
  'skills.meetingBots.leavingButton': 'Opuszczanie…',
  'skills.meetingBots.respondToParticipant': 'Twoje imię na tym spotkaniu',
  'skills.meetingBots.respondToParticipantHint':
    'np. Anna (Twoja nazwa wyświetlana podczas rozmowy)',
  'skills.meetingBots.respondToParticipantDesc':
    'Wprowadź swój dokładny wyświetlany nick ze spotkania. Bot reaguje tylko wtedy, gdy wypowiesz jego nazwę (fraza aktywacji).',
  'skills.meetingBots.wakePhrase': 'Fraza aktywacji',
  'skills.meetingBots.wakePhraseHint': 'Hey OpenHuman',
  'skills.meetingBots.wakePhraseDesc': 'Uczestnik musi to powiedzieć, zanim bot odpowie.',
  'skills.meetingBots.activeMode': 'Odpowiadaj, gdy się do niego zwracam',
  'skills.meetingBots.activeModeDesc':
    'Gdy włączone, bot odpowiada na głos po wypowiedzeniu frazy aktywującej. Gdy wyłączone, tylko słucha i transkrybuje.',
  'skills.meetingBots.history.allPlatforms': 'Wszystkie platformy',
  'skills.meetingBots.history.copyTranscript': 'Kopiuj',
  'skills.meetingBots.history.downloadTranscript': 'Pobierz',
  'skills.meetingBots.history.earlier': 'Wcześniej',
  'skills.meetingBots.history.participantCount': '{count} uczestnik',
  'skills.meetingBots.history.participantCountPlural': '{count} uczestników',
  'skills.meetingBots.history.runWithOpenHuman': 'Uruchom z OpenHuman',
  'skills.meetingBots.history.searchPlaceholder': 'Szukaj połączeń…',
  'skills.meetingBots.history.selectPrompt':
    'Wybierz połączenie, aby zobaczyć podsumowanie i transkrypt.',
  'skills.meetingBots.history.today': 'Dzisiaj',
  'skills.meetingBots.history.yesterday': 'Wczoraj',
  'skills.meetingBots.upcoming.heading': 'Nadchodzące',
  'skills.meetingBots.upcoming.when': 'Kiedy',
  'skills.meetingBots.upcoming.meeting': 'Spotkanie',
  'skills.meetingBots.upcoming.platform': 'Platforma',
  'skills.meetingBots.upcoming.people': 'Osoby',
  'skills.meetingBots.upcoming.joinPolicy': 'Polityka dołączania',
  'skills.meetingBots.upcoming.joinNow': 'Dołącz teraz',
  'skills.meetingBots.upcoming.joinNowAriaLabel': 'Dołącz do {title}',
  'skills.meetingBots.upcoming.join': 'Dołącz',
  'skills.meetingBots.upcoming.auto': 'Auto',
  'skills.meetingBots.upcoming.ask': 'Zapytaj',
  'skills.meetingBots.upcoming.skip': 'Pomiń',
  'skills.meetingBots.upcoming.today': 'Dziś',
  'skills.meetingBots.upcoming.tomorrow': 'Jutro',
  'skills.meetingBots.upcoming.empty':
    'Brak nadchodzących spotkań — połącz Google Calendar, aby je zobaczyć.',
  'skills.meetingBots.upcoming.error': 'Nie można załadować nadchodzących spotkań.',
  'skills.meetingBots.upcoming.retry': 'Ponów',
  'skills.meetingBots.upcoming.refresh': 'Odśwież',
  'skills.meetingBots.upcoming.filterAll': 'Wszystkie platformy',
  'skills.meetingBots.upcoming.participants': '{count} uczestników',
  'skills.meetingBots.upcoming.imminent': 'Zaczyna się wkrótce',
  'skills.meetingBots.upcoming.autoJoinsAt': 'Auto-dołącza ~o {time}',
  'skills.meetingBots.upcoming.asksAtStart': 'Pyta na początku',
  'skills.meetingBots.upcoming.watchCalendarHint':
    "Włącz 'Monitoruj mój kalendarz' w Ustawieniach domyślnych (ikona koła zębatego), aby Auto/Pytaj działały — w przeciwnym razie te zasady są zapisane, ale nie będą wyzwalane.",
  'skills.meetingBots.relative.now': 'teraz',
  'skills.meetingBots.relative.inMinutes': 'za {count}m',
  'skills.meetingBots.relative.inHours': 'za {count}h',
  'skills.meetingBots.relative.minutesAgo': '{count}m temu',
  'skills.meetingBots.relative.hoursAgo': '{count}h temu',
  'skills.meetingBots.relative.daysAgo': '{count}d temu',
  'skills.meetingBots.relative.yesterday': 'wczoraj',
  'skills.meetingBots.defaults.drawerTitle': 'Domyślne ustawienia spotkań',
  'skills.meetingBots.defaults.closeDrawer': 'Zamknij',
  'skills.meetingBots.defaults.openDefaults': 'Ustawienia spotkań',
  'skills.meetingBots.defaults.watchCalendar': 'Monitoruj mój kalendarz',
  'skills.meetingBots.defaults.watchCalendarDesc':
    'Pozwól OpenHuman monitorować Twój połączony kalendarz, aby mógł automatycznie dołączać do spotkań lub pytać o dołączenie zgodnie z poniższymi zasadami. Jest to niezależne od przypomnień o spotkaniach.',
  'skills.meetingBots.defaults.globalPolicy': 'Globalna zasada automatycznego dołączania',
  'skills.meetingBots.defaults.perPlatformTitle': 'Ustawienia według platformy',
  'skills.meetingBots.defaults.perPlatformDesc': 'Zastąp globalną zasadę dla określonych platform.',
  'skills.meetingBots.defaults.useDefault': 'Użyj domyślnego',
  'skills.resource.preview.closeAriaLabel': 'Zamknij podgląd',
  'skills.resource.preview.failed': 'Podgląd nie powiódł się',
  'skills.resource.preview.loading': 'Wczytywanie podglądu…',
  'skills.resource.tree.assets': 'Zasoby',
  'skills.resource.tree.examples': 'Przykłady',
  'skills.resource.tree.other': 'Inne',
  'skills.resource.tree.prompts': 'Prompty',
  'skills.resource.tree.references': 'Referencje',
  'skills.resource.tree.scripts': 'Skrypty',
  'skills.resource.tree.templates': 'Szablony',
  'skills.resource.tree.empty': 'Brak dołączonych zasobów.',
  'skills.search.placeholder': 'Szukaj umiejętności...',
  'skills.setup.autocomplete.acceptKey': 'Klawisz akceptacji',
  'skills.setup.autocomplete.activeDesc':
    'Autouzupełnianie działa. Akceptuj sugestie klawiszem skrótu.',
  'skills.setup.autocomplete.activeTitle': 'Autouzupełnianie jest aktywne',
  'skills.setup.autocomplete.customizeSettings': 'Dostosuj ustawienia',
  'skills.setup.autocomplete.debounce': 'Debounce',
  'skills.setup.autocomplete.description':
    'Sugestie wierszowe podczas pisania w polach tekstowych.',
  'skills.setup.autocomplete.enableBtn': 'Włączanie...',
  'skills.setup.autocomplete.enableError': 'Nie udało się włączyć autouzupełniania',
  'skills.setup.autocomplete.enabling': 'Włączanie...',
  'skills.setup.autocomplete.notSupported': 'Nieobsługiwane',
  'skills.setup.autocomplete.stepEnable': 'Włącz uzupełnienia wierszowe',
  'skills.setup.autocomplete.stepSuccess': 'Gotowe',
  'skills.setup.autocomplete.stylePreset': 'Preset stylu',
  'skills.setup.autocomplete.stylePresetValue': 'Zrównoważony (konfigurowalny później)',
  'skills.setup.autocomplete.title': 'Autouzupełnianie tekstu',
  'skills.setup.screenIntel.activeDesc': 'Inteligencja ekranu działa. Wybrane okna są obserwowane.',
  'skills.setup.screenIntel.activeTitle': 'Inteligencja ekranu jest włączona',
  'skills.setup.screenIntel.advancedSettings': 'Ustawienia zaawansowane',
  'skills.setup.screenIntel.allGranted': 'Wszystkie uprawnienia przyznane',
  'skills.setup.screenIntel.captureMode': 'Tryb przechwytywania',
  'skills.setup.screenIntel.captureModeValue': 'Wszystkie okna (konfigurowalne później)',
  'skills.setup.screenIntel.deniedHint':
    'Po przyznaniu uprawnień w Ustawieniach systemowych kliknij poniżej, aby zrestartować i odświeżyć zmiany.',
  'skills.setup.screenIntel.enableBtn': 'Włączanie...',
  'skills.setup.screenIntel.enableDesc':
    's na Twoim ekranie i dostarczają użytecznego kontekstu agentowi',
  'skills.setup.screenIntel.enableError': 'Nie udało się włączyć inteligencji ekranu',
  'skills.setup.screenIntel.enabling': 'Włączanie...',
  'skills.setup.screenIntel.grant': 'Otwieranie...',
  'skills.setup.screenIntel.granted': 'Przyznano',
  'skills.setup.screenIntel.macosOnly': 'Tylko macOS',
  'skills.setup.screenIntel.opening': 'Otwieranie...',
  'skills.setup.screenIntel.panicHotkey': 'Skrót awaryjny',
  'skills.setup.screenIntel.permAccessibility': 'Dostępność',
  'skills.setup.screenIntel.permInputMonitoring': 'Monitorowanie wejścia',
  'skills.setup.screenIntel.permScreenRecording': 'Nagrywanie ekranu',
  'skills.setup.screenIntel.permissionsDesc': 'Inteligencja ekranu wymaga uprawnień systemowych:',
  'skills.setup.screenIntel.permissionPathLabel': 'macOS stosuje politykę prywatności do:',
  'skills.setup.screenIntel.refreshStatus': 'Odśwież status',
  'skills.setup.screenIntel.restartRefresh': 'Restartowanie...',
  'skills.setup.screenIntel.restarting': 'Restartowanie...',
  'skills.setup.screenIntel.stepEnable': 'Włącz umiejętność',
  'skills.setup.screenIntel.stepPermissions': 'Przyznaj uprawnienia',
  'skills.setup.screenIntel.stepSuccess': 'Gotowe',
  'skills.setup.screenIntel.title': 'Inteligencja ekranu',
  'skills.setup.screenIntel.visionModel': 'Model wizji',
  'skills.setup.voice.activation': 'Aktywacja',
  'skills.setup.voice.activeDescPrefix': 'Fn',
  'skills.setup.voice.activeDescSuffix': 'Fn',
  'skills.setup.voice.activeTitle': 'Inteligencja głosowa jest aktywna',
  'skills.setup.voice.customizeSettings': 'Dostosuj ustawienia',
  'skills.setup.voice.downloadSttBtn': 'Pobierz model STT',
  'skills.setup.voice.enableDesc': 'Włącz dyktowanie głosowe i odpowiedzi głosowe.',
  'skills.setup.voice.hotkey': 'Skrót klawiszowy',
  'skills.setup.voice.startBtn': 'Uruchamianie...',
  'skills.setup.voice.startError': 'Nie udało się uruchomić serwera głosowego',
  'skills.setup.voice.starting': 'Uruchamianie...',
  'skills.setup.voice.stepEnable': 'Uruchom serwer głosowy',
  'skills.setup.voice.stepSetup': 'Wymagane pobranie modelu',
  'skills.setup.voice.stepSuccess': 'Gotowe',
  'skills.setup.voice.sttNotReady': 'Model speech-to-text niegotowy',
  'skills.setup.voice.sttNotReadyDesc':
    'Inteligencja głosowa wymaga lokalnego modelu Whisper do transkrypcji. Pobierz go z ustawień modelu lokalnego.',
  'skills.setup.voice.sttReady': 'Model speech-to-text gotowy',
  'skills.setup.voice.sttReturnHint': 'Wróć tutaj po pobraniu modelu.',
  'skills.setup.voice.title': 'Inteligencja głosowa',
  'skills.uninstall.couldNotUninstall': 'Nie udało się odinstalować',
  'skills.uninstall.description':
    'Permanentnie usuwa katalog umiejętności i wszystkie dołączone zasoby. Agent przestanie je widzieć w następnej turze.',
  'skills.uninstall.title': 'Odinstaluj',
  'skills.uninstall.uninstallBtn': 'Odinstaluj',
  'skills.uninstall.uninstalling': 'Odinstalowywanie…',
  'upsell.global.limitMessage': 'Podnieś plan lub doładuj kredyty, aby kontynuować',
  'upsell.global.limitTitle': 'Ty',
  'upsell.global.nearLimitMessage':
    'Wykorzystano {pct}% limitu użycia. Podnieś plan, aby zwiększyć limity.',
  'upsell.global.nearLimitTitle': 'Zbliżasz się do limitu użycia',
  'upsell.usageLimit.bodyBudget':
    'Osiągnięto tygodniowy limit.{reset} Podnieś plan lub doładuj kredyty, aby uniknąć limitów.',
  'upsell.usageLimit.bodyRate':
    'Osiągnięto 10-godzinny limit szybkości inferencji.{reset} Podnieś plan, aby zwiększyć limity.',
  'upsell.usageLimit.heading': 'Osiągnięto limit użycia',
  'upsell.usageLimit.notNow': 'Nie teraz',
  'upsell.usageLimit.perWindow': '{amount}',
  'upsell.usageLimit.planIncludes': '{plan}',
  'upsell.usageLimit.resetsIn': 'Resetuje się {time}.',
  'upsell.usageLimit.upgradePlan': 'Podnieś plan',
  'upsell.usageLimit.weeklyInference': '{amount}',
  'walkthrough.steps.startChat.title': 'Zacznij na czacie',
  'walkthrough.steps.startChat.content':
    'Czat jest punktem startowym. Nowe okna otwierają się z tym samym powitaniem i szybkimi akcjami z konfiguracji.',
  'walkthrough.steps.sayHello.title': 'Przywitaj się',
  'walkthrough.steps.sayHello.content':
    'Kliknij tutaj, aby w dowolnym momencie rozpocząć rozmowę z asystentem AI.',
  'walkthrough.steps.meetAi.title': 'Poznaj swoją AI',
  'walkthrough.steps.meetAi.content':
    'Tutaj odbywają się rozmowy. Zadawaj pytania, proś o podsumowania lub rozwijaj pomysły. Wszystko pozostaje wyszukiwalne.',
  'walkthrough.steps.connectWorld.title': 'Połącz swój świat',
  'walkthrough.steps.connectWorld.content':
    'Gmail, Slack, WhatsApp i więcej: każde połączenie daje asystentowi nowe możliwości.',
  'walkthrough.steps.messagingApps.title': 'Czatuj tam, gdzie już jesteś',
  'walkthrough.steps.messagingApps.content':
    'WhatsApp, Telegram, Slack, Discord: połącz komunikatory, aby asystent mógł dotrzeć do Ciebie wszędzie.',
  'walkthrough.steps.settings.title': 'Dostosuj pod siebie',
  'walkthrough.steps.settings.content':
    'Preferencje, prywatność i powiadomienia są tutaj. Możesz uruchomić tę prezentację ponownie z tej strony.',
  'walkthrough.steps.chatTab.title': 'Wróć do czatu',
  'walkthrough.steps.chatTab.content': 'Użyj karty Chat, gdy chcesz wrócić do rozmów.',
  'walkthrough.steps.humanTab.title': 'Poznaj profil Human',
  'walkthrough.steps.humanTab.content':
    'Human łączy Twój kontekst osobisty, tożsamość i profil widoczny dla asystenta.',
  'walkthrough.steps.brainTab.title': 'Otwórz Brain',
  'walkthrough.steps.brainTab.content':
    'Brain to graf pamięci: miejsce, w którym sprawdzisz, co wie OpenHuman i jak łączą się idee.',
  'walkthrough.steps.agentWorldTab.title': 'Odkryj Agent World',
  'walkthrough.steps.agentWorldTab.content':
    'Agent World to miejsce na agentów wielokrotnego użytku i wspólne automatyzacje.',
  'walkthrough.steps.connectionsTab.title': 'Zarządzaj połączeniami',
  'walkthrough.steps.connectionsTab.content':
    'Connections jest zawsze dostępne w głównej nawigacji, gdy chcesz dodać lub zmienić usługi.',
  'walkthrough.steps.feedbackTab.title': 'Wyślij opinię',
  'walkthrough.steps.feedbackTab.content':
    'Feedback daje bezpośrednie miejsce do zgłaszania problemów lub próśb o ulepszenia.',
  'walkthrough.steps.allSet.title': 'Gotowe!',
  'walkthrough.steps.allSet.content':
    'Asystent zostawił Ci wiadomość powitalną: tu możesz czatować, pytać i rozwijać pomysły. Miłej zabawy!',
  'walkthrough.tooltip.letsGo': 'Zaczynamy!',
  'walkthrough.tooltip.next': 'Dalej →',
  'walkthrough.tooltip.skip': 'Pomiń przewodnik',
  'walkthrough.tooltip.stepCounter': '{n} z {total}',
  'webhooks.activity.empty': 'Brak aktywności.',
  'webhooks.activity.title': 'Ostatnia aktywność',
  'webhooks.composioHistory.empty': 'Brak historii.',
  'webhooks.composioHistory.metadataId': 'ID metadanych',
  'webhooks.composioHistory.metadataUuid': 'UUID metadanych',
  'webhooks.composioHistory.payload': 'Ładunek',
  'webhooks.composioHistory.title': 'Historia wyzwalaczy ComposeIO',
  'webhooks.tunnels.active': 'Aktywny',
  'webhooks.tunnels.createFailed': 'Nie udało się utworzyć tunelu',
  'webhooks.tunnels.creating': 'Tworzenie...',
  'webhooks.tunnels.deleteFailed': 'Nie udało się usunąć tunelu',
  'webhooks.tunnels.descriptionPlaceholder': 'Opis (opcjonalny)',
  'webhooks.tunnels.echo': 'Echo',
  'webhooks.tunnels.empty': 'Brak tuneli.',
  'webhooks.tunnels.enableEcho': 'Włącz Echo',
  'webhooks.tunnels.inactive': 'Nieaktywny',
  'webhooks.tunnels.namePlaceholder': 'Nazwa tunelu (np. telegram-bot)',
  'webhooks.tunnels.newTunnel': 'Nowy tunel',
  'webhooks.tunnels.removeEcho': 'Usuń Echo',
  'webhooks.tunnels.title': 'Tunele webhooków',
  'webhooks.tunnels.toggleFailed': 'Nie udało się przełączyć echa',
  'composio.directModeRequiresKey':
    'Nie udało się zapisać. Tryb bezpośredni wymaga niepustego klucza API.',
  'composio.integrationSlugsHelp': 'Slugi integracji rozdzielone przecinkami, np.',
  'composio.integrationSlugsExample': 'gmail, slack',
  'composio.integrationSlugsCaseInsensitive': 'Bez rozróżniania wielkości liter.',
  'composio.integrationSlugsPlaceholder': 'gmail, slack, ...',
  'composio.notYetRouted': 'jeszcze nie trasowane',
  'composio.triggers.loading': 'Wczytywanie…',
  'conversations.taskKanban.todo': 'Do zrobienia',
  'chat.addReaction': 'Dodaj reakcję',
  'chat.agentProfile.create': 'Utwórz profil agenta',
  'chat.agentProfile.createFailed': 'Nie udało się utworzyć profilu agenta.',
  'chat.agentProfile.customDescription': 'Niestandardowy profil agenta',
  'chat.agentProfile.defaultAgentLabel': 'Orchestrator',
  'chat.agentProfile.exists': 'Profil agenta „{name}” już istnieje.',
  'chat.agentProfile.label': 'Profil agenta',
  'chat.agentProfile.quick': 'Szybki',
  'chat.agentProfile.reasoning': 'Rozumowanie',
  'chat.agentProfile.namePlaceholder': 'Nazwa profilu',
  'chat.agentProfile.promptStylePlaceholder': 'Styl promptu',
  'chat.agentProfile.allowedToolsPlaceholder': 'Dozwolone narzędzia',
  'chat.backToThread': 'wróć do {title}',
  'chat.parentThread': 'wątek nadrzędny',
  'chat.removeReaction': 'Usuń {emoji}',
  'settings.composio.loading': 'Wczytywanie…',
  'settings.mascot.noCharactersAvailable': 'Nie ma jeszcze dostępnych postaci OpenHuman',
  'skills.uninstall.confirmTitle': 'Odinstalować {name}?',
  'conversations.taskKanban.blocked': 'Zablokowane',
  'conversations.taskKanban.done': 'Zrobione',
  'conversations.taskKanban.pending': 'Oczekujące',
  'conversations.taskKanban.working': 'W pracy',
  'conversations.taskKanban.awaitingApproval': 'Oczekuje na zatwierdzenie',
  'conversations.taskKanban.ready': 'Gotowe',
  'conversations.taskKanban.rejected': 'Odrzucone',
  'conversations.taskKanban.inProgress': 'W toku',
  'conversations.taskKanban.awaitingApprovalColumn': 'Oczekuje na zatwierdzenie',
  'conversations.taskKanban.blockedColumn': 'Zablokowane',
  'conversations.taskKanban.evidenceBadge': 'Dowody ({count})',
  'conversations.taskKanban.needsInput': 'Te zadania wymagają Twojego wkładu',
  'conversations.taskKanban.emptyColumn': 'Brak zadań',
  'conversations.taskKanban.dragHint': 'Przeciągnij, aby przenieść między kolumnami',
  'conversations.taskKanban.movingCard': 'Przenoszenie…',
  'conversations.taskKanban.statusBadge.ready': 'Gotowe do rozpoczęcia',
  'conversations.taskKanban.statusBadge.rejected': 'Odrzucone',
  'intelligence.memoryChunk.detail.copiedHint': 'skopiowano',
  'settings.composio.notYetRouted': 'jeszcze nie trasowane',
  'settings.localModel.download.manageExternal':
    'Zarządzaj tym modelem w swoim zewnętrznym środowisku.',
  'settings.localModel.status.manageOllamaExternal':
    'Zarządzaj procesem Ollama i pobraniami modeli poza OpenHumanem, a następnie uruchom ponownie diagnostykę.',
  'settings.localModel.status.ollamaDocs': 'Dokumentacja Ollama',
  'settings.localModel.status.thenRetry':
    'po instrukcje konfiguracji, a następnie spróbuj ponownie, gdy środowisko będzie osiągalne.',
  'devOptions.menuAi': 'Konfiguracja AI',
  'devOptions.menuAiDesc': 'Dostawcy chmurowi, lokalne modele Ollama i trasowanie per workload',
  'devOptions.menuScreenAware': 'Świadomość ekranu',
  'devOptions.menuScreenAwareDesc':
    'Uprawnienia do przechwytywania ekranu, polityka monitorowania i kontrola sesji',
  'devOptions.menuMessaging': 'Kanały komunikacji',
  'devOptions.menuMessagingDesc':
    'Konfiguruj tryby uwierzytelniania Telegram/Discord i domyślne trasowanie',
  'devOptions.menuTools': 'Narzędzia',
  'devOptions.menuToolsDesc':
    'Włącz lub wyłącz możliwości, z których OpenHuman może korzystać w Twoim imieniu',
  'devOptions.menuAgentChat': 'Czat z agentem',
  'devOptions.menuAgentChatDesc': 'Testuj rozmowę z agentem z nadpisaniem modelu i temperatury',
  'devOptions.menuCronJobs': 'Zadania cron',
  'devOptions.menuCronJobsDesc':
    'Przeglądaj i konfiguruj zaplanowane zadania dla umiejętności runtime',
  'devOptions.menuLocalModelDebug': 'Debug modelu lokalnego',
  'devOptions.menuLocalModelDebugDesc':
    'Konfiguracja Ollama, pobieranie zasobów, testy modeli i diagnostyka',
  'devOptions.menuWebhooksDebug': 'Webhooki',
  'devOptions.menuWebhooksDebugDesc':
    'Sprawdź rejestracje webhooków w runtime i logi przechwyconych żądań',
  'devOptions.menuIntelligence': 'Inteligencja',
  'devOptions.menuIntelligenceDesc': 'Przestrzeń pamięci, silnik podświadomości, sny i ustawienia',
  'devOptions.menuNotificationRouting': 'Trasowanie powiadomień',
  'devOptions.menuNotificationRoutingDesc':
    'Punktacja ważności AI i eskalacja przez orkiestrator dla alertów integracji',
  'devOptions.menuComposeIOTriggers': 'Wyzwalacze ComposeIO',
  'devOptions.menuComposeIOTriggersDesc': 'Przeglądaj historię i archiwum wyzwalaczy ComposeIO',
  'devOptions.menuComposioRouting': 'Trasowanie Composio (tryb bezpośredni)',
  'devOptions.menuComposioRoutingDesc':
    'Użyj własnego klucza API Composio i kieruj wywołania bezpośrednio do backend.composio.dev',
  'devOptions.menuComposioTriggers': 'Wyzwalacze integracji',
  'devOptions.menuComposioTriggersDesc':
    'Konfiguruj ustawienia klasyfikacji AI dla wyzwalaczy integracji Composio',
  'memory.sourceFilterAria': 'Filtruj po źródle',
  'calls.comingSoonDescription': 'Połączenia wspierane AI pojawią się wkrótce. Bądź na bieżąco.',
  'whatsapp.title': 'WhatsApp',
  'subconscious.priority.critical': 'krytyczne',
  'subconscious.priority.important': 'ważne',
  'subconscious.priority.normal': 'normalne',
  'subconscious.durationSeconds': '{seconds} s',
  'subconscious.durationMilliseconds': '{milliseconds} ms',
  'settings.appearance': 'Wygląd',
  'settings.appearanceDesc': 'Wybierz tryb jasny, ciemny lub zgodny z systemem',
  'settings.mascot': 'Maskotka',
  'settings.mascotDesc': 'Wybierz kolor maskotki używany w aplikacji',
  'pages.settings.account.walletBalances': 'Salda portfela',
  'pages.settings.account.walletBalancesDesc':
    'Przeglądaj salda wielu sieci dla swojego lokalnego portfela',
  'walletBalances.title': 'Salda portfela',
  'walletBalances.refresh': 'Refresh',
  'walletBalances.loading': 'Ładowanie sald…',
  'walletBalances.retry': 'Retry',
  'walletBalances.emptyState':
    'Brak kont portfela — skonfiguruj portfel w sekcji Fraza odzyskiwania.',
  'walletBalances.copyAddress': 'Kopiuj adres',
  'walletBalances.providerMissing': 'dostawca niedostępny',
  'walletBalances.rawBalance': 'Nieprzetworzone: {raw}',
  'walletBalances.errorGeneric':
    'Nie można załadować sald portfela. Skonfiguruj portfel w sekcji Fraza odzyskiwania i spróbuj ponownie.',
  'walletBalances.setupHint':
    'Twoja fraza odzyskiwania nie jest jeszcze skonfigurowana. Skonfiguruj ją, aby włączyć portfel i widzieć salda na żywo.',
  'walletBalances.setupCta': 'Skonfiguruj frazę odzyskiwania',
  'walletBalances.notSetUp': 'Nie skonfigurowano',
  'walletBalances.send': 'Wyślij',
  'walletBalances.receive': 'Odbierz',
  'walletReceive.scanHint': 'Zeskanuj ten kod lub skopiuj adres poniżej, aby otrzymać środki.',
  'walletReceive.addressLabel': 'Adres {network}',
  'walletReceive.onlyChainWarning':
    'Wysyłaj na ten adres wyłącznie aktywa {network}. Wysłanie aktywów z innej sieci może spowodować trwałą utratę.',
  'walletSend.available': 'Dostępne',
  'walletSend.recipient': 'Adres odbiorcy',
  'walletSend.recipientPlaceholder': 'Wklej adres docelowy',
  'walletSend.recipientRequired': 'Wprowadź adres odbiorcy',
  'walletSend.amount': 'Kwota',
  'walletSend.invalidAmount': 'Wprowadź prawidłową kwotę',
  'walletSend.review': 'Przejrzyj',
  'walletSend.preparing': 'Przygotowywanie…',
  'walletSend.confirmHint':
    'Sprawdź poniższe szczegóły. Podpisywanie odbywa się lokalnie — nic nie zostanie wysłane, dopóki nie potwierdzisz.',
  'walletSend.estimatedFee': 'Szacowana opłata sieciowa',
  'walletSend.confirmSend': 'Potwierdź i wyślij',
  'walletSend.sending': 'Wysyłanie…',
  'walletSend.sent': 'Transakcja wysłana',
  'walletSend.txHash': 'Hash transakcji',
  'walletSend.viewExplorer': 'Zobacz w eksploratorze',
  'walletSend.done': 'Gotowe',
  'walletSend.genericError': 'Nie udało się zrealizować transferu. Spróbuj ponownie.',
  'settings.taskSources.title': 'Źródła zadań',
  'settings.integrations.title': 'Integracje',
  'settings.integrations.menuDesc': 'Źródła zadań, routing Composio i wyzwalacze webhooków',
  'settings.taskSources.subtitle': 'Pobieraj zadania z narzędzi na tablicę zadań agenta',
  'settings.taskSources.description':
    'Zbieraj elementy pracy z GitHub, Notion, Linear i ClickUp, wzbogacaj je i kieruj na tablicę zadań agenta.',
  'settings.taskSources.connectHint':
    'Źródła zadań używają połączonych kont. Najpierw połącz je w Integracjach.',
  'settings.taskSources.disabledBanner':
    'Źródła zadań są wyłączone w ustawieniach. Włącz je, aby automatycznie odpytywać.',
  'settings.taskSources.loadError': 'Nie udało się wczytać źródeł zadań',
  'settings.taskSources.addTitle': 'Dodaj źródło zadań',
  'settings.taskSources.provider': 'Dostawca',
  'settings.taskSources.name': 'Nazwa (opcjonalnie)',
  'settings.taskSources.namePlaceholder': 'np. Moje otwarte zgłoszenia',
  'settings.taskSources.github.repo': 'Repozytorium (właściciel/nazwa, opcjonalnie)',
  'settings.taskSources.github.labels': 'Etykiety (rozdzielone przecinkami)',
  'settings.taskSources.notion.database': 'ID bazy danych (tablicy)',
  'settings.taskSources.notion.browseDatabases': 'Przeglądaj bazy danych',
  'settings.taskSources.notion.loadingDatabases': 'Ładowanie baz danych…',
  'settings.taskSources.notion.selectDatabase': 'Wybierz bazę danych…',
  'settings.taskSources.notion.noDatabases': 'Nie znaleziono baz danych dla tego połączenia.',
  'settings.taskSources.linear.team': 'ID zespołu (opcjonalnie)',
  'settings.taskSources.clickup.team': 'ID przestrzeni roboczej (zespołu, opcjonalnie)',
  'settings.taskSources.assignedToMe': 'Tylko elementy przypisane do mnie',
  'settings.taskSources.add': 'Dodaj źródło',
  'settings.taskSources.adding': 'Dodawanie…',
  'settings.taskSources.preview': 'Podgląd',
  'settings.taskSources.previewResult': '{count} zadań pasuje do tego filtra',
  'settings.taskSources.fetchNow': 'Pobierz teraz',
  'settings.taskSources.fetching': 'Pobieranie…',
  'settings.taskSources.fetchResult':
    'Skierowano {routed} z {fetched} zadań; usunięto {pruned} nieaktualnych zadań',
  'settings.taskSources.syncAll': 'Synchronizuj wszystko',
  'settings.taskSources.syncing': 'Synchronizowanie…',
  'settings.taskSources.configured': 'Skonfigurowane źródła',
  'settings.taskSources.empty': 'Nie skonfigurowano jeszcze źródeł zadań.',
  'settings.taskSources.proactive': 'Proaktywne',
  'settings.taskSources.lastFetch': 'Ostatnie pobranie',
  'settings.taskSources.never': 'Nigdy',
  'settings.taskSources.statusEnabled': 'Włączone',
  'settings.taskSources.statusDisabled': 'Wyłączone',
  'settings.taskSources.enable': 'Włącz',
  'settings.taskSources.disable': 'Wyłącz',
  'settings.taskSources.remove': 'Usuń',
  'settings.taskSources.removeConfirm':
    'Usunąć to źródło zadań? Cała pobrana historia zadań zostanie usunięta i nie będzie można tego cofnąć.',
  'settings.taskSources.refresh': 'Odśwież',
  'settings.taskSources.providers.github': 'GitHub',
  'settings.taskSources.providers.notion': 'Notion',
  'settings.taskSources.providers.linear': 'Linear',
  'settings.taskSources.providers.clickup': 'ClickUp',
  'skills.dashboard.enable': 'Włącz zaplanowany przepływ pracy',
  'skills.dashboard.disable': 'Wyłącz zaplanowany przepływ pracy',
  'skills.dashboard.lastRun': 'Ostatnie uruchomienie',
  'skills.dashboard.nextRun': 'Następne uruchomienie',
  'skills.dashboard.cardOpenRunner': 'Otwórz w runnerze',
  'skills.new.title': 'Utwórz przepływ pracy',
  'settings.agents.title': 'Agenci',
  'settings.agents.subtitle':
    'Zarządzaj agentami dostępnymi do delegowania — wbudowanymi domyślnymi i własnymi niestandardowymi agentami.',
  'settings.agents.menuDesc': 'Zarządzaj wbudowanymi i niestandardowymi agentami',
  'settings.agents.newAgent': 'Nowy agent',
  'settings.agents.loadError': 'Nie udało się wczytać agentów',
  'settings.agents.empty': 'Brak agentów',
  'settings.agents.sourceDefault': 'Wbudowany',
  'settings.agents.sourceCustom': 'Niestandardowy',
  'settings.agents.enable': 'Włącz agenta',
  'settings.agents.disable': 'Wyłącz agenta',
  'settings.agents.edit': 'Edytuj',
  'settings.agents.delete': 'Usuń',
  'settings.agents.reset': 'Przywróć domyślne',
  'settings.agents.modelLabel': 'Model agenta',
  'settings.agents.toolsLabel': 'Narzędzia',
  'settings.agents.toolsAll': 'Wszystkie narzędzia',
  'settings.agents.toolsCount': '{count} narzędzi',
  'settings.agents.actionFailed': 'Nie udało się zaktualizować agenta',
  'settings.agents.orchestratorLocked': 'Orkiestrator jest zawsze włączony.',
  'settings.agents.editor.createTitle': 'Nowy agent',
  'settings.agents.editor.editTitle': 'Edytuj agenta',
  'settings.agents.editor.id': 'Identyfikator',
  'settings.agents.editor.idHint': 'Tylko małe litery, cyfry, _ i -.',
  'settings.agents.editor.name': 'Nazwa',
  'settings.agents.editor.description': 'Opis',
  'settings.agents.editor.model': 'Model (opcjonalnie)',
  'settings.agents.editor.modelPlaceholder': 'np. inherit, hint:fast albo identyfikator modelu',
  'settings.agents.editor.systemPrompt': 'Prompt systemowy (opcjonalnie)',
  'settings.agents.editor.tools': 'Dozwolone narzędzia',
  'settings.agents.editor.toolsHint':
    'Jedna nazwa narzędzia w wierszu. Użyj * dla wszystkich narzędzi.',
  'settings.agents.editor.defaultsNote':
    'Edycja wbudowanego agenta zapisuje nadpisanie, które możesz później zresetować.',
  'settings.agents.editor.save': 'Zapisz',
  'settings.agents.editor.create': 'Utwórz agenta',
  'settings.agents.editor.saving': 'Zapisywanie…',
  'nav.workflows': 'Workflows',
  'workflows.title': 'Przepływy pracy',
  'workflows.subtitle':
    'Wielokrotnego użytku, uruchamialne procedury — cel i kroki do jego osiągnięcia. Utwórz jeden, zainstaluj z URL-a lub otwórz przepływ pracy, aby go uruchomić.',
  'workflows.createNew': 'Nowy przepływ pracy',
  'workflows.listHeading': 'Workflows',
  'workflows.delete': 'Usuń przepływ pracy',
  'workflows.deleteError': 'Nie udało się usunąć przepływu pracy',
  'workflows.warnings': '{count} ostrzeżeń',
  'workflows.empty.title': 'Brak przepływów pracy',
  'workflows.empty.body':
    'Utwórz przepływ pracy, aby zdefiniować reguły i skrypty dla faz cyklu życia zadań.',
  'workflows.create.title': 'Nowy przepływ pracy',
  'workflows.create.subtitle': 'Zdefiniuj zestaw reguł powiązany z cyklem życia agenta.',
  'workflows.create.name': 'Name',
  'workflows.create.namePlaceholder': 'np. Przepływ pracy projektu Python',
  'workflows.create.description': 'Description',
  'workflows.create.descriptionPlaceholder': 'Co robi ten przepływ pracy?',
  'workflows.create.whenToUse': 'Kiedy używać',
  'workflows.create.whenToUsePlaceholder': 'Kiedy agent powinien użyć tego przepływu pracy?',
  'workflows.create.optional': '(opcjonalne)',
  'workflows.create.createBtn': 'Utwórz przepływ pracy',
  'workflows.create.creating': 'Creating…',
  'workflows.create.createError': 'Nie udało się utworzyć przepływu pracy',
  'workflows.create.successTitle': 'Przepływ pracy utworzony',
  'workflows.create.successMessage': 'został pomyślnie utworzony.',
  'workflows.deleteConfirm.title': 'Usuń przepływ pracy',
  'workflows.deleteConfirm.body': 'Usunąć „{name}”? Tej operacji nie można cofnąć.',
  'workflows.detail.tags': 'Tags',
  'workflows.detail.location': 'Location',
  'workflows.detail.warnings': 'Warnings',
  'workflows.detail.phases': 'Phases',
  'workflows.detail.noPhases': 'Brak zdefiniowanych faz.',
  'workflows.detail.loadError': 'Nie udało się załadować pełnego przepływu pracy',
  'workflows.phase.rules': 'Rules',
  'workflows.phase.rules.empty': 'Brak reguł.',
  'workflows.phase.scripts': 'Scripts',
  'workflows.phase.scripts.empty': 'Brak skryptów.',
  'workflows.phase.toolScope': 'Zakres narzędzi',
  'workflows.phase.toolScope.allow': 'Allow',
  'workflows.phase.toolScope.deny': 'Deny',
  'workflows.phase.toolScope.inherited': 'Odziedziczone z domyślnych ustawień przepływu pracy.',
  'workflows.phase.toolScope.empty': 'Brak ograniczeń narzędzi.',
  'workflows.phase.context': 'Context',
  'workflows.phase.context.empty': 'Brak dostawców kontekstu.',
  'settings.agentsSection.title': 'Agents',
  'settings.agentsSection.description':
    'Zarządzaj agentami, ich autonomią i tym, do czego mogą uzyskać dostęp na tym komputerze.',
  'settings.agentsSection.menuDesc': 'Rejestr, autonomia i dostęp do systemu',
  'settings.cryptoSection.title': 'Krypto',
  'settings.cryptoSection.description':
    'Zarządzaj frazą odzyskiwania i sprawdzaj salda na kontach portfela.',
  'settings.cryptoSection.menuDesc': 'Fraza odzyskiwania i salda portfela',
  'settings.notificationsHub.title': 'Powiadomienia',
  'settings.notificationsHub.description':
    'Przeglądaj skrzynkę alertów oraz zarządzaj preferencjami powiadomień i routingiem.',
  'settings.notificationsHub.menuDesc': 'Skrzynka alertów i preferencje powiadomień',
  'settings.notificationsHub.settingsItem': 'Ustawienia powiadomień',
  'settings.notificationsHub.settingsItemDesc': 'Preferencje i routing',
  'settings.agents.editor.notFound': 'Nie znaleziono agenta.',
  'settings.agents.editor.modelInherit': 'Dziedzicz (domyślne platformy)',
  'settings.agents.editor.modelHints': 'Wskazówki trasowania',
  'settings.agents.editor.modelTiers': 'Poziomy modelu',
  'settings.agents.editor.modelCustom': 'Własny identyfikator modelu…',
  'settings.agents.editor.modelCustomPlaceholder': 'np. anthropic/claude-sonnet-4',
  'settings.agents.editor.selectTools': 'Dodaj narzędzia',
  'settings.agents.editor.toolsAllSelected': 'Wszystkie narzędzia',
  'settings.agents.editor.toolsNoneSelected': 'Nie wybrano narzędzi',
  'settings.agents.editor.removeToolAria': 'Usuń {tool}',
  'settings.agents.editor.toolsModalTitle': 'Dozwolone narzędzia',
  'settings.agents.editor.toolsSelectedCount': '{count} wybrano',
  'settings.agents.editor.toolsSearchPlaceholder': 'Szukaj narzędzi…',
  'settings.agents.editor.toolsAllowAll': 'Zezwól na wszystkie narzędzia (*)',
  'settings.agents.editor.toolsAllowAllHint':
    'Ten agent może korzystać z każdego dostępnego narzędzia.',
  'settings.agents.editor.toolsLoading': 'Ładowanie narzędzi…',
  'settings.agents.editor.toolsLoadError': 'Nie udało się załadować narzędzi',
  'settings.agents.editor.toolsEmpty': 'Żadne narzędzie nie pasuje do wyszukiwania.',
  'settings.agents.editor.toolsDone': 'Done',
  'settings.agents.editor.builtInReadonly':
    'Wbudowanych agentów nie można edytować. Możesz je włączyć, wyłączyć lub zresetować z poziomu listy agentów.',
  'autocomplete.debounceMs': 'Opóźnienie (ms)',
  'autocomplete.maxChars': 'Maksymalna liczba znaków kontekstu',
  'autocomplete.overlayTtlMs': 'Limit czasu nakładki (ms)',
  'memory.tab.council': 'Council',
  'activity.tabs.automations': 'Automatyzacje',
  'activity.tabs.automationsDescription':
    'Wielokrotnego użytku, uruchamialne procedury — cel i kroki do jego osiągnięcia.',
  'activity.tabs.backgroundActivity': 'Podświadomość',
  'activity.tabs.alerts': 'Alerty',

  'intelligence.agents.title': 'Biblioteka agentów',
  'intelligence.agents.subtitle':
    'Przeglądaj uruchamialnych specjalistów i wyślij zadanie do wskazanego agenta.',
  'intelligence.agents.refresh': 'Odśwież',
  'intelligence.agents.loading': 'Ładowanie agentów…',
  'intelligence.agents.failedToLoad': 'Nie udało się załadować agentów',
  'intelligence.agents.empty': 'Brak dostępnych agentów do uruchomienia.',
  'intelligence.agents.readOnly': 'Tylko odczyt',
  'intelligence.agents.writeCapable': 'Może zapisywać',
  'intelligence.agents.allTools': 'Wszystkie narzędzia',
  'intelligence.agents.toolCountOne': '{count} narzędzie',
  'intelligence.agents.toolCountOther': '{count} narzędzi',
  'intelligence.agents.subagentCountOne': '{count} podagent',
  'intelligence.agents.subagentCountOther': '{count} subagentów',
  'intelligence.agents.startChat': 'Rozpocznij czat',
  'intelligence.agents.startChatPrompt':
    'Rozpocznij czat z tym agentem. Przedstaw swoją specjalizację, zapytaj o potrzebny kontekst i poczekaj na moje zadanie.',
  'intelligence.agents.copyId': 'Kopiuj ID',
  'intelligence.agents.copied': 'Skopiowano',
  'intelligence.agents.taskPlaceholder': 'Zadanie dla tego agenta',
  'intelligence.agents.runTask': 'Uruchom zadanie',
  'intelligence.agents.running': 'Uruchamianie…',
  'intelligence.agents.runFailed': 'Nie udało się uruchomić wybranego agenta',
  'intelligence.agents.model.inherit': 'Dziedzicz',
  'intelligence.agents.tier.chat': 'Czat',
  'intelligence.agents.tier.reasoning': 'Rozumowanie',
  'intelligence.agents.tier.worker': 'Wykonawca',
  'modelCouncil.title': 'Rada modeli',
  'modelCouncil.intro':
    'Zadaj jedno pytanie, uzyskaj niezależne odpowiedzi od kilku modeli równolegle, a następnie model przewodniczącego syntetyzuje, w czym się zgadzają, gdzie się różnią i co każdy wnosi unikalnie.',
  'modelCouncil.listTitle': 'Councils',
  'modelCouncil.listIntro':
    'Wybierz zapisaną radę, edytuj jej agentów i sędziego lub utwórz nową radę dla konkretnego rodzaju decyzji.',
  'modelCouncil.addCouncil': 'Nowa rada',
  'modelCouncil.openCouncil': 'Otwórz radę',
  'modelCouncil.editCouncil': 'Edytuj radę',
  'modelCouncil.editCurrentCouncil': 'Edytuj bieżącą radę',
  'modelCouncil.editCouncilAria': 'Edytuj {name}',
  'modelCouncil.deleteCouncilAria': 'Usuń {name}',
  'modelCouncil.backToCouncils': 'Powrót do rad',
  'modelCouncil.saveCouncil': 'Zapisz radę',
  'modelCouncil.savingCouncil': 'Saving…',
  'modelCouncil.cancelEdit': 'Cancel',
  'modelCouncil.loadingCouncils': 'Ładowanie rad…',
  'modelCouncil.noCouncils': 'Brak rad. Dodaj jedną, aby rozpocząć.',
  'modelCouncil.noCouncilDescription': 'Brak opisu',
  'modelCouncil.registryErrorPrefix': 'Rejestr rady nie powiódł się:',
  'modelCouncil.councilNameLabel': 'Nazwa rady',
  'modelCouncil.councilDescriptionLabel': 'Description',
  'modelCouncil.councilDescriptionPlaceholder': 'Kiedy używać tej rady',
  'modelCouncil.selectModel': 'Select',
  'modelCouncil.modelPickerHelp':
    'Wybierz wskazówkę routingu lub przypnij dokładny model dostawcy.',
  'modelCouncil.closeModelPicker': 'Close',
  'modelCouncil.hint.chat': 'Czat',
  'modelCouncil.hint.code': 'Kod',
  'modelCouncil.hint.default': 'Domyślny',
  'modelCouncil.hint.reasoning': 'Rozumowanie',
  'modelCouncil.hint.summarize': 'Podsumowanie',
  'modelCouncil.modelPickerHints': 'Hints',
  'modelCouncil.modelPickerProviderModel': 'Dostawca + model',
  'modelCouncil.modelProviderLabel': 'Dostawca modelu',
  'modelCouncil.modelIdLabel': 'ID modelu',
  'modelCouncil.useProviderModel': 'Użyj modelu dostawcy',
  'modelCouncil.questionLabel': 'Question',
  'modelCouncil.questionPlaceholder': 'Zadaj radzie pytanie…',
  'modelCouncil.membersLabel': 'Modele członków',
  'modelCouncil.maxMembersNote': 'do {max}',
  'modelCouncil.memberPlaceholder': 'np. gpt-5.2',
  'modelCouncil.memberAria': 'Model członka {n}',
  'modelCouncil.removeMemberAria': 'Usuń model członka {n}',
  'modelCouncil.addMember': '+ Dodaj model',
  'modelCouncil.settingsTitle': 'Ustawienia rady',
  'modelCouncil.settingsSummary': '{count} jurorów · sędzia: {judge}',
  'modelCouncil.juryCountLabel': 'Liczba jurorów',
  'modelCouncil.debateRoundsLabel': 'Rundy debaty',
  'modelCouncil.debateRoundsHelp':
    'Każdy ławnik debatuje przez wiele rund, zanim sędzia napisze końcową syntezę.',
  'modelCouncil.judgeAgentLabel': 'Agent sędzia',
  'modelCouncil.defaultJudge': 'Domyślny sędzia',
  'modelCouncil.savedProfile': 'Zapisany profil',
  'modelCouncil.customAgent': 'Niestandardowy agent',
  'modelCouncil.judgeProfileLabel': 'Profil sędziego',
  'modelCouncil.chooseProfile': 'Wybierz profil',
  'modelCouncil.judgeNameLabel': 'Imię sędziego',
  'modelCouncil.judgeNamePlaceholder': 'Główny sędzia',
  'modelCouncil.rosterHeading': 'Skład rady',
  'modelCouncil.rosterHelp':
    'Każdy juror może dziedziczyć domyślnego agenta, użyć zapisanego profilu albo stać się profilem niestandardowym dla tego uruchomienia.',
  'modelCouncil.loadingProfiles': 'Ładowanie profili…',
  'modelCouncil.jurorLabel': 'Ławnik {n}',
  'modelCouncil.profileModeLabel': 'Źródło profilu',
  'modelCouncil.mode.default': 'Domyślny',
  'modelCouncil.mode.profile': 'Profil',
  'modelCouncil.mode.custom': 'Własny',
  'modelCouncil.memberProfileAria': 'Profil jurora {n}',
  'modelCouncil.memberNameAria': 'Imię jurora {n}',
  'modelCouncil.memberNamePlaceholder': 'Nazwa agenta',
  'modelCouncil.profileModelPlaceholder': 'Nadpisz model profilu',
  'modelCouncil.memberBriefAria': 'Brief jurora {n}',
  'modelCouncil.memberBriefPlaceholder': 'Perspektywa tego jurora',
  'modelCouncil.jurorFallback': 'Juror',
  'modelCouncil.sharedReasoningLabel': 'Wspólny plik rozumowania',
  'modelCouncil.sharedReasoningHelp':
    'Rada pracuje na tym wspólnym szkicu, zanim sędzia napisze syntezę.',
  'modelCouncil.liveScratchpadHelp':
    'Aktualizacje ławników są tutaj dodawane po każdej rundzie i zasilają następną rundę.',
  'modelCouncil.liveScratchpadBadge': 'Live',
  'modelCouncil.scratchpadRoundHeading': 'Aktualizacje rundy {round}',
  'modelCouncil.scratchpadNoResponse': 'Brak odpowiedzi',
  'modelCouncil.chairLabel': 'Model przewodniczącego',
  'modelCouncil.chairPlaceholder': 'np. claude-opus-4-8',
  'modelCouncil.chairHelp': 'Przewodniczący czyta każdą odpowiedź członków i pisze syntezę.',
  'modelCouncil.run': 'Zwołaj radę',
  'modelCouncil.running': 'Convening…',
  'modelCouncil.runningHint': 'Odpytywanie członków równolegle, następnie synteza…',
  'modelCouncil.deliberationHeading': 'Obrady rady',
  'modelCouncil.deliberationHelp':
    'Maskotki pokazują myślenie każdego agenta, gdy wspólny plik rozumowania jest w użyciu.',
  'modelCouncil.debateRoundInstruction':
    'Odpowiedz innym ławnikom. Zachowaj rozbieżności, zrewiduj swój pogląd, gdy to uzasadnione, i utrzymaj swój aktualny wniosek w sposób jawny.',
  'modelCouncil.debateFinalInstruction':
    'To Twoja ostatnia runda ławnika. Zbieżność tam, gdzie dowody to wspierają, wskaż pozostałe rozbieżności i przekaż sędziemu jasny wniosek.',
  'modelCouncil.roundLabel': 'Runda {round}',
  'modelCouncil.currentRoundThinking': 'Kontynuowanie następnej rundy…',
  'modelCouncil.thinkingBadge': 'Thinking',
  'modelCouncil.thinkingWithBrief': 'Praca z tej perspektywy: {brief}',
  'modelCouncil.thought.evidence':
    'Sprawdzanie dowodów, założeń i tego, co wspólny plik rozumowania już zawiera.',
  'modelCouncil.thought.plan':
    'Szkicowanie praktycznej ścieżki i miejsc, gdzie realizacja może utknąć.',
  'modelCouncil.thought.risk': 'Szukanie trybów awarii, brakującego kontekstu i kruchych wniosków.',
  'modelCouncil.thought.tradeoffs':
    'Porównywanie kompromisów przed przekazaniem sędziemu zwięzłego stanowiska.',
  'modelCouncil.thought.synthesis':
    'Przygotowanie odrębnego punktu widzenia, aby sędzia mógł porównać rzeczywiste rozbieżności.',
  'modelCouncil.judgeWaitingBadge': 'Judge',
  'modelCouncil.judgeWaitingThought':
    'Oczekiwanie na odpowiedzi ławników, następnie czytanie wspólnego pliku rozumowania w celu syntezy.',
  'modelCouncil.judgeSynthesizingBadge': 'Synthesizing',
  'modelCouncil.judgeSynthesizingThought':
    'Czytanie myśli ławników na żywo i pisanie końcowej syntezy rady.',
  'modelCouncil.errorPrefix': 'Rada nie powiodła się:',
  'modelCouncil.resultsHeading': 'Wyniki rady',
  'modelCouncil.memberAnswered': 'Answered',
  'modelCouncil.memberFailed': 'Failed',
  'modelCouncil.synthesisHeading': 'Synthesis',
  'modelCouncil.synthesisBy': 'przez {model}',
  'modelCouncil.usageHeading': 'Użycie debaty',
  'modelCouncil.usageEstimated':
    'Szacunkowa liczba tokenów z promptów i odpowiedzi debaty. Rzeczywista wycena wymaga danych o użyciu dostawcy z RPC rady.',
  'modelCouncil.usageEstimatedBadge': 'Szacunkowe tokeny',
  'modelCouncil.usageInputTokens': 'Input',
  'modelCouncil.usageOutputTokens': 'Output',
  'modelCouncil.usageTotalTokens': 'Total',
  'graphCohesion.brokerBadge': 'broker',
  'graphCohesion.brokerTitle':
    'Dziura strukturalna: sąsiedzi tej encji nie są ze sobą połączeni — jest ona jedynym łącznikiem między nimi.',
  'graphCohesion.colCohesion': 'Spójność',
  'graphCohesion.colEntity': 'Encja',
  'graphCohesion.colLinks': 'Łącza',
  'graphCohesion.colRank': '#',
  'graphCohesion.empty': 'Jeszcze brak grafu wiedzy.',
  'graphCohesion.emptyHint':
    'W miarę jak asystent zapisuje powiązane fakty o Tobie, ich struktura klasteryzacji pojawi się tutaj.',
  'graphCohesion.errorPrefix': 'Nie udało się załadować grafu:',
  'graphCohesion.intro':
    'Jak ściśle spleciona jest okolica wokół każdej encji. Brokerzy — encje, których sąsiedzi nie są ze sobą połączeni — to pojedyncze punkty trzymające razem klastry, które inaczej byłyby oddzielne, czego sortowanie po częstotliwości ani PageRank nie ujawni.',
  'graphCohesion.loading': 'Obliczanie spójności…',
  'graphCohesion.metricConnections': 'Połączenia',
  'graphCohesion.metricEntities': 'Encje',
  'graphCohesion.metricTriangles': 'Trójkąty',
  'graphCohesion.namespaceAll': 'Wszystkie przestrzenie nazw',
  'graphCohesion.namespaceLabel': 'Przestrzeń nazw',
  'graphCohesion.noBrokers': 'Brak jeszcze encji z dwoma lub więcej połączeniami.',
  'graphCohesion.rankedHeading': 'Brokerzy — najluźniejsze sąsiedztwa',
  'graphCohesion.retry': 'Spróbuj ponownie',
  'graphCohesion.summaryCaption': 'Średnia klasteryzacja {avg} · tranzytywność {transitivity}',
  'graphCohesion.title': 'Spójność grafu',
  'memory.tab.cohesion': 'Cohesion',

  // Chat — agent-generated artifacts (#2779)
  'chat.artifact.aria': 'Artefakt: {title}',
  'chat.artifact.generating': 'Generowanie: {kind}…',
  'chat.artifact.ready': 'Gotowe',
  'chat.artifact.failed': 'Generowanie nie powiodło się',
  'chat.artifact.download': 'Pobierz',
  'chat.artifact.downloading': 'Pobieranie…',
  'chat.artifact.downloaded': 'Zapisano w {path}',
  'chat.artifact.download_failed': 'Pobieranie nie powiodło się: {reason}',
  'chat.artifact.retry': 'Spróbuj ponownie',
  'chat.artifact.reveal': 'Pokaż w folderze',
  'chat.artifact.show_more': 'Pokaż więcej',
  'chat.artifact.show_less': 'Pokaż mniej',

  // Chat — files panel (#3024)
  'chat.files.chip.aria.one': '{count} plik w tej rozmowie',
  'chat.files.chip.aria.other': '{count} plików w tej rozmowie',
  'chat.files.panel.aria': 'Pliki w tej rozmowie',
  'chat.files.panel.title': 'Pliki ({count})',
  'chat.files.panel.empty': 'Brak plików. Poproś agenta o wygenerowanie pliku.',
  'chat.files.panel.close': 'Zamknij panel plików',
  'chat.files.delete.aria': 'Usuń: {title}',
  'chat.files.delete.confirm': 'Usunąć ten plik?',
  'chat.files.delete.cancel': 'Anuluj',
  'chat.files.delete.action': 'Usuń',
  'chat.files.delete.failed': 'Nie udało się usunąć pliku. Spróbuj ponownie.',
  // Etykiety błędów dla pobrania/usunięcia (#3024). Powiązane z
  // `ArtifactErrorCode` zwracanym przez artifactDownloadService.
  'chat.files.error.not_desktop': 'Pobieranie jest dostępne tylko w aplikacji desktopowej.',
  'chat.files.error.missing_artifact_id': 'Brak identyfikatora artefaktu.',
  'chat.files.error.missing_artifact_path': 'W odpowiedzi rdzenia brakuje ścieżki artefaktu.',
  'chat.files.error.resolve_failed':
    'Nie udało się odnaleźć artefaktu. Prosimy spróbować ponownie.',
  'chat.files.error.download_failed': 'Pobieranie nie powiodło się. Prosimy spróbować ponownie.',
  'chat.files.error.delete_failed': 'Nie udało się usunąć pliku. Prosimy spróbować ponownie.',

  'harnessInit.title': 'Trwa konfiguracja',

  'announcement.gotIt': 'Rozumiem',
  'harnessInit.subtitle':
    'OpenHuman przygotowuje komponenty potrzebne przy pierwszym uruchomieniu.',
  'harnessInit.stepPython': 'Środowisko uruchomieniowe Python',
  'harnessInit.stepSpacy': 'Model językowy',
  'harnessInit.stepNode': 'Środowisko uruchomieniowe Node.js',
  'harnessInit.statePending': 'Oczekiwanie',
  'harnessInit.stateRunning': 'Instalowanie…',
  'harnessInit.stateDone': 'Gotowe',
  'harnessInit.stateSkipped': 'Pominięto',
  'harnessInit.stateFailed': 'Niepowodzenie',
  'harnessInit.failedMessage':
    'Niektóre kroki konfiguracji nie zostały ukończone. Możesz spróbować ponownie lub kontynuować — OpenHuman użyje wbudowanego rozwiązania zastępczego.',
  'harnessInit.retry': 'Spróbuj ponownie',
  'harnessInit.continueAnyway': 'Kontynuuj mimo to',
  'harnessInit.runInBackground': 'Uruchom w tle',
  'harnessInit.backgroundHint': 'Możesz dalej korzystać z OpenHuman, dopóki to się nie zakończy.',

  'keyring.consent.title': 'Bezpieczne przechowywanie niedostępne',
  'keyring.consent.description':
    'Pęk kluczy systemu operacyjnego jest niedostępny. OpenHuman potrzebuje Twojej zgody na przechowywanie sekretów w lokalnym zaszyfrowanym magazynie.',
  'keyring.consent.reasonPrefix': 'Powód:',
  'keyring.consent.showDetails': 'Co to oznacza?',
  'keyring.consent.hideDetails': 'Ukryj szczegóły',
  'keyring.consent.tradeoffTitle': 'Kompromis bezpieczeństwa',
  'keyring.consent.tradeoffBody':
    'W przypadku lokalnego zaszyfrowanego magazynu sekrety są szyfrowane na dysku przy użyciu klucza głównego przechowywanego obok danych. Jest to mniej bezpieczne niż pęk kluczy systemu, który wykorzystuje ochronę sprzętową. Kopie zapasowe lub synchronizacja plików mogą zawierać zaszyfrowane dane.',
  'keyring.consent.consentButton': 'Użyj lokalnego zaszyfrowanego magazynu',
  'keyring.consent.retryButton': 'Ponów próbę OS Keychain',
  'keyring.consent.declineButton': 'Odrzuć',
  'keyring.consent.retrying': 'Ponawiam próbę…',
  'keyring.consent.error': 'Nie udało się zapisać preferencji. Spróbuj ponownie.',
  'keyring.consent.retryFailed': 'Pęk kluczy jest nadal niedostępny.',
  'keyring.settings.title': 'Bezpieczeństwo',
  'keyring.settings.storageMode': 'Tryb przechowywania sekretów',
  'keyring.settings.mode.osKeychain': 'Pęk kluczy systemu',
  'keyring.settings.mode.encryptedFile': 'Lokalnie zaszyfrowany',
  'keyring.settings.mode.consentPending': 'Nie skonfigurowano',
  'keyring.settings.mode.declined': 'Odrzucono',
  'keyring.settings.availability': 'Dostępność pęku kluczy',
  'keyring.settings.available': 'Pęk kluczy systemu jest dostępny',
  'keyring.settings.unavailable': 'Pęk kluczy systemu jest niedostępny',
  'keyring.settings.backend': 'Silnik',
  'keyring.settings.retryButton': 'Ponów wykrywanie pęku kluczy',
  'keyring.settings.retryFailed':
    'Ponowna próba nie powiodła się. Pęk kluczy jest nadal niedostępny.',
  'keyring.settings.consentTitle': 'Zgoda na przechowywanie',
  'keyring.settings.consentDescription':
    'Wybierz sposób przechowywania sekretów, gdy pęk kluczy systemu jest niedostępny.',
  'keyring.settings.grantConsent': 'Zezwól na lokalne zaszyfrowane przechowywanie',
  'keyring.settings.revokeConsent': 'Odmów lokalnego przechowywania',
  'pages.settings.account.security': 'Bezpieczeństwo',
  'pages.settings.account.securityDesc': 'Tryb przechowywania sekretów i stan pęku kluczy',
  // #002 memory-pipeline-hardening: degraded badges + typed remediation.
  'memoryTree.status.statusDegraded': 'Ograniczony',
  'memoryTree.status.degradedRecall': 'Wyszukiwanie semantyczne wyłączone',
  'memoryTree.status.degradedStructure': 'Struktura wiki niekompletna',
  'memoryTree.status.extractionCoverage': 'Pokrycie ekstrakcji: {pct}% fragmentów ma strukturę',
  'memory.health.remediation.budget_exhausted':
    'Osadzenia pamięci wyczerpały zarządzany budżet. Skonfiguruj lokalne osadzenia Ollama (Ustawienia → AI → Embeddings) lub dodaj własny klucz API osadzeń, aby kontynuować budowanie pamięci.',
  'memory.health.remediation.auth_missing':
    'Nie znaleziono poświadczeń osadzeń. Zaloguj się do OpenHuman lub skonfiguruj lokalne osadzenia Ollama w Ustawienia → AI → Embeddings.',
  'memory.health.remediation.auth_invalid':
    'Twoje poświadczenia osadzeń zostały odrzucone. Uwierzytelnij się ponownie lub przełącz na lokalne osadzenia Ollama w Ustawienia → AI → Embeddings.',
  'memory.health.remediation.embeddings_unconfigured':
    'Nie skonfigurowano dostawcy osadzeń, więc wyszukiwanie semantyczne jest wyłączone. Skonfiguruj lokalne osadzenia Ollama (zalecane) lub dodaj klucz osadzeń w Ustawienia → AI → Embeddings.',
  'memory.health.remediation.embedding_dim_mismatch':
    'Model osadzeń zwraca nieprawidłowy rozmiar wektora (pamięć oczekuje 1024 wymiarów). Wybierz model o 1024 wymiarach lub poproś dostawcę o 1024 wymiary.',
  'memory.health.remediation.local_model_unavailable':
    'Wymagany model lokalny jest niedostępny. Zainstaluj/uruchom Ollama i pobierz model albo przełącz to zadanie na dostawcę chmurowego w Ustawienia → AI.',
  'memory.health.remediation.extraction_timeout':
    'Model ekstrakcji pamięci przekracza limit czasu, więc wiki ma niewielką strukturę. Zmień model ekstrakcji pamięci na szybszy w Ustawienia → AI.',
  'memory.health.remediation.summarizer_unavailable':
    'Brak dostępnego dostawcy podsumowań dla funkcji Twórz drzewa podsumowań. Włącz lokalną AI (Ollama) lub włącz podsumowywanie w chmurze w Ustawienia → AI → Pamięć.',
  'memory.health.remediation.empty_input_refused':
    'Pominięto element pamięci, ponieważ jego tekst był pusty. Żadne działanie nie jest wymagane — nowe elementy są nadal osadzane normalnie.',
  'memory.health.remediation.storage_unavailable':
    'OpenHuman nie może zapisywać w pamięci — dysk lub karta SD wydaje się uszkodzona, pełna lub tylko do odczytu. Sprawdź dysk i zwolnij miejsce; przetwarzanie pamięci wznowi się automatycznie, gdy zapis znów będzie możliwy.',
  'memory.health.remediation.transient':
    'Tymczasowy błąd przerwał przetwarzanie pamięci. Ponowna próba nastąpi automatycznie.',
  'memory.health.remediation.unknown':
    'Przetwarzanie pamięci napotkało problem. Sprawdź Ustawienia → AI w celu konfiguracji.',
  // Chat — agent-generated artifacts (#2779)

  // Chat composer toolbar
  'composer.attachFile': 'Dołącz plik',
  'composer.modelSelector': 'Model',
  'composer.voiceMode': 'Tryb głosowy',
  'composer.qualityHigh': 'Wysoka',
  // Agent activity level
  'activityLevel.title': 'Poziom aktywności agenta',
  'activityLevel.description':
    'Kontroluj, jak proaktywny jest Twój agent. Wyższe poziomy zużywają więcej tokenów.',
  'activityLevel.off': 'Wyłączony',
  'activityLevel.offDesc':
    'Brak przetwarzania w tle. Synchronizuje tylko po naciśnięciu przycisku.',
  'activityLevel.minimal': 'Minimalny',
  'activityLevel.minimalDesc': 'Synchronizuje źródła raz dziennie. Brak proaktywnych wiadomości.',
  'activityLevel.moderate': 'Umiarkowany',
  'activityLevel.moderateDesc': 'Synchronizuje co godzinę. Codzienny skrót. Sugeruje działania.',
  'activityLevel.active': 'Aktywny',
  'activityLevel.activeDesc':
    'Synchronizuje co 10 min. Monitoruje kanały, porządkuje i redaguje odpowiedzi.',
  'activityLevel.alwaysOn': 'Zawsze włączony',
  'activityLevel.alwaysOnDesc':
    'Synchronizacja w czasie rzeczywistym. Pełna autonomia w granicach.',
  'activityLevel.currentMonth': 'W tym miesiącu: ${amount}',
  'activityLevel.saved': 'Poziom aktywności zaktualizowany.',
  'activityLevel.default': 'domyślny',
  'activityLevel.costFree': '0 $',
  'activityLevel.costRange': '~${min}–${max}/mies.',

  // Sync budget dialog
  'syncBudget.title': 'Budżet synchronizacji',
  'syncBudget.maxTokens': 'Maks. tokenów na synchronizację',
  'syncBudget.maxTokensHelp': 'Zatrzymaj synchronizację po zużyciu tej liczby tokenów.',
  'syncBudget.maxCost': 'Maks. koszt na synchronizację (USD)',
  'syncBudget.maxCostHelp': 'Bezwzględny limit w dolarach na jedno uruchomienie synchronizacji.',
  'syncBudget.syncDepth': 'Głębokość synchronizacji',
  'syncBudget.syncDepthHelp': 'Pobieraj tylko elementy z tego okna czasowego.',
  'syncBudget.days7': 'Ostatnie 7 dni',
  'syncBudget.days30': 'Ostatnie 30 dni',
  'syncBudget.days90': 'Ostatnie 90 dni',
  'syncBudget.allTime': 'Cały czas',
  'syncBudget.unlimited': 'Bez limitu',
  'syncBudget.saved': 'Budżet zapisany.',

  // Sync confirm dialog
  'syncConfirm.title': 'Potwierdź synchronizację',
  'syncConfirm.message':
    'Ta synchronizacja przetworzy ~{items} elementów (~{tokens} tokenów, szacunkowo ${cost}).',
  'syncConfirm.budgetNote': 'Limit budżetu: ${max}',
  'syncConfirm.proceed': 'Kontynuuj',
  'syncConfirm.cancel': 'Anuluj',
  'syncConfirm.estimating': 'Szacowanie kosztów...',

  // Monthly cost badge
  'monthlyCost.badge': '${amount} w tym miesiącu',
  'monthlyCost.noData': 'Brak synchronizacji w tym miesiącu',

  // Onboarding: Custom > Activity
  'onboarding.custom.stepperActivity': 'Aktywność',
  'onboarding.custom.stepperVault': 'Skarbiec',
  'onboarding.custom.activity.title': 'Aktywność agenta',
  'onboarding.custom.activity.subtitle': 'Jak proaktywnie Twój agent monitoruje i działa w tle.',
  'onboarding.custom.activity.defaultDesc':
    'Umiarkowana aktywność — synchronizacja co godzinę, codzienny skrót.',
  'onboarding.custom.activity.configureDesc':
    'Wybierz własny poziom aktywności. Skonfiguruj w Ustawieniach › Poziom aktywności agenta.',
  'onboarding.custom.vault.title': 'Konfiguracja pamięci i skarbca',
  'onboarding.custom.vault.subtitle':
    'Potwierdź, gdzie zapisywane są notatki pamięci, jak odczytywane są dane źródłowe i czy potok skarbca działa poprawnie.',
  'onboarding.custom.vault.defaultDesc':
    'Użyj domyślnych ustawień pamięci zarządzanej przez OpenHuman. Ścieżkę skarbca i stan synchronizacji można sprawdzić później.',
  'onboarding.custom.vault.configureDesc':
    'Sprawdź właściciela skarbca, uruchom kontrole stanu i dostosuj teraz ustawienia pamięci.',
  'onboarding.custom.vault.localDisabledReason':
    'Konfiguracja zarządzana wymaga logowania do OpenHuman i jest niedostępna w trybie lokalnym.',
  'onboarding.custom.vault.exitError': 'Nie udało się zakończyć wdrożenia. Spróbuj ponownie.',
  'vaultHealth.title': 'Lista kontrolna stanu skarbca',
  'vaultHealth.setupTitle': 'Stan konfiguracji skarbca',
  'vaultHealth.workspaceVault': 'Skarbiec obszaru roboczego:',
  'vaultHealth.refresh': 'Odśwież',
  'vaultHealth.refreshing': 'Odświeżanie…',
  'vaultHealth.revealFolder': 'Pokaż folder',
  'vaultHealth.openInObsidian': 'Otwórz w Obsidian',
  'vaultHealth.installObsidian': 'Zainstaluj Obsidian',
  'vaultHealth.openObsidianError': 'Nie można otworzyć Obsidian',
  'vaultHealth.revealError': 'Nie można wyświetlić folderu skarbca',
  'vaultHealth.downloadError': 'Nie można otworzyć strony pobierania Obsidian',
  'vaultHealth.loadError': 'Nie można załadować stanu skarbca:',
  'vaultHealth.lastSync': 'Ostatnia synchronizacja:',
  'vaultHealth.passed': 'Zaliczone',
  'vaultHealth.needsAttention': 'Wymaga uwagi',
  'vaultHealth.existsLabel': 'Ścieżka skarbca obszaru roboczego istnieje',
  'vaultHealth.existsRecovery':
    'Folder skarbca jest niedostępny. Rozpocznij synchronizację lub utwórz ten folder, a następnie odśwież listę kontrolną.',
  'vaultHealth.writableLabel': 'Skarbiec jest zapisywalny przez OpenHuman',
  'vaultHealth.writableRecovery':
    'OpenHuman nie może jeszcze zapisywać do tego skarbca. Nadaj uprawnienia do zapisu i odśwież.',
  'vaultHealth.obsidianLabel': 'Skarbiec jest zarejestrowany w Obsidian',
  'vaultHealth.obsidianRecovery':
    'W Obsidian wybierz „Otwórz folder jako skarbiec" dla tej ścieżki, a następnie odśwież listę kontrolną.',
  'vaultHealth.pipelineLabel': 'Potok pamięci działa poprawnie',
  'vaultHealth.pipelineRecovery':
    'Potok pamięci jest wstrzymany lub w stanie błędu. Włącz ponownie automatyczną synchronizację w statusie drzewa pamięci i spróbuj ponownie.',
  'vaultHealth.timeNever': 'Nigdy',
  'vaultHealth.timeJustNow': 'przed chwilą',
  'vaultHealth.timeMinAgo': '{n} min temu',
  'vaultHealth.timeHrAgo': '{n} godz. temu',
  'vaultHealth.timeDayAgo': '{n} dzień temu',
  'vaultHealth.timeDaysAgo': '{n} dni temu',
  'memoryData.howItWorks': 'Jak działa przechowywanie pamięci',
  'memoryData.workspaceVault': 'Skarbiec obszaru roboczego · zapis',
  'memoryData.workspaceVaultDesc':
    'OpenHuman zapisuje wygenerowane notatki pamięci do memory_tree/content.',
  'memoryData.connectedSources': 'Połączone źródła · odczyt',
  'memoryData.connectedSourcesDesc':
    'Foldery, skrzynki pocztowe, czaty i repozytoria są importowane do indeksowania pamięci — ich oryginalne pliki nigdy nie są nadpisywane.',
  'memoryData.internalFiles': 'Wewnętrzne pliki drzewa pamięci',
  'memoryData.internalFilesDesc':
    'Indeksy, stan kolejki i podsumowania są zarządzane przez OpenHuman, aby utrzymać poprawne działanie przywołania i synchronizacji.',
  'memoryData.windowError': 'Okno pamięci',
  'memoryData.windowUpdated': 'Okno pamięci zaktualizowane',
  'memoryData.windowUpdatedMsg': 'Ustawiono na {window}.',
  'skills.create.whenToUse': 'Kiedy używać',
  'skills.create.whenToUsePlaceholder':
    'np. gdy użytkownik prosi o uporządkowanie skrzynki odbiorczej',
  'skills.create.whenToUseHelp':
    'Wyzwalacz, na podstawie którego agent decyduje o uruchomieniu tego przepływu pracy. Pozostaw puste, aby użyć opisu.',
  'skills.create.inputs.row.descriptionError': 'Każde pole wejściowe wymaga opisu.',
  'skills.detail.run': 'Uruchom',
  'skills.detail.runAriaLabel': 'Uruchom ten przepływ pracy',
  'skills.run.title': 'Przepływ pracy',
  'workflows.installFromUrl': 'Zainstaluj z adresu URL',
  // Security banner (approval-gate host-aware boot state)
  'security.approvalGateDisabled.title': 'Bramka zatwierdzania wyłączona',
  'security.approvalGateDisabled.body':
    'W twoim środowisku ustawiono OPENHUMAN_APPROVAL_GATE=0. Narzędzia o zewnętrznym wpływie będą działać bez pytania o potwierdzenie.',
  'security.approvalGateOverrideIgnored.title': 'Nadpisanie zablokowane',
  'security.approvalGateOverrideIgnored.body':
    'Wykryto nadpisanie OPENHUMAN_APPROVAL_GATE=0, ale je zignorowano: aplikacja desktopowa zawsze utrzymuje bramkę zatwierdzania włączoną.',

  // Run queue
  'runQueue.mode.interrupt': 'Przerwij',
  'runQueue.mode.steer': 'Kieruj',
  'runQueue.mode.followup': 'Kontynuacja',
  'runQueue.mode.collect': 'Dodaj kontekst',
  'runQueue.queued': 'Wiadomość w kolejce',
  'runQueue.steerHint': 'Kieruj bieżącą turą',
  'runQueue.followupHint': 'Dodaj do kolejki jako kontynuację',
  'runQueue.collectHint': 'Dodaj jako dodatkowy kontekst',
  'runQueue.status': '{total} w kolejce',
  'runQueue.cleared': 'Kolejka wyczyszczona',
  'notch.ready': 'Gotowe',
  'notch.processing': 'Przetwarzanie…',
  'notch.listening': 'Słucham…',
  'notch.thinking': 'Myślę…',
  'notch.speaking': 'Mówię…',
  'notch.transcribing': 'Transkrybuję…',
  'notch.executing': 'Wykonuję…',
  'memory.tab.orchestration': 'Orkiestracja',
  'memory.tab.orchestrationDescription':
    'Uruchamiaj przepływy pracy z wieloma agentami — rozdziel pytanie między równoległych agentów, porównaj ich ustalenia i obserwuj, jak każda faza kończy się jedną zsyntetyzowaną odpowiedzią.',
  'orchestration.subtitle':
    'Uruchom przepływ pracy z wieloma agentami, obserwuj postęp jego faz i przeczytaj zsyntetyzowany wynik.',
  'orchestration.loading': 'Ładowanie przepływów pracy…',
  'orchestration.failedToLoad': 'Nie udało się załadować przepływów pracy',
  'orchestration.definitions': 'Dostępne przepływy pracy',
  'orchestration.noDefinitions': 'Brak dostępnych definicji przepływów pracy.',
  'orchestration.approvalRequired': 'Wymagane zatwierdzenie',
  'orchestration.start': 'Uruchom',
  'orchestration.confirmStart': 'Uruchom wykonanie',
  'orchestration.starting': 'Uruchamianie…',
  'orchestration.questionLabel': 'Pytanie badawcze (opcjonalne)',
  'orchestration.questionPlaceholder': 'Co agenci mają zbadać?',
  'orchestration.runProgress': 'Postęp wykonania',
  'orchestration.recentRuns': 'Ostatnie wykonania',
  'orchestration.noRuns': 'Brak wykonań przepływów pracy.',
  'orchestration.close': 'Zamknij',
  'orchestration.tier.readOnly': 'Tylko do odczytu',
  'orchestration.tier.standard': 'Standardowy',
  'orchestration.tier.editCapable': 'Z możliwością edycji',
  'orchestration.approval.title': 'Zatwierdź to wykonanie przepływu pracy',
  'orchestration.approval.body':
    'To kosztowne lub silnie współbieżne wykonanie wymaga Twojego wyraźnego zatwierdzenia przed rozpoczęciem:',
  'orchestration.approval.reason.tier':
    'Jego agenci mogą wykonywać działania wykraczające poza badania tylko do odczytu.',
  'orchestration.approval.reason.concurrency': 'Uruchamia wielu agentów jednocześnie.',
  'orchestration.approval.reason.children': 'Może łącznie utworzyć bardzo dużą liczbę agentów.',
  'orchestration.approval.tier': 'Poziom bezpieczeństwa',
  'orchestration.approval.concurrency': 'Współbieżność',
  'orchestration.approval.maxChildren': 'Maks. agentów',
  'orchestration.approval.approve': 'Zatwierdź i uruchom',
  'orchestration.approval.starting': 'Uruchamianie…',
  'orchestration.approval.cancel': 'Anuluj',
  'orchestration.runStatus.pending': 'Oczekujące',
  'orchestration.runStatus.running': 'W trakcie',
  'orchestration.runStatus.completed': 'Zakończone',
  'orchestration.runStatus.failed': 'Nieudane',
  'orchestration.runStatus.cancelled': 'Anulowane',
  'orchestration.runStatus.interrupted': 'Przerwane',
  'orchestration.phaseStatus.pending': 'Oczekująca',
  'orchestration.phaseStatus.running': 'W trakcie',
  'orchestration.phaseStatus.completed': 'Zakończona',
  'orchestration.phaseStatus.failed': 'Nieudana',
  'orchestration.detail.stop': 'Zatrzymaj',
  'orchestration.detail.resume': 'Wznów',
  'orchestration.detail.agents': 'agenci',
  'orchestration.detail.childRefs': 'Agenci podrzędni',
  'orchestration.detail.synthesis': 'Synteza końcowa',
  // ── Agent Profiles ───────────────────────────────────────────────────────
  'settings.profiles.title': 'Profile agenta',
  'settings.profiles.subtitle':
    'Agenci z charakterem — każdy z własną duszą, pamięcią, łącznikami i umiejętnościami.',
  'settings.profiles.menuDesc': 'Twórz profile agenta i zarządzaj nimi',
  'settings.profiles.new': 'Nowy profil',
  'settings.profiles.empty': 'Brak profili agenta',
  'settings.profiles.loadError': 'Nie udało się wczytać profili',
  'settings.profiles.active': 'Aktywny',
  'settings.profiles.setActive': 'Ustaw jako aktywny',
  'settings.profiles.sourceBuiltIn': 'Wbudowany',
  'settings.profiles.sourceCustom': 'Niestandardowy',
  'settings.profiles.deleteConfirm': 'Usunąć ten profil? Tej operacji nie można cofnąć.',
  'settings.profiles.editor.createTitle': 'Nowy profil',
  'settings.profiles.editor.editTitle': 'Edytuj profil',
  'settings.profiles.editor.name': 'Nazwa',
  'settings.profiles.editor.id': 'Identyfikator',
  'settings.profiles.editor.idHint': 'Tylko małe litery, cyfry i myślniki.',
  'settings.profiles.editor.description': 'Opis',
  'settings.profiles.editor.soul': 'Dusza (SOUL.md)',
  'settings.profiles.editor.soulHint':
    'Niestandardowa tożsamość tego profilu. Puste pole powoduje powrót do SOUL.md obszaru roboczego.',
  'settings.profiles.editor.baseAgent': 'Agent bazowy',
  'settings.profiles.editor.baseAgentHint':
    'Z jaką definicją agenta działa ten profil (np. orchestrator).',
  'settings.profiles.editor.model': 'Model',
  'settings.profiles.editor.modelHint': 'Opcjonalne zastąpienie modelu. Puste dziedziczy domyślny.',
  'settings.profiles.editor.temperature': 'Temperatura',
  'settings.profiles.editor.systemPromptSuffix': 'Sufiks monitu systemowego',
  'settings.profiles.editor.agentConversations': 'Przywoływanie rozmów agenta',
  'settings.profiles.editor.agentConversationsHint':
    'Uwzględnij pamięć wcześniejszych i międzyczatowych rozmów w kontekście tego profilu.',
  'settings.profiles.editor.memorySources': 'Źródła pamięci',
  'settings.profiles.editor.memorySourcesHint': 'Źródła pamięci, z których przywołuje ten profil.',
  'settings.profiles.editor.connectors': 'Łączniki',
  'settings.profiles.editor.connectorsHint':
    'Zestawy narzędzi Composio, których może używać ten profil.',
  'settings.profiles.editor.skills': 'Umiejętności',
  'settings.profiles.editor.skillsHint':
    'Przepływy pracy, które ten profil może wyświetlać i uruchamiać.',
  'settings.profiles.editor.mcpServers': 'Serwery MCP',
  'settings.profiles.editor.mcpServersHint': 'Serwery MCP, do których ma dostęp ten profil.',
  'settings.profiles.editor.all': 'Wszystkie',
  'settings.profiles.editor.selected': 'Wybrane',
  'settings.profiles.editor.addPlaceholder': 'Wpisz identyfikator i naciśnij Enter',
  'settings.profiles.editor.removeAria': 'Usuń {item}',
  'settings.profiles.editor.notFound': 'Nie znaleziono profilu',
  'settings.profiles.editor.saving': 'Zapisywanie…',
  'settings.profiles.editor.idRequired': 'Identyfikator profilu nie może być pusty',
  'agentworld.jobs.applyModal.title': 'Aplikuj na stanowisko',
  'agentworld.jobs.applyModal.successHeading': 'Oferta złożona pomyślnie!',
  'agentworld.jobs.applyModal.successBody': 'Pracodawca przejrzy Twoją aplikację.',
  'agentworld.jobs.applyModal.coverLetterLabel': 'List motywacyjny',
  'agentworld.jobs.applyModal.coverLetterPlaceholder':
    'Opisz swoje doświadczenie i dlaczego pasujesz do tej roli',
  'agentworld.jobs.applyModal.bidAmountLabel': 'Kwota oferty',
  'agentworld.jobs.applyModal.bidAmountPlaceholder': 'np. 450 USDC',
  'agentworld.jobs.applyModal.deliveryLabel': 'Szacowany czas realizacji',
  'agentworld.jobs.applyModal.deliveryPlaceholder': 'np. 2 tygodnie',
  'agentworld.jobs.applyModal.cancel': 'Anuluj',
  'agentworld.jobs.applyModal.submit': 'Wyślij aplikację',
  'agentworld.jobs.applyModal.submitting': 'Wysyłanie…',
  'agentworld.messaging.missingSignalBundle':
    'Ten użytkownik nie włączył jeszcze szyfrowanych wiadomości. Poproś go, aby otworzył Agent World i włączył bezpieczne DM przed wysłaniem wiadomości.',

  // User-actionable runtime errors (#3931)
  'userErrors.title': 'Wymagane działanie',
  'userErrors.dismiss': 'Odrzuć',
  'userErrors.action.openBilling': 'Otwórz rozliczenia',
  'userErrors.action.openProviderSettings': 'Ustawienia dostawcy',
  'userErrors.budgetExceeded.title': 'Wyczerpano zarządzany budżet',
  'userErrors.budgetExceeded.body':
    'Twój zarządzany budżet AI został wyczerpany. Dodaj budżet lub zmień plan.',
  'userErrors.insufficientCredits.title': 'Wymagane środki u dostawcy',
  'userErrors.insufficientCredits.body':
    'Twój dostawca AI nie ma już środków. Doładuj je lub zaktualizuj klucz API.',
  'userErrors.apiKeyMissing.title': 'Wymagany klucz API',
  'userErrors.apiKeyMissing.body':
    'Twój dostawca AI nie ma ustawionego klucza API. Dodaj go w ustawieniach dostawcy, aby kontynuować.',
  'userErrors.scope.chat': 'Czat',
  'userErrors.scope.cron': 'Zaplanowane zadanie',
  // Agent World — Identity trading (confirm-before-spend + balance gate)
  'agentWorld.trading.amountLabel': 'Kwota',
  'agentWorld.trading.networkLabel': 'Sieć',
  'agentWorld.trading.balanceLabel': 'Twoje saldo',
  'agentWorld.trading.walletLabel': 'Portfel',
  'agentWorld.trading.balanceUnknown': 'Nieznane',
  'agentWorld.trading.cancel': 'Anuluj',
  'agentWorld.trading.addFunds': 'Dodaj środki',
  'agentWorld.trading.confirmPay': 'Potwierdź i zapłać',
  'agentWorld.trading.confirmCommit': 'Potwierdź',
  'agentWorld.trading.continue': 'Kontynuuj',
  'agentWorld.trading.submitting': 'Wysyłanie…',
  'agentWorld.trading.placeBid': 'Złóż ofertę',
  'agentWorld.trading.submitOffer': 'Wyślij ofertę',
  'agentWorld.trading.bidTitlePrefix': 'Licytacja:',
  'agentWorld.trading.offerTitlePrefix': 'Oferta dla',
  'agentWorld.trading.bidReviewTitlePrefix': 'Potwierdź licytację:',
  'agentWorld.trading.offerReviewTitlePrefix': 'Potwierdź ofertę dla',
  'agentWorld.trading.spendInsufficient':
    'Niewystarczające saldo, aby zrealizować tę płatność. Dodaj środki do portfela, aby kontynuować.',
  'agentWorld.trading.spendBroadcastNote': 'Twój portfel podpisze i rozgłosi tę płatność w sieci',
  'agentWorld.trading.commitInsufficientWarning':
    'Twoje saldo może nie pokryć tego, jeśli zobowiązanie zostanie przyjęte. Nadal możesz je wysłać — środki przemieszczają się dopiero po przyjęciu.',
  'agentWorld.trading.commitSettleNote':
    'To podpisane zobowiązanie — środki przemieszczają się tylko po jego przyjęciu.',
  'agentWorld.trading.commitReviewSubtitle': 'Sprawdź swoje zobowiązanie przed wysłaniem.',
  'agentWorld.trading.balanceUnverified':
    'Nie udało nam się zweryfikować salda portfela. Nadal możesz kontynuować — płatność jest sprawdzana przy wysyłaniu.',
  'agentWorld.trading.amountTooManyDecimals': 'Ta kwota ma zbyt wiele miejsc po przecinku.',
  'agentWorld.trading.amountMustBePositive': 'Wprowadź kwotę większą od zera.',
  'agentWorld.trading.amountInvalid': 'Wprowadź prawidłową kwotę.',

  // Code block chrome
  'codeBlock.copy': 'Kopiuj',
  'codeBlock.copied': 'Skopiowano!',
};

export default messages;
