{
  "common": {
    "save": "Zapisz",
    "cancel": "Anuluj",
    "delete": "Usuń",
    "loading": "Ładowanie...",
    "error": "Wystąpił błąd",
    "success": "Sukces",
    "confirm": "Czy jesteś pewien?",
    "refresh": "Odśwież",
    "close": "Zamknij",
    "add": "Dodaj",
    "edit": "Edytuj",
    "search": "Szukaj",
    "back": "Powrót",
    "next": "Następny",
    "submit": "Prześlij",
    "reset": "Zresetuj",
    "copy": "Kopiuj",
    "copied": "Skopiowano!",
    "enabled": "Włączone",
    "disabled": "Niepełnosprawny",
    "active": "Aktywny",
    "inactive": "Nieaktywny",
    "noData": "Brak dostępnych danych",
    "configure": "Skonfiguruj",
    "manage": "Zarządzaj",
    "name": "Imię",
    "actions": "Działania",
    "status": "Stan",
    "type": "Wpisz",
    "model": "Modelka",
    "models": "modele",
    "provider": "Dostawca",
    "account": "Konto",
    "time": "Czas",
    "details": "Szczegóły",
    "created": "Utworzono",
    "lastUsed": "Ostatnio używany",
    "loadMore": "Załaduj więcej",
    "noResults": "Nie znaleziono żadnych wyników",
    "reloadPage": "Załaduj ponownie stronę",
    "connected": "Połączono",
    "disconnected": "Rozłączony",
    "notConfigured": "Nie skonfigurowano",
    "testConnection": "Połączenie testowe",
    "enable": "Włącz",
    "disable": "Wyłącz",
    "columns": "Kolumny",
    "newest": "Najnowszy",
    "oldest": "Najstarszy",
    "all": "Wszystko",
    "none": "Żadne",
    "yes": "Tak",
    "no": "Nie",
    "warning": "Ostrzeżenie",
    "note": "Uwaga",
    "free": "Bezpłatny",
    "skipToContent": "Przejdź do treści"
  },
  "sidebar": {
    "home": "Dom",
    "dashboard": "Pulpit nawigacyjny",
    "providers": "Dostawcy",
    "combos": "Kombinacje",
    "usage": "Użycie",
    "analytics": "Analityka",
    "costs": "Koszty",
    "health": "Zdrowie",
    "limits": "Limity i kwoty",
    "cliTools": "Narzędzia interfejsu wiersza polecenia",
    "media": "Media",
    "settings": "Ustawienia",
    "translator": "Tłumacz",
    "docs": "Dokumenty",
    "issues": "Problemy",
    "apiManager": "Menedżer API",
    "logs": "Dzienniki",
    "auditLog": "Dziennik audytu",
    "shutdown": "Wyłączenie",
    "restart": "Uruchom ponownie",
    "shutdownConfirm": "Wyłączyć OmniRoute?",
    "restartConfirm": "Zrestartować OmniRoute?",
    "version": "v{version}",
    "debug": "Debuguj",
    "system": "Systemu",
    "help": "Pomoc",
    "serverDisconnected": "Serwer odłączony",
    "serverDisconnectedMsg": "Serwer proxy został zatrzymany lub uruchamia się ponownie.",
    "expandSidebar": "Rozwiń pasek boczny",
    "collapseSidebar": "Zwiń pasek boczny",
    "themes": "Themes",
    "presetColors": "Popular colors",
    "createTheme": "Create theme",
    "chooseColor": "Pick one color",
    "themeCoral": "Coral",
    "themeBlue": "Blue",
    "themeRed": "Red",
    "themeGreen": "Green",
    "themeViolet": "Violet",
    "themeOrange": "Orange",
    "themeCyan": "Cyan",
    "endpoints": "Punkty końcowe",
    "playground": "Plac zabaw",
    "agents": "Agenci",
    "cliToolsShort": "Narzędzia"
  },
  "themesPage": {
    "title": "Themes",
    "description": "Choose a preset theme or create your own with a single color",
    "presetColors": "Popular colors",
    "customTheme": "Custom theme",
    "customThemeDesc": "Click create theme and pick one color",
    "createTheme": "Create theme",
    "activePreset": "Active theme"
  },
  "header": {
    "logout": "Wyloguj się",
    "language": "Język",
    "providers": "Dostawcy",
    "providerDescription": "Zarządzaj połączeniami dostawców AI",
    "combos": "Kombinacje",
    "comboDescription": "Kombinacje modeli z rezerwą",
    "usage": "Wykorzystanie i analityka",
    "usageDescription": "Monitoruj wykorzystanie interfejsu API, zużycie tokenów i dzienniki żądań",
    "analytics": "Analityka",
    "analyticsDescription": "Wykresy, trendy i spostrzeżenia dotyczące ocen",
    "cliTools": "Narzędzia interfejsu wiersza polecenia",
    "cliToolsDescription": "Skonfiguruj narzędzia CLI",
    "home": "Dom",
    "homeDescription": "Witamy w OmniRoute",
    "endpoint": "Endpoints",
    "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
    "settings": "Ustawienia",
    "settingsDescription": "Zarządzaj swoimi preferencjami",
    "openaiCompatible": "Kompatybilny z OpenAI",
    "anthropicCompatible": "Kompatybilny z antropią",
    "media": "Media",
    "mediaDescription": "Generate images, videos, and music",
    "themes": "Themes",
    "themesDescription": "Choose a color theme for the whole dashboard panel",
    "mcp": "MCP",
    "mcpDescription": "Model Context Protocol server management and tools",
    "a2a": "A2A",
    "a2aDescription": "Agent-to-Agent protocol tasks and observability"
  },
  "home": {
    "quickStart": "Szybki start",
    "quickStartDesc": "Zacznij działać w 4 krokach. Łącz dostawców, kieruj modele, monitoruj wszystko.",
    "fullDocs": "Pełna dokumentacja",
    "step1Title": "1. Utwórz klucz API",
    "step1Desc": "Przejdź do <endpoint>Endpoint</endpoint> -> Zarejestrowane klucze. Wygeneruj jeden klucz na środowisko.",
    "step2Title": "2. Połącz dostawców",
    "step2Desc": "Dodaj konta w <providers>Providers</providers>. Obsługuje OAuth, klucz API i bezpłatne poziomy.",
    "step3Title": "3. Wskaż swojego klienta",
    "step3Desc": "Ustaw podstawowy adres URL na {url} w swoim kliencie IDE lub API.",
    "step4Title": "4. Monitoruj i optymalizuj",
    "step4Desc": "Śledź tokeny, koszty i błędy w <logs>Dziennikach żądań</logs> i <analytics>Analytics</analytics>.",
    "providersOverview": "Przegląd dostawców",
    "configuredOf": "{configured} skonfigurowany z {total} dostępnych dostawców",
    "noModelsAvailable": "Brak dostępnych modeli tego dostawcy.",
    "configureFirst": "Najpierw skonfiguruj połączenie w {providers}",
    "configureProvider": "Skonfiguruj dostawcę",
    "modelAvailable": "Dostępny model {count}",
    "modelsAvailable": "Dostępne modele {count}",
    "connectionsActive": "{count} połączenie aktywne",
    "connectionsActivePlural": "{count} aktywne połączenia",
    "copyModelName": "Skopiuj nazwę modelu",
    "documentation": "Dokumentacja",
    "healthMonitor": "Monitor zdrowia",
    "reportIssue": "Zgłoś problem",
    "activeError": "{active} aktywny · {errors} błąd",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "Klucz API",
    "requestsShort": "{count} wymagania",
    "providerModelsTitle": "{provider} - Modele",
    "copiedModel": "Skopiowano: {model}",
    "aliasLabel": "pseudonim"
  },
  "analytics": {
    "title": "Analityka",
    "overviewDescription": "Monitoruj wzorce wykorzystania interfejsu API, zużycie tokenów, koszty i trendy aktywności u wszystkich dostawców i modeli.",
    "evalsDescription": "Uruchom pakiety ewaluacyjne, aby przetestować i zweryfikować punkty końcowe LLM. Porównaj jakość modelu, wykryj regresje i porównaj opóźnienia.",
    "overview": "Przegląd",
    "evals": "Ewaluacje"
  },
  "apiManager": {
    "title": "Klucze API",
    "createKey": "Utwórz klucz API",
    "key": "Klucz",
    "revokeKey": "Unieważnij klucz",
    "revokeConfirm": "Czy na pewno chcesz unieważnić ten klucz API?",
    "noKeys": "Nie ma jeszcze kluczy API",
    "noKeysDesc": "Utwórz swój pierwszy klucz API, aby uwierzytelniać żądania kierowane do punktu końcowego",
    "keyLabel": "Etykieta klucza",
    "permissions": "Uprawnienia",
    "expiresAt": "Wygasa",
    "never": "Nigdy",
    "revoke": "Odwołaj",
    "showKey": "Pokaż klucz",
    "hideKey": "Ukryj klucz",
    "copyKey": "Skopiuj klucz API",
    "allModels": "Wszystkie modele",
    "selectedModels": "Wybrane modele",
    "readOnly": "Tylko do odczytu",
    "fullAccess": "Pełny dostęp",
    "keyManagement": "Zarządzanie kluczami API",
    "keyManagementDesc": "Twórz klucze API i zarządzaj nimi w celu uwierzytelniania żądań kierowanych do punktu końcowego",
    "totalKeys": "Razem klucze",
    "restricted": "Ograniczone",
    "totalRequests": "Łączna liczba żądań",
    "modelsAvailable": "Dostępne modele",
    "registeredKeys": "Zarejestrowane klucze",
    "keysRegistered": "Zarejestrowano {count} kluczy",
    "keyRegistered": "Zarejestrowano klucz {count}",
    "keysSecurityNote": "Każdy klucz izoluje śledzenie użycia i może zostać odwołany niezależnie. Klucze są maskowane po utworzeniu ze względów bezpieczeństwa.",
    "createFirstKey": "Utwórz swój pierwszy klucz",
    "name": "Imię",
    "usage": "Użycie",
    "created": "Utworzono",
    "actions": "Działania",
    "reqs": "wymagania",
    "neverUsed": "Nigdy nie używany",
    "deleteConfirm": "Usunąć ten klucz API?",
    "usageTips": "Wskazówki dotyczące użytkowania",
    "tipAuth": "Użyj kluczy API w nagłówku autoryzacji jako Nośnik YOUR_KEY",
    "tipSecure": "Klucze są wyświetlane tylko raz podczas tworzenia — przechowuj je bezpiecznie",
    "tipSeparate": "Utwórz osobne klucze dla różnych klientów lub środowisk",
    "tipRestrict": "Ogranicz klucze do określonych modeli, aby zapewnić większe bezpieczeństwo i kontrolę kosztów",
    "keyName": "Nazwa klucza",
    "keyNamePlaceholder": "np. klucz produkcyjny, klucz rozwojowy",
    "keyNameDesc": "Wybierz opisową nazwę identyfikującą przeznaczenie tego klucza",
    "keyCreated": "Utworzono klucz API",
    "keyCreatedSuccess": "Klucz został utworzony pomyślnie!",
    "keyCreatedNote": "Skopiuj i zapisz ten klucz teraz — nie będzie on więcej wyświetlany.",
    "done": "Gotowe",
    "savePermissions": "Zapisz uprawnienia",
    "allowAll": "Zezwalaj na wszystko",
    "restrict": "Ogranicz",
    "allowAllInfo": "Ten klucz umożliwia dostęp do wszystkich dostępnych modeli.",
    "restrictInfo": "Ten klucz umożliwia dostęp do {selected} z {total} modeli.",
    "selected": "Wybrano {count}",
    "all": "Wszystko",
    "clear": "Jasne",
    "searchModels": "Wyszukaj modele według nazwy lub dostawcy...",
    "noModelsFound": "Nie znaleziono żadnych modeli",
    "keyNameRequired": "Nazwa klucza jest wymagana",
    "keyNameTooLong": "Nazwa klucza musi mieć maksymalnie {max} znaków",
    "keyNameInvalid": "Nazwa klucza może zawierać tylko litery, cyfry, spacje, łączniki i podkreślenia",
    "invalidKeyName": "Nieprawidłowa nazwa klucza",
    "failedCreateKey": "Nie udało się utworzyć klucza",
    "failedCreateKeyRetry": "Nie udało się utworzyć klucza. Spróbuj ponownie.",
    "invalidKeyId": "Nieprawidłowy identyfikator klucza",
    "failedDeleteKey": "Nie udało się usunąć klucza",
    "failedDeleteKeyRetry": "Nie udało się usunąć klucza. Spróbuj ponownie.",
    "invalidModelsSelection": "Nieprawidłowy wybór modeli",
    "cannotSelectMoreThanModels": "Nie można wybrać więcej niż {max} modeli",
    "failedUpdatePermissions": "Nie udało się zaktualizować uprawnień",
    "failedUpdatePermissionsRetry": "Nie udało się zaktualizować uprawnień. Spróbuj ponownie.",
    "unknownProvider": "nieznany",
    "copyMaskedKey": "Skopiuj zamaskowany klucz",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "Ostatni: {date}",
    "editPermissions": "Edytuj uprawnienia",
    "deleteKey": "Usuń klucz",
    "model": "Model {count}",
    "models": "{count} modele",
    "permissionsTitle": "Uprawnienia: {name}",
    "allowAllDesc": "Ten klucz umożliwia dostęp do wszystkich dostępnych modeli.",
    "restrictDesc": "Ten klucz umożliwia dostęp do {selectedCount} z {totalModels} modeli.",
    "selectedCount": "Wybrano {count}"
  },
  "auditLog": {
    "title": "Dziennik audytu",
    "searchPlaceholder": "Wyszukaj działania...",
    "action": "Akcja",
    "actor": "Aktor",
    "target": "Cel",
    "ipAddress": "Adres IP",
    "timestamp": "Znacznik czasu",
    "noEntries": "Nie znaleziono wpisów audytu",
    "filterByAction": "Filtruj według działania...",
    "filterByActor": "Filtruj według aktora...",
    "filterEntriesAria": "Filtruj wpisy dziennika audytu",
    "filterByActionTypeAria": "Filtruj według typu akcji",
    "filterByActorAria": "Filtruj według aktora",
    "refreshAuditLogAria": "Odśwież dziennik audytu",
    "tableAria": "Wpisy dziennika audytu",
    "failedFetchAuditLog": "Nie udało się pobrać dziennika kontroli",
    "notAvailable": "—",
    "description": "Działania administracyjne i zdarzenia związane z bezpieczeństwem",
    "showing": "Wyświetlanie wpisów {count} (przesunięcie {offset})",
    "previous": "Poprzedni"
  },
  "media": {
    "title": "Studio multimediów",
    "subtitle": "Generuj obrazy, wideo i muzykę",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "Generuj",
    "generating": "Generating...",
    "loadingModels": "Loading available models...",
    "noModels": "No models available. Configure providers with media capabilities first.",
    "error": "Generation Failed",
    "result": "Result",
    "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
    "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
    "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI."
  },
  "cliTools": {
    "title": "Narzędzia interfejsu wiersza polecenia",
    "noActiveProviders": "Brak aktywnych dostawców",
    "noActiveProvidersDesc": "Najpierw dodaj i połącz dostawców, aby skonfigurować narzędzia CLI.",
    "mapModels": "Modele map",
    "testConnection": "Połączenie testowe",
    "connectionStatus": "Stan połączenia",
    "configureEndpoint": "Skonfiguruj punkt końcowy",
    "instructions": "Instrukcje",
    "modelMapping": "Mapowanie modelu",
    "baseUrl": "Bazowy adres URL",
    "apiKey": "Klucz API",
    "configured": "Skonfigurowane",
    "notConfigured": "Nie skonfigurowano",
    "notInstalled": "Nie zainstalowano",
    "custom": "Niestandardowe",
    "unknown": "Nieznany",
    "lastSavedAt": "Ostatnio zapisany: {date}",
    "never": "Nigdy",
    "justNow": "właśnie teraz",
    "minutesAgoShort": "{count}m temu",
    "hoursAgoShort": "{count}h temu",
    "daysAgoShort": "{count}d temu",
    "monthsAgoShort": "{count}miesiące temu",
    "yearsAgoShort": "{count}y temu",
    "runtimeCheckFailed": "Kontrola czasu wykonania nie powiodła się",
    "yourApiKeyPlaceholder": "twój-api-key",
    "modelPlaceholder": "dostawca/identyfikator modelu",
    "configurationSaved": "Konfiguracja została zapisana pomyślnie.",
    "failedToSave": "Nie udało się zapisać konfiguracji.",
    "noApiKeysCreateOne": "Brak kluczy API — utwórz je na stronie Klucze",
    "defaultOmnirouteKey": "sk_omniroute (domyślnie)",
    "selectModel": "Wybierz Model",
    "selectModelForAlias": "Wybierz model dla {alias}",
    "selectModelForTool": "Wybierz model dla {tool}",
    "select": "Wybierz",
    "clear": "Jasne",
    "comingSoon": "Już wkrótce",
    "checkingRuntime": "Sprawdzam stan środowiska wykonawczego...",
    "guideOnlyIntegration": "Integracja wyłącznie w trybie przewodnika (nie jest wymagane lokalne środowisko wykonawcze)",
    "cliRuntimeDetected": "Środowisko wykonawcze CLI zostało wykryte i gotowe",
    "cliFoundNotRunnable": "Znaleziono interfejs CLI, ale nie można go uruchomić{reason}",
    "cliRuntimeNotDetected": "Nie wykryto środowiska wykonawczego CLI",
    "binary": "Binarny",
    "configPath": "Ścieżka konfiguracji",
    "configPathShort": "Konfig",
    "failedCheckRuntimeStatus": "Nie udało się sprawdzić stanu środowiska wykonawczego.",
    "copy": "Kopiuj",
    "copied": "Skopiowano",
    "copyConfig": "Kopiuj konfigurację",
    "saveConfig": "Zapisz konfigurację",
    "selectionSaved": "Wybór został zapisany",
    "guide": "Przewodnik",
    "detected": "Wykryto",
    "notReady": "Nie gotowy",
    "active": "Aktywny",
    "inactive": "Nieaktywny",
    "startMitm": "Uruchom MITM",
    "stopMitm": "Zatrzymaj MITM",
    "mitmStarted": "MITM rozpoczęło się pomyślnie!",
    "mitmStopped": "MITM został zatrzymany pomyślnie!",
    "failedStart": "Nie udało się uruchomić MITM",
    "failedStop": "Nie udało się zatrzymać MITM",
    "saveMappings": "Zapisz mapowania",
    "mappingsSaved": "Mapowania zapisane!",
    "failedSaveMappings": "Nie udało się zapisać mapowań",
    "howItWorks": "Jak to działa:",
    "antigravityHowWorksDesc": "Antygrawitacja wysyła żądania do punktu końcowego Google. MITM przechwytuje i przekierowuje je do OmniRoute.",
    "antigravityStep1": "1. Uruchom MITM, aby kierować żądania przez OmniRoute.",
    "antigravityStep2Prefix": "2. Dodaj",
    "antigravityStep2Suffix": "do pliku hosts jako 127.0.0.1.",
    "antigravityStep3": "3. Otwórz Antygrawitację i żądania zostaną przesłane przez serwer proxy.",
    "sudoPasswordRequiredTitle": "Wymagane hasło Sudo",
    "sudoPasswordHint": "Aby zmodyfikować ustawienia pliku hosts i systemowego serwera proxy, wymagane jest hasło administratora.",
    "enterSudoPassword": "Wprowadź hasło sudo",
    "sudoPasswordRequiredError": "Wymagane jest hasło Sudo.",
    "cancel": "Anuluj",
    "confirm": "Potwierdź",
    "settingsApplied": "Ustawienia zostały zastosowane pomyślnie!",
    "failedApplySettings": "Nie udało się zastosować ustawień",
    "settingsReset": "Ustawienia zostały zresetowane pomyślnie!",
    "failedResetSettings": "Nie udało się zresetować ustawień",
    "backupRestored": "Kopia zapasowa przywrócona!",
    "failedRestore": "Nie udało się przywrócić",
    "checkingCli": "Sprawdzam {tool} CLI...",
    "cliNotRunnable": "{tool} Zainstalowano CLI, ale nie można go uruchomić",
    "cliNotInstalled": "{tool} Interfejs CLI nie jest zainstalowany",
    "cliNotDetected": "{tool} Nie wykryto interfejsu CLI",
    "cliDetectedReady": "{tool} Wykryto interfejs CLI i jest on gotowy",
    "cliFoundFailedHealthcheck": "{tool} Znaleziono interfejs CLI, ale kontrola stanu środowiska wykonawczego nie powiodła się{reason}.",
    "installCliPrompt": "Aby móc korzystać z tej funkcji, zainstaluj {tool} CLI.",
    "installCodexPrompt": "Aby skorzystać z funkcji automatycznego stosowania, zainstaluj Codex CLI.",
    "hide": "Ukryj",
    "howToInstall": "Jak zainstalować",
    "installationGuide": "Przewodnik instalacji",
    "platforms": "macOS/Linux/Windows:",
    "afterInstallationRun": "Po instalacji uruchom",
    "toVerify": "zweryfikować.",
    "current": "Aktualny",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "Przywróć ustawienia domyślne",
    "providerModelPlaceholder": "dostawca/identyfikator modelu",
    "apply": "Zastosuj",
    "reset": "Zresetuj",
    "manualConfig": "Konfiguracja ręczna",
    "backups": "Kopie zapasowe",
    "configBackups": "Skonfiguruj kopie zapasowe",
    "noBackupsYet": "Nie ma jeszcze kopii zapasowych. Kopie zapasowe są tworzone automatycznie przed każdym Zastosowaniem lub Resetem.",
    "restore": "Przywróć",
    "backupRestoredReloading": "Kopia zapasowa przywrócona! Stan ponownego ładowania...",
    "failedRestoreBackup": "Nie udało się przywrócić kopii zapasowej",
    "applied": "Zastosowano!",
    "failed": "Nie udało się",
    "resetDone": "Zresetuj!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute jest skonfigurowany jako dostawca zgodny z OpenAI",
    "provider": "Dostawca",
    "model": "Modelka",
    "providers": "Dostawcy",
    "auth": "Autoryt",
    "noApiKeysAvailable": "Brak dostępnych kluczy API",
    "usingDefaultOmniroute": "Używam domyślnego: sk_omniroute",
    "updateConfig": "Zaktualizuj konfigurację",
    "applyConfig": "Zastosuj konfigurację",
    "noBackupsAvailable": "Brak dostępnych kopii zapasowych.",
    "profileSaved": "Profil „{name}” został zapisany!",
    "failedSaveProfile": "Nie udało się zapisać profilu",
    "profileActivated": "Profil aktywowany!",
    "failedActivateProfile": "Nie udało się aktywować profilu",
    "profiles": "Profile",
    "savedProfiles": "Zapisane profile",
    "noProfilesYet": "Nie zapisano jeszcze żadnych profili. Zapisz bieżącą konfigurację jako profil poniżej.",
    "activate": "Aktywuj",
    "deleteProfile": "Usuń profil",
    "profileNamePlaceholder": "Nazwa profilu (np. Konto Osobiste)",
    "saveCurrent": "Zapisz bieżący",
    "codexAuthNotePrefix": "Kodeks używa",
    "codexAuthNoteMiddle": "z",
    "codexAuthNoteSuffix": "Kliknij „Zastosuj”, aby przeprowadzić automatyczną konfigurację.",
    "claudeManualConfiguration": "Claude CLI - Konfiguracja ręczna",
    "codexManualConfiguration": "Codex CLI — konfiguracja ręczna",
    "droidManualConfiguration": "Droid fabryczny – konfiguracja ręczna",
    "openClawManualConfiguration": "Otwarty pazur - konfiguracja ręczna",
    "clineManualConfiguration": "Konfiguracja ręczna Cline",
    "kiloManualConfiguration": "Konfiguracja ręczna kodu Kilo",
    "toolDescriptions": {
      "antigravity": "Google Antigravity IDE z MITM",
      "claude": "Antropiczny kod Claude'a CLI",
      "codex": "Interfejs wiersza polecenia OpenAI Codex",
      "droid": "Asystent sztucznej inteligencji droida fabrycznego",
      "openclaw": "Otwórz asystenta AI Claw",
      "cline": "Cline AI Asystent kodowania CLI",
      "kilo": "Kilo Code AI Assistant CLI",
      "cursor": "Edytor kodu AI kursora",
      "continue": "Kontynuuj Asystenta AI",
      "opencode": "OpenCode AI coding agent (Terminal)",
      "kiro": "Amazon Kiro — AI-powered IDE"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "Aby korzystać z tej funkcji, wymagane jest konto Cursor Pro.",
          "1": "Kursor kieruje żądania przez własny serwer, więc lokalny punkt końcowy nie jest obsługiwany. Włącz punkt końcowy Cloud w Ustawieniach."
        },
        "steps": {
          "1": {
            "title": "Otwórz Ustawienia",
            "desc": "Przejdź do Ustawienia -> Modele"
          },
          "2": {
            "title": "Włącz interfejs API OpenAI",
            "desc": "Włącz opcję „Klucz API OpenAI”."
          },
          "3": {
            "title": "Bazowy adres URL"
          },
          "4": {
            "title": "Klucz API"
          },
          "5": {
            "title": "Dodaj model niestandardowy",
            "desc": "Kliknij „Wyświetl wszystkie modele” -> „Dodaj model niestandardowy”"
          },
          "6": {
            "title": "Wybierz Model"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "Otwórz konfigurację",
            "desc": "Otwórz plik konfiguracyjny Kontynuuj"
          },
          "2": {
            "title": "Klucz API"
          },
          "3": {
            "title": "Wybierz Model"
          },
          "4": {
            "title": "Dodaj konfigurację modelu",
            "desc": "Dodaj następującą konfigurację do tablicy modeli:"
          }
        }
      },
      "opencode": {
        "steps": {
          "1": {
            "title": "Install OpenCode",
            "desc": "Install via npm: npm install -g opencode-ai"
          },
          "2": {
            "title": "API Key"
          },
          "3": {
            "title": "Set Base URL",
            "desc": "opencode config set baseUrl {{baseUrl}}"
          },
          "4": {
            "title": "Select Model"
          }
        }
      },
      "kiro": {
        "steps": {
          "1": {
            "title": "Open Kiro Settings",
            "desc": "Go to Settings → AI Provider"
          },
          "2": {
            "title": "Base URL",
            "desc": "Paste your OmniRoute endpoint URL"
          },
          "3": {
            "title": "API Key"
          },
          "4": {
            "title": "Select Model"
          }
        }
      }
    }
  },
  "combos": {
    "title": "Kombinacje",
    "description": "Twórz kombinacje modeli z obsługą routingu ważonego i obsługi rezerwowej",
    "createCombo": "Utwórz kombinację",
    "editCombo": "Edytuj kombinację",
    "deleteCombo": "Usuń kombinację",
    "noModels": "Żadnych modeli",
    "noModelsYet": "Nie dodano jeszcze żadnych modeli",
    "addModel": "Dodaj model",
    "addModelToCombo": "Dodaj model do kombinacji",
    "routingStrategy": "Strategia routingu",
    "maxRetries": "Maksymalna liczba ponownych prób",
    "timeout": "Limit czasu (ms)",
    "healthcheck": "Kontrola stanu",
    "priority": "Priorytet",
    "fallback": "Powrót",
    "roundRobin": "Okrągły Robin",
    "random": "Losowe",
    "leastLatency": "Najmniejsze opóźnienie",
    "comboName": "Nazwa kombinacji",
    "comboNamePlaceholder": "moja kombinacja",
    "deleteConfirm": "Usunąć tę kombinację?",
    "noCombosYet": "Nie ma jeszcze żadnych kombinacji",
    "comboCreated": "Kombinacja utworzona pomyślnie",
    "comboUpdated": "Kombinacja została pomyślnie zaktualizowana",
    "comboDeleted": "Kombinacja usunięta",
    "failedCreate": "Nie udało się utworzyć kombinacji",
    "failedUpdate": "Nie udało się zaktualizować kombinacji",
    "errorCreating": "Błąd podczas tworzenia kombinacji",
    "errorUpdating": "Błąd aktualizacji kombinacji",
    "errorDeleting": "Błąd podczas usuwania kombinacji",
    "testFailed": "Żądanie testowe nie powiodło się",
    "failedToggle": "Nie udało się przełączyć kombinacji",
    "testResults": "Wyniki testu — {name}",
    "resolvedBy": "Rozwiązane przez:",
    "more": "+{count} więcej",
    "reqs": "wymagania",
    "success": "sukces",
    "proxyConfigured": "Serwer proxy skonfigurowany",
    "copyComboName": "Skopiuj nazwę kombinacji",
    "enableCombo": "Włącz kombinację",
    "disableCombo": "Wyłącz kombinację",
    "testCombo": "Kombinacja testowa",
    "duplicate": "Duplikat",
    "proxyConfig": "Konfiguracja proxy",
    "nameRequired": "Imię i nazwisko jest wymagane",
    "nameInvalid": "Tylko litery, cyfry, -, _, / i . dozwolone",
    "nameHint": "Litery, cyfry, -, _, / i . dozwolone",
    "priorityDesc": "Sekwencyjne działanie awaryjne: najpierw wypróbowuje model 1, potem 2 itd.",
    "weightedDesc": "Rozdziela ruch według procentu wagi z rezerwą",
    "roundRobinDesc": "Dystrybucja kołowa: każde żądanie trafia do następnego modelu w rotacji",
    "randomDesc": "Jednolity wybór losowy, a następnie powrót do pozostałych modeli",
    "leastUsedDesc": "Wybiera model z najmniejszą liczbą żądań, równoważąc obciążenie w czasie",
    "costOptimizedDesc": "Najpierw wybiera najtańszy model na podstawie ceny",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "Modele",
    "autoBalance": "Automatyczne balansowanie",
    "advancedSettings": "Ustawienia zaawansowane",
    "retryDelay": "Opóźnienie ponownej próby (ms)",
    "concurrencyPerModel": "Współbieżność/model",
    "queueTimeout": "Limit czasu kolejki (ms)",
    "advancedHint": "Pozostaw puste, aby użyć globalnych ustawień domyślnych. Zastępują one ustawienia poszczególnych dostawców.",
    "moveUp": "Przesuń się w górę",
    "moveDown": "Przesuń w dół",
    "removeModel": "Usuń",
    "saving": "Zapisywanie...",
    "weighted": "Ważona",
    "leastUsed": "Najrzadziej używany",
    "costOpt": "Opcja kosztowa",
    "strategyGuideTitle": "How to use this strategy",
    "strategyGuideWhen": "When to use",
    "strategyGuideAvoid": "Avoid when",
    "strategyGuideExample": "Example",
    "strategyGuide": {
      "priority": {
        "when": "You have one preferred model and only want fallback on failure.",
        "avoid": "You need request distribution across models.",
        "example": "Primary coding model with cheaper backup for outages."
      },
      "weighted": {
        "when": "You need controlled traffic split across models.",
        "avoid": "You cannot maintain accurate weights over time.",
        "example": "80% stable model + 20% canary model rollout."
      },
      "round-robin": {
        "when": "You want predictable and even distribution.",
        "avoid": "Models differ too much in latency or cost.",
        "example": "Same model on multiple accounts to spread throughput."
      },
      "random": {
        "when": "You want simple distribution with minimal setup.",
        "avoid": "You need strict traffic guarantees.",
        "example": "Quick prototyping with equivalent models."
      },
      "least-used": {
        "when": "You want adaptive balancing based on live demand.",
        "avoid": "Traffic is too low to benefit from usage balancing.",
        "example": "Mixed workloads where one model often gets overloaded."
      },
      "cost-optimized": {
        "when": "Cost reduction is your top priority.",
        "avoid": "Pricing data is missing or outdated.",
        "example": "Background or batch jobs where lower cost is preferred."
      }
    },
    "advancedHelp": {
      "maxRetries": "How many retries are attempted before failing a request.",
      "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
      "timeout": "Maximum request duration before aborting.",
      "healthcheck": "Skips unhealthy models/providers from routing decisions.",
      "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
      "queueTimeout": "How long a request can wait in queue before timing out."
    },
    "templatesTitle": "Quick templates",
    "templatesDescription": "Apply a starting profile, then adjust models and config.",
    "templateApply": "Apply template",
    "templateHighAvailability": "High availability",
    "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
    "templateCostSaver": "Cost saver",
    "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
    "templateBalanced": "Balanced load",
    "templateBalancedDesc": "Least-used routing to spread demand over time.",
    "usageGuideHide": "Hide",
    "usageGuideDontShowAgain": "Don't show again",
    "usageGuideShow": "Show guide",
    "quickTestTitle": "Combo ready to validate",
    "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
    "testNow": "Test now",
    "pricingCoverage": "Pricing coverage",
    "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
    "pricingAvailable": "Pricing available",
    "pricingMissing": "No pricing",
    "pricingAvailableShort": "priced",
    "pricingMissingShort": "no-price",
    "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
    "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
    "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
    "readinessTitle": "Gotowy do zapisania?",
    "readinessDescription": "Przed utworzeniem lub aktualizacją tej kombinacji przejrzyj listę kontrolną.",
    "readinessCheckName": "Nazwa kombinacji jest prawidłowa",
    "readinessCheckModels": "Wybrano co najmniej jeden model",
    "readinessCheckWeights": "Suma ważona wynosi 100%",
    "readinessCheckWeightsOptional": "Reguła wagi nie jest wymagana",
    "readinessCheckPricing": "Dane cenowe są dostępne",
    "readinessCheckPricingOptional": "Reguła cenowa nie jest wymagana",
    "saveBlockedTitle": "Zapisywanie jest zablokowane do czasu naprawienia następujących elementów:",
    "saveBlockName": "Zdefiniuj nazwę kombinacji.",
    "saveBlockModels": "Dodaj co najmniej jeden model.",
    "saveBlockWeighted": "Ustaw wagi na 100% (obecnie: {total}%).",
    "saveBlockPricing": "Dodaj cenę dla co najmniej jednego modelu lub wybierz inną strategię.",
    "recommendationsLabel": "Recommended setup",
    "applyRecommendations": "Apply recommendations",
    "recommendationsUpdated": "Recommendations updated for {strategy}.",
    "recommendationsApplied": "Recommendations applied to this combo.",
    "strategyRecommendations": {
      "priority": {
        "title": "Fail-safe baseline",
        "description": "Use one primary model and keep fallback chain short and reliable.",
        "tip1": "Put your most reliable model first.",
        "tip2": "Keep 1-2 backup models with similar quality.",
        "tip3": "Use safe retries to absorb transient provider failures."
      },
      "weighted": {
        "title": "Controlled traffic split",
        "description": "Great for canary rollouts and gradual migration between models.",
        "tip1": "Start with conservative split like 90/10.",
        "tip2": "Keep the total at 100% and auto-balance after changes.",
        "tip3": "Monitor success and latency before increasing canary weight."
      },
      "round-robin": {
        "title": "Predictable load sharing",
        "description": "Best when models are equivalent and you need smooth distribution.",
        "tip1": "Use at least 2 models.",
        "tip2": "Set concurrency limits to avoid burst overload.",
        "tip3": "Use queue timeout to fail fast under saturation."
      },
      "random": {
        "title": "Quick spread with low setup",
        "description": "Use when you need simple distribution without strict guarantees.",
        "tip1": "Use models with similar latency profiles.",
        "tip2": "Keep retries enabled to absorb random misses.",
        "tip3": "Prefer this for experimentation, not strict SLAs."
      },
      "least-used": {
        "title": "Adaptive balancing",
        "description": "Routes to less-used models to reduce hotspots over time.",
        "tip1": "Works better under continuous traffic.",
        "tip2": "Combine with health checks for safer balancing.",
        "tip3": "Track per-model usage to validate distribution gains."
      },
      "cost-optimized": {
        "title": "Budget-first routing",
        "description": "Routes to lower-cost models when pricing metadata is available.",
        "tip1": "Ensure pricing coverage for all selected models.",
        "tip2": "Keep a quality fallback for hard prompts.",
        "tip3": "Use for batch/background jobs where cost is the main KPI."
      }
    },
    "templateFreeStack": "Free Stack ($0)",
    "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding."
  },
  "costs": {
    "title": "Koszty",
    "budget": "Budżet",
    "totalCost": "Całkowity koszt",
    "breakdown": "Podział kosztów",
    "noData": "Brak danych o kosztach",
    "byModel": "Według modelu",
    "byProvider": "Przez Dostawcę"
  },
  "endpoint": {
    "title": "Punkt końcowy interfejsu API",
    "available": "Dostępne punkty końcowe",
    "cloudProxy": "Serwer proxy w chmurze",
    "disableConfirm": "Czy na pewno chcesz wyłączyć serwer proxy w chmurze?",
    "baseUrl": "Bazowy adres URL",
    "apiKeyLabel": "Klucz API",
    "registeredKeys": "Zarejestrowane klucze",
    "chatCompletions": "Zakończenia czatu",
    "responses": "Odpowiedzi",
    "listModels": "Lista modeli",
    "usingCloudProxy": "Korzystanie z serwera proxy w chmurze",
    "usingLocalServer": "Korzystanie z serwera lokalnego",
    "machineId": "Identyfikator maszyny: {id}...",
    "disableCloud": "Wyłącz chmurę",
    "enableCloud": "Włącz chmurę",
    "modelsAcrossEndpoints": "{models} modele w {endpoints} punktach końcowych",
    "chatDesc": "Czat strumieniowy i niestreamingowy ze wszystkimi dostawcami",
    "embeddings": "Osadzenia",
    "embeddingsDesc": "Osadzanie tekstu dla potoków wyszukiwania i RAG",
    "imageGeneration": "Generowanie obrazu",
    "imageDesc": "Generuj obrazy na podstawie podpowiedzi tekstowych",
    "rerank": "Zmień rangę",
    "rerankDesc": "Zmień rangę dokumentów według trafności dla zapytania",
    "audioTranscription": "Transkrypcja dźwięku",
    "audioTranscriptionDesc": "Transkrypcja plików audio na tekst (szeptem)",
    "textToSpeech": "Tekst na mowę",
    "textToSpeechDesc": "Konwertuj tekst na naturalnie brzmiącą mowę",
    "moderations": "Moderacje",
    "moderationsDesc": "Moderowanie treści i klasyfikacja bezpieczeństwa",
    "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
    "listModelsDesc": "List all available models across all connected providers",
    "settingsApiDesc": "Read and modify OmniRoute configuration via API",
    "settingsApi": "Settings API",
    "categoryCore": "Główne API",
    "categoryMedia": "Media i Multi-Modal",
    "categoryUtility": "Narzędzia i Zarządzanie",
    "enableCloudTitle": "Włącz serwer proxy w chmurze",
    "whatYouGet": "Co otrzymasz",
    "cloudBenefitAccess": "Uzyskaj dostęp do swojego API z dowolnego miejsca na świecie",
    "cloudBenefitShare": "Z łatwością udostępniaj punkt końcowy swojemu zespołowi",
    "cloudBenefitPorts": "Nie ma potrzeby otwierania portów ani konfigurowania zapory ogniowej",
    "cloudBenefitEdge": "Szybka globalna sieć brzegowa",
    "cloudSessionNote": "Cloud będzie przechowywać Twoją sesję uwierzytelniania przez 1 dzień. Jeśli nie zostanie użyty, zostanie automatycznie usunięty.",
    "cloudUnstableNote": "Chmura jest obecnie niestabilna z Claude Code OAuth w niektórych przypadkach.",
    "cloudConnected": "Serwer proxy chmury podłączony!",
    "connectingToCloud": "Łączę z chmurą...",
    "verifyingConnection": "Weryfikacja połączenia...",
    "connecting": "Łączenie...",
    "verifying": "Weryfikuję...",
    "connected": "Połączono!",
    "disableCloudTitle": "Wyłącz serwer proxy w chmurze",
    "disableWarning": "Wszystkie sesje autoryzacji zostaną usunięte z chmury.",
    "syncingData": "Synchronizowanie najnowszych danych...",
    "disablingCloud": "Wyłączam chmurę...",
    "syncing": "Synchronizowanie...",
    "disabling": "Wyłączam...",
    "cloudConnectedVerified": "Cloud Proxy podłączony i zweryfikowany!",
    "connectedVerificationPending": "Połączono — weryfikacja w toku",
    "connectedVerificationPendingWithError": "Połączono — weryfikacja w toku: {error}",
    "cloudDisabledSuccess": "Chmura została pomyślnie wyłączona",
    "syncedSuccess": "Zsynchronizowano pomyślnie",
    "failedDisable": "Nie udało się wyłączyć chmury",
    "failedEnable": "Nie udało się włączyć chmury",
    "cloudRequestTimeout": "Upłynął limit czasu żądania w chmurze",
    "cloudRequestFailed": "Żądanie w chmurze nie powiodło się",
    "cloudWorkerUnreachable": "Nie udało się połączyć z pracownikiem chmury. Upewnij się, że usługa w chmurze jest uruchomiona (npm run dev w /cloud).",
    "connectionFailed": "Połączenie nie powiodło się",
    "syncFailed": "Nie udało się zsynchronizować danych w chmurze",
    "providerModelsTitle": "{provider} — Modele",
    "noModelsForProvider": "Brak dostępnych modeli tego dostawcy.",
    "chat": "Czat",
    "embedding": "Osadzanie",
    "image": "Obraz",
    "custom": "niestandardowe",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "sectionTitle": "Integration Surface",
    "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
    "tabApis": "OpenAI-compatible APIs",
    "tabProtocols": "Protocols",
    "tabsAria": "Endpoint sections",
    "protocolsTitle": "Protocols",
    "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
    "mcpCardTitle": "MCP Server",
    "mcpCardDescription": "Model Context Protocol over stdio",
    "a2aCardTitle": "A2A Server",
    "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
    "protocolToolsLabel": "Tools",
    "protocolTasksLabel": "Tasks",
    "protocolActiveStreamsLabel": "Active streams",
    "protocolLastActivity": "Last activity",
    "quickStart": "Quick Start",
    "openMcpDashboard": "Open MCP management",
    "openA2aDashboard": "Open A2A management",
    "mcpQuickStartTitle": "MCP Quick Start",
    "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
    "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
    "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
    "a2aQuickStartTitle": "A2A Quick Start",
    "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
    "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
    "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
    "completionsLegacy": "Completions (Legacy)",
    "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
  },
  "mcpDashboard": {
    "loading": "Loading MCP dashboard...",
    "activate": "activate",
    "deactivate": "deactivate",
    "confirmSwitchCombo": "Potwierdzić kombinację {action} „{combo}”?",
    "switchComboFailed": "Nie udało się przełączyć stanu kombinacji.",
    "switchComboSuccess": "Kombinacja „{combo}” została zaktualizowana.",
    "confirmApplyProfile": "Zastosować profil odporności „{profile}”?",
    "applyProfileFailed": "Nie udało się zastosować profilu odporności.",
    "applyProfileSuccess": "Zastosowano profil „{profile}”.",
    "confirmResetBreakers": "Zresetować wszystkie wyłączniki automatyczne?",
    "resetBreakersFailed": "Nie udało się zresetować wyłączników automatycznych.",
    "resetBreakersSuccess": "Reset wyłączników automatycznych.",
    "processStatus": "Stan procesu",
    "online": "W Internecie",
    "offline": "Nieaktywny",
    "pid": "PID",
    "sessionUptime": "Session uptime",
    "lastHeartbeat": "Last heartbeat",
    "activity24h": "Activity (24h)",
    "totalCalls": "Total calls",
    "successRate": "Success rate",
    "avgLatency": "Avg latency",
    "topTools": "Top tools",
    "noToolCalls24h": "No tool calls in the last 24 hours.",
    "runtimeDetails": "Runtime details",
    "transport": "Transport",
    "scopesEnforced": "Scopes enforced",
    "yes": "yes",
    "no": "no",
    "lastCall": "Last call",
    "heartbeatPath": "Heartbeat path",
    "operationalControls": "Operational controls",
    "switchCombo": "Switch combo",
    "inactive": "inactive",
    "active": "active",
    "activateCombo": "Activate combo",
    "deactivateCombo": "Deactivate combo",
    "applyResilienceProfile": "Apply resilience profile",
    "profileAggressive": "aggressive",
    "profileBalanced": "balanced",
    "profileConservative": "conservative",
    "applyProfile": "Apply profile",
    "resetCircuitBreakers": "Reset circuit breakers",
    "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
    "resetAllBreakers": "Reset all breakers",
    "toolsAndScopes": "Tools and scopes",
    "tableTool": "Tool",
    "tableScopes": "Scopes",
    "tablePhase": "Phase",
    "tableAudit": "Audit",
    "auditLog": "Audit log",
    "auditSummary": "Calls: {total} | page {page} of {totalPages}",
    "allTools": "All tools",
    "allResults": "All results",
    "success": "Success",
    "failure": "Failure",
    "apiKeyIdPlaceholder": "apiKeyId",
    "loadingAuditEntries": "Loading audit entries...",
    "noAuditEntriesForFilters": "No audit entries found for current filters.",
    "tableTimestamp": "Timestamp",
    "tableDuration": "Duration",
    "tableResult": "Result",
    "tableApiKey": "API key",
    "failed": "failed",
    "previous": "Previous",
    "next": "Next"
  },
  "a2aDashboard": {
    "loading": "Loading A2A dashboard...",
    "confirmCancelTask": "Cancel task {taskId}?",
    "cancelTaskFailed": "Failed to cancel task.",
    "cancelTaskSuccess": "Task {taskId} cancelled.",
    "smokeSendFailed": "message/send smoke test failed.",
    "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
    "smokeSendSuccess": "message/send ok.",
    "smokeStreamFailed": "message/stream smoke test failed.",
    "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
    "smokeStreamNoTaskId": "message/stream finished without task id.",
    "health": "Health",
    "ok": "ok",
    "totalTasks": "Total tasks",
    "activeStreams": "Active streams",
    "lastTask": "Last task",
    "taskStateOverview": "Task state overview",
    "state": {
      "submitted": "submitted",
      "working": "working",
      "completed": "completed",
      "failed": "failed",
      "cancelled": "cancelled"
    },
    "agentCard": "Agent card",
    "version": "Version",
    "url": "URL",
    "capabilities": "Capabilities",
    "agentCardNotAvailable": "Agent card not available.",
    "quickValidation": "Quick validation",
    "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
    "runMessageSend": "Run message/send",
    "runMessageStream": "Run message/stream",
    "taskManagement": "Task management",
    "taskSummary": "{total} tasks | page {page} of {totalPages}",
    "allStates": "all",
    "allSkills": "all skills",
    "loadingTasks": "Loading tasks...",
    "noTasksForFilters": "No tasks found for current filters.",
    "tableTask": "Task",
    "tableSkill": "Skill",
    "tableState": "State",
    "tableUpdated": "Updated",
    "tableActions": "Actions",
    "view": "View",
    "cancel": "Cancel",
    "previous": "Previous",
    "next": "Next",
    "taskDetail": "Task detail",
    "close": "Close",
    "metadata": "Metadata",
    "events": "Events",
    "artifacts": "Artifacts"
  },
  "health": {
    "title": "Stan systemu",
    "description": "Monitorowanie w czasie rzeczywistym Twojej instancji OmniRoute",
    "healthy": "Zdrowy",
    "degraded": "Zdegradowany",
    "down": "W dół",
    "uptime": "Czas pracy",
    "memory": "Pamięć",
    "memoryRss": "Pamięć (RSS)",
    "heap": "Kupa",
    "cpu": "Procesor",
    "database": "Baza danych",
    "version": "Wersja",
    "lastCheck": "Ostatnia kontrola",
    "providerHealth": "Zdrowie dostawcy",
    "systemMetrics": "Metryki systemu",
    "tokenHealth": "Tokenowe zdrowie",
    "refreshAll": "Odśwież wszystko",
    "checkNow": "Sprawdź teraz",
    "loadingHealth": "Ładowanie danych zdrowotnych...",
    "failedToLoad": "Nie udało się załadować danych o stanie zdrowia: {error}",
    "retry": "Spróbuj ponownie",
    "allOperational": "Wszystkie systemy sprawne",
    "issuesDetected": "Wykryto problemy systemowe",
    "updatedAt": "Zaktualizowano {time}",
    "latency": "Opóźnienie",
    "latencyP50": "p50",
    "latencyP95": "s. 95",
    "latencyP99": "str. 99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "Łączna liczba żądań",
    "noDataYet": "Brak danych",
    "promptCache": "Natychmiastowa pamięć podręczna",
    "entries": "Wpisy",
    "hitRate": "Współczynnik trafień",
    "hitsMisses": "Trafienia/chybienia",
    "signatureCache": "Pamięć podręczna podpisów",
    "signatureDefaults": "Domyślne",
    "signatureTool": "Narzędzie",
    "signatureFamily": "Rodzina",
    "signatureSession": "Sesja",
    "recovering": "Odzyskiwanie",
    "noCBData": "Brak dostępnych danych dotyczących wyłącznika automatycznego. Najpierw złóż kilka próśb.",
    "providerHealthStatusAria": "Stan zdrowia dostawcy",
    "issuesLabel": "Wykryto problemy",
    "operational": "Operacyjny",
    "providers": "Dostawcy",
    "healthyCount": "{count} zdrowy",
    "nodeVersion": "Węzeł {version}",
    "failures": "{count} błąd",
    "failuresPlural": "{count} niepowodzenia",
    "lastFailure": "Ostatni",
    "rateLimitStatus": "Stan limitu stawki",
    "activeLimiters": "{count} aktywny ogranicznik",
    "activeLimitersPlural": "{count} aktywne limitery",
    "queued": "W kolejce",
    "queuedCount": "{count} w kolejce",
    "running": "bieganie",
    "runningCount": "{count} działa",
    "ok": "OK",
    "activeLockouts": "Aktywne blokady",
    "resetConfirm": "Zresetować wszystkie wyłączniki automatyczne do stanu prawidłowego? Spowoduje to wyczyszczenie wszystkich liczników błędów i przywrócenie wszystkich dostawców do stanu operacyjnego.",
    "resetAllTitle": "Zresetuj wszystkie wyłączniki automatyczne do stanu prawidłowego",
    "resetting": "Resetuję...",
    "resetAll": "Zresetuj wszystko",
    "until": "Do {time}"
  },
  "limits": {
    "title": "Limity i kwoty",
    "rateLimit": "Limit stawki",
    "remaining": "Pozostało",
    "requestsPerMinute": "Żądania/min",
    "tokensPerMinute": "Tokeny/min",
    "dailyLimit": "Limit dzienny"
  },
  "logs": {
    "title": "Dzienniki",
    "requestLogs": "Poproś o logi",
    "proxyLogs": "Dzienniki proxy",
    "auditLog": "Dziennik audytu",
    "console": "Konsola",
    "auditLogDesc": "Działania administracyjne i zdarzenia związane z bezpieczeństwem",
    "loading": "Ładowanie...",
    "refresh": "Odśwież",
    "filterByAction": "Filtruj według działania...",
    "filterByActor": "Filtruj według aktora...",
    "filterEntriesAria": "Filtruj wpisy dziennika audytu",
    "filterByActionTypeAria": "Filtruj według typu akcji",
    "filterByActorAria": "Filtruj według aktora",
    "refreshAuditLogAria": "Odśwież dziennik audytu",
    "tableAria": "Wpisy dziennika audytu",
    "failedFetchAuditLog": "Nie udało się pobrać dziennika kontroli",
    "showing": "Wyświetlanie wpisów {count} (przesunięcie {offset})",
    "search": "Szukaj",
    "timestamp": "Znacznik czasu",
    "action": "Akcja",
    "actor": "Aktor",
    "target": "Cel",
    "details": "Szczegóły",
    "ipAddress": "Adres IP",
    "notAvailable": "—",
    "noEntries": "Nie znaleziono wpisów w dzienniku kontroli",
    "previous": "Poprzedni",
    "next": "Następny"
  },
  "onboarding": {
    "welcome": "Witamy",
    "security": "Bezpieczeństwo",
    "test": "Testuj",
    "ready": "Gotowy!",
    "setPassword": "Ustaw hasło",
    "addProvider": "Dodaj swojego pierwszego dostawcę",
    "getStarted": "Rozpocznij",
    "skip": "Pomiń",
    "skipWizard": "Całkowicie pomiń kreatora",
    "skipPassword": "Pomiń konfigurację hasła",
    "skipAndContinue": "Pomiń i kontynuuj",
    "passwordLabel": "Hasło",
    "confirmPassword": "Potwierdź hasło",
    "enterPassword": "Wprowadź hasło",
    "confirmPasswordPlaceholder": "Potwierdź hasło",
    "passwordsMismatch": "Hasła nie pasują",
    "setupComplete": "Konfiguracja ukończona!",
    "goToDashboard": "Przejdź do Panelu →",
    "welcomeDesc": "OmniRoute to lokalny serwer proxy API AI. Kieruje żądania do wielu dostawców AI z równoważeniem obciążenia, przełączaniem awaryjnym i śledzeniem użycia.",
    "multiProvider": "Wielu dostawców",
    "usageTracking": "Śledzenie użycia",
    "apiKeyMgmt": "Zarządzanie kluczami API",
    "securityDesc": "Ustaw hasło, aby chronić swój pulpit nawigacyjny, lub na razie pomiń.",
    "providerDesc": "Połącz swojego pierwszego dostawcę AI. Możesz dodać więcej później.",
    "apiKeyRequired": "Klucz API (wymagany)",
    "customUrlOptional": "Niestandardowy adres URL (opcjonalnie)",
    "testDesc": "Sprawdźmy, czy połączenie Twojego dostawcy działa.",
    "runTest": "Uruchom test połączenia",
    "testingConnection": "Testowanie połączenia...",
    "connectionSuccessful": "Połączenie pomyślne! Twój dostawca jest gotowy.",
    "noProviderFound": "Nie znaleziono dostawcy. Możesz dodać je później z poziomu panelu kontrolnego.",
    "testFailed": "Test nie powiódł się, ale możesz to skonfigurować później.",
    "couldNotTest": "Nie można teraz przetestować. Możesz przetestować z poziomu pulpitu nawigacyjnego.",
    "doneDesc": "Wszystko gotowe! Twoja instancja OmniRoute jest skonfigurowana i gotowa do zastępowania żądań AI.",
    "yourEndpoint": "Twój punkt końcowy:",
    "continue": "Kontynuuj",
    "retry": "Spróbuj ponownie",
    "failedSetPassword": "Nie udało się ustawić hasła. Spróbuj ponownie.",
    "failedAddProvider": "Nie udało się dodać dostawcy. Spróbuj ponownie.",
    "connectionError": "Błąd połączenia. Spróbuj ponownie.",
    "provider": "Dostawca"
  },
  "providers": {
    "title": "Dostawcy",
    "addProvider": "Dodaj dostawcę",
    "editProvider": "Edytuj dostawcę",
    "deleteProvider": "Usuń dostawcę",
    "noProviders": "Nie skonfigurowano żadnych dostawców",
    "modelAvailability": "Dostępność modelu",
    "accounts": "Konta",
    "newAccount": "Nowe konto",
    "deleteConfirm": "Czy na pewno chcesz usunąć tego dostawcę?",
    "testing": "Testowanie...",
    "testConnection": "Połączenie testowe",
    "testSuccess": "Połączenie pomyślne",
    "testFailed": "Połączenie nie powiodło się",
    "available": "Dostępne",
    "cooldown": "Czas odnowienia",
    "unavailable": "Niedostępne",
    "unknown": "Nieznany",
    "oauthLabel": "OAuth",
    "compatibleLabel": "Kompatybilny",
    "chat": "Czat",
    "responses": "Odpowiedzi",
    "messages": "Wiadomości",
    "oauthProviders": "Dostawcy protokołu OAuth",
    "freeProviders": "Bezpłatni dostawcy",
    "apiKeyProviders": "Dostawcy kluczy API",
    "compatibleProviders": "Dostawcy obsługujący klucz API",
    "testAll": "Przetestuj wszystko",
    "testAllOAuth": "Przetestuj wszystkie połączenia OAuth",
    "testAllFree": "Przetestuj wszystkie bezpłatne połączenia",
    "testAllApiKey": "Przetestuj wszystkie połączenia klucza API",
    "testAllCompatible": "Przetestuj wszystkie kompatybilne połączenia",
    "connected": "{count} Połączono",
    "errorCount": "{count} Błąd ({code})",
    "errorCountNoCode": "{count} Błąd",
    "noConnections": "Brak połączeń",
    "disabled": "Niepełnosprawny",
    "enableProvider": "Włącz dostawcę",
    "disableProvider": "Wyłącz dostawcę",
    "testResults": "Wyniki testu",
    "noCompatibleYet": "Nie dodano jeszcze żadnych kompatybilnych dostawców",
    "compatibleHint": "Użyj powyższych przycisków, aby dodać punkty końcowe kompatybilne z OpenAI lub Anthropic",
    "addOpenAICompatible": "Dodaj kompatybilność z OpenAI",
    "addAnthropicCompatible": "Dodaj kompatybilność antropiczną",
    "addNewProvider": "Dodaj nowego dostawcę",
    "backToProviders": "Powrót do dostawców",
    "configureNewProvider": "Skonfiguruj nowego dostawcę AI do użycia z aplikacjami.",
    "providerLabel": "Dostawca",
    "selectProvider": "Wybierz dostawcę",
    "selectedProvider": "Wybrany dostawca",
    "authMethod": "Metoda uwierzytelniania",
    "apiKeyLabel": "Klucz API",
    "apiKeyRequired": "Wymagany jest klucz API",
    "selectProviderRequired": "Wybierz dostawcę",
    "enterApiKey": "Wprowadź swój klucz API",
    "apiKeySecure": "Twój klucz API zostanie zaszyfrowany i bezpiecznie przechowywany.",
    "oauth2Connect": "Połącz się z OAuth2",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "Połącz swoje konto za pomocą uwierzytelniania OAuth2.",
    "displayName": "Nazwa wyświetlana",
    "displayNamePlaceholder": "np. produkcyjne API, środowisko deweloperskie",
    "displayNameHint": "Opcjonalne. Przyjazna nazwa identyfikująca tę konfigurację.",
    "active": "Aktywny",
    "activeDescription": "Włącz tego dostawcę do użytku w swoich aplikacjach",
    "cancel": "Anuluj",
    "createProvider": "Utwórz dostawcę",
    "failedCreate": "Nie udało się utworzyć dostawcy",
    "errorOccurred": "Wystąpił błąd. Spróbuj ponownie.",
    "modelStatus": "Stan modelu",
    "allModelsOperational": "Wszystkie modele sprawne",
    "modelsWithIssues": "{count} modele z problemami",
    "allModelsNormal": "Wszystkie modele reagują normalnie.",
    "cooldownCleared": "Czas odnowienia usunięty dla {model}",
    "failedClearCooldown": "Nie udało się wyczyścić czasu odnowienia",
    "loadingAvailability": "Ładowanie dostępności modelu...",
    "clearCooldown": "Jasne",
    "clearing": "Czyszczenie...",
    "until": "Do {time}",
    "providerTestFailed": "Test dostawcy nie powiódł się",
    "modeTest": "{mode} Test",
    "passedCount": "{count} zaliczone",
    "failedCount": "{count} nie powiodło się",
    "testedCount": "{count} przetestowane",
    "millisecondsAbbr": "{value}ms",
    "okShort": "OK",
    "errorShort": "BŁĄD",
    "noActiveConnectionsInGroup": "Nie znaleziono aktywnych połączeń dla tej grupy.",
    "allTestsPassed": "Wszystkie {total} testy zaliczone",
    "testSummary": "{passed}/{total} zaliczone, {failed} nie powiodło się",
    "nameLabel": "Imię",
    "prefixLabel": "Przedrostek",
    "baseUrlLabel": "Bazowy adres URL",
    "apiTypeLabel": "Typ interfejsu API",
    "prefixHint": "Wymagane. Unikalny przedrostek nazw modeli.",
    "nameHint": "Wymagane. Przyjazna etykieta dla tego węzła.",
    "baseUrlHint": "Wymagane.  Podstawowy adres URL interfejsu API dostawcy.",
    "anthropicPrefixPlaceholder": "AC-prod",
    "openaiPrefixPlaceholder": "oc-prod",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "Sprawdź połączenie",
    "validating": "Sprawdzanie poprawności...",
    "connectionValid": "Połączenie jest ważne!",
    "connectionFailed": "Połączenie nie powiodło się. Sprawdź adres URL i klucz.",
    "testKeyLabel": "Testuj klucz API",
    "testKeyPlaceholder": "sk-... (tylko do sprawdzenia)",
    "providerNotFound": "Nie znaleziono dostawcy",
    "deleteConnectionConfirm": "Usunąć to połączenie?",
    "failedSetAlias": "Nie udało się ustawić aliasu",
    "failedSaveConnection": "Nie udało się zapisać połączenia",
    "failedSaveConnectionRetry": "Nie udało się zapisać połączenia. Spróbuj ponownie.",
    "failedRetestConnection": "Nie udało się ponownie przetestować połączenia",
    "deleteCompatibleNodeConfirm": "Usunąć ten {type} Zgodny węzeł?",
    "anthropicCompatibleDetails": "Szczegóły zgodności antropicznej",
    "openaiCompatibleDetails": "Szczegóły zgodności z OpenAI",
    "messagesApi": "Interfejs API wiadomości",
    "responsesApi": "API odpowiedzi",
    "chatCompletions": "Zakończenia czatu",
    "importingModels": "Importowanie...",
    "importFromModels": "Importuj z /modele",
    "addConnectionToImport": "Dodaj połączenie, aby umożliwić importowanie.",
    "noModelsConfigured": "Nie skonfigurowano żadnych modeli",
    "connectionCount": "{count} połączenia",
    "fetchingModels": "Pobieram dostępne modele...",
    "failedFetchModels": "Nie udało się pobrać modeli",
    "noModelsFound": "Nie znaleziono żadnych modeli",
    "importFailed": "Import nie powiódł się",
    "noNewModelsAdded": "Nie dodano żadnych nowych modeli.",
    "adding": "Dodawanie...",
    "importingModelsTitle": "Importowanie modeli",
    "copyModel": "Skopiuj model",
    "removeModel": "Usuń model",
    "rateLimitProtected": "Chronione",
    "rateLimitUnprotected": "Niechroniony",
    "enableRateLimitProtection": "Kliknij, aby włączyć ochronę limitu szybkości",
    "disableRateLimitProtection": "Kliknij, aby wyłączyć ochronę limitu szybkości",
    "productionKey": "Klucz produkcyjny",
    "enterNewApiKey": "Wprowadź nowy klucz API",
    "optional": "Opcjonalne",
    "anthropicCompatibleName": "Kompatybilny z antropią",
    "openaiCompatibleName": "Kompatybilny z OpenAI",
    "failedImportModels": "Nie udało się zaimportować modeli",
    "noModelsReturnedFromEndpoint": "Z punktu końcowego /models nie zwrócono żadnych modeli.",
    "importingModelsProgress": "Importowanie {current} z {total} modeli...",
    "foundModelsStartingImport": "Znaleziono {count} modeli. Rozpoczynam importowanie...",
    "importingModelById": "Importowanie {modelId}...",
    "importSuccessCount": "Pomyślnie zaimportowano {count, plural, one {# model} other {# models}}!",
    "noNewModelsAddedExisting": "Nie dodano żadnych nowych modeli (wszystkie już istnieją).",
    "importDoneCount": "✓ Gotowe! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "Wystąpił nieoczekiwany błąd",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "wiadomości",
    "responsesPath": "odpowiedzi",
    "chatCompletionsPath": "czat/uzupełnienia",
    "add": "Dodaj",
    "edit": "Edytuj",
    "delete": "Usuń",
    "anthropic": "Antropiczny",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "Dozwolone jest tylko jedno połączenie na kompatybilny węzeł. Dodaj kolejny węzeł, jeśli potrzebujesz więcej połączeń.",
    "connections": "Połączenia",
    "providerProxyTitleConfigured": "Serwer proxy dostawcy: {host}",
    "configured": "skonfigurowany",
    "providerProxyConfigureHint": "Skonfiguruj serwer proxy dla wszystkich połączeń tego dostawcy",
    "providerProxy": "Pełnomocnik dostawcy",
    "noConnectionsYet": "Nie ma jeszcze żadnych połączeń",
    "addFirstConnectionHint": "Aby rozpocząć, dodaj swoje pierwsze połączenie",
    "addConnection": "Dodaj połączenie",
    "availableModels": "Dostępne modele",
    "pageAutoRefresh": "Strona odświeży się automatycznie...",
    "statusDisabled": "wyłączone",
    "statusConnected": "podłączony",
    "statusRuntimeIssue": "problem z czasem wykonania",
    "statusAuthFailed": "autoryzacja nie powiodła się",
    "statusRateLimited": "stawka ograniczona",
    "statusNetworkIssue": "problem z siecią",
    "statusTestUnsupported": "test nieobsługiwany",
    "statusUnavailable": "niedostępne",
    "statusFailed": "nie powiodło się",
    "statusError": "błąd",
    "oauthAccount": "Konto OAuth",
    "errorTypeRuntime": "Lokalny czas wykonania",
    "errorTypeUpstreamAuth": "Autoryzacja nadrzędna",
    "errorTypeMissingCredential": "Brakujące poświadczenie",
    "errorTypeRefreshFailed": "Odświeżanie nie powiodło się",
    "errorTypeTokenExpired": "Token wygasł",
    "errorTypeRateLimited": "Cena ograniczona",
    "errorTypeUpstreamUnavailable": "Upstream niedostępny",
    "errorTypeNetworkError": "Błąd sieci",
    "errorTypeTestUnsupported": "Test nieobsługiwany",
    "errorTypeUpstreamError": "Błąd w górę",
    "proxySourceGlobal": "Globalny",
    "proxySourceProvider": "Dostawca",
    "proxySourceKey": "Klucz",
    "proxyConfiguredBySource": "Pełnomocnik ({source}): {host}",
    "autoPriority": "Automatycznie: {priority}",
    "proxy": "Pełnomocnik",
    "retestAuthentication": "Przetestuj ponownie uwierzytelnianie",
    "retest": "Przetestuj ponownie",
    "disableConnection": "Wyłącz połączenie",
    "enableConnection": "Włącz połączenie",
    "reauthenticateConnection": "Ponownie uwierzytelnij to połączenie",
    "proxyConfig": "Konfiguracja proxy",
    "aliasExistsAlert": "Alias „{alias}” już istnieje. Użyj innego modelu lub edytuj istniejący alias.",
    "openRouterAnyModelHint": "OpenRouter obsługuje każdy model. Dodawaj modele i twórz aliasy, aby uzyskać szybki dostęp.",
    "modelIdFromOpenRouter": "Identyfikator modelu (z OpenRouter)",
    "openRouterModelPlaceholder": "antropiczny/claude-3-opus",
    "customModels": "Modele niestandardowe",
    "customModelsHint": "Dodaj identyfikatory modeli, których nie ma na liście domyślnej. Będą one dostępne do routingu.",
    "modelId": "Identyfikator modelu",
    "customModelPlaceholder": "np. gpt-4.5-turbo",
    "loading": "Ładowanie...",
    "removeCustomModel": "Usuń model niestandardowy",
    "noCustomModels": "Nie dodano jeszcze żadnych modeli niestandardowych.",
    "allSuggestedAliasesExist": "Wszystkie sugerowane aliasy już istnieją. Wybierz inny model lub usuń sprzeczne aliasy.",
    "failedSaveCustomModel": "Nie udało się zapisać modelu niestandardowego",
    "modelAddedSuccess": "Model {modelId} został pomyślnie dodany",
    "failedAddModelTryAgain": "Nie udało się dodać modelu. Spróbuj ponownie.",
    "failedSaveImportedModel": "Nie udało się zapisać zaimportowanego modelu w niestandardowej bazie danych",
    "failedImportModelsTryAgain": "Nie udało się zaimportować modeli. Spróbuj ponownie.",
    "failedRemoveModelFromDatabase": "Nie udało się usunąć modelu z bazy danych",
    "modelRemovedSuccess": "Model został pomyślnie usunięty",
    "failedDeleteModelTryAgain": "Nie udało się usunąć modelu. Spróbuj ponownie.",
    "compatibleModelsDescription": "Dodaj ręcznie modele kompatybilne z {type} lub zaimportuj je z punktu końcowego /models.",
    "anthropicCompatibleModelPlaceholder": "klauzula-3-opus-20240229",
    "openaiCompatibleModelPlaceholder": "gpt-4o",
    "apiKeyValidationFailed": "Weryfikacja klucza API nie powiodła się. Sprawdź swój klucz i spróbuj ponownie.",
    "addProviderApiKeyTitle": "Dodaj klucz API {provider}",
    "checking": "Sprawdzam...",
    "check": "Sprawdź",
    "valid": "Ważne",
    "invalid": "Nieprawidłowe",
    "creating": "Tworzenie...",
    "validationChecksAnthropicCompatible": "Walidacja sprawdza {provider} poprzez weryfikację klucza API.",
    "validationChecksOpenAiCompatible": "Walidacja sprawdza {provider} poprzez /models na podstawowym adresie URL.",
    "priorityLabel": "Priorytet",
    "saving": "Zapisywanie...",
    "save": "Zapisz",
    "editConnection": "Edytuj połączenie",
    "accountName": "Nazwa konta",
    "email": "E-mail",
    "healthCheckMinutes": "Kontrola stanu (min)",
    "healthCheckHint": "Proaktywny interwał odświeżania tokenu. 0 = wyłączone.",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "Nie udało się przetestować połączenia",
    "failed": "Nie udało się",
    "leaveBlankKeepCurrentApiKey": "Pozostaw puste, aby zachować bieżący klucz API.",
    "editCompatibleTitle": "Edytuj {type} Kompatybilny",
    "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
    "apiKeyForCheck": "Klucz API (do sprawdzenia)",
    "compatibleProdPlaceholder": "{type} Kompatybilny (Prod)",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once",
    "advancedSettings": "Advanced Settings",
    "chatPathLabel": "Chat Endpoint Path",
    "chatPathPlaceholder": "/chat/completions",
    "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
    "modelsPathLabel": "Models Endpoint Path",
    "modelsPathPlaceholder": "/models",
    "modelsPathHint": "Custom models path for validation (e.g. /v4/models)"
  },
  "settings": {
    "title": "Ustawienia",
    "general": "Generał",
    "security": "Bezpieczeństwo",
    "appearance": "Wygląd",
    "routing": "Trasowanie",
    "cache": "Pamięć podręczna",
    "resilience": "Odporność",
    "systemPrompt": "Monit systemowy",
    "thinkingBudget": "Myślący budżet",
    "proxy": "Pełnomocnik",
    "pricing": "Ceny",
    "storage": "Przechowywanie",
    "policies": "Zasady",
    "ipFilter": "Filtr IP",
    "comboDefaults": "Domyślne ustawienia kombinacji",
    "fallbackChains": "Łańcuchy rezerwowe",
    "changePassword": "Zmień hasło",
    "enablePassword": "Włącz hasło",
    "darkMode": "Tryb ciemny",
    "lightMode": "Tryb światła",
    "systemTheme": "Temat systemu",
    "enableCache": "Włącz pamięć podręczną",
    "cacheTTL": "Pamięć podręczna TTL",
    "maxCacheSize": "Maksymalny rozmiar pamięci podręcznej",
    "clearCache": "Wyczyść pamięć podręczną",
    "cacheHits": "Trafienia w pamięci podręcznej",
    "cacheMisses": "Brak pamięci podręcznej",
    "hitRate": "Współczynnik trafień",
    "cacheEntries": "Wpisy w pamięci podręcznej",
    "circuitBreaker": "Wyłącznik automatyczny",
    "retryPolicy": "Zasady ponawiania prób",
    "maxRetries": "Maksymalna liczba ponownych prób",
    "retryDelay": "Opóźnienie ponownej próby",
    "timeoutMs": "Limit czasu (ms)",
    "enableSystemPrompt": "Włącz monit systemowy",
    "systemPromptText": "Tekst monitu systemowego",
    "enableThinking": "Włącz myślenie",
    "maxThinkingTokens": "Żetony Max Thinking",
    "enableProxy": "Włącz serwer proxy",
    "proxyUrl": "Adres URL serwera proxy",
    "pricingRates": "Format stawek cenowych",
    "currentPricing": "Aktualny przegląd cen",
    "loadingPricing": "Ładowanie danych cenowych...",
    "noPricing": "Brak danych o cenach",
    "input": "Wejście",
    "output": "Wyjście",
    "cached": "Buforowane",
    "reasoning": "Rozumowanie",
    "cacheCreation": "Tworzenie pamięci podręcznej",
    "customPricing": "Ceny niestandardowe",
    "databaseSize": "Rozmiar bazy danych",
    "backupDb": "Kopia zapasowa bazy danych",
    "restoreDb": "Przywróć bazę danych",
    "exportData": "Eksportuj dane",
    "importData": "Importuj dane",
    "clearData": "Wyczyść wszystkie dane",
    "clearDataConfirm": "Spowoduje to trwałe usunięcie wszystkich danych. Czy jesteś pewien?",
    "enableRequestLogs": "Włącz dzienniki żądań",
    "logRetention": "Przechowywanie dziennika",
    "ipWhitelist": "Biała lista adresów IP",
    "ipBlacklist": "Czarna lista adresów IP",
    "addIP": "Dodaj adres IP",
    "savedSuccessfully": "Ustawienia zostały zapisane pomyślnie",
    "ai": "sztuczna inteligencja",
    "advanced": "Zaawansowane",
    "localMode": "Tryb lokalny — wszystkie dane przechowywane na Twoim komputerze",
    "settingsSectionsAria": "Sekcje ustawień",
    "switchThemes": "Przełączaj między jasnymi i ciemnymi motywami",
    "themeSelectionAria": "Wybór tematu",
    "themeLight": "Światło",
    "themeDark": "Ciemny",
    "themeSystem": "Systemu",
    "hideHealthLogs": "Ukryj dzienniki kontroli stanu",
    "hideHealthLogsDesc": "Gdy opcja jest włączona, pomiń komunikaty [HealthCheck] w konsoli serwera",
    "themeAccent": "Kolor motywu",
    "themeAccentDesc": "Wybierz gotowy kolor lub utwórz własny motyw z jednego koloru",
    "themeCreate": "Utwórz motyw",
    "themeCustom": "Motyw niestandardowy",
    "themeBlue": "Niebieski",
    "themeRed": "Czerwony",
    "themeGreen": "Zielony",
    "themeViolet": "Fioletowy",
    "themeOrange": "Pomarańczowy",
    "themeCyan": "Cyjan",
    "promptCache": "Natychmiastowa pamięć podręczna",
    "flushCache": "Opróżnij pamięć podręczną",
    "flushing": "Płukanie…",
    "size": "Rozmiar",
    "hits": "Hity",
    "evictions": "Eksmisje",
    "loadingCacheStats": "Ładowanie statystyk pamięci podręcznej…",
    "globalProxy": "Globalny pełnomocnik",
    "globalProxyDesc": "Skonfiguruj globalny wychodzący serwer proxy dla wszystkich wywołań API. Poszczególni dostawcy, kombinacje i klucze mogą to zastąpić.",
    "noGlobalProxy": "Nie skonfigurowano globalnego serwera proxy",
    "globalLabel": "Globalny",
    "configure": "Skonfiguruj",
    "globalSystemPrompt": "Monit systemu globalnego",
    "systemPromptDesc": "Wstrzykiwany do wszystkich żądań na poziomie serwera proxy",
    "saved": "Zapisano",
    "systemPromptPlaceholder": "Wprowadź monit systemowy, aby wprowadzić do wszystkich żądań...",
    "systemPromptHint": "Ten monit jest dołączany do komunikatu systemowego każdego żądania. Używaj w przypadku instrukcji globalnych, wskazówek dotyczących bezpieczeństwa lub reguł formatowania odpowiedzi.",
    "chars": "{count} znaków",
    "thinkingBudgetTitle": "Myślący budżet",
    "thinkingBudgetDesc": "Kontroluj użycie tokenu wnioskowania AI we wszystkich żądaniach",
    "passthrough": "Przejście",
    "passthroughDesc": "Żadnych zmian – klient kontroluje myślenie o budżecie",
    "auto": "Automat",
    "autoDesc": "Pozbądź się całej konfiguracji myślenia — pozwól dostawcy zdecydować",
    "custom": "Niestandardowe",
    "customDesc": "Ustaw stały budżet tokenów dla wszystkich żądań",
    "adaptive": "Adaptacyjny",
    "adaptiveDesc": "Skaluj budżet w oparciu o złożoność żądania",
    "effortNone": "Brak (0 tokenów)",
    "effortLow": "Niski (1 tys. tokenów)",
    "effortMedium": "Średni (10 tys. tokenów)",
    "effortHigh": "Wysoki (128 tys. tokenów)",
    "tokenBudget": "Budżet tokenowy",
    "tokens": "żetony",
    "baseEffortLevel": "Podstawowy poziom wysiłku",
    "adaptiveHint": "Tryb adaptacyjny skaluje się od tego poziomu podstawowego w oparciu o liczbę komunikatów, użycie narzędzia i długość podpowiedzi.",
    "requireLogin": "Wymagaj logowania",
    "requireLoginDesc": "Po włączeniu pulpit nawigacyjny wymaga hasła. Gdy WYŁ., dostęp bez logowania.",
    "currentPassword": "Aktualne hasło",
    "enterCurrentPassword": "Wprowadź aktualne hasło",
    "newPassword": "Nowe hasło",
    "enterNewPassword": "Wprowadź nowe hasło",
    "confirmPassword": "Potwierdź nowe hasło",
    "confirmPasswordPlaceholder": "Potwierdź nowe hasło",
    "passwordsNoMatch": "Hasła nie pasują",
    "passwordUpdated": "Hasło zostało pomyślnie zaktualizowane",
    "failedUpdatePassword": "Nie udało się zaktualizować hasła",
    "errorOccurred": "Wystąpił błąd",
    "updatePassword": "Zaktualizuj hasło",
    "setPassword": "Ustaw hasło",
    "apiEndpointProtection": "Ochrona punktów końcowych API",
    "requireAuthModels": "Wymagaj klucza API dla /models",
    "requireAuthModelsDesc": "Po włączeniu punkt końcowy /v1/models zwraca 404 dla nieuwierzytelnionych żądań. Zapobiega odkrywaniu modelu przez nieautoryzowanych użytkowników.",
    "blockedProviders": "Zablokowani dostawcy",
    "blockedProvidersDesc": "Ukryj określonych dostawców w odpowiedzi /v1/models. Zablokowani dostawcy nie będą wyświetlani na listach modeli.",
    "providersBlocked": "{count} dostawcy zablokowani w /models",
    "blockProviderTitle": "Zablokuj {provider}",
    "unblockProviderTitle": "Odblokuj {provider}",
    "routingStrategy": "Strategia routingu",
    "fillFirst": "Najpierw wypełnij",
    "fillFirstDesc": "Korzystaj z kont w kolejności priorytetów",
    "roundRobin": "Okrągły Robin",
    "roundRobinDesc": "Przeglądaj wszystkie konta",
    "p2c": "P2C",
    "p2cDesc": "Wybierz 2 losowo i użyj zdrowszego",
    "random": "Losowe",
    "randomDesc": "Losowe konto na każde żądanie",
    "leastUsed": "Najrzadziej używany",
    "leastUsedDesc": "Wybierz ostatnio używane konto",
    "costOpt": "Opcja kosztowa",
    "costOptDesc": "Preferuj najtańsze dostępne konto",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "Lepki limit",
    "stickyLimitDesc": "Połączenia na konto przed zmianą",
    "modelAliases": "Aliasy modeli",
    "modelAliasesTitle": "Aliasy modeli",
    "modelAliasesDesc": "Wzorce wieloznaczne do zmiany nazw modeli • Użyj * i ?",
    "addCustomAlias": "Dodaj niestandardowy alias",
    "deprecatedModelId": "Przestarzały ID modelu",
    "newModelId": "Nowy ID modelu",
    "customAliases": "Niestandardowe aliasy",
    "builtInAliases": "Wbudowane aliasy",
    "backgroundDegradationTitle": "Degradacja zadań w tle",
    "backgroundDegradationDesc": "Automatycznie wykrywa zadania w tle (tytuły, streszczenia) i kieruje do tańszych modeli",
    "enableDegradation": "Włącz degradację zadań w tle",
    "enableDegradationHint": "Gdy włączone, zadania w tle, takie jak generowanie tytułów i podsumowań, są automatycznie kierowane do tańszych modeli",
    "tasksDetected": "Wykryte zadania",
    "degradationMap": "Mapa degradacji modeli",
    "premiumModel": "Model premium",
    "cheapModel": "Tani model",
    "detectionPatterns": "Wzorce wykrywania",
    "newPattern": "np. \"wygeneruj tytuł\"",
    "aliasPatternPlaceholder": "claude-sonnet-*",
    "aliasTargetPlaceholder": "claude-sonnet-4-20250514",
    "pattern": "Wzór",
    "targetModel": "Model docelowy",
    "add": "+ Dodaj",
    "session": "Sesja",
    "sessionDetailsAria": "Szczegóły sesji",
    "status": "Stan",
    "authenticated": "Uwierzytelnione",
    "guest": "Gość",
    "loginTime": "Czas logowania",
    "sessionAge": "Wiek sesji",
    "browser": "Przeglądarka",
    "clearLocalData": "Wyczyść dane lokalne",
    "logout": "Wyloguj się",
    "clearLocalDataConfirm": "Wyczyścić wszystkie dane lokalne? Spowoduje to zresetowanie Twoich preferencji.",
    "unknown": "Nieznany",
    "systemActor": "systemu",
    "ipAccessControl": "Kontrola dostępu IP",
    "ipAccessControlDesc": "Blokuj lub zezwalaj na określone adresy IP",
    "ipModeDisabled": "Niepełnosprawny",
    "ipModeBlacklist": "Czarna lista",
    "ipModeWhitelist": "Biała lista",
    "ipModeWhitelistPriority": "Priorytet WL",
    "addIpAddress": "Dodaj adres IP",
    "ipAddressPlaceholder": "192.168.1.0/24 lub 10.0.*.*",
    "block": "+ Blok",
    "allow": "+ Zezwól",
    "blocked": "Zablokowano ({count})",
    "allowed": "Dozwolone ({count})",
    "temporaryBans": "Tymczasowe bany ({count})",
    "minLeft": "Pozostało {min}m",
    "auditLog": "Dziennik audytu",
    "searchAuditLogs": "Przeszukaj dzienniki kontrolne...",
    "failedLoadAuditLog": "Nie udało się załadować dziennika kontroli",
    "noAuditEvents": "Nie znaleziono żadnych zdarzeń kontrolnych",
    "action": "Akcja",
    "actor": "Aktor",
    "details": "Szczegóły",
    "time": "Czas",
    "fallbackChainsTitle": "Łańcuchy rezerwowe",
    "fallbackChainsDesc": "Zdefiniuj kolejność zastępczą dostawcy dla każdego modelu",
    "addChain": "+ Dodaj łańcuch",
    "modelName": "Nazwa modelu",
    "modelNamePlaceholder": "claude-sonnet-4-20250514",
    "providersCommaSeparated": "Dostawcy (oddzieleni przecinkami, w kolejności priorytetów)",
    "providersCommaSeparatedPlaceholder": "antropiczny, openai, bliźnięta",
    "createChain": "Utwórz łańcuch",
    "noFallbackChains": "Żadnych łańcuchów awaryjnych",
    "noFallbackChainsDesc": "Utwórz łańcuch, aby zdefiniować kolejność zastępczą dostawcy dla modelu.",
    "loadingFallbackChains": "Ładuję łańcuchy zastępcze...",
    "deleteChainConfirm": "Usunąć łańcuch zastępczy dla „{model}”?",
    "chainCreated": "Łańcuch stworzony dla {model}",
    "chainDeleted": "Łańcuch usunięty dla {model}",
    "failedCreateChain": "Nie udało się utworzyć łańcucha",
    "failedDeleteChain": "Nie udało się usunąć łańcucha",
    "deleteChain": "Usuń łańcuch",
    "fillModelAndProviders": "Podaj nazwę modelu i dostawców",
    "addAtLeastOneProvider": "Dodaj co najmniej jednego dostawcę",
    "comboDefaultsTitle": "Domyślne ustawienia kombinacji",
    "globalComboConfig": "Globalna konfiguracja combo",
    "defaultStrategy": "Domyślna strategia",
    "defaultStrategyDesc": "Stosowane do nowych kombinacji bez wyraźnej strategii",
    "comboStrategyAria": "Strategia kombinacji",
    "priority": "Priorytet",
    "weighted": "Ważona",
    "maxRetriesLabel": "Maksymalna liczba ponownych prób",
    "retryDelayLabel": "Opóźnienie ponownej próby (ms)",
    "timeoutLabel": "Limit czasu (ms)",
    "healthCheck": "Kontrola stanu zdrowia",
    "healthCheckDesc": "Wstępnie sprawdź dostępność dostawcy",
    "trackMetrics": "Śledź metryki",
    "trackMetricsDesc": "Rejestruj metryki żądań kombinacji",
    "providerOverrides": "Zastąpienia dostawcy",
    "providerOverridesDesc": "Zastąp limit czasu i liczbę ponownych prób na dostawcę. Ustawienia dostawcy zastępują globalne ustawienia domyślne.",
    "providerMaxRetriesAria": "{provider} maksymalna liczba ponownych prób",
    "providerTimeoutAria": "{provider} przekroczenie limitu czasu ms",
    "removeProviderOverrideAria": "Usuń zastąpienie {provider}",
    "newProviderNamePlaceholder": "np. google, otwórz...",
    "newProviderNameAria": "Nowa nazwa dostawcy",
    "retries": "ponawia próby",
    "ms": "pani",
    "saveComboDefaults": "Zapisz domyślne ustawienia kombinacji",
    "maxNestingDepth": "Maksymalna głębokość zagnieżdżenia",
    "concurrencyPerModel": "Współbieżność/model",
    "queueTimeout": "Limit czasu kolejki (ms)",
    "providerProfiles": "Profile dostawców",
    "providerProfilesDesc": "Oddzielne ustawienia odporności dla dostawców OAuth (opartych na sesji) i kluczy API (mierzonych). Dostawcy protokołu OAuth mają bardziej rygorystyczne progi ze względu na niższe limity stawek.",
    "oauthProviders": "Dostawcy protokołu OAuth",
    "apiKeyProviders": "Dostawcy kluczy API",
    "transientCooldown": "Przejściowe odnowienie",
    "rateLimitCooldown": "Czas odnowienia limitu szybkości",
    "maxBackoffLevel": "Maksymalny poziom wycofania",
    "cbThreshold": "Próg CB",
    "cbResetTime": "Czas resetowania CB",
    "rateLimiting": "Ograniczanie szybkości",
    "rateLimitingDesc": "Dostawcy kluczy API mają automatycznie ograniczone stawki z bezpiecznymi ustawieniami domyślnymi. Limity są pobierane z nagłówków odpowiedzi i dostosowują się z czasem.",
    "defaultSafetyNet": "Domyślna siatka bezpieczeństwa",
    "rpm": "obr./min",
    "minGap": "Minimalna przerwa",
    "maxConcurrent": "Maksymalna liczba współbieżnych",
    "activeLimiters": "Aktywne ograniczniki",
    "noActiveLimiters": "Nie ma jeszcze aktywnych ograniczników szybkości.",
    "reservoir": "Zbiornik",
    "running": "Bieganie",
    "queued": "W kolejce",
    "circuitBreakers": "Wyłączniki automatyczne",
    "breakerStateClosed": "Zamknięte",
    "breakerStateOpen": "Otwórz",
    "breakerStateHalfOpen": "Półotwarte",
    "tripped": "{count} potknął się",
    "healthy": "{count} zdrowy",
    "resetAll": "Zresetuj wszystko",
    "noCircuitBreakers": "Żadne wyłączniki automatyczne nie są jeszcze aktywne. Są tworzone automatycznie, gdy żądania przepływają przez potok kombi.",
    "failures": "{count} awarie",
    "policiesLocked": "Zasady i zablokowane identyfikatory",
    "allOperational": "Wszystkie systemy działają — brak blokad i zadziałań wyłączników",
    "loadingPolicies": "Ładowanie zasad...",
    "lockedIdentifiers": "Zablokowane identyfikatory",
    "unlockedIdentifier": "Odblokowano: {identifier}",
    "sinceDate": "od {date}",
    "forceUnlock": "Wymuś odblokowanie",
    "unlocking": "Odblokowywanie...",
    "failedUnlock": "Nie udało się odblokować",
    "failedLoadWithStatus": "Nie udało się załadować: {status}",
    "failedLoadResilience": "Nie udało się wczytać stanu odporności",
    "saveFailed": "Zapisywanie nie powiodło się",
    "resetFailed": "Resetowanie nie powiodło się",
    "loadingResilience": "Ładowanie stanu odporności...",
    "retry": "Spróbuj ponownie",
    "systemStorage": "System i pamięć masowa",
    "allDataLocal": "Wszystkie dane przechowywane lokalnie na Twoim komputerze",
    "databasePath": "Ścieżka bazy danych",
    "exportDatabase": "Eksportuj bazę danych",
    "exportAll": "Eksportuj wszystko (.tar.gz)",
    "importDatabase": "Importuj bazę danych",
    "confirmDbImport": "Potwierdź import bazy danych",
    "confirmDbImportDesc": "Spowoduje to zastąpienie wszystkich bieżących danych treścią z {file}. Kopia zapasowa zostanie utworzona automatycznie przed importem.",
    "yesImport": "Tak, importuj",
    "lastBackup": "Ostatnia kopia zapasowa",
    "noBackupYet": "Nie ma jeszcze kopii zapasowej",
    "backupNow": "Utwórz kopię zapasową teraz",
    "backupRestore": "Kopia zapasowa i przywracanie",
    "viewBackups": "Zobacz kopie zapasowe",
    "hide": "Ukryj",
    "backupRetentionDesc": "Migawki bazy danych są tworzone automatycznie przed przywróceniem i co 15 minut w przypadku zmiany danych. Przechowywanie: 24 godziny na dobę + 30 codziennych kopii zapasowych z inteligentną rotacją.",
    "loadingBackups": "Ładowanie kopii zapasowych...",
    "noBackupsYet": "Nie są jeszcze dostępne żadne kopie zapasowe. Kopie zapasowe zostaną utworzone automatycznie w przypadku zmiany danych.",
    "backupsAvailable": "Dostępne są {count} kopie zapasowe",
    "refresh": "Odśwież",
    "confirm": "Potwierdzić?",
    "yes": "Tak",
    "no": "Nie",
    "restore": "Przywróć",
    "invalidFileType": "Nieprawidłowy typ pliku. Akceptowane są tylko pliki .sqlite.",
    "exportFailed": "Eksport nie powiódł się",
    "exportFailedWithError": "Eksport nie powiódł się: {error}",
    "fullExportFailedWithError": "Pełny eksport nie powiódł się: {error}",
    "backupCreated": "Utworzono kopię zapasową: {file}",
    "restoreSuccess": "Przywrócony! {connections} połączenia, {nodes} węzły, {combos} kombinacje, {apiKeys} klucze API.",
    "importSuccess": "Baza danych zaimportowana! {connections} połączenia, {nodes} węzły, {combos} kombinacje, {apiKeys} klucze API.",
    "justNow": "właśnie teraz",
    "minutesAgo": "{count}m temu",
    "hoursAgo": "{count}h temu",
    "daysAgo": "{count}d temu",
    "backupReasonManual": "instrukcja",
    "backupReasonPreRestore": "wstępne przywrócenie",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "Żadnych zmian od ostatniej kopii zapasowej",
    "backupFailed": "Tworzenie kopii zapasowej nie powiodło się",
    "restoreFailed": "Przywracanie nie powiodło się",
    "importFailed": "Import nie powiódł się",
    "errorDuringRestore": "Podczas przywracania wystąpił błąd",
    "errorDuringImport": "Wystąpił błąd podczas importu",
    "modelPricing": "Ceny modeli",
    "modelPricingDesc": "Konfiguruj stawki kosztów dla każdego modelu • Wszystkie stawki w tokenach $/1M",
    "providers": "Dostawcy",
    "registry": "Rejestr",
    "priced": "Wyceniony",
    "searchProvidersModels": "Wyszukaj dostawców lub modele...",
    "showAll": "Pokaż wszystko",
    "noProvidersMatch": "Żaden dostawca nie pasuje do Twojego wyszukiwania.",
    "howPricingWorks": "Jak działa cena",
    "cacheWrite": "Zapis w pamięci podręcznej",
    "unsaved": "niezapisany",
    "resetDefaults": "Zresetuj ustawienia domyślne",
    "saveProvider": "Zapisz dostawcę",
    "saving": "Zapisywanie...",
    "model": "Modelka",
    "models": "modele",
    "moreProviders": "{count} więcej dostawców",
    "withPricing": "ze skonfigurowaną ceną",
    "policiesCircuitBreakers": "Zasady i wyłączniki automatyczne",
    "activeIssuesDetected": "Wykryto aktywne problemy",
    "off": "Wyłączone",
    "resetPricingConfirm": "Zresetować wszystkie ceny {provider} do wartości domyślnych?",
    "pricingDescInput": "Wejście: tokeny wysłane do modelu",
    "pricingDescOutput": "Dane wyjściowe: wygenerowano tokeny",
    "pricingDescCached": "Buforowane: ponownie wykorzystane dane wejściowe (~50% szybkości wprowadzania)",
    "pricingDescReasoning": "Rozumowanie: żetony myślenia (wraca do Wyjścia)",
    "pricingDescCacheWrite": "Zapis w pamięci podręcznej: tworzenie wpisów w pamięci podręcznej (powraca do opcji Wejście)",
    "pricingDescFormula": "Koszt = (wejście × współczynnik_wejściowy) + (wyjście × współczynnik_wyjściowy) + (pamięć podręczna × szybkość_pamięci) na milion tokenów.",
    "pricingSettingsTitle": "Ustawienia cenowe",
    "totalModels": "Wszystkie modele",
    "active": "Aktywny",
    "costCalculation": "Kalkulacja kosztów",
    "costCalculationDesc": "Koszty są obliczane na podstawie użycia tokena i stawek cenowych skonfigurowanych dla każdego modelu.",
    "pricingFormat": "Formularz cenowy",
    "pricingFormatDesc": "Wszystkie stawki podane są w tokenach $/1 milion (dolary na milion tokenów).",
    "tokenTypes": "Typy tokenów",
    "inputTokenDesc": "Standardowe tokeny zachęty",
    "outputTokenDesc": "Żetony ukończenia/odpowiedzi",
    "cachedTokenDesc": "Tokeny wejściowe w pamięci podręcznej (zwykle 50% szybkości wprowadzania)",
    "reasoningTokenDesc": "Specjalne żetony rozumowania/myślenia (awaryjne tempo produkcji)",
    "cacheCreationTokenDesc": "Tokeny używane do tworzenia wpisów w pamięci podręcznej (powrót do szybkości wprowadzania)",
    "customPricingNote": "Możesz zastąpić domyślne ceny dla określonych modeli. Zastąpienia niestandardowe mają pierwszeństwo przed automatycznie wykrytymi cenami.",
    "editPricing": "Edytuj ceny",
    "viewFullDetails": "Zobacz pełne szczegóły",
    "themeCoral": "Koral",
    "cliFingerprint": "CLI Fingerprint Matching",
    "cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
    "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
    "enableFingerprintTitle": "Enable fingerprint for {provider}",
    "disableFingerprintTitle": "Disable fingerprint for {provider}"
  },
  "translator": {
    "title": "Tłumacz",
    "metaTitle": "Plac zabaw dla tłumaczy | OmniRoute",
    "metaDescription": "Debuguj, testuj i wizualizuj tłumaczenia formatów API między dostawcami",
    "playgroundTitle": "Plac zabaw dla tłumaczy",
    "playground": "Plac zabaw",
    "realtime": "Działalność tłumaczeniowa w czasie rzeczywistym",
    "chatTester": "Tester czatu",
    "testBench": "Stanowisko testowe",
    "liveMonitor": "Monitor na żywo",
    "modeDescriptionPlayground": "Wklej treść żądania API i zobacz, jak OmniRoute tłumaczy ją pomiędzy formatami dostawców (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "Wysyłaj prawdziwe prośby o czat za pośrednictwem OmniRoute i sprawdzaj cały proces w obie strony: dane wejściowe, przetłumaczone żądanie, odpowiedź dostawcy i przetłumaczone dane wyjściowe.",
    "modeDescriptionTestBench": "Uruchamiaj predefiniowane scenariusze i porównuj kompatybilność między dostawcami i modelami.",
    "modeDescriptionLiveMonitor": "Oglądaj wydarzenia związane z tłumaczeniami w czasie rzeczywistym, gdy żądania przepływają przez OmniRoute.",
    "modeDescriptionFallback": "Debuguj, testuj i wizualizuj, jak OmniRoute tłumaczy żądania API między dostawcami.",
    "recentTranslations": "Najnowsze tłumaczenia",
    "noTranslations": "Nie ma jeszcze żadnych tłumaczeń",
    "source": "Źródło",
    "target": "Cel",
    "time": "Czas",
    "model": "Modelka",
    "status": "Stan",
    "latency": "Opóźnienie",
    "totalTranslations": "Całkowita liczba tłumaczeń",
    "successful": "Pomyślne",
    "errors": "Błędy",
    "avgLatency": "Średnie opóźnienie",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "Na żywo — automatyczne odświeżanie",
    "paused": "Wstrzymano",
    "eventsAppearHint": "Zdarzenia związane z tłumaczeniem pojawiają się tutaj, gdy żądania przepływają przez OmniRoute. Aby wygenerować zdarzenia, użyj dowolnej z poniższych metod:",
    "chatTesterTab": "Zakładka Tester czatu",
    "testBenchTab": "Zakładka Stanowisko testowe",
    "externalApiCalls": "Zewnętrzne wywołania API",
    "ideCliIntegrations": "Integracje IDE/CLI",
    "inMemoryNote": "Uwaga: Zdarzenia są przechowywane w pamięci i resetowane po ponownym uruchomieniu serwera.",
    "ok": "OK",
    "errorShort": "BŁĄD",
    "formatConverter": "Konwerter formatów",
    "formatConverterDescription": "Wklej lub wpisz treść żądania JSON. Tłumacz automatycznie wykryje format źródłowy i przekonwertuje go na format docelowy. Użyj tego, aby debugować sposób, w jaki OmniRoute tłumaczy żądania między formatami (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
    "input": "Wejście",
    "output": "Wyjście",
    "auto": "Automat",
    "swapFormats": "Zamień formaty",
    "translateAction": "Przetłumacz",
    "clear": "Jasne",
    "inputPlaceholder": "Wklej tutaj treść żądania lub wybierz szablon poniżej...",
    "exampleTemplates": "Przykładowe szablony",
    "exampleTemplatesHint": "— Kliknij, aby załadować",
    "templateLoadHint": "Szablon ładuje żądanie w formacie {format}. Zmień format źródłowy, aby załadować w innym formacie.",
    "compatibilityTester": "Tester kompatybilności",
    "compatibilityReport": "Raport zgodności",
    "testBenchDescription": "Uruchamiaj predefiniowane scenariusze (prosty czat, wywoływanie narzędzi itp.), aby zweryfikować tłumaczenie i zgodność dostawcy. Wybierz format źródłowy i dostawcę docelowego, a następnie uruchom wszystkie testy, aby sprawdzić procent zgodności. Użyj tego, aby dowiedzieć się, które funkcje działają u różnych dostawców.",
    "targetProvider": "Dostawca docelowy",
    "runAllTests": "Uruchom wszystkie testy",
    "runTest": "Uruchom test",
    "reRun": "Uruchom ponownie",
    "running": "Bieganie...",
    "passed": "minęło",
    "failed": "nie powiodło się",
    "passedIconLabel": "✅ Zdane",
    "chunks": "kawałki",
    "scenarioSimpleChat": "Prosty czat",
    "scenarioToolCalling": "Wywołanie narzędzia",
    "scenarioMultiTurn": "Wieloobrotowy",
    "scenarioThinking": "Myślenie",
    "scenarioSystemPrompt": "Monit systemowy",
    "scenarioStreaming": "Transmisja strumieniowa",
    "templateNames": {
      "simple-chat": "Prosty czat",
      "tool-calling": "Wywołanie narzędzia",
      "multi-turn": "Wieloobrotowy",
      "thinking": "Myślenie",
      "system-prompt": "Monit systemowy",
      "streaming": "Transmisja strumieniowa"
    },
    "templateDescriptions": {
      "simple-chat": "Podstawowy SMS",
      "tool-calling": "Wywołanie funkcji/narzędzia",
      "multi-turn": "Rozmowa z historią",
      "thinking": "Rozszerzone myślenie/rozumowanie",
      "system-prompt": "Złożone instrukcje systemowe",
      "streaming": "Żądanie przesyłania strumieniowego SSE"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "Jesteś pomocnym asystentem.",
        "userGreeting": "Witam! Jak się dzisiaj masz?"
      },
      "toolCalling": {
        "userWeather": "Jaka jest pogoda w São Paulo?",
        "toolDescription": "Uzyskaj aktualną pogodę dla danej lokalizacji",
        "cityNameDescription": "Nazwa miasta"
      },
      "multiTurn": {
        "system": "Jesteś asystentem kodowania.",
        "userInitial": "Napisz funkcję sortującą tablicę w Pythonie.",
        "assistantExample": "Oto prosta funkcja sortowania:\n\n```pyton\ndef sort_array(arr):\n    zwróć posortowane (arr)\n```",
        "userFollowUp": "Teraz posortuj w kolejności malejącej."
      },
      "thinking": {
        "question": "Jaka jest suma pierwszych 100 liczb pierwszych?"
      },
      "systemPrompt": {
        "systemInstruction": "Jesteś starszym inżynierem oprogramowania specjalizującym się w systemach rozproszonych. Odpowiadaj na pytania zwięźle, korzystając z najlepszych praktyk branżowych. W stosownych przypadkach zawsze podawaj przykłady kodu. Sformatuj swoje odpowiedzi, korzystając z przecen.",
        "question": "Jak zaimplementować wzór wyłącznika?"
      },
      "streaming": {
        "prompt": "Opowiedz mi krótką historię o robocie uczącym się malować."
      }
    },
    "openaiCompatibleLabel": "Kompatybilny z OpenAI",
    "anthropicCompatibleLabel": "Kompatybilny z antropią",
    "noTemplateForFormat": "Brak szablonu dla tego formatu",
    "translationFailed": "Tłumaczenie nie powiodło się: {error}",
    "pipelineDebugger": "Debuger potoku",
    "translationPipeline": "Potok tłumaczeń",
    "pipelineVisualization": "Wizualizacja rurociągu",
    "pipelineVisualizationHint": "Wyślij wiadomość, aby zobaczyć, jak Twoje żądanie przechodzi przez wykrywanie → tłumaczenie → połączenie z dostawcą.",
    "chatTesterDescription": "Wysyłaj wiadomości w określonym formacie klienta i sprawdzaj każdy etap procesu tłumaczenia.",
    "chatTesterFlow": "Żądanie klienta → Wykrywanie formatu → Średniozaawansowany OpenAI → Format dostawcy → Odpowiedź",
    "clickStepToInspect": "Kliknij dowolny krok, aby sprawdzić dane na tym etapie.",
    "clientFormat": "Format klienta",
    "provider": "Dostawca",
    "modelPlaceholder": "Wybierz lub wpisz nazwę modelu...",
    "sendMessageToSeePipeline": "Wyślij wiadomość, aby zobaczyć proces tłumaczenia",
    "chatMessageHintPrefix": "Twoja wiadomość zostanie sformatowana jako",
    "chatMessageHintSuffix": "żądanie, przetłumaczone w potoku i wysłane do wybranego dostawcy.",
    "youWithFormat": "Ty ({format})",
    "assistant": "Asystent",
    "typeMessage": "Wpisz wiadomość...",
    "send": "Wyślij",
    "clientRequest": "Żądanie klienta",
    "clientRequestDescription": "Treść żądania, jaką wysłałby Twój klient",
    "formatDetected": "Wykryto format",
    "formatDetectedDescription": "OmniRoute automatycznie wykrywa format API na podstawie struktury żądania",
    "openaiIntermediate": "Średniozaawansowany OpenAI",
    "openaiIntermediateDescription": "Wszystkie formaty są najpierw normalizowane do formatu OpenAI (uniwersalny most)",
    "providerFormat": "Format dostawcy",
    "providerFormatDescription": "Format OpenAI jest tłumaczony na natywny format dostawcy",
    "providerResponse": "Odpowiedź dostawcy",
    "providerResponseRawDescription": "Surowa odpowiedź z interfejsu API dostawcy",
    "providerResponseSseDescription": "Surowy strumień SSE z interfejsu API dostawcy",
    "unexpectedError": "Wystąpił nieoczekiwany błąd",
    "error": "Błąd",
    "errorMessage": "Błąd: {message}",
    "requestFailed": "Żądanie nie powiodło się",
    "noTextExtracted": "(Nie wyodrębniono tekstu)",
    "liveMonitorDescriptionPrefix": "Pokazuje zdarzenia związane z tłumaczeniem podczas przepływu wywołań API przez OmniRoute. Zdarzenia pochodzą z bufora w pamięci (resetują się przy ponownym uruchomieniu). Użyj",
    "liveMonitorDescriptionSuffix": "lub zewnętrzne wywołania API w celu wygenerowania zdarzeń."
  },
  "usage": {
    "title": "Użycie",
    "loggerTab": "Rejestrator",
    "proxyTab": "Pełnomocnik",
    "budgetManagement": "Zarządzanie budżetem",
    "budgetSaved": "Limity budżetu zostały zapisane",
    "budgetSaveFailed": "Nie udało się zapisać budżetu",
    "loadingBudgetData": "Ładowanie danych budżetu...",
    "noApiKeysTitle": "Brak kluczy API",
    "noApiKeysDescription": "Najpierw dodaj klucze API, aby skonfigurować limity budżetu.",
    "apiKey": "Klucz API",
    "todaysSpend": "Dzisiejsze wydatki",
    "thisMonth": "W tym miesiącu",
    "setLimits": "Ustaw limity",
    "dailyLimitUsd": "Limit dzienny (USD)",
    "monthlyLimitUsd": "Limit miesięczny (USD)",
    "warningThresholdPercent": "Próg ostrzegawczy (%)",
    "dailyLimitPlaceholder": "np. 5.00",
    "monthlyLimitPlaceholder": "np. 50,00",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "Zapisz limity",
    "budgetOk": "Budżet OK — pozostało {remaining}",
    "budgetExceeded": "Przekroczono budżet — żądania mogą zostać zablokowane",
    "totalRequests": "Łączna liczba żądań",
    "noDataYet": "Brak danych",
    "latency": "Opóźnienie",
    "latencyP50": "p50",
    "latencyP95": "s. 95",
    "latencyP99": "str. 99",
    "promptCache": "Natychmiastowa pamięć podręczna",
    "systemHealth": "Stan systemu",
    "entries": "Wpisy",
    "activeCount": "{count} aktywny",
    "openCircuitBreakersDetected": "Wykryto otwarte wyłączniki automatyczne",
    "hitRate": "Współczynnik trafień",
    "hitsMisses": "Trafienia/chybienia",
    "circuitBreakers": "Wyłączniki automatyczne",
    "lockedIPs": "Zablokowane adresy IP",
    "lockoutsAutoRefreshHint": "Blokady limitów prędkości dla poszczególnych modeli • Automatyczne odświeżanie 10 s",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "Pozostało {time}",
    "howItWorks": "Jak to działa",
    "howItWorksSubtitle": "Dowiedz się, jak oceny weryfikują Twoje odpowiedzi LLM",
    "define": "Zdefiniuj",
    "defineStepDescription": "Twórz przypadki testowe z podpowiedziami wejściowymi i oczekiwanymi kryteriami wyjściowymi, korzystając ze strategii takich jak zawiera, wyrażenie regularne lub dopasowanie dokładne.",
    "run": "Biegnij",
    "runStepDescription": "Wykonuj przypadki testowe na punktach końcowych LLM za pośrednictwem OmniRoute. Każdy przypadek wysyłany jest jako prawdziwe żądanie API.",
    "evaluate": "Oceń",
    "evaluateStepDescription": "Odpowiedzi porównuje się z oczekiwanymi kryteriami. Zobacz wynik pozytywny/nieudany dla każdego przypadku ze wskaźnikami opóźnień i szczegółowymi informacjami zwrotnymi.",
    "evalSuites": "Zestawy ewaluacyjne",
    "evalSuitesHint": "Kliknij zestaw, aby wyświetlić przypadki testowe, a następnie uruchom, aby ocenić punkty końcowe LLM",
    "evalsLoading": "Ładowanie pakietów eval...",
    "noEvalSuitesFound": "Nie znaleziono apartamentów Eval",
    "noEvalSuitesDescription": "Zestawy Eval można definiować za pomocą interfejsu API lub w kodzie. Testują wyniki modelu pod kątem oczekiwanych wyników, korzystając ze strategii takich jak zawiera, wyrażenie regularne, dopasowanie dokładne i funkcje niestandardowe.",
    "columnCase": "Sprawa",
    "columnStatus": "Stan",
    "columnLatency": "Opóźnienie",
    "columnDetails": "Szczegóły",
    "columnModel": "Modelka",
    "columnStrategy": "Strategia",
    "columnExpected": "Oczekiwane",
    "statsSuites": "Apartamenty",
    "statsTestCases": "Przypadki testowe",
    "statsModels": "Modele",
    "statsCoverage": "Zasięg",
    "statsStrategiesCount": "{count} strategie",
    "evaluationStrategies": "Strategie ewaluacji",
    "modelsUnderTest": "Modele w fazie testów",
    "searchSuitesPlaceholder": "Wyszukaj apartamenty...",
    "passSuffix": "przejść",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "Uruchom Eval",
    "runningProgress": "Uruchamiam {current}/{total}...",
    "passRate": "wskaźnik zdawalności",
    "summaryBreakdown": "{passed} zaliczony · {failed} nieudany · {total} łącznie",
    "passedIconLabel": "✅ Zdane",
    "failedIconLabel": "❌ Nie udało się",
    "detailsContains": "Zawiera: „{term}”",
    "detailsRegex": "Wyrażenie regularne: {pattern}",
    "detailsExpected": "Oczekiwano: „{expected}”",
    "noResultsYet": "Jeszcze żadnych wyników",
    "testCasesCount": "Przypadki testowe ({count})",
    "noTestCasesDefined": "Nie zdefiniowano przypadków testowych",
    "runEvalHint": "Kliknij „Uruchom ocenę”, aby wykonać wszystkie przypadki w punkcie końcowym LLM. Każdy test wysyła prawdziwe żądanie poprzez OmniRoute.",
    "notifyNoTestCases": "Dla tego pakietu nie zdefiniowano żadnych przypadków testowych",
    "notifyAllCasesPassed": "Wszystkie {total} sprawy zaliczone ✅",
    "notifySomeCasesFailed": "{passed}/{total} zaliczone, {failed} nie powiodło się",
    "notifyEvalRunFailed": "Próba ewaluacyjna nie powiodła się",
    "notifyEvalTitle": "Wartość: {name}",
    "modelEvals": "Oceny modeli",
    "evalsHeroDescription": "Przetestuj i zweryfikuj punkty końcowe LLM, uruchamiając predefiniowane zestawy ewaluacyjne. Każdy pakiet zawiera przypadki testowe, które wysyłają rzeczywiste podpowiedzi za pośrednictwem OmniRoute i porównują odpowiedzi z oczekiwanymi kryteriami — pomagając wykrywać regresje, porównywać modele i zapewniać jakość odpowiedzi u różnych dostawców.",
    "qualityValidation": "Walidacja jakości",
    "modelComparison": "Porównanie modeli",
    "regressionDetection": "Wykrywanie regresji",
    "latencyBenchmarks": "Testy porównawcze opóźnień",
    "modelLockouts": "Blokady modeli",
    "noLockouts": "Żaden model nie jest obecnie zablokowany",
    "activeSessions": "Aktywne sesje",
    "noSessions": "Brak aktywnych sesji",
    "sessionsHint": "Sesje pojawiają się, gdy żądania przepływają przez serwer proxy",
    "sessionsTrackedHint": "Śledzone poprzez odcisk palca na żądanie • Automatyczne odświeżanie 5 s",
    "session": "Sesja",
    "age": "Wiek",
    "requests": "Żądania",
    "connection": "Połączenie",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}s",
    "durationMinutesShort": "{value}m",
    "durationHoursShort": "{value}h",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "Limity dostawcy",
    "noProviders": "Brak podłączonych dostawców",
    "connectProvidersForQuota": "Połącz się z dostawcami za pomocą protokołu OAuth, aby śledzić limity przydziału interfejsu API i wykorzystanie.",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "(odfiltrowano z {count})",
    "autoRefresh": "Automatyczne odświeżanie",
    "refreshAll": "Odśwież wszystko",
    "loadingQuotas": "Ładowanie...",
    "account": "Konto",
    "modelQuotas": "Kwoty modelowe",
    "lastUsed": "Ostatnio używany",
    "actions": "Działania",
    "refreshQuota": "Odśwież limit",
    "today": "Dzisiaj",
    "tomorrow": "Jutro",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "w {duration}",
    "notApplicable": "Nie dotyczy",
    "rawPlanWithValue": "Surowy plan: {plan}",
    "noPlanFromProvider": "Brak planu od dostawcy",
    "noQuotaData": "Brak danych dotyczących kwot",
    "ungrouped": "Ungrouped",
    "viewFlat": "Flat",
    "viewByEnvironment": "By Environment",
    "noQuotaDataAvailable": "Brak dostępnych danych dotyczących kwot",
    "noAccountsForTierFilter": "Nie znaleziono kont dla filtra poziomów",
    "tierAll": "Wszystko",
    "tierEnterprise": "Przedsiębiorstwo",
    "tierTeam": "Zespół",
    "tierBusiness": "Biznes",
    "tierUltra": "Ultra",
    "tierPro": "Zawodowiec",
    "tierPlus": "Dodatkowo",
    "tierFree": "Bezpłatny",
    "tierUnknown": "Nieznany"
  },
  "modals": {
    "waitingAuth": "Oczekiwanie na autoryzację",
    "verificationUrl": "Adres URL weryfikacji",
    "yourCode": "Twój kod",
    "remoteAccess": "Zdalny dostęp:",
    "connectedSuccess": "Połączono pomyślnie!",
    "connectionFailed": "Połączenie nie powiodło się",
    "chooseAuthMethod": "Wybierz metodę uwierzytelniania:",
    "awsBuilderId": "Identyfikator konstruktora AWS",
    "awsIamIdentity": "Centrum tożsamości AWS IAM",
    "googleAccount": "Konto Google",
    "githubAccount": "Konto GitHuba",
    "importToken": "Importuj token",
    "pasteToken": "Wklej token odświeżania z Kiro IDE.",
    "awsRegion": "Regionu AWS",
    "autoDetecting": "Automatyczne wykrywanie tokenów...",
    "readingFromCache": "Odczyt z pamięci podręcznej AWS SSO",
    "readingFromCursor": "Odczyt z bazy danych Cursor IDE",
    "initializing": "Inicjowanie...",
    "pricingConfig": "Konfiguracja cen",
    "loadingPricing": "Ładowanie danych cenowych...",
    "pricingRatesFormat": "Format stawek cenowych",
    "noPricingData": "Brak danych o cenach",
    "noModelsFound": "Nie znaleziono żadnych modeli"
  },
  "loggers": {
    "allProviders": "Wszyscy dostawcy",
    "allModels": "Wszystkie modele",
    "allAccounts": "Wszystkie konta",
    "allApiKeys": "Wszystkie klucze API",
    "allTypes": "Wszystkie typy",
    "allLevels": "Wszystkie poziomy",
    "modelAZ": "Model A-Z",
    "modelZA": "Model Z-A",
    "loadingLogs": "Ładowanie dzienników...",
    "loadingProxyLogs": "Ładowanie dzienników proxy...",
    "noLogEntries": "Nie znaleziono wpisów w dzienniku",
    "noPayloadData": "Brak danych ładunku dla tego wpisu dziennika.",
    "proxyEvent": "Wydarzenie proxy",
    "proxy": "Pełnomocnik",
    "level": "Poziom",
    "directNative": "Bezpośrednie (natywne)",
    "combo": "Kombinacja",
    "inputTokens": "ja:",
    "outputTokens": "O:"
  },
  "stats": {
    "usageOverview": "Przegląd użycia",
    "outputTokens": "Tokeny wyjściowe",
    "totalCost": "Całkowity koszt",
    "usageByModel": "Użycie według modelu",
    "usageByAccount": "Użycie według konta",
    "failedToLoad": "Nie udało się załadować statystyk użytkowania.",
    "tokenHealth": "Tokenowe zdrowie",
    "totalOAuth": "Całkowite uwierzytelnienie OAuth",
    "healthy": "Zdrowy",
    "warning": "Ostrzeżenie",
    "errored": "Błąd",
    "lastCheck": "Ostatnia kontrola",
    "noData": "Brak danych",
    "share": "Udostępnij",
    "unableToLoad": "Nie można załadować wskaźników systemowych",
    "product": "Produkt",
    "resources": "Zasoby",
    "company": "Firma"
  },
  "auth": {
    "welcome": "Witamy",
    "signIn": "Zaloguj się",
    "enterPassword": "Wprowadź hasło, aby kontynuować",
    "password": "Hasło",
    "unifiedProxy": "Ujednolicony serwer proxy API AI",
    "unifiedAiApiProxy": "Ujednolicony serwer proxy API AI",
    "unifiedAiApiProxyDesc": "Kieruj żądania do wielu dostawców AI za pośrednictwem jednego punktu końcowego. Wbudowane równoważenie obciążenia, przełączanie awaryjne i śledzenie użycia.",
    "passwordNotEnabled": "Ochrona hasłem nie jest włączona",
    "loading": "Ładowanie...",
    "invalidPassword": "Nieprawidłowe hasło",
    "errorOccurredRetry": "Wystąpił błąd. Spróbuj ponownie.",
    "configureInstance": "Skonfigurujmy Twoją instancję OmniRoute",
    "runOnboardingWizard": "Uruchom kreatora wdrażania, aby ustawić hasło i połączyć się z pierwszym dostawcą AI.",
    "startOnboarding": "Rozpocznij wdrażanie",
    "secureYourInstance": "Zabezpiecz swoją instancję",
    "setPasswordDescription": "Ustaw hasło, aby chronić swój pulpit nawigacyjny i zabezpieczyć punkty końcowe API przed nieautoryzowanym dostępem.",
    "configurePassword": "Skonfiguruj hasło",
    "continue": "Kontynuuj",
    "windowWillClose": "To okno zamknie się automatycznie...",
    "closeTabNow": "Możesz już zamknąć tę zakładkę.",
    "copyUrlManual": "Skopiuj adres URL z paska adresu i wklej go w aplikacji.",
    "accessDeniedDescription": "Nie masz uprawnień dostępu do tego zasobu. Sprawdź swój klucz API lub skontaktuj się z administratorem.",
    "goToDashboard": "Przejdź do Panelu",
    "featureMultiProviderTitle": "Wielu dostawców",
    "featureMultiProviderDesc": "OpenAI, Anthropic, Google i nie tylko",
    "featureLoadBalancingTitle": "Równoważenie obciążenia",
    "featureLoadBalancingDesc": "Rozpowszechniaj żądania inteligentnie",
    "featureUsageTrackingTitle": "Śledzenie użycia",
    "featureUsageTrackingDesc": "Monitoruj koszty i tokeny",
    "resetPassword": "Zresetuj hasło",
    "resetDescription": "Wybierz metodę odzyskania dostępu do pulpitu nawigacyjnego",
    "stopServer": "Zatrzymaj serwer OmniRoute",
    "processing": "Przetwarzanie...",
    "pleaseWait": "Poczekaj, aż zakończymy autoryzację.",
    "authSuccess": "Autoryzacja pomyślna!",
    "copyUrl": "Skopiuj ten adres URL",
    "accessDenied": "Odmowa dostępu",
    "methodCliTitle": "Metoda 1: Reset CLI",
    "methodCliDescription": "Uruchom następującą komendę na serwerze, na którym działa OmniRoute:",
    "methodCliHint": "Spowoduje to wyświetlenie monitu o ustawienie nowego hasła. Najpierw należy zatrzymać serwer.",
    "methodManualTitle": "Metoda 2: Reset ręczny",
    "methodManualDescription": "Usuń hasło z bazy danych i przy uruchomieniu ustaw nowe:",
    "setPasswordInYour": "Ustaw nowe hasło w swoim",
    "fileLabelSuffix": "plik:",
    "newPasswordPlaceholder": "twoje_nowe_hasło",
    "deleteSettingsFile": "Usuń",
    "orRemovePasswordHashField": "lub usuń pole hasłoHash",
    "restartServerWithNewPassword": "Zrestartuj serwer - będzie używał nowego hasła",
    "backToLogin": "Powrót do logowania",
    "forgotPassword": "Zapomniałeś hasła?"
  },
  "landing": {
    "brandName": "OmniRoute",
    "navigateHome": "Przejdź do domu",
    "toggleMenu": "Przełącz menu",
    "featuresLink": "Funkcje",
    "docsLink": "Dokumenty",
    "github": "GitHub",
    "versionLive": "wersja 1.0 jest już dostępna",
    "oneEndpoint": "Jeden punkt końcowy dla",
    "allProviders": "Wszyscy dostawcy sztucznej inteligencji",
    "heroDescription": "Serwer proxy punktu końcowego AI z panelem WWW — port JavaScript CLIProxyAPI. Bezproblemowo współpracuje z Claude Code, OpenAI Codex, Cline, RooCode i innymi narzędziami CLI.",
    "getStarted": "Rozpocznij",
    "viewOnGithub": "Zobacz na GitHubie",
    "powerfulFeatures": "Potężne funkcje",
    "featuresSubtitle": "Wszystko, czego potrzebujesz do zarządzania infrastrukturą AI w jednym miejscu, stworzonym z myślą o skali.",
    "featureUnifiedEndpointTitle": "Ujednolicony punkt końcowy",
    "featureUnifiedEndpointDesc": "Uzyskaj dostęp do wszystkich dostawców za pośrednictwem jednego standardowego adresu URL interfejsu API.",
    "featureEasySetupTitle": "Łatwa konfiguracja",
    "featureEasySetupDesc": "Rozpocznij pracę w ciągu kilku minut za pomocą polecenia npx.",
    "featureModelFallbackTitle": "Model zastępczy",
    "featureModelFallbackDesc": "Automatycznie przełączaj dostawców w przypadku awarii lub dużych opóźnień.",
    "featureUsageTrackingTitle": "Śledzenie użycia",
    "featureUsageTrackingDesc": "Szczegółowa analiza i monitorowanie kosztów we wszystkich modelach.",
    "featureOAuthApiKeysTitle": "Klucze OAuth i API",
    "featureOAuthApiKeysDesc": "Bezpiecznie zarządzaj danymi uwierzytelniającymi w jednym skarbcu.",
    "featureCloudSyncTitle": "Synchronizacja w chmurze",
    "featureCloudSyncDesc": "Błyskawicznie synchronizuj konfiguracje na różnych urządzeniach.",
    "featureCliSupportTitle": "Wsparcie CLI",
    "featureCliSupportDesc": "Współpracuje z Claude Code, Codex, Cline, Cursor i nie tylko.",
    "featureDashboardTitle": "Pulpit nawigacyjny",
    "featureDashboardDesc": "Wizualny pulpit nawigacyjny do analizy ruchu w czasie rzeczywistym.",
    "howItWorks": "Jak działa OmniRoute",
    "howItWorksDescription": "Dane płynnie przepływają z Twojej aplikacji przez naszą inteligentną warstwę routingu do najlepszego dostawcy dla danego zadania.",
    "howItWorksStep1Title": "1. CLI i SDK",
    "howItWorksStep1Description": "Twoje żądania zaczynają się od ulubionych narzędzi lub naszego ujednoliconego pakietu SDK. Po prostu zmień podstawowy adres URL.",
    "howItWorksStep2Title": "2. Koncentrator OmniRoute",
    "howItWorksStep2Description": "Nasz silnik analizuje monity, sprawdza stan dostawcy i trasy pod kątem najniższych opóźnień lub kosztów.",
    "howItWorksStep3Title": "3. Dostawcy sztucznej inteligencji",
    "howItWorksStep3Description": "Żądanie jest natychmiast spełniane przez OpenAI, Anthropic, Gemini lub inne.",
    "getStartedIn30Seconds": "Rozpocznij w 30 sekund",
    "getStartedDescription": "Zainstaluj OmniRoute, skonfiguruj dostawców za pomocą panelu internetowego i rozpocznij przekierowywanie żądań AI.",
    "installOmniRoute": "Zainstaluj OmniRoute",
    "installStepDescription": "Uruchom polecenie npx, aby natychmiast uruchomić serwer",
    "openDashboard": "Otwórz Panel",
    "openDashboardStepDescription": "Skonfiguruj dostawców i klucze API za pośrednictwem interfejsu internetowego",
    "routeRequests": "Żądania dotyczące trasy",
    "routeRequestsStepDescription": "Skieruj swoje narzędzia CLI na {endpoint}",
    "terminal": "terminala",
    "copy": "Kopiuj",
    "copied": "✓ Skopiowano",
    "startingOmniRoute": "Uruchamiam OmniRoute...",
    "serverRunningOnLabel": "Serwer działa",
    "dashboardLabel": "Pulpit nawigacyjny",
    "readyToRoute": "Gotowy do trasy! ✓",
    "configureProvidersNote": "📝 Skonfiguruj dostawców w panelu kontrolnym lub użyj zmiennych środowiskowych",
    "dataLocation": "Lokalizacja danych:",
    "dataLocationMacLinux": " macOS/Linux:",
    "dataLocationWindows": " Okna:",
    "product": "Produkt",
    "dashboardLink": "Pulpit nawigacyjny",
    "changelog": "Dziennik zmian",
    "resources": "Zasoby",
    "documentation": "Dokumentacja",
    "npm": "NPM",
    "legal": "Legalne",
    "mitLicense": "Licencja MIT",
    "footerTagline": "Ujednolicony punkt końcowy do generowania sztucznej inteligencji. Z łatwością łącz się, kieruj i zarządzaj dostawcami sztucznej inteligencji.",
    "copyright": "© {year} OmniRoute. Wszelkie prawa zastrzeżone.",
    "flowToolClaudeCode": "Claude'a Koda",
    "flowToolOpenAICodex": "Kodeks OpenAI",
    "flowToolCline": "Cline",
    "flowToolCursor": "Kursor",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "Antropiczny",
    "flowProviderGemini": "Bliźnięta",
    "flowProviderGithubCopilot": "Drugi pilot GitHuba",
    "interactiveDiagram": "Interaktywny diagram widoczny na pulpicie",
    "ctaTitle": "Chcesz uprościć swoją infrastrukturę AI?",
    "ctaDescription": "Dołącz do programistów, którzy usprawniają integrację sztucznej inteligencji za pomocą OmniRoute. Oprogramowanie typu open source i na początek bezpłatne.",
    "startFree": "Zacznij za darmo",
    "readDocumentation": "Przeczytaj dokumentację"
  },
  "docs": {
    "title": "Dokumentacja",
    "quickStart": "Szybki start",
    "features": "Funkcje",
    "supportedProviders": "Obsługiwani dostawcy",
    "supportedProvidersToc": "Dostawcy",
    "commonUseCases": "Typowe przypadki użycia",
    "clientCompatibility": "Zgodność klienta",
    "protocolsToc": "Protocols",
    "apiReference": "Dokumentacja API",
    "method": "Metoda",
    "path": "Ścieżka",
    "notes": "Notatki",
    "modelPrefixes": "Przedrostki modeli",
    "prefix": "Przedrostek",
    "troubleshooting": "Rozwiązywanie problemów",
    "supportsChat": "Obsługuje punkty końcowe czatu i odpowiedzi.",
    "oauthAutoRefresh": "Połączenie OAuth z automatycznym odświeżaniem tokena.",
    "fullStreaming": "Pełna obsługa transmisji strumieniowej dla wszystkich modeli.",
    "docsLabel": "Dokumenty",
    "docsHeroDescription": "Brama AI dla LLM wielu dostawców. Jeden punkt końcowy dla OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor i ponad 20 innych dostawców.",
    "openDashboard": "Otwórz Panel",
    "endpointPage": "Strona punktu końcowego",
    "github": "GitHub",
    "reportIssue": "Zgłoś problem",
    "onThisPage": "Na tej stronie",
    "documentationVersion": "Dokumentacja - v{version}",
    "quickStartStep1Title": "1. Zainstaluj i uruchom",
    "quickStartStep1Prefix": "Biegnij",
    "quickStartStep1Middle": "lub sklonuj z GitHub i uruchom",
    "quickStartStep2Title": "2. Utwórz klucz API",
    "quickStartStep2Text": "Przejdź do Punkt końcowy -> Zarejestrowane klucze. Wygeneruj jeden klucz na środowisko.",
    "quickStartStep3Title": "3. Połącz dostawców",
    "quickStartStep3Text": "Dodaj konta dostawców za pomocą loginu OAuth, klucza API lub automatycznego łączenia w warstwie bezpłatnej.",
    "quickStartStep4Title": "4. Ustaw podstawowy adres URL klienta",
    "quickStartStep4Prefix": "Wskaż klienta IDE lub API",
    "quickStartStep4Suffix": "Użyj na przykład prefiksu dostawcy",
    "featureRoutingTitle": "Routing wielu dostawców",
    "featureRoutingText": "Kieruj żądania do ponad 30 dostawców AI za pośrednictwem jednego punktu końcowego kompatybilnego z OpenAI. Obsługuje interfejsy API czatu, odpowiedzi, dźwięku i obrazu.",
    "featureCombosTitle": "Kombinacje i balansowanie",
    "featureCombosText": "Twórz kombinacje modeli z łańcuchami awaryjnymi i strategiami równoważenia: okrężne, priorytetowe, losowe, najrzadziej używane i zoptymalizowane pod względem kosztów.",
    "featureUsageTitle": "Śledzenie wykorzystania i kosztów",
    "featureUsageText": "Liczenie tokenów w czasie rzeczywistym, kalkulacja kosztów dla każdego dostawcy/modelu oraz szczegółowy podział wykorzystania według klucza API i konta.",
    "featureAnalyticsTitle": "Panel analityczny",
    "featureAnalyticsText": "Analityka wizualna z wykresami żądań, tokenów, błędów, opóźnień, kosztów i popularności modelu w czasie.",
    "featureHealthTitle": "Monitorowanie zdrowia",
    "featureHealthText": "Kontrole stanu na żywo, status dostawcy, stany wyłączników i automatyczne wykrywanie limitów szybkości z wykładniczym wycofywaniem.",
    "featureCliTitle": "Narzędzia interfejsu wiersza polecenia",
    "featureCliText": "Zarządzaj konfiguracjami IDE, eksportuj/importuj kopie zapasowe, odkrywaj profile Codexu i konfiguruj ustawienia z poziomu pulpitu nawigacyjnego.",
    "featureSecurityTitle": "Bezpieczeństwo i zasady",
    "featureSecurityText": "Uwierzytelnianie kluczem API, filtrowanie IP, ochrona przed wtryskiem, zasady domeny, zarządzanie sesjami i rejestrowanie audytu.",
    "featureCloudSyncTitle": "Synchronizacja w chmurze",
    "featureCloudSyncText": "Zsynchronizuj swoją konfigurację z Cloudflare Workers, aby uzyskać zdalny dostęp za pomocą szyfrowanych poświadczeń i automatycznego przełączania awaryjnego.",
    "providersAcrossConnectionTypes": "{count} dostawców dla trzech typów połączeń.",
    "manageProviders": "Zarządzaj dostawcami",
    "providersCount": "{count} dostawców",
    "providerTypeFree": "Poziom bezpłatny",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "Klucz API",
    "useCaseSingleEndpointTitle": "Jeden punkt końcowy dla wielu dostawców",
    "useCaseSingleEndpointText": "Wskaż klientom jeden podstawowy adres URL i trasę według prefiksu modelu (na przykład: gh/, cc/, kr/, openai/).",
    "useCaseFallbackTitle": "Przełączanie awaryjne i modelowe za pomocą kombinacji",
    "useCaseFallbackText": "Twórz modele łączone w panelu kontrolnym i utrzymuj stabilną konfigurację klienta, podczas gdy dostawcy zmieniają się wewnętrznie.",
    "useCaseUsageVisibilityTitle": "Widoczność użycia, kosztów i debugowania",
    "useCaseUsageVisibilityText": "Śledź tokeny i koszty według dostawcy, konta i klucza API na kartach Użycie i Analityka.",
    "clientCherryStudioTitle": "Wiśniowe Studio",
    "baseUrlLabel": "Bazowy adres URL",
    "chatEndpointLabel": "Punkt końcowy czatu",
    "modelRecommendationLabel": "Rekomendacja modelu: wyraźny przedrostek",
    "clientCodexTitle": "Modele drugiego pilota w Kodeksie/GitHub",
    "clientCodexBullet1": "Użyj identyfikatorów modeli z",
    "clientCodexBullet2": "Modele z rodziny Codex automatycznie kierują się do",
    "clientCodexBullet3": "Modele inne niż Kodeks są kontynuowane",
    "clientCursorTitle": "Kursor IDE",
    "clientCursorBullet1": "Użyj",
    "clientCursorBullet1Suffix": "przedrostek dla modeli kursora.",
    "clientCursorBullet2": "Połączenie OAuth - zaloguj się ze strony Dostawcy.",
    "clientClaudeTitle": "Kod Claude'a / Antygrawitacja",
    "clientClaudeBullet1Prefix": "Użyj",
    "clientClaudeBullet1Middle": "(Claude) lub",
    "clientClaudeBullet1Suffix": "Przedrostek (Antygrawitacja).",
    "protocolsTitle": "Protocols: MCP & A2A",
    "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
    "protocolMcpTitle": "MCP (Model Context Protocol)",
    "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
    "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
    "protocolMcpStep2": "Point your MCP client to stdio transport.",
    "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
    "protocolA2aTitle": "A2A (Agent2Agent)",
    "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
    "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
    "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
    "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
    "protocolTroubleshootingTitle": "Protocol Troubleshooting",
    "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
    "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
    "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
    "endpointChatNote": "Punkt końcowy czatu zgodny z OpenAI (domyślnie).",
    "endpointResponsesNote": "Punkt końcowy interfejsu API odpowiedzi (Kodeks, seria o).",
    "endpointModelsNote": "Katalog modeli dla wszystkich podłączonych dostawców.",
    "endpointAudioNote": "Transkrypcja audio (Deepgram, AssemblyAI).",
    "endpointImagesNote": "Generowanie obrazu (NanoBanana).",
    "endpointRewriteChatNote": "Przepisz pomocnika dla klientów bez /v1.",
    "endpointRewriteResponsesNote": "Przepisz pomocnika dla odpowiedzi bez /v1.",
    "endpointRewriteModelsNote": "Przepisz pomocnika do wykrywania modelu bez /v1.",
    "modelPrefixesDescriptionStart": "Użyj prefiksu dostawcy przed nazwą modelu, aby przekierować do określonego dostawcy. Przykład:",
    "modelPrefixesDescriptionEnd": "trasy do GitHub Copilot.",
    "provider": "Dostawca",
    "type": "Wpisz",
    "troubleshootingModelRouting": "Jeśli klientowi nie powiedzie się routing modelu, użyj jawnego dostawcy/modelu (na przykład: gh/gpt-5.1-codex).",
    "troubleshootingAmbiguousModels": "Jeśli otrzymujesz niejednoznaczne błędy modelu, wybierz prefiks dostawcy zamiast samego identyfikatora modelu.",
    "troubleshootingCodexFamily": "W przypadku modeli z rodziny GitHub Codex zachowaj model jako gh/codex-model; router wybiera opcję /odpowiada automatycznie.",
    "troubleshootingTestConnection": "Użyj Panelu sterowania > Dostawcy > Testuj połączenie przed testowaniem z IDE lub klientów zewnętrznych.",
    "troubleshootingCircuitBreaker": "Jeśli dostawca pokazuje, że wyłącznik jest otwarty, poczekaj na ochłodzenie lub sprawdź stronę Zdrowie, aby uzyskać szczegółowe informacje.",
    "troubleshootingOAuth": "W przypadku dostawców OAuth należy ponownie uwierzytelnić, jeśli tokeny wygasną. Sprawdź wskaźnik stanu karty dostawcy."
  },
  "legal": {
    "privacyPolicy": "Polityka prywatności",
    "termsOfService": "Warunki świadczenia usług",
    "providerConfigurations": "Konfiguracje dostawców",
    "apiKeys": "Klucze API",
    "usageLogs": "Dzienniki użytkowania",
    "applicationSettings": "Ustawienia aplikacji",
    "viewExportAnalytics": "Przeglądaj i eksportuj analizy użytkowania",
    "clearHistory": "Wyczyść historię użytkowania w dowolnym momencie",
    "configureRetention": "Skonfiguruj zasady przechowywania dzienników",
    "backupRestore": "Utwórz kopię zapasową i przywróć bazę danych",
    "privacyMetadataTitle": "Polityka prywatności | OmniRoute",
    "privacyMetadataDescription": "Polityka prywatności routera proxy OmniRoute AI API.",
    "termsMetadataTitle": "Warunki świadczenia usług | OmniRoute",
    "termsMetadataDescription": "Warunki korzystania z routera proxy OmniRoute AI API.",
    "backToHome": "Powrót do domu",
    "lastUpdated": "Ostatnia aktualizacja: {date}",
    "policyLastUpdatedDate": "13 lutego 2026 r",
    "listSeparator": "-",
    "questionsVisit": "Pytania? Odwiedź nasze",
    "githubRepository": "Repozytorium GitHuba",
    "privacySection1Title": "1. Architektura lokalna",
    "privacySection1Text": "OmniRoute zaprojektowano jako aplikację działającą lokalnie. Całe przetwarzanie i przechowywanie danych odbywa się wyłącznie na Twoim komputerze. Nie ma scentralizowanego serwera gromadzącego Twoje dane.",
    "privacySection2Title": "2. Dane, które przechowujemy",
    "privacyDataStoredIn": "Następujące dane są przechowywane lokalnie w",
    "privacyDataProviderConfigurationsDesc": "adresy URL połączeń, typy dostawców i ustawienia priorytetów",
    "privacyDataApiKeysDesc": "szyfrowane i przechowywane lokalnie w celu uwierzytelniania u dostawców sztucznej inteligencji",
    "privacyDataUsageLogsDesc": "liczba żądań, użycie tokena, nazwy modeli, znaczniki czasu i czasy odpowiedzi",
    "privacyDataApplicationSettingsDesc": "preferencje tematyczne, strategia routingu i konfiguracje kombinacji",
    "privacySection3Title": "3. Brak telemetrii",
    "privacySection3Text": "OmniRoute nie zbiera danych telemetrycznych, analiz ani raportów o awariach. Żadne dane nie są przesyłane do nas ani do osób trzecich. Twoje wzorce użytkowania, wywołania API i konfiguracje pozostają całkowicie prywatne.",
    "privacySection4Title": "4. Zewnętrzni dostawcy AI",
    "privacySection4Text": "Gdy wykonujesz wywołania API za pośrednictwem OmniRoute, Twoje żądania są przekazywane do skonfigurowanych dostawców AI (na przykład: OpenAI, Anthropic, Google). Dostawcy ci mają własne zasady ochrony prywatności, które regulują sposób postępowania z Twoimi danymi. Proszę przejrzeć:",
    "privacyOpenAiPolicy": "Polityka prywatności OpenAI",
    "privacyAnthropicPolicy": "Antropiczna polityka prywatności",
    "privacyGooglePolicy": "Polityka prywatności Google",
    "privacySection5Title": "5. Synchronizacja z chmurą (opcjonalnie)",
    "privacySection5Text": "Jeśli włączysz opcjonalną funkcję synchronizacji z chmurą, konfiguracje dostawców i klucze API mogą zostać przesłane do skonfigurowanego punktu końcowego chmury. Ta funkcja jest domyślnie wyłączona i wymaga wyraźnej zgody.",
    "privacySection6Title": "6. Rejestrowanie",
    "privacyLoggingIntro": "Dzienniki żądań można skonfigurować w ustawieniach panelu kontrolnego. Możesz:",
    "privacySection7Title": "7. Twoje prawa",
    "privacySection7TextStart": "Ponieważ wszystkie dane są przechowywane lokalnie, masz pełną kontrolę. W każdej chwili możesz usunąć swoje dane usuwając plik",
    "privacySection7TextEnd": "katalogu lub korzystając z funkcji tworzenia kopii zapasowych i przywracania bazy danych na pulpicie nawigacyjnym.",
    "termsSection1Title": "1. Przegląd",
    "termsSection1Text": "OmniRoute to lokalny router proxy AI API, który działa całkowicie na Twoim komputerze. Kieruje żądania do wielu dostawców AI z równoważeniem obciążenia, przełączaniem awaryjnym i śledzeniem użycia.",
    "termsSection2Title": "2. Obowiązki użytkownika",
    "termsResponsibilityApiKeys": "Ponosisz wyłączną odpowiedzialność za zarządzanie własnymi kluczami API i danymi uwierzytelniającymi dla zewnętrznych dostawców sztucznej inteligencji (OpenAI, Anthropic, Google itp.).",
    "termsResponsibilityCompliance": "Musisz przestrzegać warunków świadczenia usług każdego dostawcy AI, do którego API uzyskujesz dostęp za pośrednictwem OmniRoute.",
    "termsResponsibilitySecurity": "Jesteś odpowiedzialny za bezpieczeństwo swojej lokalnej instalacji OmniRoute, w tym za ustawienie hasła i ograniczenie dostępu do sieci.",
    "termsSection3Title": "3. Jak to działa",
    "termsSection3Text": "OmniRoute działa jako pośrednik proxy. Wywołania API wysyłane do OmniRoute są tłumaczone i przekazywane do skonfigurowanych dostawców AI. OmniRoute nie modyfikuje treści Twoich żądań ani odpowiedzi poza niezbędnym tłumaczeniem protokołu.",
    "termsSection4Title": "4. Przetwarzanie danych",
    "termsDataStoredLocally": "Wszystkie dane są przechowywane lokalnie na Twoim komputerze w bazie danych SQLite.",
    "termsNoTransmission": "OmniRoute nie przesyła żadnych danych do serwerów zewnętrznych, chyba że wyraźnie włączysz funkcje synchronizacji w chmurze.",
    "termsDataLocationText": "Dzienniki użytkowania, klucze API i konfiguracja są przechowywane w",
    "termsSection5Title": "5. Zastrzeżenie",
    "termsSection5Text": "Usługa OmniRoute jest dostarczana w stanie takim, w jakim jest, bez jakiejkolwiek gwarancji. Nie ponosimy odpowiedzialności za jakiekolwiek koszty powstałe w wyniku korzystania z API, zakłóceń w świadczeniu usług lub utraty danych. Zawsze twórz kopie zapasowe swojej konfiguracji.",
    "termsSection6Title": "6. Otwarte źródło",
    "termsSection6Text": "OmniRoute jest oprogramowaniem typu open source. Możesz go przeglądać, modyfikować i rozpowszechniać zgodnie z warunkami licencji."
  },
  "endpoints": {
    "tabProxy": "Endpoint Proxy",
    "tabApiEndpoints": "API Endpoints",
    "apiEndpointsTitle": "API Endpoints",
    "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
    "comingSoon": "Coming Soon",
    "plannedFeatures": "Planned Features",
    "featureRestApi": "REST API endpoint catalog with interactive documentation",
    "featureWebhooks": "Webhook configuration and event subscriptions",
    "featureSwagger": "OpenAPI / Swagger spec auto-generation",
    "featureAuth": "API key and OAuth scope management per endpoint"
  },
  "agents": {
    "title": "CLI Agents",
    "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
    "refresh": "Refresh",
    "installed": "Installed",
    "notFound": "Not Found",
    "builtIn": "Built-in",
    "custom": "Custom",
    "remove": "Remove",
    "addCustomAgent": "Add Custom Agent",
    "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
    "agentName": "Agent Name",
    "binaryName": "Binary Name",
    "versionCommand": "Version Command",
    "spawnArgs": "Spawn Args",
    "addAgent": "Add Agent"
  },
  "autoCombo": {
    "title": "Auto-Combo Engine",
    "statusNormal": "Normal",
    "statusIncident": "Incident Mode",
    "modePack": "Mode Pack",
    "providerScores": "Provider Scores",
    "noAutoCombo": "No auto-combo configured.",
    "excludedProviders": "Excluded Providers",
    "noExclusions": "No providers currently excluded.",
    "factorQuota": "Quota",
    "factorHealth": "Health",
    "factorCost": "Cost",
    "factorLatency": "Latency",
    "factorTaskFit": "Task Fit",
    "factorStability": "Stability",
    "factorTierPriority": "Tier Priority",
    "factorTierPriorityDesc": "Prefers accounts with higher quota tiers (Ultra/Pro over Free)",
    "scoreFactorBreakdown": "Scoring Factors",
    "modePackShipFast": "Ship Fast",
    "modePackCostSaver": "Cost Saver",
    "modePackQualityFirst": "Quality First",
    "modePackOfflineFriendly": "Offline Friendly"
  }
}
