From aac4b27503591da7ccd3bd2e9cc7f5d14df52b62 Mon Sep 17 00:00:00 2001 From: pawcioblok Date: Mon, 6 Jul 2026 10:53:45 +0200 Subject: [PATCH] Add Polish translation (pl_PL) --- i18n/locales/pl_PL.json | 5515 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 5515 insertions(+) create mode 100644 i18n/locales/pl_PL.json diff --git a/i18n/locales/pl_PL.json b/i18n/locales/pl_PL.json new file mode 100644 index 0000000..2e3671e --- /dev/null +++ b/i18n/locales/pl_PL.json @@ -0,0 +1,5515 @@ +{ + "you": "Ty", + "select": "Wybierz", + "conversations": "Konwersacje", + "copyToClipboard": "Kopiuj do schowka", + "toCopyMarkdownDirectly": "aby skopiować markdown bezpośrednio", + "clickToCopyMarkdownDirectly": "Kliknij, aby skopiować markdown bezpośrednio", + "toShowMoreOptions": "aby pokazać więcej opcji", + "longPressOrAltClickForMoreOptions": "Przytrzymaj lub Alt+kliknij, aby uzyskać więcej opcji", + "onMessage": "na wiadomości", + "selectModel": "@:select model | @:select modele", + "manageModels": "@:manage modelami", + "required": "Wymagane", + "optional": "Opcjonalne", + "systemPrompt": "Prompt systemowy", + "systemPromptAttachMode": "Tryb dołączania @:systemPrompt", + "userPrompt": "Prompt @:user", + "delete": "Usuń {item}", + "deleteAll": "Usuń wszystko", + "create": "Utwórz", + "edit": "Edytuj", + "expandTextarea": "Rozwiń edytor", + "collapseTextarea": "Zwiń edytor", + "enable": "Włącz", + "disable": "Wyłącz", + "save": "Zapisz", + "saved": "Zapisano", + "cancel": "Anuluj", + "close": "Zamknij", + "bookmarked": "Zakładka dodana", + "pinned": "Przypięto", + "update": "Aktualizuj", + "apply": "Zastosuj", + "reset": "Resetuj", + "icon": "Ikona", + "clear": "Wyczyść", + "apiKey": "Klucz API", + "models": "Modele", + "available": "Dostępne {itemType}", + "unavailable": "Niedostępne", + "detected": "Wykryto", + "continue": "Kontynuuj", + "undetected": "Nie wykryto", + "welcome": "Witaj!", + "plan": "Plan", + "allChangesSaved": "Wszystkie zmiany zostały zapisane", + "toolbar": "Pasek narzędzi", + "bookmark": "Zakładka | Zakładki", + "waitingMessage": { + "waiting": "Czekam :: Chwila :: Zaraz :: Sekundka :: Cierpliwość to cnota :: Już prawie :: Ładuję cuda", + "fetchingWebResults": "Przeszukuję sieć :: Przeglądanie internetu :: Szukam w sieci :: Przeszukuję zasoby :: Pytam wyrocznię :: Grzecznie pytam internet :: Nurkuję w cyberprzestrzeni :: Wydobywam dane z sieci", + "queryingKnowledgeStack": "Odpytuję @:knowledgeStack.title :: Przeszukuję Twoją wiedzę :: Przeglądam Twoje dokumenty :: Eksploruję Twoją bazę wiedzy :: Przeszukuję Twą mądrość :: Konsultuję Twoją bibliotekę cyfrową :: Skanuje Twoje archiwa :: Przeglądam Twoje notatki", + "preparingTools": "Przygotowuję narzędzia :: Szykuję narzędzia :: Konfiguruję narzędzia :: Ładuję narzędzia :: Ostrzę instrumenty :: Kompletuję zestaw narzędzi :: Rozgrzewam silniki :: Przygotowuję obszar roboczy", + "connectingToModel": "Model czyni swą magię ✨ :: AI myśli :: Przetwarzam Twoje zapytanie :: Pracuję nad tym :: Liczę :: Neurony strzelają :: Głęboko przemyślam :: Obliczam genialne odpowiedzi :: Włączam tryb mózgu :: Przywołuję inteligencję", + "processingContext": "Przetwarzam kontekst :: Rozumiem kontekst :: Analizuję kontekst :: Czytam sytuację :: Łączę kropki :: Ogarniam całość :: Składam do kupy :: Rozumiem o co chodzi", + "streaming": "Strumieniuję :: Wysyłam odpowiedź :: Dostarczam odpowiedź :: Przesyłam :: Przekazuję wyniki :: Płynę ku Tobie :: W drodze do Ciebie :: Już leci", + "scrubbingPIIData": "Usuwam dane osobowe :: Chronię Twoją prywatność :: Usuwam dane osobiste :: Anonimizuję dane :: Strzegę tajemnic :: Tryb prywatności aktywny :: Redaguję wrażliwe dane :: Przechodzę w tryb incognito", + "synthesizingQuery": "Syntetymuję zapytanie dla lepszych wyników :: Optymalizuję Twoje pytanie :: Ulepszam zapytanie :: Doprecyzowuję frazy :: Poleruje Twoje zapytanie :: Dostrajam pytanie :: Buduję idealne zapytanie :: Nadaję blask Twoim słowom", + "fetchingLiveContexts": "Pobieram konteksty na żywo :: Zbieram dane w czasie rzeczywistym :: Wyciągam świeże spostrzeżenia :: Synchronizuję z aktywnymi źródłami :: Podłączam się do strumienia danych :: Zbieram aktualne informacje :: Odświeżam źródła kontekstu :: Pobieram aktualizacje na żywo :: Łączę się z pulsem" + }, + "progress": { + "initializing": "Inicjalizacja..." + }, + "add": "Dodaj", + "actionBar": { + "expandGroup": "Rozwiń {group}", + "collapseGroup": "Zwiń {group}", + "showExtraAddOns": "Pokaż dodatkowe rozszerzenia", + "hideExtraAddOns": "Ukryj dodatkowe rozszerzenia", + "groups": { + "model": "Model i prompty", + "data": "Dane i wiedza", + "tools": "Narzędzia i persony" + } + }, + "unauthorized": "Brak autoryzacji", + "valid": "Prawidłowy", + "invalid": "Nieprawidłowy", + "done": "Gotowe!", + "confirm": "Potwierdź", + "shareWithSyncedSplits": "Udostępnij zsynchronizowanym podziałom", + "source": "Źródło | Źródła", + "groundingSources": "Źródła uziemienia", + "manage": "Zarządzaj", + "chat": "Czat | Czaty", + "advancedOptions": "Opcje zaawansowane", + "duplicate": "Duplikuj", + "manageItem": "@:manage {item}", + "success": "Sukces!", + "notes": "Notatki", + "viewNotes": "Zobacz notatki", + "error": "Błąd!", + "warning": "Ostrzeżenie", + "authorized": "Autoryzowano", + "notAuthorized": "Brak autoryzacji", + "authorize": "Autoryzuj", + "reauthorize": "Ponownie autoryzuj", + "deauthorize": "Usuń autoryzację", + "failedToDelete": "Nie udało się usunąć", + "failedToSave": "Nie udało się zapisać", + "failedToUpdate": "Nie udało się zaktualizować", + "updatedSuccess": "zaktualizowano.", + "applyAndShareWithSyncedSplits": "Zastosuj i udostępnij zsynchronizowanym podziałom", + "clickToEdit": "Kliknij, aby edytować", + "clickToAddSystemPrompt": "Kliknij, aby dodać @:systemPrompt", + "pause": "Wstrzymaj", + "resume": "Wznów", + "retry": "Spróbuj ponownie", + "stop": "Zatrzymaj", + "run": "Uruchom", + "rerun": "Uruchom ponownie", + "remove": "Usuń", + "skip": "Pomiń", + "unskip": "Cofnij pominięcie", + "startImporting": "Rozpocznij importowanie", + "new": "Nowy", + "entry": "Wpis | Wpisy", + "import": "Importuj", + "connect": "Połącz", + "disconnect": "Rozłącz", + "reconnect": "Połącz ponownie", + "selectTargetFolder": "Wybierz folder docelowy", + "createNewFolderForImport": "Utwórz nowy folder dla importowanych elementów", + "newFolderName": "Nazwa nowego folderu", + "remote": "Zdalny", + "local": "Lokalny", + "strength": "Mocna strona | Mocne strony", + "provider": "Dostawca", + "capability": "{count} Możliwość | {count} Możliwości", + "preset": "Preset | Presety", + "saveAsPreset": "Zapisz jako @:preset", + "append": "Dołącz na końcu", + "prepend": "Dołącz na początku", + "replace": "Zamień", + "description": "Opis", + "mode": "Tryb", + "addOns": "Rozszerzenia", + "user": "Użytkownik", + "assistant": "Asystent", + "assistantMessage": "@:assistant @:message.title", + "connectionInfo": "Informacje o połączeniu", + "export": "Eksportuj", + "exportOptions": "Opcje eksportu", + "chooseFile": "Wybierz plik", + "purpose": "Cel", + "download": "Pobierz", + "downloads": "Pobrane", + "downloadAsJson": "Pobierz jako JSON", + "install": "Zainstaluj", + "installed": "Zainstalowano", + "modified": "Zmodyfikowano", + "created": "Utworzono", + "minimize": "Minimalizuj", + "status": "Status", + "type": "Typ", + "yes": "Tak", + "fileSize": "Rozmiar pliku", + "size": "Rozmiar", + "likes": "Polubienie | Polubienia", + "cancelled": "Anulowano", + "parameterSize": "Rozmiar parametrów", + "quantization": "Kwantyzacja", + "quantizationLevel": "Poziom @:quantization", + "contextSize": "Rozmiar kontekstu", + "defaultToModelMax": "Domyślnie maksimum modelu", + "llamaCppContextSizeDescription": "Maksymalna liczba tokenów przetwarzanych jednocześnie przez model. Ustaw 0, aby użyć maksimum modelu. Większe wartości zwiększają zużycie pamięci. Ta wartość jest zapisywana globalnie dla każdego modelu w LLaMA.cpp. Kontekst jest dzielony równomiernie między liczbę jednoczesnych żądań ustawioną w ustawieniach usługi LLaMA.cpp.", + "truncationStrategy": { + "truncateMiddle": "Ucinaj środek", + "truncateOld": "Ucinaj stare", + "none": "Brak" + }, + "truncationStrategyDescription": "Sposób obsługi wiadomości przy zbliżaniu się do limitu kontekstu.", + "storage": "Pamięć masowa", + "params": "Parametry", + "arch": "Architektura", + "filter": "Filtr", + "treeControls": { + "title": "Sortowanie i widok", + "searchPlaceholder": "Szukaj...", + "clear": "Resetuj", + "foldersFirst": "Foldery na górze", + "itemsFirst": "Elementy na górze", + "sort": { + "none": "Brak", + "name": "Nazwa", + "title": "Tytuł", + "created": "Data utworzenia", + "updated": "Data aktualizacji", + "lastUsed": "Ostatnio używane", + "ascending": "Rosnąco", + "descending": "Malejąco" + }, + "visibility": { + "label": "Widoczność", + "empty": { + "show": "Pokaż puste foldery", + "hide": "Ukryj puste foldery" + }, + "counts": { + "show": "Pokaż liczniki elementów", + "hide": "Ukryj liczniki elementów" + } + } + }, + "noSearchResults": "Nie znaleziono {item} dla tego wyszukiwania", + "loading": "Ładowanie", + "invite": "Zaproś", + "refresh": "Odśwież", + "email": "E-mail", + "role": "Rola", + "admin": "Administrator", + "owner": "Właściciel", + "inActive": "Nieaktywny", + "argument": "Argument | Argumenty", + "abort": "Przerwij", + "send": "Wyślij", + "remindMeLater": "Przypomnij mi później", + "text": "Tekst", + "folders": "Foldery", + "folder": "Folder | @:folders", + "title": "Tytuł", + "search": { + "label": "Szukaj", + "scope": { + "active": "Aktywne", + "archived": "Zarchiwizowane", + "all": "Wszystkie" + } + }, + "fuzzySearch": { + "enabled": "Wyszukiwanie rozmyte włączone", + "disabled": "Wyszukiwanie rozmyte wyłączone", + "enabledHint": "Wyszukiwanie rozmyte włączone. Kliknij, aby przełączyć", + "disabledHint": "Wyszukiwanie rozmyte wyłączone. Kliknij, aby przełączyć" + }, + "none": "Brak", + "change": "Zmień", + "expandAllProjects": "Rozwiń wszystkie projekty", + "collapseAllProjects": "Zwiń wszystkie projekty", + "expandAllFolders": "Rozwiń wszystkie foldery", + "collapseAllFolders": "Zwiń wszystkie foldery", + "clone": { + "title": "Sklonuj {item}", + "successMessage": { + "detail": "{item} sklonowano" + }, + "errorMessage": { + "detail": "Nie udało się sklonować {item}" + } + }, + "notesPurposePlaceholder": "Dodaj notatki, które pomogą Ci zapamiętać cel tego {item}; będą one również widoczne dla modeli, dostarczając im więcej informacji o tym, jak używać tego {item} (@:optional)", + "endpointTestResults": "Wyniki testu punktu końcowego", + "testConnection": "Testuj połączenie", + "emptyPlaceholder": "Nie znaleziono {item}", + "selectItem": "@:select {item}", + "selectedItemLabel": "{count} {title}", + "feature": "Funkcja | Funkcje", + "raw": "Surowy", + "rawOutput": "Surowe wyjście", + "property": "Właściwość | Właściwości", + "configure": "Konfiguruj", + "context": "Kontekst | Konteksty", + "path": "Ścieżka | Ścieżki", + "project": { + "title": "Projekt | Projekty", + "createRootProject": "Nowy projekt w katalogu głównym", + "projectName": "Nazwa projektu", + "projectDescription": "Opis projektu", + "defaultModel": "Domyślny model", + "customInstructions": "Niestandardowe instrukcje", + "addChildProject": "Dodaj projekt podrzędny", + "promoteToRoot": { + "title": "Przenieś folder do katalogu głównego", + "errorMessage": { + "detail": "Nie udało się przenieść projektu do katalogu głównego." + }, + "successMessage": { + "detail": "Projekt został pomyślnie przeniesiony do katalogu głównego." + } + }, + "deleteProject": "Usuń projekt", + "setDefaultForNewConversations": "Ustaw jako domyślny projekt", + "unsetDefaultForNewConversations": "Cofnij domyślny projekt", + "orphanageProjectName": "Różne", + "includeProjectContext": "Uwzględnij kontekst projektu", + "deleteConfirmation": { + "header": "Usuń projekt", + "message": "Czy na pewno chcesz usunąć {projectName} wraz ze wszystkimi konwersacjami?", + "rejectLabel": "@:cancel", + "acceptLabel": "@:delete", + "successMessage": { + "detail": "Projekt usunięty" + } + }, + "deleteAllConversations": { + "title": "Usuń wszystkie konwersacje", + "description": "Czy na pewno chcesz usunąć wszystkie konwersacje w {projectName}? Tej operacji nie można cofnąć.", + "successMessage": { + "detail": "Usunięto {count} konwersację | Usunięto {count} konwersacje", + "empty": "Brak konwersacji do usunięcia" + }, + "errorMessage": { + "detail": "Nie udało się usunąć konwersacji" + } + }, + "archiveAllConversations": { + "title": "Zarchiwizuj wszystkie konwersacje", + "description": "Zarchiwizować wszystkie konwersacje w {projectName}? Trafią do Archiwum i będzie można je przywrócić później.", + "confirmLabel": "Zarchiwizuj wszystkie", + "successMessage": { + "detail": "Zarchiwizowano {count} konwersację | Zarchiwizowano {count} konwersacje" + }, + "errorMessage": { + "detail": "Nie udało się zarchiwizować konwersacji" + } + }, + "projectForm": { + "addFiles": "Dodaj pliki", + "editProject": "Edytuj projekt", + "createNewProject": "Nowy projekt", + "dragAndDropFiles": "Przeciągnij i upuść pliki, które zostaną dołączone do każdej konwersacji w tym projekcie.", + "successMessage": { + "createDetail": "Projekt utworzony", + "createDetailHidden": "Projekt utworzony! Obecnie jest ukryty, ponieważ jest pusty. Kliknij przycisk poniżej, aby wyświetlić go teraz lub pojawi się automatycznie po dodaniu pierwszej konwersacji.", + "updateDetail": "Projekt zaktualizowany" + }, + "errorMessage": { + "createDetail": "Nie udało się utworzyć projektu", + "updateDetail": "Nie udało się zaktualizować projektu" + } + }, + "emptyProjectVisibilityToast": { + "showButton": "Pokaż puste projekty", + "enabled": "Puste projekty są teraz widoczne" + }, + "startNewToGetStarted": "Rozpocznij nową konwersację, aby zacząć" + }, + "selectedModel": "Wybrany model", + "endpoint": "Punkt końcowy", + "authToken": "Token autoryzacji", + "before": "Przed", + "after": "Po", + "method": "Metoda", + "httpMethod": "Metoda HTTP", + "get": "Pobierz", + "post": "Wyślij", + "presetAlreadyExistsMessage": "@:preset o tej samej nazwie już istnieje.", + "duplicatePresetOverwriteMessage": "@:presetAlreadyExistsMessage Jeśli zapiszesz, nadpiszesz istniejący preset.", + "noPropsAvailable": "Brak dostępnych {propsName}. Dodaj własny.", + "localAI": "@:local AI", + "branch": { + "clickToLabel": "Kliknij, aby dodać etykietę", + "labelPlaceholder": "Etykieta gałęzi (maks. 30 znaków)", + "labelBranch": "Etykietuj gałąź...", + "labelDialogTitle": "Etykieta gałęzi", + "noLabel": "Brak etykiety", + "clickForOptions": "Kliknij, aby zobaczyć więcej opcji", + "timeline": { + "title": "Eksplorator gałęzi", + "viewAll": "Eksplorator gałęzi...", + "branchNumber": "Gałąź {n}", + "current": "Bieżąca", + "branches": "Gałęzie", + "compare": "Porównaj" + }, + "diff": { + "title": "Porównaj gałęzie", + "compare": "Porównaj gałęzie", + "exitCompare": "Wyjdź z trybu porównywania", + "selectFirst": "Wybierz pierwszą gałąź do porównania", + "selectSecond": "Wybierz drugą gałąź do porównania", + "selected": "Wybrano", + "identical": "Zawartość jest identyczna", + "leftBranch": "Pierwsza gałąź", + "rightBranch": "Druga gałąź", + "selectBranch": "Wybierz gałąź", + "selectBranchesToCompare": "Wybierz dwie gałęzie powyżej, aby porównać ich zawartość", + "switchToBranch": "Przełącz na {name}", + "viewDiff": "Różnica", + "viewSideBySide": "Obok siebie" + } + }, + "conversation": { + "title": "Konwersacja | Konwersacje", + "conversationTitle": "Tytuł @:conversation.title", + "contextShieldErrorMessage": { + "summary": "Nie udało się wygenerować podsumowania kontekstu.", + "detail": "Sprawdź Ustawienia > Powiadomienia, aby uzyskać więcej szczegółów." + }, + "sendErrorMessage": { + "summary": "Nie udało się wysłać wiadomości.", + "detail": "Sprawdź Ustawienia > Powiadomienia, aby uzyskać więcej szczegółów. {error}" + }, + "contextSizeError": { + "summary": "Wiadomość przekracza limit kontekstu", + "detail": "Twoja wiadomość wraz z wynikami wyszukiwania i kontekstem jest zbyt duża dla tego modelu. Spróbuj: zwiększyć rozmiar kontekstu w parametrach modelu, zmniejszyć liczbę wyników wyszukiwania, wyczyścić historię konwersacji, użyć modelu z większym kontekstem (16k+) lub skrócić instrukcje systemowe." + }, + "deleteConversation": "Usuń @:conversation.title", + "addNewConversation": "Dodaj nową @:conversation.title", + "newConversation": "Nowa @:conversation.title", + "treeControls": { + "title": "Sortowanie i widok", + "projectSort": { + "none": "Brak", + "name": "Nazwa", + "created": "Data utworzenia", + "ascending": "Rosnąco", + "descending": "Malejąco", + "projectsFirst": "Projekty na górze" + }, + "conversationSort": { + "none": "Brak", + "title": "Tytuł", + "created": "Data utworzenia", + "lastActivity": "Ostatnia aktywność", + "ascending": "Rosnąco", + "descending": "Malejąco" + }, + "priority": { + "none": "Brak priorytetu", + "pinned": "@:pinned na górze", + "bookmarked": "@:bookmarked na górze" + }, + "visibility": { + "label": "Widoczność", + "recents": { + "show": "Pokaż ostatnie i @:pinned", + "hide": "Ukryj ostatnie i @:pinned" + }, + "archive": { + "show": "Pokaż archiwum", + "hide": "Ukryj archiwum" + }, + "empty": { + "show": "Pokaż puste projekty", + "hide": "Ukryj puste projekty" + }, + "counts": { + "show": "Pokaż liczniki konwersacji", + "hide": "Ukryj liczniki konwersacji" + } + }, + "clear": "Resetuj" + }, + "promptPlaceHolder": { + "normal": { + "focused": "Naciśnij {trigger}, aby uzyskać szybkie polecenia LUB zacznij pisać...", + "unfocused": "Naciśnij /, aby skupić się tutaj i zacząć pisać" + } + }, + "deleteConfirmation": { + "header": "Usuń @:conversation.title", + "message": "Czy na pewno chcesz usunąć wybraną konwersację i wszystkie jej podziały? | Czy na pewno chcesz usunąć wybrane konwersacje i wszystkie ich podziały?", + "rejectLabel": "Anuluj", + "acceptLabel": "Usuń", + "successMessage": { + "detail": "@:conversation.title usunięta" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:conversation.title" + } + }, + "convertToChat": { + "title": "Konwertuj na czat", + "successMessage": { + "detail": "@:conversation.title przekonwertowana na czat" + }, + "errorMessage": { + "detail": "Nie udało się przekonwertować konwersacji na czat" + } + }, + "convertToForgeCanvas": { + "title": "Konwertuj na @:forge.forgeCanvas", + "successMessage": { + "detail": "@:conversation.title przekonwertowana na @:forge.forgeCanvas" + }, + "errorMessage": { + "detail": "Nie udało się przekonwertować konwersacji na @:forge.forgeCanvas" + } + }, + "cloneAncestorsSuccess": { + "detail": "Wiadomości sklonowane do nowego podziału pomyślnie" + }, + "cloneAncestorsError": { + "detail": "Nie udało się sklonować wiadomości do nowego podziału" + }, + "cloneAncestorsToNewConversationSuccess": { + "detail": "Wiadomości sklonowane do nowej konwersacji pomyślnie" + }, + "cloneAncestorsToNewConversationError": { + "detail": "Nie udało się sklonować wiadomości do nowej konwersacji" + }, + "archive": { + "groupLabel": "Archiwum", + "orphanProject": "Osierocona konwersacja", + "bannerMessage": "Ta konwersacja jest zarchiwizowana. Przywróć ją, aby kontynuować dyskusję.", + "bannerHint": "Wysłanie nowej wiadomości automatycznie przywróci konwersację.", + "unarchiveAction": "Przywróć z archiwum", + "autoUnarchivedToast": "Konwersacja automatycznie przywrócona z archiwum.", + "archivedToast": "Zarchiwizowano {count} konwersację | Zarchiwizowano {count} konwersacje", + "unarchivedToast": "Przywrócono {count} konwersację | Przywrócono {count} konwersacje", + "archiveSingle": "Archiwizuj", + "unarchiveSingle": "Przywróć z archiwum", + "unload": "Zwolnij zarchiwizowane elementy", + "unloaded": "Zarchiwizowane elementy zwolnione", + "error": "Nie można zaktualizować statusu archiwum. Spróbuj ponownie.", + "archiveMultiple": "Archiwizuj {item}" + } + }, + "conversationActions": { + "exportConversation": { + "title": "Eksportuj @:conversation.title jako JSON", + "successMessage": "Pomyślnie wyeksportowano konwersacje jako JSON" + }, + "showAllSplits": "Pokaż wszystkie podziały", + "saveSplitsAs": "Zapisz podziały jako", + "newSingleSplitChat": "Nowy czat z jednym podziałem", + "splitPreset": "Preset podziału | Presety podziałów", + "splitPresetForm": { + "saveTitle": "Zapisz podziały jako @:preset", + "editTitle": "Edytuj @:preset podziału {presetName}", + "presetName": "Nazwa @:preset", + "presetOptions": "Opcje @:preset", + "presetOptionsPlaceholder": "@:select opcje @:preset", + "savePreset": "Zapisz @:preset", + "successMessage": { + "saveDetail": "Preset podziału dodany", + "editDetail": "Preset podziału zaktualizowany" + }, + "errorMessage": { + "saveDetail": "Nie udało się zapisać presetu podziału" + } + }, + "deleteSplitPresetConfirmation": { + "header": "Usuń preset podziału", + "message": "Czy na pewno chcesz usunąć {splitPresetName}?", + "successMessage": { + "detail": "Preset podziału usunięty" + } + }, + "compactMode": "Tryb kompaktowy", + "enableCompactMode": "@:enable @:conversationActions.compactMode", + "disableCompactMode": "@:disable @:conversationActions.compactMode", + "splitWidths": { + "title": "Szerokości podziałów", + "slim": "Wąski", + "balanced": "Zrównoważony", + "roomy": "Przestronny", + "spacious": "Obszerny", + "full": "Pełny" + } + }, + "responseConfiguration": { + "title": "Konfiguracja odpowiedzi", + "selectPresetPlaceholder": "Wybierz preset...", + "saveAsPreset": "Zapisz jako preset", + "commonSettings": { + "title": "Ustawienia ogólne" + }, + "advancedParameters": { + "title": "Parametry zaawansowane", + "description": "Obiekt JSON dla zaawansowanych parametrów modelu", + "placeholder": "" + }, + "providerOptions": { + "title": "Opcje dostawcy", + "description": "Konfiguracja specyficzna dla dostawcy", + "placeholder": "" + }, + "thinkingConfig": { + "title": "Konfiguracja rozumowania", + "description": "Konfiguracja rozszerzonego rozumowania", + "notice": "Dostawca może ignorować lub częściowo honorować ustawienia rozumowania" + }, + "customParameters": { + "title": "Parametry niestandardowe", + "helper": "Dostawca może ignorować lub częściowo honorować te parametry", + "keyPlaceholder": "custom_param", + "valuePlaceholder": "wartość", + "deleteConfirm": { + "title": "Usuń parametr", + "message": "Usunąć niestandardowy parametr \"{param}\"?" + }, + "errors": { + "missingKey": "Klucz parametru jest wymagany.", + "reserved": "Ten klucz jest zarezerwowany dla wbudowanych parametrów.", + "duplicate": "Parametr z tym kluczem już istnieje." + } + }, + "json": { + "invalid": "Nieprawidłowy JSON" + }, + "tooltips": { + "constraintMode": "Tryb ograniczeń jest włączony", + "freeformMode": "Tryb dowolny jest włączony – brak limitów min/maks" + }, + "expandOtherOptions": "Rozwiń pozostałe opcje", + "collapseOtherOptions": "Zwiń pozostałe opcje", + "parameters": { + "temperature": { + "label": "Temperatura", + "helper": "Kontroluje losowość (0=skupiony, 2=kreatywny)" + }, + "topP": { + "label": "Top P", + "helper": "Masa prawdopodobieństwa zachowywana podczas próbkowania jądrowego" + }, + "topK": { + "label": "Top K", + "helper": "Ogranicz wybór tokenów do K najlepszych tokenów" + }, + "maxOutputTokens": { + "label": "Maks. tokeny wyjściowe", + "helper": "Maksymalna liczba tokenów dla odpowiedzi", + "helperWithLimit": "Maksymalna liczba tokenów dla odpowiedzi (limit {0})" + }, + "numCtx": { + "label": "Rozmiar okna kontekstu", + "helper": "Maksymalna liczba tokenów akceptowanych w prompcie", + "helperWithLimit": "Maksymalna liczba tokenów akceptowanych w prompcie (limit {0})", + "llamaCppHint": "Ustaw 0, aby użyć maksymalnego rozmiaru kontekstu modelu" + }, + "presencePenalty": { + "label": "Kara za obecność", + "helper": "Penalizuje nowe tokeny na podstawie ich obecności w dotychczasowym tekście" + }, + "frequencyPenalty": { + "label": "Kara za częstotliwość", + "helper": "Penalizuje tokeny na podstawie częstotliwości ich występowania w dotychczasowym tekście" + }, + "repeatPenalty": { + "label": "Kara za powtórzenia", + "helper": "Zniechęca do powtarzania fraz" + }, + "repeatLastN": { + "label": "Powtórz ostatnie N", + "helper": "Okno kontekstu do stosowania kary za powtórzenia" + }, + "minP": { + "label": "Min P", + "helper": "Minimalne skumulowane prawdopodobieństwo przy wyborze tokenu" + }, + "mirostat": { + "label": "Mirostat", + "helper": "Dynamicznie stabilizuje perpleksję", + "options": { + "off": "Wyłączony", + "v1": "Mirostat 1.0", + "v2": "Mirostat 2.0" + } + }, + "mirostatTau": { + "label": "Mirostat Tau", + "helper": "Docelowy poziom zaskoczenia (niższy = bezpieczniejszy)" + }, + "mirostatEta": { + "label": "Mirostat Eta", + "helper": "Współczynnik uczenia dla regulacji Mirostat" + }, + "numGpu": { + "label": "Warstwy GPU", + "helper": "Liczba warstw do przeniesienia na GPU" + }, + "numThread": { + "label": "Wątki", + "helper": "Wątki CPU używane do generowania" + } + } + }, + "modelParams": { + "params": "Parametry", + "title": "Parametry modelu", + "advancedParams": "Parametry zaawansowane", + "providerOptions": "Opcje dostawcy", + "maxTokens": "Maks. tokeny wyjściowe (starszy)", + "maxOutputTokens": "Maks. tokeny wyjściowe", + "temperature": "Temperatura", + "topP": "Top P", + "presencePenalty": "Kara za obecność", + "frequencyPenalty": "Kara za częstotliwość", + "numCtx": "Rozmiar okna kontekstu", + "numGpu": "Liczba warstw GPU", + "selectPlaceholder": "@:select lub wpisz parametr", + "selectPresetPlaceholder": "@:select @:preset", + "saveAsPreset": "Zapisz jako @:preset", + "addParameter": "Dodaj nowy parametr", + "extraParams": "Dodatkowe @:params", + "applyAndSaveAsDefault": "Zastosuj i zapisz jako domyślne dla modelu", + "savePresetForm": { + "title": "Zapisz @:modelParams.params jako preset", + "errorMessage": { + "detail": "Nie udało się zapisać presetu parametrów." + }, + "successMessage": { + "detail": "Preset @:modelParams.params zapisany." + } + }, + "deletePresetConfirm": { + "title": "Usuń @:preset", + "message": "Czy na pewno chcesz usunąć {presetName}?", + "errorMessage": { + "detail": "Nie udało się usunąć presetu parametrów." + }, + "successMessage": { + "detail": "Preset @:modelParams.params usunięty." + } + }, + "thinkingEffort": { + "label": "Wysiłek rozumowania", + "light": "Myśl pobieżnie", + "moderate": "Myśl umiarkowanie", + "deep": "Myśl głęboko", + "default": "Domyślny", + "none": "Brak", + "dynamic": "Dynamiczny", + "exclude": "Wyklucz" + } + }, + "chatSplitActions": { + "title": "Opcje podziału", + "addSplitChat": "Dodaj podział czatu", + "hideSplit": "Ukryj podział", + "copySplitToNewConversation": "Kopiuj podział do nowej konwersacji", + "moveSplitToNewConversation": "Przenieś podział do nowej konwersacji", + "deleteSplit": "Usuń podział", + "removeSplit": "Usuń podział", + "splitRemoved": "Podział usunięty", + "splitReset": "Podział zresetowany", + "copySplitToNewConversationSuccess": { + "detail": "Podział skopiowany do nowej konwersacji" + }, + "moveSplitToNewConversationSuccess": { + "detail": "Podział przeniesiony do nowej konwersacji" + }, + "copySplitToNewConversationError": { + "detail": "Nie udało się skopiować podziału do nowej konwersacji" + }, + "moveSplitToNewConversationError": { + "detail": "Nie udało się przenieść podziału do nowej konwersacji" + }, + "exportOrCopyChat": { + "exportChat": "Eksportuj czat", + "copyChat": "Kopiuj czat", + "activeBranchAsJson": "Aktywna gałąź jako JSON", + "activeBranchAsMarkdown": "Aktywna gałąź jako Markdown", + "allBranchesAsJson": "Wszystkie gałęzie jako JSON", + "successMessage": "Pomyślnie {action} czat jako {format}", + "action": { + "export": "wyeksportowano", + "copy": "skopiowano" + } + }, + "showAllHiddenMessages": { + "title": "Pokaż wszystkie ukryte wiadomości", + "successMessage": { + "detail": "Wszystkie ukryte wiadomości są teraz widoczne" + } + }, + "deleteConfirmation": { + "header": "Usuń podział", + "message": "Czy na pewno chcesz usunąć ten podział?", + "rejectLabel": "@:cancel", + "acceptLabel": "@:delete" + } + }, + "message": { + "title": "Wiadomość | Wiadomości", + "currentMessageAndDescendants": "Wiadomość i potomne", + "sendOnEnter": "Wyślij przy Enter", + "sendModifier": { + "label": "Modyfikator wysyłania", + "none": "Brak", + "shift": "Shift", + "alt": "Alt", + "ctrl": "Ctrl", + "meta": "Meta" + }, + "resendUserMessage": "Wyślij ponownie wiadomość użytkownika", + "sendAsAssistantMessage": "Wyślij jako wiadomość @:assistant", + "sendAsAssistantMessageHelp": "Wysyłanie wiadomości jako \"Asystent\" pozwala kształtować rozmowę poprzez samodzielne dodawanie odpowiedzi AI. AI będzie kontynuować tak, jakby samo napisało tę wiadomość. Przydatne do dostarczania kontekstu lub kierowania odpowiedziami.", + "sentAsAssistantBadge": "Wysłano jako wiadomość asystenta", + "manuallyEdited": "Ręcznie edytowano", + "stopGeneration": "Zatrzymaj", + "renderingActions": { + "bookmark": "@:bookmark wiadomość | @:bookmark wiadomości", + "removeBookmark": "Usuń @:bookmark | Usuń zakładki", + "deleteMessage": "Usuń wiadomość | Usuń wiadomości", + "removeMessage": "Usuń wiadomość", + "regenerateAssistantMessage": "Wygeneruj ponownie odpowiedź asystenta jako nową gałąź", + "continueGeneration": "@:continue generowanie", + "useAsPromptInNewSplit": "Użyj jako prompt w nowym podziale", + "foldUp": "Zwiń wiadomości powyżej", + "unfold": "Rozwiń wiadomości powyżej", + "cloneAncestorsToNewSplit": "Klonuj z przodkami do nowego podziału", + "cloneAncestorsToNewConversation": "Klonuj z przodkami do nowej konwersacji", + "extraActions": "Więcej działań" + }, + "noModelSelectedErrorMessage": { + "detail": "Nie wybrano modelu. Wybierz model, aby wysłać wiadomość" + }, + "currentMessageDeleteConfirmation": { + "header": "Usuń wiadomość", + "message": "Czy na pewno chcesz usunąć tę wiadomość?" + }, + "currentMessageAndDescendantsDeleteConfirmation": { + "header": "Usuń wiadomość i jej potomne", + "message": "Czy na pewno chcesz usunąć tę wiadomość i wszystkie jej potomne?" + } + }, + "slashCommands": { + "title": "Szybkie polecenia", + "noMatches": "Brak pasujących poleceń", + "hint": "Wpisz \\ następnie polecenie lub alias", + "executed": { + "regenerate": "Trwa ponowne generowanie wiadomości...", + "shield": "Zastosowano tarczę kontekstu", + "compress": "Kompresowanie z tarczą...", + "bookmark": "Wiadomość @:bookmarked", + "copy": "Skopiowano do schowka", + "continue": "Kontynuowanie generowania...", + "resend": "Ponowne wysyłanie wiadomości..." + } + }, + "shiftcutMode": { + "title": "Shiftcuts", + "description": "Włącz lub wyłącz funkcję Shiftcuts. W przeciwieństwie do standardowych skrótów klawiaturowych, Shiftcuts są wyzwalane przez dwukrotne naciśnięcie klawisza Shift, a następnie naciśnięcie innego klawisza w celu wykonania akcji; w tym: 't', aby otworzyć nowy podział czatu, 'e', aby otworzyć selektor środowiska, '1', aby przełączyć pasek boczny i 'm', aby otworzyć minimapę." + }, + "urlEndpoint": "Punkt końcowy URL", + "giveUniqueNamePlaceholder": "Podaj unikalną nazwę", + "duplicateName": "Zduplikowana lub nieprawidłowa nazwa {item}. Wprowadź unikalną nazwę.", + "manageData": { + "firstBackupReminder": "Nie wykonałeś kopii zapasowej danych. Czy chcesz wyeksportować dane w celu ich zachowania?", + "scheduledBackupReminder": "Minęło 24 godziny od ostatniej kopii zapasowej. Czy chcesz wyeksportować dane w celu ich zachowania?", + "nonPersistentStorage": "Pamięć masowa może zostać wyczyszczona przez przeglądarkę pod presją zasobów. Zalecamy regularne tworzenie kopii zapasowych danych.", + "exportData": "Eksportuj @:data", + "clearData": "Wyczyść @:data", + "restoreData": "Przywróć @:data", + "dragAndDropExportedData": "Przeciągnij i upuść kopię zapasową danych, aby przywrócić.", + "restoreDataWarning": "Przywracanie z pliku kopii zapasowej zastąpi wszystkie istniejące dane. Zalecamy najpierw wyeksportować kopię zapasową.", + "exportErrorMessage": { + "detail": "Nie udało się wyeksportować danych" + }, + "backupData": "Utwórz kopię zapasową @:data", + "exportSuccessMessage": { + "detail": "@:data wyeksportowane" + }, + "clearErrorMessage": { + "detail": "Nie udało się wyczyścić danych" + }, + "clearSuccessMessage": { + "detail": "@:data zostały wyczyszczone" + }, + "confirmationActionPlaceholder": "Wpisz tutaj '{string}'", + "proceedWithConfirmationAction": "Aby kontynuować, wpisz poniżej '{string}'", + "invalidConfirmationString": { + "summary": "@:warning", + "detail": "Nieprawidłowe potwierdzenie. Wpisz '{string}', aby kontynuować." + }, + "clearDataConfirmation": { + "header": "Wyczyść @:data", + "message": "Czy na pewno chcesz wyczyścić wszystkie dane? Tej operacji nie można cofnąć.", + "rejectLabel": "Anuluj", + "acceptLabel": "Wyczyść" + }, + "restoreDataConfirmation": { + "fileNotSelectedWarning": { + "summary": "@:warning", + "message": "Wybierz plik do przywrócenia" + }, + "header": "Przywróć @:data", + "message": "Czy na pewno chcesz przywrócić wszystkie dane? Ta operacja zastąpi wszystkie istniejące dane i nie można jej cofnąć. Zalecamy najpierw wyeksportować kopię zapasową.", + "rejectLabel": "Anuluj", + "acceptLabel": "Przywróć" + }, + "importDataSuccessMessage": { + "detail": "@:data zaimportowane" + }, + "importDataErrorMessage": { + "detail": "Nie udało się zaimportować @:data" + } + }, + "setupItem": { + "label": "Konfiguruj {item}", + "success": "Konfiguracja {item} zakończona", + "failure": "Nie udało się skonfigurować {item}" + }, + "onboard": { + "greeting": "Witaj w Msty Studio!", + "getStarted": "Potrzebujemy co najmniej jednego dostawcy modeli, aby zacząć.", + "desktop": { + "greeting": "Witaj w Msty!", + "getStarted": "Jak chcesz zacząć?", + "customLocation": { + "title": "Masz modele Ollama/Msty?", + "titleMLX": "Masz modele MLX?", + "titleLlamaCpp": "Masz modele LLaMA.cpp?", + "description": "Możesz bezpośrednio używać istniejących modeli Ollama lub Msty lub podać niestandardową lokalizację. Uwaga: nadal będziemy używać własnej usługi do uruchamiania tych modeli.", + "descriptionMLX": "Jeśli nie masz jeszcze żadnych modeli MLX, możesz podać niestandardową lokalizację, w której chcesz je przechowywać.", + "descriptionMLXWithSwama": "Znaleźliśmy modele MLX w pamięci podręcznej Hugging Face Hub! Możesz ich używać bezpośrednio lub podać niestandardową lokalizację.", + "descriptionLlamaCpp": "Podaj niestandardową lokalizację, w której chcesz przechowywać modele GGUF dla LLaMA.cpp.", + "noLocationSet": "Nie ustawiono lokalizacji", + "setYourOwn": "Ustaw własną", + "notAvailableForMLX": "Niestandardowe lokalizacje modeli nie są dostępne dla MLX", + "placeholder": "Wprowadź niestandardową ścieżkę do modeli" + }, + "setupLocalAI": { + "description": "Aby zacząć, zostanie pobrany {modelName}. Możesz wybrać inny model.", + "pros": { + "item1": "Używaj modeli takich jak DeepSeek R1, Meta Llama4, Microsoft Phi4, IBM Granite, Google Gemma itp.", + "item2": "Używaj offline i zachowaj prywatność swoich @:data", + "item3": "Modele są bezpłatne do pobrania i użycia", + "item4": "Instaluj i używaj wyspecjalizowanych modeli" + }, + "cons": { + "item1": "Wymaga dodatkowego miejsca na dysku i pamięci" + }, + "successMessage": { + "summary": "Gotowe!", + "detail": "Możesz teraz zacząć rozmawiać ze swoimi modelami prywatnie i bezpiecznie." + }, + "errorMessage": { + "summary": "Błąd konfiguracji @:localAIService", + "detail": "Nie udało się skonfigurować @:localAIService{'.'} Sprawdź dzienniki, aby uzyskać więcej szczegółów. {errorMessage}", + "epermDetail": "Wystąpił problem z uprawnieniami podczas konfiguracji lokalnej AI. Możesz ponownie uruchomić aplikację jako administrator (niezalecane) lub rozważyć zainstalowanie aplikacji tylko dla jednego użytkownika (zalecane).", + "abortDetail": "{errorMessage} Rozważ zainstalowanie lokalnej AI z plików archiwum, jeśli nadal pojawia się ten błąd. Odwiedź https://docs.msty.studio/getting-started/onboarding" + } + }, + "setupMLX": { + "errorMessage": { + "summary": "Błąd konfiguracji usługi MLX", + "detail": "Nie udało się skonfigurować usługi MLX. Sprawdź dzienniki, aby uzyskać więcej szczegółów. {errorMessage}" + }, + "description": "Aby zacząć, zostanie pobrany {modelName}. MLX to zoptymalizowany framework Apple dla procesorów Apple Silicon.", + "experimentalInfo": "MLX jest obecnie w trybie eksperymentalnym. Może mieć pewne ograniczenia i niedociągnięcia. Prosimy zgłaszać wszelkie problemy do zespołu.", + "pros": { + "item1": "Zoptymalizowany dla Apple Silicon (M1, M2, M3, M4)", + "item2": "Efektywne wykorzystanie pamięci dzięki ujednoliconej architekturze pamięci", + "item3": "Obsługuje modele MLX, SafeTensors i GGUF", + "item4": "Natywna wydajność na macOS" + }, + "cons": { + "item1": "Dostępny tylko na Macach z Apple Silicon", + "item2": "Mniejszy wybór modeli w porównaniu do Ollama" + }, + "successMessage": { + "summary": "Konfiguracja MLX zakończona!", + "detail": "Możesz teraz używać modeli MLX z optymalną wydajnością na swoim Macu." + }, + "progress": { + "checkingCompatibility": "Sprawdzanie zgodności systemu...", + "downloadingBinary": "Pobieranie serwera MLX...", + "startingService": "Uruchamianie usługi MLX...", + "settingUp": "Konfigurowanie MLX...", + "downloadProgress": "Pobieranie modelu: {progress}%" + } + }, + "setupLlamaCpp": { + "experimentalInfo": "Obsługa LLaMA.cpp jest eksperymentalna i aktywnie rozwijana", + "errorMessage": { + "summary": "Błąd konfiguracji usługi LLaMA.cpp", + "detail": "Nie udało się skonfigurować usługi LLaMA.cpp. Sprawdź dzienniki, aby uzyskać więcej szczegółów. {errorMessage}" + }, + "description": "Aby zacząć, zostanie pobrany {modelName}. LLaMA.cpp zapewnia wydajne wieloplatformowe wnioskowanie AI.", + "pros": { + "item1": "Działa na Windows, macOS i Linux", + "item2": "Obsługuje przyspieszenie zarówno CPU, jak i GPU", + "item3": "Efektywne wykorzystanie pamięci i szybkie wnioskowanie", + "item4": "Kompatybilny z formatem modelu GGUF" + }, + "cons": { + "item1": "Wymaga aplikacji desktopowej", + "item2": "Wydajność zależy od konfiguracji sprzętu" + }, + "successMessage": { + "summary": "Konfiguracja LLaMA.cpp zakończona!", + "detail": "Możesz teraz używać modeli LLaMA.cpp z wydajną pracą w swoim systemie." + }, + "progress": { + "checkingCompatibility": "Sprawdzanie zgodności systemu...", + "downloadingBinary": "Pobieranie serwera LLaMA.cpp...", + "startingService": "Uruchamianie usługi LLaMA.cpp...", + "settingUp": "Konfigurowanie LLaMA.cpp...", + "downloadProgress": "Pobieranie: {progress}%" + } + }, + "addRemoteModelsProvider": { + "description": "W przypadku większości dostawców online konieczne jest uzyskanie klucza API ze strony dostawcy. {findYourKey}", + "findYourKey": "Znajdź swój klucz API", + "pros": { + "item1": "Używaj OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Ollama, Remote Msty itp.", + "item2": "Zacznij bez pobierania modeli", + "item3": "Niektórzy dostawcy oferują dodatkowe funkcje, takie jak generowanie obrazów, wyszukiwanie w sieci itp." + }, + "cons": { + "item1": "Wymaga połączenia z internetem do czatowania", + "item2": "Mogą obowiązywać opłaty u dostawcy" + } + } + }, + "modelsAvailableCount": "{count} model dostępny | {count} modele dostępne", + "modelsAddedCount": "{count} model dodany | {count} modele dodane", + "forgetThisProvider": "Zapomnij o tym dostawcy", + "submitAndContinue": "Zaczynamy!", + "getSidecar": "Brak @:localAI? Pobierz @:remoteToolsConnector.title dla konfiguracji jednym kliknięciem", + "completedWithProvider": { + "summary": "Gotowe!", + "detail": "Jesteś teraz gotowy do rozmowy z jednym z modeli od {providerName}." + }, + "continueSetup": "Kontynuuj konfigurację {service}" + }, + "login": { + "enterEmail": "Wprowadź swój adres e-mail", + "errorMessage": "Nieprawidłowy e-mail lub coś poszło nie tak. Spróbuj ponownie.", + "successMessage": "Link do logowania wysłany na adres { email }" + }, + "modelHub": { + "title": "Centrum modeli", + "languageModelsProviders": { + "title": "Dostawcy modeli", + "subtitle": "Uzyskaj dostęp do modeli z chmury lub zdalnych serwerów.", + "autoFetchModels": "Lista modeli jest pobierana automatycznie", + "addLanguageModelsProvider": "Dodaj dostawcę", + "prosAndCons": { + "pros": [ + "Use OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, Remote Msty, Remote Ollama, etc.", + "Get started quickly", + "No download required" + ], + "cons": [ + "Requires internet connection to chat", + "Vendor charges may apply" + ] + }, + "deleteConfirmation": { + "header": "Usuń dostawcę", + "message": "Czy na pewno chcesz usunąć {providerName}?", + "successMessage": { + "detail": "Dostawca usunięty" + }, + "errorMessage": { + "summary": "Błąd", + "detail": "Nie udało się usunąć dostawcy" + } + }, + "syncProviderWithWorkspaceForm": { + "titleNew": "Kopiuj do innego obszaru roboczego", + "titleUpdate": "Kopiuj/synchronizuj do innych obszarów roboczych", + "descriptionNew": "Skopiuj tego dostawcę do jednego lub więcej obszarów roboczych.", + "descriptionUpdate": "Synchronizuj tego dostawcę z jednym lub więcej obszarami roboczymi. Jeśli ten dostawca był wcześniej kopiowany, zostanie zaktualizowany. Jeśli nie, zostanie dodany.", + "selectWorkspaces": "@:select obszary robocze", + "availableWorkspaces": "Dostępne obszary robocze" + }, + "providerForm": { + "addTitle": "Dodaj dostawcę", + "updateTitle": "Zaktualizuj dostawcę", + "newHeader": "Nowy dostawca modeli językowych", + "editHeader": "Edytuj dostawcę modeli językowych", + "modelsProvider": "Dostawca modeli", + "modelId": "ID modelu", + "modelName": "Nazwa modelu", + "providerName": "Nazwa dostawcy", + "providerUrl": "URL dostawcy", + "providerToken": "Token dostawcy", + "saveProvider": "Zapisz dostawcę", + "selectProvider": "@:select dostawcę", + "namePlaceholder": "Podaj nazwę (opcjonalnie)", + "selectModels": "@:select modele", + "availableModels": "Dostępne modele", + "addCustomModel": "Dodaj niestandardowy model", + "inferenceEndpoint": "Punkt końcowy wnioskowania (musi zaczynać się od http:// lub https://)", + "baseURL": "Bazowy URL", + "resourceName": "Nazwa zasobu (zostanie zignorowana jeśli ustawiono bazowy URL)", + "apiVersion": "Wersja API", + "region": "Region AWS", + "accessKeyId": "ID klucza dostępu", + "secretAccessKey": "Tajny klucz dostępu", + "sessionToken": "Token sesji (opcjonalnie)", + "notAllModelsCompatible": "Nie wszystkie modele zostały przetestowane z Msty i może nie obsługiwać wszystkich modeli dostępnych u dostawcy.", + "enterAndManuallyFetchModels": "Kliknij 'Pobierz modele', aby pobrać dostępne modele od dostawcy (może być wymagany klucz API) lub ręcznie dodaj model poniżej.", + "enterAndFetchModels": "Wprowadź klucz API, aby spróbować pobrać wszystkie dostępne modele od {providerName}, lub ręcznie dodaj niestandardowy model.", + "fetchModels": "Pobierz modele", + "modelsFilter": { + "all": "Wszystkie modele", + "selected": "Wybrane", + "unselected": "Niewybrane" + }, + "purposeFilter": { + "all": "Wszystkie cele" + }, + "searchInModels": "Szukaj modeli...", + "lmsCorsNote": "Aby pracować z Msty, musisz mieć włączone CORS w LM Studio", + "openAICompatibleNote": "Większość kompatybilnych z OpenAI punktów końcowych dostawców wymaga prefiksu /v1, np. https://example.com/v1. Jeśli napotykasz problemy, spróbuj dodać /v1 na końcu adresu.", + "successMessage": { + "addDetail": "Dostawca modeli {providerName} dodany", + "updateDetail": "Dostawca modeli {providerName} zaktualizowany" + }, + "errorMessage": { + "addDetail": "Nie udało się dodać dostawcy", + "updateDetail": "Nie udało się zaktualizować dostawcy" + }, + "bedrockLongTermCredsWarning": "Używanie długoterminowych poświadczeń dla Amazon Bedrock nie jest zalecane.", + "awsRegionExample": "np. us-east-1" + }, + "toggleVisibility": { + "errorMessage": { + "detail": "Nie udało się zaktualizować widoczności dostawcy" + }, + "successMessage": { + "detail": "{provider} jest teraz {visibility}" + } + }, + "modelsCount": "Liczba modeli", + "showInSelector": "Pokaż w selektorze modeli", + "availableModels": "Dostępne modele", + "noModels": "Brak dostępnych modeli dla tego dostawcy", + "modelUpdated": "Model zaktualizowany pomyślnie", + "modelUpdateError": "Nie udało się zaktualizować modelu", + "manageProviders": "Zarządzaj", + "addNewProvider": "Dodaj nowy" + }, + "sidecarLocalAIProxyEndpoint": { + "title": "@:remoteToolsConnector.title Proxy @:localAI Punkt końcowy", + "description": "Upewnij się, że @:remoteToolsConnector.title jest uruchomiony i dostępny pod podanym adresem URL przez tunelowanie. Skopiuj i wklej pełne informacje o połączeniu tunelowym wraz z tokenem i adresem URL." + }, + "mstyRemoteEndpoint": { + "description": "Upewnij się, że Msty Desktop jest uruchomiony z włączonymi połączeniami zdalnymi.", + "learnMore": "Dowiedz się, jak włączyć połączenia zdalne" + }, + "mstyLocalEndpoint": { + "description": "Ta usługa działa zawsze, gdy aplikacja jest uruchomiona. Może być konieczna zmiana numeru portu, jeśli port Local AI został zmieniony. W przeciwnym razie najlepiej pozostawić go bez zmian." + }, + "ollamaRemoteEndpoint": { + "description": "Podczas korzystania z własnego Ollama upewnij się, że Ollama jest uruchomiona i dostępna pod podanym adresem URL. Musisz dodać https://msty.studio do dozwolonych źródeł podczas uruchamiania usługi Ollama.", + "placeholder": "np. http://localhost:11434 lub https://ollama.com" + }, + "mlxEndpoint": { + "description": "Ten dostawca służy do uruchamiania modeli MLX na komputerach Mac z procesorami Apple Silicon. Punkt końcowy jest automatycznie korygowany, aby pasował do lokalnej konfiguracji MLX. W razie potrzeby można go tymczasowo zmienić." + }, + "llamacppEndpoint": { + "description": "Ten dostawca służy do uruchamiania modeli LLaMA.cpp. Najprawdopodobniej nie będziesz musiał zmieniać domyślnego punktu końcowego. Jeśli jednak to zrobisz, upewnij się, że usługa LLaMA.cpp jest uruchomiona i dostępna pod podanym adresem URL." + }, + "localModels": { + "title": "@:localAI Modele", + "noCompatibleProviders": "Brak dostępnych kompatybilnych dostawców do zarządzania modelami lokalnymi. Dodaj co najmniej jednego dostawcę typu Msty Remote lub Ollama Remote, aby korzystać z modeli lokalnych.", + "activeDownloads": "{count} aktywne pobieranie | {count} aktywne pobierania", + "featured": { + "title": "Wyróżnione modele" + }, + "installed": { + "title": "Zainstalowane modele" + }, + "customOllamaModelPlaceholder": "Lub zainstaluj model według tagu, np. {example}", + "alreadyInstalledErrorMessage": { + "summary": "Już zainstalowano", + "detail": "Model {modelName} jest już zainstalowany" + }, + "abortInstalling": { + "title": "Przerwij instalację {modelName}", + "successMessage": { + "detail": "Instalacja {modelName} została przerwana" + } + }, + "deleteConfirmation": { + "header": "Odinstaluj model", + "message": "Czy na pewno chcesz odinstalować {modelName}?", + "successMessage": { + "detail": "Model usunięty" + }, + "errorMessage": { + "detail": "Nie udało się odinstalować modelu" + } + }, + "modelInstall": { + "successMessage": { + "detail": "Model {modelName} jest gotowy do użycia" + }, + "errorMessage": { + "detail": "Nie udało się zainstalować modelu {modelName}", + "newerVersion": "{modelName} wymaga nowszej wersji Local AI. Zaktualizuj do najnowszej wersji w Ustawienia > Local AI > Wersja usługi > ... > Wymuś aktualizację usługi Local AI" + } + }, + "ollamaModels": { + "title": "Modele Ollama" + }, + "huggingfaceModels": { + "title": "Modele Hugging Face", + "searchPlaceholder": "Szukaj według autora, modelu lub wklej adres URL repozytorium Hugging Face", + "searchPlaceholderAlt": "Znajdź modele według nazwy, autora lub adresu URL. Lub zacznij od jednej z poniższych rodzin modeli.", + "searching": "Wyszukiwanie modeli..." + }, + "ggufImport": { + "tabTitle": "Importuj GGUF", + "title": "Importuj model GGUF", + "description": "Wybierz plik modelu GGUF z systemu plików, aby zaimportować go do {providerLabel}.", + "activeImports": "Aktywne importy", + "noFileSelected": "Nie wybrano pliku", + "selectGgufFilePrompt": "Kliknij poniższy przycisk, aby wybrać plik GGUF", + "dragDropOrClick": "Przeciągnij i upuść plik GGUF tutaj lub kliknij poniższy przycisk", + "dropFileHere": "Upuść plik tutaj", + "releaseToUpload": "Zwolnij, aby wybrać plik", + "selectGgufFile": "Wybierz plik GGUF", + "chooseDifferentFile": "Wybierz inny plik", + "importModel": "Importuj model", + "modelName": "Nazwa modelu", + "modelNamePlaceholder": "np. mój-niestandardowy-model", + "modelNameDescription": "Ta nazwa będzie używana do odwoływania się do modelu w rozmowach.", + "removeFile": "Usuń plik", + "dismissJob": "Odrzuć", + "useSymlink": "Użyj dowiązania symbolicznego (oszczędza miejsce na dysku)", + "symlinkDescription": "Tworzy dowiązanie symboliczne zamiast kopiować plik. Dostępne tylko dla lokalnych serwerów.", + "process": { + "calculatingDigest": "Obliczanie skrótu pliku", + "uploadingFile": "Przesyłanie pliku", + "creatingSymlink": "Tworzenie dowiązania symbolicznego", + "creatingModel": "Tworzenie modelu" + }, + "success": "Model {modelName} zaimportowany pomyślnie", + "labels": { + "name": "Nazwa", + "file": "Plik", + "status": "Status", + "error": "Błąd" + }, + "status": { + "uploading": "Przesyłanie", + "creating": "Tworzenie modelu", + "completed": "Zakończono", + "error": "Błąd", + "cancelled": "Anulowano" + }, + "errors": { + "invalidFile": "Wybierz prawidłowy plik GGUF" + } + }, + "safetensorsImport": { + "tabTitle": "Importuj Safetensors", + "title": "Importuj model Safetensors", + "description": "Wybierz katalog zawierający wagi modelu safetensors do zaimportowania do {providerLabel}. Obsługiwane architektury to Gemma, Llama, Mistral i Phi.", + "activeImports": "Aktywne importy", + "noDirectorySelected": "Nie wybrano katalogu", + "selectDirectoryHint": "Katalog powinien zawierać pliki safetensors oraz plik config.json", + "selectDirectoryTitle": "Wybierz katalog Safetensors", + "selectDirectory": "Wybierz katalog", + "chooseDifferentDirectory": "Wybierz inny katalog", + "importModel": "Importuj model", + "modelName": "Nazwa modelu", + "modelNamePlaceholder": "np. mój-niestandardowy-model", + "modelNameDescription": "Ta nazwa będzie używana do odwoływania się do modelu w rozmowach.", + "removeDirectory": "Usuń katalog", + "process": { + "scanningDirectory": "Skanowanie katalogu", + "processingFile": "Przetwarzanie pliku {current} z {total}", + "creatingModel": "Tworzenie modelu z safetensors" + }, + "success": "Model {modelName} zaimportowany pomyślnie", + "labels": { + "name": "Nazwa", + "directory": "Katalog", + "status": "Status", + "error": "Błąd" + }, + "status": { + "uploading": "Przesyłanie plików", + "creating": "Tworzenie modelu", + "completed": "Zakończono", + "error": "Błąd", + "cancelled": "Anulowano" + }, + "filesSelected": "wybrane pliki", + "errors": { + "desktopOnly": "Import Safetensors jest dostępny tylko w aplikacji desktopowej", + "selectFailed": "Nie udało się wybrać katalogu", + "noValidFiles": "Nie znaleziono prawidłowych plików safetensors w wybranym katalogu" + } + } + }, + "llamacppModels": { + "title": "Modele LLaMA.cpp", + "activeDownloads": "{count} aktywne pobieranie LLaMA.cpp | {count} aktywne pobierania LLaMA.cpp", + "alreadyInstalledErrorMessage": { + "summary": "Już zainstalowano", + "detail": "Model LLaMA.cpp {modelName} jest już zainstalowany" + }, + "installSuccessMessage": { + "summary": "Model gotowy", + "detail": "Model LLaMA.cpp {modelName} jest gotowy do użycia" + }, + "installErrorMessage": { + "summary": "Instalacja nie powiodła się", + "detail": "Nie udało się zainstalować modelu LLaMA.cpp {modelName}" + }, + "modelInstall": { + "successMessage": { + "detail": "Model LLaMA.cpp {modelName} zainstalowany" + }, + "errorMessage": { + "detail": "Nie udało się zainstalować modelu LLaMA.cpp {modelName}" + }, + "abortedMessage": { + "detail": "Pobieranie modelu LLaMA.cpp {modelName} zostało przerwane" + } + }, + "abortInstallErrorMessage": { + "detail": "Nie udało się anulować pobierania modelu LLaMA.cpp" + }, + "abortInstallSuccessMessage": { + "detail": "Anulowano pobieranie modelu LLaMA.cpp {modelName}" + }, + "uninstallErrorMessage": { + "summary": "Odinstalowanie nie powiodło się", + "detail": "Nie udało się odinstalować modelu LLaMA.cpp {modelName}" + }, + "uninstallSuccessMessage": { + "summary": "Model usunięty", + "detail": "Odinstalowano model LLaMA.cpp {modelName}" + }, + "uninstallConfirmationMessage": { + "summary": "Odinstaluj model LLaMA.cpp", + "detail": "Czy na pewno chcesz odinstalować {modelName}?" + }, + "llamacppFeaturedModels": { + "title": "Wyróżnione modele LLaMA.cpp" + }, + "llamacppInstalledModels": { + "title": "Zainstalowane modele LLaMA.cpp" + }, + "llamacppCommunityModels": { + "title": "Modele społeczności LLaMA.cpp", + "description": "Przeglądaj, wyszukuj i instaluj modele GGUF bezpośrednio z Hugging Face do lokalnego folderu modeli LLaMA.cpp.", + "searchTitle": "Szukaj modeli społeczności LLaMA.cpp", + "searchPlaceholder": "Szukaj modeli LLaMA.cpp z Hugging Face", + "searchPlaceholderAlt": "Znajdź kompatybilne modele GGUF dla LLaMA.cpp lub wybierz jedną z wyróżnionych rodzin modeli poniżej.", + "searching": "Wyszukiwanie modeli LLaMA.cpp..." + } + }, + "mlxModels": { + "title": "Modele MLX", + "notAppleSilicon": "Modele MLX są obsługiwane tylko na komputerach Mac z procesorem Apple Silicon (M1, M2, M3, M4 itp.). Twoje urządzenie nie jest kompatybilne.", + "noCompatibleProviders": "Brak dostępnych kompatybilnych dostawców MLX. Dodaj co najmniej jednego dostawcę MLX, aby korzystać z modeli MLX.", + "activeDownloads": "{count} aktywne pobieranie MLX | {count} aktywne pobierania MLX", + "learnMore": "Dowiedz się więcej o MLX", + "featured": { + "title": "Wyróżnione modele MLX" + }, + "installed": { + "title": "Zainstalowane modele MLX" + }, + "alreadyInstalledErrorMessage": { + "summary": "Już zainstalowano", + "detail": "Model MLX {modelName} jest już zainstalowany" + }, + "deleteConfirmation": { + "header": "Odinstaluj model MLX", + "message": "Czy na pewno chcesz odinstalować {modelName}?", + "successMessage": { + "detail": "Model MLX usunięty" + }, + "errorMessage": { + "detail": "Nie udało się odinstalować modelu MLX" + } + }, + "modelInstall": { + "successMessage": { + "detail": "Model MLX {modelName} jest gotowy do użycia" + }, + "errorMessage": { + "detail": "Nie udało się zainstalować modelu MLX {modelName}" + }, + "abortedMessage": { + "detail": "Pobieranie modelu MLX {modelName} zostało przerwane" + } + }, + "mlxCommunityModels": { + "title": "Modele społeczności MLX", + "searchTitle": "Szukaj modeli społeczności MLX", + "searchPlaceholder": "Szukaj modeli MLX z HuggingFace mlx-community", + "searchPlaceholderAlt": "Znajdź zoptymalizowane modele MLX z HuggingFace. Lub zacznij od jednej z poniższych rodzin modeli.", + "searching": "Wyszukiwanie modeli MLX..." + } + } + }, + "stickyPrompt": { + "title": "Przypięty monit", + "disableStickyPrompt": "Wyłącz przypięty monit", + "editDialog": { + "title": "Edytuj przypięty monit", + "description": "Gdy monit jest 'przypięty', jest dodawany na początku każdej nowej wiadomości, ignorując poprzednie. Sprawia to, że rozmowa skupia się na jednym aktywnym kontekście. Monit systemowy jest zawsze uwzględniany w kontekście." + } + }, + "contextShield": { + "title": "@:context Tarcza", + "enableContextShield": "Włącz @:contextShield.title", + "enableContextShieldWithSplitsSync": "Włącz @:contextShield.title{'.'} Przytrzymaj Option/Alt, aby @:contextShield.title wszystkie zsynchronizowane podziały.", + "removeContextShield": "Usuń @:contextShield.title", + "removeContextShieldWithSplitsSync": "Wyłącz @:contextShield.title{'.'} Przytrzymaj Option/Alt, aby usunąć @:contextShield.title ze wszystkich zsynchronizowanych podziałów.", + "breakContext": "Przerwij @:context", + "customContext": "Niestandardowy @:context", + "generateContextSummary": "Generuj @:context @:summary", + "contextSummary": "@:context @:summary", + "editContextSummary": "Edytuj @:context @:summary", + "regenerateContextSummary": "Regeneruj @:context @:summary", + "clearContextSummary": "Wyczyść @:context @:summary", + "summaryDescriptionInfoHeader": "To podsumowanie jest generowane z kontekstu powyższych rozmów i jest uwzględniane w kontekście podczas generowania nowych wiadomości poniżej tej tarczy.", + "contextShieldWithSummary": "@:contextShield.title z @:summary" + }, + "data": "Dane", + "advancedConfigurations": "Zaawansowane konfiguracje", + "applicationInfo": { + "title": "Informacje o aplikacji", + "appVersion": { + "title": "Wersja aplikacji", + "description": "Najnowsze aktualizacje są sprawdzane okresowo i zostaniesz powiadomiony, gdy nowa aktualizacja będzie dostępna. Możesz też ręcznie sprawdzić dostępność aktualizacji, które zostaną automatycznie zainstalowane.", + "checkForUpdates": "Sprawdź i zastosuj aktualizacje", + "enableAutoUpdates": "Włącz automatyczne aktualizacje", + "disableAutoUpdates": "Wyłącz automatyczne aktualizacje", + "viewChangelog": "Zobacz dziennik zmian", + "checkingForUpdates": "Sprawdzanie aktualizacji...", + "errorCheckingUpdates": "Nie udało się sprawdzić aktualizacji", + "autoUpdatesEnabled": "Automatyczne aktualizacje włączone", + "autoUpdatesDisabled": "Automatyczne aktualizacje wyłączone", + "updateAvailable": "Dostępna nowa aktualizacja", + "updateDownloading": "Pobieranie aktualizacji...", + "noUpdatesAvailable": "Masz najnowszą wersję" + }, + "modelsInfo": { + "title": "Informacje o modelach", + "description": "Zaktualizuj metadane lokalnych modeli. Informacje te obejmują szczegóły dotyczące każdego modelu, ale nie same pliki modeli. Dotyczy to zarówno modeli lokalnych, jak i online.", + "fetchLatest": "Pobierz najnowsze informacje o modelach", + "updated": "Informacje o modelach zaktualizowane pomyślnie", + "errorUpdating": "Nie udało się zaktualizować informacji o modelach" + }, + "appSettings": { + "title": "Ustawienia aplikacji", + "description": "Przywrócenie domyślnych ustawień aplikacji może pomóc rozwiązać potencjalne problemy. Przywróci to domyślne preferencje użytkownika, takie jak wygląd i ścieżka modeli, ale nie usunie żadnych danych, w tym czatów ani pobranych/zaimportowanych modeli.", + "resetApp": "Resetuj ustawienia aplikacji", + "resetConfirm": { + "header": "Resetuj ustawienia aplikacji", + "message": "Czy na pewno chcesz zresetować wszystkie ustawienia aplikacji do wartości domyślnych? Przywróci to domyślne preferencje, ale nie usunie Twoich danych." + }, + "resetSuccess": "Ustawienia aplikacji zresetowane pomyślnie", + "resetError": "Nie udało się zresetować ustawień aplikacji" + }, + "dataPaths": { + "title": "Ścieżki danych", + "description": "Wszystkie dane, w tym modele, rozmowy, ustawienia i dzienniki, są przechowywane lokalnie na Twoim urządzeniu. Modyfikuj zawartość tych katalogów tylko jeśli znasz strukturę plików aplikacji.", + "appData": "Dane aplikacji", + "appLogs": "Dzienniki aplikacji", + "openInFinder": "Otwórz w Finderze" + }, + "helpAndDiscussions": { + "title": "Pomoc i dyskusje", + "description": "Dołącz do naszej społeczności na Discordzie, aby uzyskać wsparcie, podzielić się opiniami i być na bieżąco.", + "sayHi": "Przywitaj się!", + "viewDocs": "Zobacz dokumentację" + } + }, + "logViewer": { + "title": "Przeglądarka dzienników", + "description": "Przeglądaj i analizuj dzienniki aplikacji w czasie rzeczywistym. Używaj filtrów i wyszukiwania, aby sprawnie rozwiązywać problemy.", + "searchPlaceholder": "Szukaj w dziennikach...", + "refresh": "Odśwież dzienniki", + "autoRefreshOn": "Zatrzymaj automatyczne odświeżanie", + "autoRefreshOff": "Włącz automatyczne odświeżanie", + "pause": "Zatrzymaj automatyczne przewijanie", + "resume": "Wznów automatyczne przewijanie", + "copy": "Kopiuj dzienniki do schowka", + "download": "Pobierz dzienniki", + "clearTemporarily": "Wyczyść wyświetlanie dzienników", + "clearPermanently": "Wyczyść plik dziennika", + "showAllLogs": "Pokaż wszystkie dzienniki", + "clearPermanentlyConfirmation": { + "header": "Wyczyść plik dziennika", + "message": "Czy na pewno chcesz wyczyścić plik dziennika? Spowoduje to trwałe usunięcie wszystkich wpisów dziennika." + }, + "loading": "Ładowanie dzienników...", + "noLogs": "Brak dostępnych dzienników", + "noMatchingLogs": "Żadne dzienniki nie pasują do bieżących filtrów", + "totalLines": "{count} linia łącznie | {count} linii łącznie", + "filteredLines": "{count} przefiltrowana linia | {count} przefiltrowane linie", + "copiedToClipboard": "Dzienniki skopiowane do schowka", + "downloaded": "Dzienniki pobrane pomyślnie", + "clearedPermanently": "Plik dziennika wyczyszczony pomyślnie", + "errorLoading": "Nie udało się załadować dzienników", + "errorCopying": "Nie udało się skopiować dzienników", + "errorDownloading": "Nie udało się pobrać dzienników", + "errorClearing": "Nie udało się wyczyścić dzienników", + "levels": { + "all": "Wszystkie poziomy", + "error": "Błąd", + "warn": "@:warning", + "info": "Info", + "debug": "Debug" + } + }, + "notifications": { + "title": "Powiadomienia", + "description": "Przeglądaj i zarządzaj powiadomieniami aplikacji, w tym błędami, ostrzeżeniami i zdarzeniami informacyjnymi.", + "searchPlaceholder": "Szukaj powiadomień...", + "searchingAllLogs": "Wyszukiwanie wszystkich powiadomień w bazie danych", + "refresh": "Odśwież powiadomienia", + "autoRefreshOn": "Automatyczne odświeżanie włączone", + "autoRefreshOff": "Włącz automatyczne odświeżanie", + "copy": "Kopiuj wszystko do schowka", + "copyLog": "Kopiuj powiadomienie", + "download": "Pobierz powiadomienia", + "clearPermanently": "Wyczyść wszystkie powiadomienia", + "clearPermanentlyConfirmation": { + "header": "Wyczyść powiadomienia", + "message": "Czy na pewno chcesz trwale usunąć wszystkie powiadomienia? Tej akcji nie można cofnąć." + }, + "loading": "Ładowanie powiadomień...", + "loadingMore": "Ładowanie kolejnych...", + "endOfList": "Koniec listy", + "noLogs": "Brak dostępnych powiadomień", + "totalLogs": "{count} powiadomienie | {count} powiadomień", + "displayedLogs": "Wyświetlanie {count}", + "copiedToClipboard": "Powiadomienie skopiowane do schowka", + "downloaded": "Powiadomienia pobrane pomyślnie", + "clearedPermanently": "Powiadomienia wyczyszczone pomyślnie", + "deleted": "Powiadomienie usunięte pomyślnie", + "errorLoading": "Nie udało się załadować powiadomień", + "errorCopying": "Nie udało się skopiować powiadomienia", + "errorDownloading": "Nie udało się pobrać powiadomień", + "errorClearing": "Nie udało się wyczyścić powiadomień", + "errorDeleting": "Nie udało się usunąć powiadomienia", + "purge": { + "label": "Wyczyść powiadomienia", + "olderThan1Day": "Starsze niż 1 dzień", + "olderThan7Days": "Starsze niż 7 dni", + "olderThan15Days": "Starsze niż 15 dni", + "olderThan30Days": "Starsze niż 30 dni", + "all": "Wszystkie", + "confirmHeader": "Wyczyść powiadomienia", + "confirmMessageDays": "Czy na pewno chcesz usunąć powiadomienia starsze niż {days} dni? Tej akcji nie można cofnąć.", + "purge": "Wyczyść", + "purged": "Powiadomienia wyczyszczone pomyślnie", + "errorPurging": "Nie udało się wyczyścić powiadomień" + }, + "levels": { + "all": "Wszystkie poziomy", + "error": "Błędy", + "warn": "Ostrzeżenia", + "info": "Info" + } + }, + "sidebar": { + "expandGroup": "Rozwiń {group}", + "collapseGroup": "Zwiń {group}", + "showExtraItems": "Pokaż dodatkowe elementy", + "hideExtraItems": "Ukryj dodatkowe elementy", + "groups": { + "modelsPrompts": "Modele i monity", + "personasTools": "Persony i narzędzia", + "knowledgeInsights": "Wiedza i analizy", + "system": "System" + }, + "appUpdater": { + "version": "Wersja {version}", + "restartToApply": "Uruchom ponownie, aby zastosować aktualizacje", + "restart": "Uruchom ponownie teraz", + "downloading": "Pobieranie aktualizacji...", + "viewChangelog": "Zobacz dziennik zmian", + "openingChangelog": "Otwieranie dziennika zmian...", + "errorHint": "Błąd aktualizacji – kliknij, aby zobaczyć szczegóły", + "readyHint": "Aktualizacja gotowa – uruchom ponownie, aby zastosować", + "downloadingHint": "Pobieranie aktualizacji... {percent}%", + "errorDialog": { + "header": "Błąd aktualizacji", + "message": "Wystąpił błąd podczas aktualizacji: {error}", + "downloadManually": "Pobierz ręcznie" + } + } + }, + "showInNativeFileManager": { + "mac": "Pokaż w Finderze", + "win": "Pokaż w Eksploratorze plików", + "lin": "Pokaż w menedżerze plików" + }, + "settings": { + "title": "Ustawienia", + "general": "Ogólne", + "defaultPrompts": "Domyślne monity", + "prompts": { + "description": "Te monity kształtują sposób generowania tytułów, budowania zapytań wyszukiwania, pobierania wiedzy i podsumowywania kontekstu. Zmiany są zapisywane w globalnych ustawieniach tego urządzenia (baza danych master) i mają zastosowanie we wszystkich obszarach roboczych (nie per obszar roboczy).", + "availablePrompts": "Dostępne monity", + "customized": "Dostosowane", + "customizedCount": "{count} dostosowane", + "modified": "Zmodyfikowane", + "usingCustom": "Używa niestandardowego", + "usingDefault": "Używa domyślnego", + "clickToEdit": "Kliknij, aby edytować monit", + "variables": "Zmienne", + "lastModified": "Ostatnio zmodyfikowane", + "selectPrompt": "Wybierz monit do dostosowania", + "clearContent": "Wyczyść zawartość", + "resetToDefault": "Przywróć domyślne", + "insertFromLibrary": "Wstaw z biblioteki", + "saveChanges": "Zapisz zmiany", + "discardChanges": "Odrzuć zmiany", + "categories": { + "generation": "Generowanie treści", + "search": "Wyszukiwanie i synteza", + "analysis": "Analiza i ekstrakcja" + } + }, + "licenseAndAccess": "Licencja i dostęp", + "fontSize": "Rozmiar @:size czcionki", + "defaultRTD": { + "sectionTitle": "Wyszukiwanie danych w czasie rzeczywistym", + "title": "Domyślny dostawca RTD", + "description": "Wybierz domyślnego dostawcę wyszukiwania danych w czasie rzeczywistym, który będzie używany podczas tworzenia nowych rozmów.", + "saved": "{provider} ustawiony jako domyślny dostawca RTD", + "saveError": "Nie udało się zapisać domyślnego dostawcy RTD", + "noProvidersAvailable": "Brak dostępnych dostawców RTD", + "configureLabel": "Konfiguruj zaawansowane opcje dla", + "configSaved": "Konfiguracja zapisana dla {provider}", + "mode": { + "title": "Domyślny tryb RTD", + "description": "Ustaw domyślny tryb RTD dla nowych rozmów.", + "pushHint": "Nowe rozmowy będą domyślnie używać trybu push.", + "pullHint": "Nowe rozmowy będą domyślnie używać trybu pull.", + "pullGuardHint": "Tryb pull wymaga planu Aurum.", + "saveError": "Nie udało się zapisać domyślnego trybu RTD" + } + }, + "teams": "Zespoły", + "appearance": "Wygląd", + "conversation": { + "title": "Rozmowy", + "autoArchive": { + "title": "Automatyczne archiwizowanie nieaktywnych rozmów", + "description": "Automatycznie przenoś nieaktywne rozmowy do Archiwum po wybranej liczbie dni. Użyj opcji Włącz automatyczne archiwizowanie, aby je włączyć. Uruchom archiwizowanie teraz, aby przeprowadzić jednorazowe czyszczenie z użyciem bieżącego progu dni.", + "enableLabel": "Włącz automatyczne archiwizowanie", + "disableLabel": "Wyłącz automatyczne archiwizowanie", + "enableHint": "Zarchiwizowane rozmowy pozostają dostępne w sekcji Archiwum.", + "daysLabel": "Archiwizuj po", + "suffix": "dzień | dni", + "disabledHint": "Włącz lub wyłącz z menu", + "runNowLabel": "Uruchom archiwizowanie teraz", + "runNowDisabled": "Włącz automatyczne archiwizowanie i ustaw dni > 0, aby uruchomić", + "runNowResult": "Zarchiwizowano {count} rozmowę | Zarchiwizowano {count} rozmów", + "daysSaved": "Automatyczne archiwizowanie ustawione na {days} dzień | Automatyczne archiwizowanie ustawione na {days} dni", + "enabledToast": "Automatyczne archiwizowanie włączone", + "disabledToast": "Automatyczne archiwizowanie wyłączone" + } + }, + "setupService": "Konfiguruj {service}", + "workspaceLock": { + "title": "Blokada obszaru roboczego i szyfrowanie sekretów", + "description": "Zabezpiecz swój obszar roboczy hasłem, aby wrażliwe ustawienia i klucze API były ukryte do momentu odblokowania. Odblokowuj raz na sesję, zmieniaj hasło w dowolnym momencie lub wyłącz ochronę, jeśli zmienisz zdanie.", + "experimentalInfo": "Szyfrowanie oparte na haśle jest eksperymentalne. Przed włączeniem wykonaj kopię zapasową swoich sekretów.", + "status": "Status:", + "locked": "Zablokowany", + "unlocked": "Odblokowany", + "lock": "Zablokuj", + "unlock": "Odblokuj", + "protectedSection": "Obszar roboczy jest chroniony. Odblokuj za pomocą hasła.", + "unprotected": "Niechroniony", + "unprotectedToast": "Blokada obszaru roboczego nie jest skonfigurowana. Najpierw ustaw hasło.", + "unlockTitle": "Wprowadź hasło", + "cancel": "Anuluj", + "toastUnlocked": "Obszar roboczy odblokowany na tę sesję", + "toastLocked": "Obszar roboczy zablokowany", + "disable": "Wyłącz szyfrowanie", + "disableHelp": "Wprowadź hasło, aby odszyfrować i wyłączyć szyfrowanie.", + "disableProtection": "Wyłącz ochronę", + "disableProtectionHelp": "Wprowadź hasło, aby wyłączyć ochronę obszaru roboczego. Spowoduje to usunięcie szyfrowania z przechowywanych sekretów i kluczy API.", + "disableProtectionConfirmMessage": "Czy na pewno chcesz wyłączyć ochronę obszaru roboczego? Spowoduje to trwałe odszyfrowanie wszystkich zaszyfrowanych sekretów i kluczy API w bazie danych.", + "enableProtection": "Włącz ochronę", + "setPassphrase": "Ustaw hasło", + "setPassphraseWarning": "Ważne: Zapisz swoje hasło w bezpiecznym miejscu. Nie można odzyskać zapomnianego hasła – bez niego utracisz dostęp do zaszyfrowanych danych obszaru roboczego.", + "changePassphrase": "Zmień hasło", + "changePassphraseWarning": "Ważne: Zapisz nowe hasło w bezpiecznym miejscu. Nie można odzyskać zapomnianego hasła – bez niego utracisz dostęp do zaszyfrowanych danych obszaru roboczego.", + "updatePassphrase": "Zaktualizuj hasło", + "passphrase": "Hasło", + "passphraseCurrent": "Aktualne hasło", + "passphraseNew": "Nowe hasło", + "passphraseConfirm": "Potwierdź hasło", + "errorMinLength": "Hasło musi mieć co najmniej 8 znaków", + "errorMismatch": "Hasła nie są zgodne", + "errorInvalid": "Nieprawidłowe dane wejściowe", + "setupSuccess": "Hasło skonfigurowane", + "setupFailed": "Nie udało się skonfigurować hasła", + "rotateSuccess": "Hasło zaktualizowane", + "rotateFailed": "Nie udało się zaktualizować hasła", + "disableConfirmMessage": "Odszyfrować przechowywane sekrety i usunąć ochronę obszaru roboczego?", + "disableSuccess": "Szyfrowanie wyłączone", + "disableFailed": "Nie udało się wyłączyć szyfrowania", + "incorrectPassphrase": "Nieprawidłowe hasło", + "lockedWithName": "{workspaceName} jest zablokowany", + "switchBackTitle": "Nie możesz odblokować tego obszaru roboczego?", + "switchBackDescription": "Wróć do {workspaceName}, aby kontynuować pracę.", + "switchBackAction": "Wróć do {workspaceName}", + "switchBackError": "Nie można przełączyć obszarów roboczych. Spróbuj ponownie." + }, + "dataBackup": { + "title": "Eksportuj @:data", + "description": "Wybierz poniższy przycisk, aby wyeksportować kopię swoich danych do celów kopii zapasowej lub przeniesienia na inne urządzenie. Wyeksportowane dane obejmują rozmowy, monity, modele, ustawienia i inne dane aplikacji we wszystkich obszarach roboczych." + }, + "dataBackupReminderInterval": { + "title": "Interwał przypomnienia o kopii zapasowej @:data", + "description": "Jak często przypominać o wykonaniu kopii zapasowej danych." + }, + "dangerZone": { + "title": "Strefa niebezpieczna", + "description": "Akcje w tej sekcji są nieodwracalne i mogą skutkować utratą danych. Zalecamy wyeksportowanie kopii danych przed wykonaniem jakichkolwiek działań tutaj.", + "clearData": { + "title": "Wyczyść dane", + "description": "Trwale usuń wszystkie dane aplikacji, w tym rozmowy, monity, modele, ustawienia i inne powiązane informacje we wszystkich obszarach roboczych." + }, + "restoreData": { + "title": "Przywróć @:data z kopii zapasowej", + "description": "Zaimportuj wcześniej wyeksportowany plik zip z danymi, aby przywrócić rozmowy, monity, modele, ustawienia i inne dane aplikacji we wszystkich obszarach roboczych. Ta akcja nadpisze wszystkie istniejące dane." + } + }, + "dataMigrate": { + "action": "Migruj", + "title": "Migracja z Msty App 1.x do Studio", + "itemsToMigrate": { + "label": "Krok 2: Wybierz elementy do migracji", + "action": "Wybierz elementy" + }, + "pointsToRemember": { + "activeWorkspace": "Możesz importować monity z biblioteki, zdalne dostawcy modeli, rozmowy i załączniki do aktualnie aktywnego obszaru roboczego. Jeśli chcesz zaimportować do innego obszaru roboczego, najpierw przełącz się na ten obszar.", + "remoteModelProviders": "Migracja zdalnych dostawców modeli NIE przeniesie kluczy API – należy je ponownie wprowadzić. Niektóre starsze modele mogą nie być obsługiwane w Studio.", + "attachmentsMigration": "Jeśli migrujesz załączniki, najpierw spakuj folder załączników. Możesz migrować załączniki osobno po migracji bazy danych lub razem z nią." + }, + "databaseMigration": { + "title": "Migracja bazy danych", + "label": "Krok 1: Wybierz plik bazy danych Msty App 1.x", + "action": "Przeciągnij i upuść plik bazy danych Msty", + "hint": "Pliki bazy danych Msty App 1.x zazwyczaj noszą nazwę `msty.db`" + }, + "attachmentsMigration": { + "title": "Migracja załączników", + "migrate": "Migruj osobno", + "label": "Krok 3: Dodaj spakowany folder załączników", + "success": "Załączniki zostały pomyślnie zmigrowane", + "error": "Nie udało się przeprowadzić migracji załączników", + "action": "Przeciągnij i upuść spakowany folder załączników", + "hint": "Spakuj cały folder załączników z Msty App 1.x. Po wybraniu możesz migrować osobno, jeśli dodajesz po migracji bazy danych." + }, + "missingDataWarning": { + "description": "Wybierz plik bazy danych i co najmniej jedną tabelę do migracji", + "title": "Brakujące dane" + }, + "description": "Migruj swoje dane z Msty App 1.x do Studio. Zaimportowane dane nie nadpiszą istniejących danych.", + "successMessage": "Pomyślnie zmigrowano {item}", + "errorMessage": "Nie udało się przeprowadzić migracji {item}", + "migrationInProgress": "Migracja w toku...", + "migrationComplete": "Migracja {item} zakończona", + "migrationFail": "Migracja {item} nie powiodła się", + "migratingItem": "Migrowanie {item}...", + "migrationError": { + "title": "Błąd migracji", + "action": "Zobacz szczegóły", + "message": "Wiadomość", + "cause": "Przyczyna" + } + }, + "colorPreference": "Preferencja kolorów", + "accentColor": "Kolor akcentu", + "dark": "Ciemny", + "light": "Jasny", + "default": "Domyślny | Domyślne", + "system": "System", + "baseColor": "Kolor bazowy", + "emerald": "Szmaragdowy", + "lime": "Limonkowy", + "green": "Zielony", + "red": "Czerwony", + "orange": "Pomarańczowy", + "amber": "Bursztynowy", + "yellow": "Żółty", + "teal": "Morski", + "cyan": "Cyjan", + "sky": "Niebieski", + "indigo": "Indygo", + "violet": "Fioletowy", + "purple": "Purpurowy", + "fuchsia": "Fuksja", + "pink": "Różowy", + "rose": "Różany", + "slate": "Łupkowy", + "gray": "Szary", + "zinc": "Cynkowy", + "stone": "Kamienny", + "sandy": "Piaskowy", + "lighter": "Jaśniejszy", + "codeTheme": "Motyw kodu", + "rtlSupport": { + "title": "Obsługa RTL", + "sectionDescription": "Włącz układy od prawej do lewej dla języków takich jak arabski, hebrajski i perski. Cały obszar roboczy aktualizuje się natychmiast po przełączeniu.", + "toggleLabel": "Włącz układ RTL", + "enabledHint": "Układ od prawej do lewej jest aktywny w całej aplikacji.", + "disabledHint": "Aplikacja aktualnie używa układu od lewej do prawej." + }, + "miniMap": { + "title": "Mini mapa", + "description": "Włącz wbudowany navigator wiadomości z podglądem gałęzi. Po wyłączeniu używany jest prostszy navigator Góra/Dół." + }, + "branchBreadcrumbs": { + "title": "Nawigacja po gałęziach", + "description": "Pokaż kompaktowy pasek nawigacji na górze rozmów, gdy istnieją gałęzie." + }, + "spellcheck": { + "title": "Sprawdzanie pisowni", + "description": "Włącz lub wyłącz sprawdzanie pisowni dla pól tekstowych. Wyłączenie może pomóc podczas pracy z wieloma językami lub treściami technicznymi. Ustawienia sprawdzania pisowni systemu operacyjnego mogą nadpisać te preferencje. Uruchom ponownie aplikację po zmianie tego ustawienia, aby zmiany w pełni weszły w życie." + }, + "language": { + "sectionTitle": "Język i lokalizacja", + "sectionDescription": "Przełączaj między językami interfejsu, podglądaj tryb deweloperski lub importuj tymczasowy plik lokalizacji. Jeśli chcesz przyczynić się do tłumaczenia, odwiedź https://github.com/cloudstack-llc/msty-studio-i18n", + "localeLabel": "Język", + "downloadTemplate": "Pobierz szablon", + "downloadBuiltInLocale": "Pobierz wbudowany plik JSON lokalizacji.", + "downloadCustomLocale": "Pobierz aktualnie zaimportowaną niestandardową lokalizację.", + "downloadDeveloperTemplate": "Pobierz pusty szablon oparty na bazowej lokalizacji.", + "importLocale": "Importuj lokalizację", + "importLocaleHint": "Zaimportowane lokalizacje działają tylko do momentu ponownego uruchomienia lub odświeżenia aplikacji.", + "importSuccessSummary": "Lokalizacja zaimportowana", + "importSuccessDetail": "Teraz używany jest {code}. Sprawdź interfejs, aby potwierdzić tłumaczenia.", + "importError": "Nie udało się zaimportować pliku lokalizacji. Upewnij się, że jest to prawidłowy JSON oparty na szablonie.", + "developerMode": { + "label": "Tryb deweloperski" + } + }, + "security": { + "title": "Bezpieczeństwo", + "subtitle": "Skonfiguruj ustawienia bezpieczeństwa aplikacji" + }, + "webSecurity": { + "title": "Wyłącz bezpieczeństwo sieciowe", + "description": "Może to pomóc rozwiązać problemy związane z CORS. Jednak nie jest to zalecane i może narażać aplikację na zagrożenia bezpieczeństwa. Wyłącz tylko jeśli wiesz, co robisz. Musisz ponownie uruchomić aplikację, aby to ustawienie weszło w życie.", + "applyAndRestart": "Zastosuj i uruchom ponownie" + }, + "fontStyle": { + "title": "Styl czcionki", + "galaxyFarAway": "Galaxy Far Away", + "everythingEverywhere": "Everything Everywhere", + "homeAlone": "Home Alone", + "lordOfTheLoops": "Lord of the Loops" + }, + "renderingModules": { + "title": "Moduły renderowania", + "selectPlaceholder": "@:select Moduły renderowania" + }, + "remoteToolsConnector": { + "description": "Zezwól Msty Studio Web na połączenie z tym urządzeniem w celu uruchamiania zdalnych narzędzi i dostępu do lokalnych modeli. Ta usługa musi być aktywnie uruchomiona, aby zezwolić na połączenia zdalne.", + "allowRemoteToolsConnection": "Włącz usługę", + "connectionToken": { + "title": "Token połączenia", + "rememberToken": "Zapamiętaj token", + "placeholder": "Wprowadź silny token połączenia", + "description": "Ten token służy do uwierzytelniania połączenia między Msty Studio a tą aplikacją podczas zdalnego łączenia. Możesz go w dowolnym momencie wygenerować ponownie, aby unieważnić poprzedni token. Upewnij się, że używasz silnego tokenu i zachowaj go w tajemnicy.", + "successMessage": { + "detail": "Usługa zdalna jest teraz aktywna" + }, + "errorMessage": { + "summary": "Błąd włączania łącznika", + "detail": "Nie udało się włączyć usługi zdalnej. Sprawdź dzienniki, aby uzyskać więcej szczegółów" + }, + "copyConnectionInfo": "Kopiuj lokalny adres URL", + "copyTunnelConnectionInfo": "Kopiuj adres URL tunelu", + "stopSuccessMessage": { + "detail": "Usługa zdalna jest teraz wyłączona" + } + }, + "enableTunneling": "Włącz tunelowanie (eksperymentalne)" + }, + "copyLocalURL": "Kopiuj lokalny adres URL", + "localAI": { + "notInstalled": { + "description": "Skonfiguruj @:localAIService, aby uruchamiać modele AI lokalnie na swoim urządzeniu." + }, + "modelsLocation": { + "title": "Lokalizacja modeli", + "description": "Skonfiguruj miejsce przechowywania lokalnych modeli AI." + }, + "existingModels": { + "title": "Użyj istniejących modeli", + "description": "Używaj modeli, które już posiadasz, bez konieczności ponownego pobierania." + }, + "serviceConfigurations": { + "title": "Konfiguracje @:service", + "description": "Te konfiguracje są stosowane do @:localAIService podczas uruchamiania. @:localAIService automatycznie uruchomi się ponownie po zapisaniu zmian.", + "configurePortNumber": { + "title": "Skonfiguruj numer portu", + "description": "Numer portu dla @:localAIService{'.'} Pozostaw puste, aby użyć domyślnego." + }, + "maximumParallelChats": { + "title": "Maksymalna liczba równoległych czatów", + "description": "Maksymalna liczba jednoczesnych sesji czatu (przy używaniu trybu podziału)." + }, + "maximumLoadedModels": { + "title": "Maksymalna liczba załadowanych modeli", + "description": "Maksymalna liczba modeli LLM załadowanych jednocześnie. Przechowywanie większej liczby modeli w pamięci przyspiesza początkowe odpowiedzi, ale zużywa więcej zasobów systemowych." + }, + "enableNetworkAccess": { + "title": "Włącz dostęp sieciowy", + "description": "Zezwól innym urządzeniom w sieci na dostęp do tego @:localAIService przez adres IP tego urządzenia." + }, + "allowedNetworkOrigins": { + "title": "Dozwolone źródła sieciowe", + "description": "Wpisz tutaj dozwolone źródła sieciowe (rozdzielone przecinkami). Każdy wpis musi zaczynać się od http:// lub https://. Użyj *, aby zezwolić na wszystkie źródła.", + "placeholder": "np. https://msty.studio, http://localhost:3000, *" + }, + "allowMstyStudioAccess": { + "title": "Zezwól na dostęp z Msty Studio", + "description": "Zezwól na połączenia z Msty Studio Web do tej aplikacji, aby mogła uzyskać dostęp do @:localAIService{'.'}" + }, + "captureServiceLogs": { + "title": "Przechwytuj dzienniki @:service", + "description": "Włącz rejestrowanie, aby przechwytywać dane usługi do debugowania. Używaj tej opcji tylko w razie potrzeby." + }, + "advancedConfiguration": { + "description": "Wprowadź prawidłowy JSON, aby ustawić zmienne środowiskowe dla @:localAIService{'.'}" + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w konfiguracjach @:localAIService. Po zapisaniu @:localAIService zostanie uruchomiony ponownie z nowymi konfiguracjami.", + "saveChanges": "Zapisz zmiany i uruchom ponownie usługę", + "successMessage": { + "detail": "Konfiguracje @:localAIService zapisane i usługa uruchomiona ponownie" + }, + "errorMessage": { + "detail": "Nie udało się zapisać konfiguracji @:localAIService. Sprawdź dzienniki, aby uzyskać więcej szczegółów." + } + } + }, + "modelConfigurations": { + "title": "Konfiguracje @:model", + "description": "Te konfiguracje są stosowane do wszystkich modeli podczas sesji czatu.", + "keepAliveTimeout": { + "title": "Limit czasu podtrzymania modelu", + "description": "Czas (w minutach), po którym model zostanie wyładowany z pamięci, jeśli nie jest używany." + }, + "advancedConfiguration": { + "description": "Wprowadź prawidłowy JSON, aby przekazać dodatkowe parametry do modeli podczas sesji czatu." + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w @:settings.localAI.modelConfigurations.title{'.'} Pamiętaj, aby je zapisać przed rozpoczęciem nowej sesji czatu.", + "successMessage": { + "detail": "@:settings.localAI.modelConfigurations.title zapisane" + }, + "errorMessage": { + "detail": "Nie udało się zapisać @:settings.localAI.modelConfigurations.title. Sprawdź dzienniki, aby uzyskać więcej szczegółów." + } + } + }, + "openSettings": "Otwórz ustawienia Local AI", + "manageModels": { + "title": "Zarządzaj modelami Local AI", + "description": "Przeglądaj, instaluj i zarządzaj modelami AI do lokalnego wnioskowania.", + "openModelHub": "Otwórz centrum modeli Local AI" + } + }, + "vibeCliProxy": { + "shortTitle": "Vibe CLI Proxy", + "title": "Vibe CLI Proxy", + "subtitle": "Zunifikowane proxy dla asystentów kodowania AI. Połącz się z Claude Code, ChatGPT, Gemini, Qwen Code przez jeden lokalny punkt końcowy.", + "install": { + "copy": "Instaluje plik binarny CLIProxyAPI do łączenia asystentów kodowania AI (Claude Code, ChatGPT, Gemini, Qwen) przez lokalny proxy z uwierzytelnianiem OAuth.", + "button": "Zainstaluj Vibe CLI Proxy" + }, + "health": { + "description": "Uruchom lub zatrzymaj usługę Vibe CLI Proxy." + }, + "endpoint": { + "title": "Punkt końcowy usługi", + "description": "Użyj tego punktu końcowego dla żądań kompatybilnych z OpenAI kierowanych przez Vibe CLI Proxy.", + "network": "Host sieciowy: {host}", + "copied": "Punkt końcowy skopiowany" + }, + "version": { + "title": "Wersja", + "description": "Zainstalowana wersja CLIProxyAPI.", + "current": "Aktualna wersja", + "reinstall": "Zainstaluj ponownie", + "unknown": "Niezainstalowane" + }, + "configs": { + "title": "Konfiguracje usługi", + "description": "Skonfiguruj port, katalog uwierzytelniania i dostęp sieciowy dla proxy.", + "port": "Port", + "retries": "Ponowne próby", + "authDir": "Katalog uwierzytelniania", + "enableNetworkAccess": "Włącz dostęp sieciowy", + "enableNetworkAccessHelp": "Zezwól innym urządzeniom w sieci na dostęp do proxy.", + "captureLogs": "Przechwytuj dzienniki usługi", + "captureLogsHelp": "Zachowuj dzienniki proxy do rozwiązywania problemów (może zwiększyć użycie dysku).", + "enableRemoteManagement": "Włącz zdalne zarządzanie", + "enableRemoteManagementHelp": "Udostępnij punkty końcowe zarządzania; wymaga tajnego klucza.", + "managementKey": "Tajny klucz zarządzania", + "updated": "Konfiguracje Vibe CLI Proxy zaktualizowane", + "failed": "Nie udało się zaktualizować konfiguracji Vibe CLI Proxy", + "portDescription": "Lokalny port, na którym usługa proxy nasłuchuje żądań.", + "retriesDescription": "Liczba ponownych prób dla nieudanych żądań do upstream.", + "authDirDescription": "Katalog, w którym przechowywane są tokeny uwierzytelniania.", + "managementKeyDescription": "Tajny klucz wymagany do zdalnych operacji zarządzania." + }, + "authPath": { + "title": "Folder uwierzytelniania", + "description": "Ścieżka, w której Vibe CLI Proxy przechowuje tokeny OAuth dla połączonych dostawców. Zarządzana automatycznie; niedostępna do edycji." + }, + "authStatus": { + "title": "Uwierzytelnianie", + "description": "Bezpiecznie połącz swoje konta AI, aby Vibe CLI Proxy mógł wywoływać ich API w Twoim imieniu. Po połączeniu otwiera się okno przeglądarki dla danego dostawcy, gdzie kończysz logowanie.", + "connecting": "Otwieranie przeglądarki dla OAuth…", + "browser": "Zakończ uwierzytelnianie w przeglądarce, a następnie wróć tutaj.", + "failed": "Nie udało się uruchomić przepływu OAuth", + "deviceCodeTitle": "Autoryzacja urządzenia", + "deviceCodeInstructions": "Wprowadź poniższy kod na stronie autoryzacji, aby zakończyć uwierzytelnianie.", + "copyCode": "Kopiuj kod", + "codeCopied": "Kod skopiowany do schowka", + "openGitHub": "Otwórz GitHub" + }, + "setup": { + "disclaimer": "Ważne: Vibe CLI Proxy jest lokalnym proxy dla zewnętrznych agentów kodowania CLI. Kontynuując, bierzesz pełną odpowiedzialność za przestrzeganie warunków korzystania z usług każdego dostawcy AI. Używasz na własne ryzyko. Msty nie ponosi odpowiedzialności za jakiekolwiek problemy z kontem lub naruszenia usług, które mogą wyniknąć." + } + }, + "mlx": { + "notInstalled": { + "description": "Skonfiguruj @:mlxService, aby uruchamiać zoptymalizowane modele AI na komputerze Mac z procesorem Apple Silicon." + }, + "modelsLocation": { + "title": "Lokalizacja modeli", + "description": "Skonfiguruj miejsce przechowywania modeli MLX." + }, + "existingModels": { + "title": "Użyj istniejących modeli", + "description": "Używaj modeli, które już posiadasz, bez konieczności ponownego pobierania." + }, + "openSettings": "Otwórz ustawienia MLX", + "manageModels": { + "title": "Zarządzaj modelami MLX", + "description": "Przeglądaj, instaluj i zarządzaj modelami MLX zoptymalizowanymi dla Apple Silicon.", + "openModelHub": "Otwórz centrum modeli MLX" + }, + "compatibility": { + "title": "Zgodność systemu", + "description": "Sprawdź, czy Twój system jest kompatybilny z MLX.", + "checkAgain": "Sprawdź ponownie", + "status": { + "notChecked": "Nie sprawdzono", + "compatible": "Kompatybilny", + "notCompatible": "Niekompatybilny" + }, + "requirements": { + "title": "Wymagania MLX:", + "appleSilicon": "Mac z procesorem Apple Silicon (M1, M2, M3, M4)", + "macOS13": "macOS 13.0 lub nowszy", + "unifiedMemory": "Architektura zunifikowanej pamięci" + } + } + }, + "llamacpp": { + "notInstalled": { + "description": "Skonfiguruj @:llamacppService, aby uruchamiać wydajne modele AI na Windows, macOS i Linux." + }, + "modelsLocation": { + "title": "Lokalizacja modeli", + "description": "Skonfiguruj miejsce przechowywania modeli LLaMA.cpp." + }, + "existingModels": { + "title": "Użyj istniejących modeli", + "description": "Używaj modeli, które już posiadasz, bez konieczności ponownego pobierania." + }, + "openSettings": "Otwórz ustawienia LLaMA.cpp", + "manageModels": { + "title": "Zarządzaj modelami LLaMA.cpp", + "description": "Przeglądaj, instaluj i zarządzaj modelami LLaMA.cpp do wieloplatformowego wnioskowania.", + "openModelHub": "Otwórz centrum modeli LLaMA.cpp" + }, + "compatibility": { + "title": "Zgodność systemu", + "description": "Sprawdź, czy Twój system jest kompatybilny z LLaMA.cpp.", + "checkAgain": "Sprawdź ponownie", + "status": { + "notChecked": "Nie sprawdzono", + "compatible": "Kompatybilny", + "notCompatible": "Niekompatybilny", + "requiresDesktop": "LLaMA.cpp wymaga aplikacji desktopowej" + }, + "systemInfo": { + "title": "Informacje o systemie", + "platform": "Platforma", + "architecture": "Architektura", + "memory": "Dostępna pamięć", + "gpu": "GPU" + }, + "requirements": { + "title": "Wymagania LLaMA.cpp:", + "desktop": "Aplikacja desktopowa (Windows, macOS lub Linux)", + "memory": "Co najmniej 4 GB RAM (zalecane 8 GB+)", + "storage": "Wystarczająca ilość miejsca na modele (zależy od rozmiaru modelu)", + "gpu": "Opcjonalnie: GPU do akceleracji (CUDA, Metal, OpenCL)" + } + }, + "serviceConfigurations": { + "threads": { + "title": "Wątki CPU", + "description": "Liczba wątków CPU używanych podczas wnioskowania. Ustaw -1, aby automatycznie wykryć na podstawie systemu (odpowiada fladze --threads)." + }, + "concurrentRequests": { + "title": "Równoczesne żądania", + "description": "Liczba czatów, które mogą działać jednocześnie na model (odpowiada fladze --parallel). Przy parallel=2 każdy czat otrzymuje połowę rozmiaru kontekstu.", + "inputLabel": "Równoczesne żądania" + }, + "advancedConfiguration": { + "description": "Wprowadź prawidłowy JSON, aby ustawić zmienne środowiskowe dla procesu llama-server. Te zmienne mają niższy priorytet niż argumenty CLI ustawione w konfiguracjach usługi i modelu." + } + }, + "modelConfigurations": { + "title": "Konfiguracje @:model", + "description": "Te konfiguracje są stosowane do wszystkich modeli podczas sesji czatu.", + "keepAliveTimeout": { + "title": "Limit czasu podtrzymania modelu", + "description": "Czas (w minutach), po którym model zostanie wyładowany z pamięci, jeśli nie jest używany." + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w @:settings.llamacpp.modelConfigurations.title{'.'} Pamiętaj, aby je zapisać przed rozpoczęciem nowej sesji czatu.", + "successMessage": { + "detail": "@:settings.llamacpp.modelConfigurations.title zapisane" + }, + "errorMessage": { + "detail": "Nie udało się zapisać @:settings.llamacpp.modelConfigurations.title. Sprawdź dzienniki, aby uzyskać więcej szczegółów." + } + } + } + } + }, + "mlx": "MLX", + "mlxService": "@:mlx Service", + "llamacpp": "LLaMA.cpp", + "llamacppService": "@:llamacpp Service", + "settingsAndConfigs": "Ustawienia i konfiguracje", + "prompts": "Monity", + "apiKeys": "Klucze API", + "workspaces": { + "createNewWorkspace": "Utwórz nowy obszar roboczy", + "switchWorkspace": "Przełącz obszar roboczy", + "switchToCustomWorkspace": "Przełącz na obszar roboczy {workspaceName}", + "hideWorkspaceTray": "Ukryj panel obszarów roboczych", + "showWorkspaceTray": "Pokaż panel obszarów roboczych", + "switchAction": { + "successMessage": { + "summary": "Obszar roboczy przełączony!", + "detail": "{workspaceName} jest teraz aktywnym obszarem roboczym" + } + }, + "deleteWorkspace": "Usuń obszar roboczy", + "workspaceIsActive": "Obszar roboczy {workspaceName} jest aktywny", + "currentActiveWorkspace": "Twój aktualnie aktywny obszar roboczy to: {workspaceName}", + "workspaceForm": { + "newTitle": "Nowy obszar roboczy", + "editTitle": "Edytuj obszar roboczy", + "workspaceName": "Nazwa obszaru roboczego", + "whatToCopy": "Co skopiować z obszaru roboczego {activeWorkspace}?", + "copyDisabledForLockedWorkspace": "Kopiowanie elementów jest wyłączone, ponieważ aktywny obszar roboczy ma ustawione hasło.", + "createAndSwitch": "Utwórz i przełącz", + "createOnly": "Utwórz i pozostań", + "duplicateWorkspaceName": "Nazwa obszaru roboczego już istnieje", + "invalidWorkspaceName": "Nieprawidłowa lub zduplikowana nazwa obszaru roboczego", + "updateSuccessMessage": { + "detail": "Obszar roboczy zaktualizowany" + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować obszaru roboczego" + }, + "createAndSwitchSuccessMessage": { + "detail": "Obszar roboczy utworzony i przełączony" + }, + "createSuccessMessage": { + "detail": "Obszar roboczy utworzony" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć obszaru roboczego" + } + }, + "deleteConfirmation": { + "header": "Usuń obszar roboczy", + "message": "Czy na pewno chcesz usunąć {workspaceName}? Wszystkie dane powiązane z tym obszarem roboczym zostaną usunięte. Tej akcji nie można cofnąć.", + "downloadWorkspaceData": "@:download Dane @:data obszaru roboczego", + "successMessage": { + "detail": "Obszar roboczy {workspaceName} usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć obszaru roboczego" + } + }, + "exportWorkspace": { + "title": "Eksportuj obszar roboczy", + "successMessage": { + "detail": "Dane obszaru roboczego {workspaceName} wyeksportowane jako {fileName}" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować obszaru roboczego {workspaceName}" + } + }, + "importWorkspace": { + "title": "@:import Obszar roboczy", + "dragAndDropMessage": "Przeciągnij i upuść spakowany plik Workspace Msty, aby zaimportować i utworzyć nowy Workspace. W przypadku zduplikowanych nazw, importowany workspace zostanie przemianowany. Możesz to zmienić później.", + "successMessage": { + "detail": "Workspace {workspaceName} został zaimportowany" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować Workspace" + } + } + }, + "attachments": { + "title": "Załączniki", + "documents": "Dokumenty", + "images": "Obrazy", + "webpages": "Strony internetowe", + "youTubeLinks": "Linki YouTube", + "dropThem": "Upuść je!", + "selectAll": "@:select wszystko", + "deselectAll": "Odznacz wszystko", + "dragAnDropHere": "Przeciągnij i upuść {attachmentType} tutaj", + "addNew": "Dodaj nowe załączniki", + "addDocumentTypes": "Dodaj {documentTypes} oraz inne pliki kodu", + "addImageTypes": "Dodaj obrazy .png, .jpg lub jpeg", + "dragAndDropOrBrowseMore": "Przeciągnij i upuść lub przeglądaj więcej", + "commaSeparatedUrls": "lub wklej adresy URL oddzielone przecinkami", + "manageTooltip": "Kliknij, aby zarządzać załączonymi {attachmentType}", + "modelMayNotSupportImages": "Wybrany model może nie obsługiwać załączników graficznych.", + "clickToInstallVisionCapabilities": "Kliknij, aby zainstalować możliwości rozpoznawania obrazu.", + "checkingVisionCapabilities": "Sprawdzanie możliwości rozpoznawania obrazu...", + "installingVision": "Instalowanie możliwości rozpoznawania obrazu...", + "documentsAttachedCount": "{count} dokument załączony | {count} dokumenty załączone | {count} dokumentów załączonych", + "imagesAttachedCount": "{count} obraz załączony | {count} obrazy załączone | {count} obrazów załączonych", + "webpagesAttachedCount": "{count} strona internetowa załączona | {count} strony internetowe załączone | {count} stron internetowych załączonych", + "webpageLinks": "link do strony internetowej | linki do stron internetowych", + "holdKeyToShareWithSyncedSplits": "Przytrzymaj {key}, aby udostępnić zsynchronizowanym podziałom", + "youTubeLinksAttachedCount": "{count} link YouTube załączony | {count} linki YouTube załączone | {count} linków YouTube załączonych", + "dropFiles": { + "errorMessage": { + "detail": "Nie udało się załączyć plików" + } + }, + "dropWebpages": { + "errorMessage": { + "detail": "Nie udało się załączyć stron internetowych" + } + }, + "dropYouTubeLinks": { + "errorMessage": { + "detail": "Nie udało się zaimportować informacji o linkach YouTube. {errorMessage}" + } + }, + "detachAll": { + "title": "Odepnij wszystko", + "confirm": { + "header": "Odepnij wszystko", + "message": "Czy na pewno chcesz odpiąć wszystkie {attachmentType}? Te {attachmentType} nie będą już dostępne w rozmowie we wszystkich podziałach.", + "acceptLabel": "@:delete" + }, + "maxResult": { + "title": "Maksymalny wynik" + }, + "successMessage": { + "detail": "Załączniki zostały odpięte" + } + } + }, + "jinaAPI": { + "manageJinaAPIKeys": "Zarządzaj kluczami", + "jinaApiKeyRequired": "Do korzystania z tej funkcji wymagany jest prawidłowy klucz API Jina. Możesz odwiedzić poniższy link, aby otrzymać go bezpłatnie:", + "willUseJina": { + "description": "Masz aktualnie dodane {count} klucze(-y) API Jina. Możesz dodać więcej kluczy, a Msty wybierze losowy prawidłowy klucz do użycia w żądaniu." + }, + "jinaAPIKeyForm": { + "newTitle": "Nowy klucz API Jina", + "editTitle": "Edytuj klucz API Jina", + "availableKeys": "Dostępne klucze", + "reVerifyKey": "Klucz ma status {status}. Kliknij, aby ponownie zweryfikować", + "verifyKeyAndAdd": "Zweryfikuj klucz i dodaj", + "newDescription": "Dodaj nowy klucz API Jina do użycia z punktami końcowymi Jina Reader i Search. Możesz dodać wiele kluczy i weryfikować je, aby upewnić się, że są prawidłowe. Podczas korzystania z kluczy Msty wybierze losowy prawidłowy klucz do użycia w żądaniu.", + "keyIsGood": { + "summary": "Wszystko w porządku!", + "detail": "Klucz wydaje się być prawidłowy i gotowy do użycia" + }, + "successMessage": { + "detail": "Klucz API Jina został dodany" + }, + "errorMessage": { + "summary": "Błąd{status}!", + "detail": "Nie udało się dodać klucza API Jina. Sprawdź klucz API i upewnij się, że jest prawidłowy." + } + }, + "tokenBudget": { + "title": "Budżet tokenów", + "description": "Maksymalna liczba tokenów do użycia w żądaniach API Jina. Pomaga kontrolować koszty i długość odpowiedzi." + } + }, + "rtd": { + "title": "Dane w czasie rzeczywistym", + "enableRTD": "Kliknij, aby przełączyć RTD; kliknij dwukrotnie, aby skonfigurować", + "contexts": "Konteksty @:rtd.title", + "removeSource": { + "successMessage": { + "detail": "Źródło zostało usunięte" + }, + "errorMessage": { + "detail": "Nie udało się usunąć źródła" + } + }, + "updateSource": { + "errorMessage": { + "detail": "Nie udało się zaktualizować źródła" + } + }, + "searchProvider": "Dostawca wyszukiwania", + "jina": "Jina", + "useRemoteConnector": "Użyj @:remoteToolsConnector.title", + "noSources": "Brak dostępnych źródeł", + "settings": { + "maxResult": { + "title": "Maksymalny wynik" + }, + "saveAsDefaultProvider": { + "title": "Ustaw {providerName} jako domyślnego dostawcę wyszukiwania", + "successMessage": { + "summary": "Wybrano {providerName}!", + "detail": "{providerName} jest teraz domyślnym dostawcą wyszukiwania" + } + }, + "autoWithFallback": "Automatycznie z rezerwą", + "google": "Google", + "brave": "Brave", + "ecosia": "Ecosia", + "customSearchQuery": { + "title": "Niestandardowe zapytanie wyszukiwania", + "placeholder": "To zapytanie zostanie użyte do wyszukiwania. Pozostaw puste, aby użyć monitu jako zapytania" + }, + "limitByDomain": { + "title": "Ogranicz do domeny", + "placeholder": "np. reddit.com lub gov lub (site:reddit.com OR site:gov)", + "commaDelimitedPlaceholder": "Wprowadź domeny oddzielone przecinkami, np. reddit.com,wikipedia.com" + }, + "extraOperators": { + "title": "Dodatkowe operatory" + }, + "dateRange": { + "title": "Zakres dat wyszukiwania", + "placeholder": "Data od – Data do" + }, + "successMessage": { + "detail": "@:rtd.title włączone" + }, + "types": { + "api": "API", + "rtc": "@:remoteToolsConnector.title" + } + }, + "useJinaLabel": "Użyj @:rtd.jina", + "google": { + "useLabel": "Użyj @:rtd.settings.google", + "apiKey": { + "placeholder": "@:rtd.settings.google @:apiKey" + }, + "cseIdLabel": "Identyfikator niestandardowej wyszukiwarki", + "cseIdPlaceholder": "@:rtd.settings.google @:rtd.google.cseIdLabel" + }, + "brave": { + "useLabel": "Użyj @:rtd.settings.brave", + "resultFilter": "Filtruj wyniki", + "apiKey": { + "placeholder": "@:rtd.settings.brave @:apiKey" + } + }, + "searXng": { + "title": "SearXNG", + "engines": { + "title": "Silniki", + "placeholder": "Lista silników oddzielona przecinkami, np. google, brave itp." + }, + "extraParams": { + "title": "Dodatkowe parametry", + "placeholder": "Dodaj dodatkowe parametry. Musi to być prawidłowy obiekt JSON." + }, + "notice": "Twój serwer SearXNG musi mieć włączony format JSON oraz być dostępny przez HTTPS. Aby obejść to ograniczenie przez HTTP w niektórych przeglądarkach, sprawdź naszą dokumentację pod adresem https://docs.msty.studio", + "useLabel": "Użyj @:rtd.searXng.title" + }, + "tavily": { + "title": "Tavily", + "useLabel": "Użyj @:rtd.tavily.title", + "searchTopic": { + "title": "Temat wyszukiwania", + "placeholder": "Kategoria wyszukiwania", + "general": "Ogólne", + "news": "Wiadomości", + "finance": "Finanse" + }, + "apiKey": { + "placeholder": "Wprowadź @:rtd.tavily.title @:apiKey" + }, + "searchDepth": { + "title": "Głębokość wyszukiwania", + "placeholder": "Głębokość wyszukiwania", + "advanced": "Zaawansowana", + "basic": "Podstawowa" + }, + "timeRange": { + "title": "Zakres czasowy", + "placeholder": "Zakres czasowy wstecz od bieżącej daty" + } + }, + "exa": { + "title": "Exa", + "useLabel": "Użyj @:rtd.exa.title", + "apiKey": { + "placeholder": "Wprowadź @:rtd.exa.title @:apiKey" + } + }, + "ollama": { + "title": "Ollama", + "useLabel": "Użyj @:rtd.ollama.title", + "apiKey": { + "placeholder": "Wprowadź @:rtd.ollama.title @:apiKey" + } + }, + "disableRTD": { + "label": "Wyłącz @:rtd.title", + "successMessage": { + "detail": "@:rtd.title wyłączone" + }, + "errorMessage": { + "detail": "Nie udało się wyłączyć @:rtd.title" + } + } + }, + "remoteToolsConnector": { + "title": "Zdalna usługa", + "connectionRequired": "Aby korzystać z tej funkcji, musisz połączyć się z @:remoteToolsConnector.title{'.'}", + "experimentalInfo": "RTD jest funkcją eksperymentalną i może nie działać zgodnie z oczekiwaniami.", + "isConnectedTooltip": "@:remoteToolsConnector.title – Połączono", + "isDisconnectedTooltip": "@:remoteToolsConnector.title – Rozłączono", + "connectNow": "@:connect z @:remoteToolsConnector.title", + "connectFirst": "Najpierw @:connect @:remoteToolsConnector.title", + "reconnectNow": "@:reconnect z @:remoteToolsConnector.title", + "disconnectNow": "Rozłącz teraz", + "checkHealth": "Sprawdź stan połączenia", + "connectionDetails": "Edytuj szczegóły połączenia", + "noPermissionPolicy": "Nie masz uprawnień dostępu do tej funkcji", + "connect": { + "form": { + "title": "Połącz z @:remoteToolsConnector.title", + "saveAndConnect": "Zapisz i połącz", + "rememberConnectionInfo": "Zapamiętaj @:connectionInfo" + }, + "import": { + "title": "@:import @:connectionInfo", + "dragAndDropMessage": "Przeciągnij i upuść plik konfiguracji zdalnego połączenia Msty, aby zaimportować i połączyć się z @:remoteToolsConnector.title{'.'}", + "successMessage": { + "detail": "@:connectionInfo zaimportowane" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować @:connectionInfo" + } + }, + "export": { + "title": "Eksportuj zapisane @:connectionInfo", + "successMessage": { + "detail": "@:connectionInfo wyeksportowane" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować @:connectionInfo" + } + }, + "successMessage": { + "summary": "Połączono!", + "detail": "@:remoteToolsConnector.title połączono pod adresem {url}" + }, + "errorMessage": { + "detail": "Nie udało się połączyć z @:remoteToolsConnector.title{'.'} Upewnij się, że @:remoteToolsConnector.title działa i jest dostępny pod podanym adresem URL.", + "tokenMissing": "Brak tokenu. Sprawdź token i spróbuj ponownie." + }, + "forgetConnectionInfo": "Zapomnij poprzednie @:connectionInfo", + "forgetSuccessMessage": { + "detail": "@:connectionInfo zapomniane" + }, + "toolCommandPaths": { + "title": "Ścieżki poleceń narzędzi", + "description": "Jeśli używasz zestawów narzędzi, ustaw ścieżki do używanych poleceń.", + "selectPlaceholder": "@:select lub wprowadź polecenie", + "pathPlaceholder": "Wprowadź pełną ścieżkę do polecenia", + "assignPath": "Przypisz @:path" + } + }, + "disconnect": { + "successMessage": { + "summary": "Rozłączono!", + "detail": "Rozłączono z @:remoteToolsConnector.title" + } + } + }, + "forge": { + "forgeMode": { + "title": "Tryb Forge", + "description": "Tryb Forge daje ci wolne pole i potężny edytor do swobodnego tworzenia, edytowania, stylizowania i dopracowywania treści." + }, + "title": "Forge", + "forgeContent": "Treść @:forge.title", + "forgingContent": "Tworzenie treści", + "editRawMarkdown": "Edytuj surowy Markdown", + "editAsBranch": "Edytuj jako gałąź", + "disabledEditRawMarkdown": "Ta treść została sforżowana. Edycja surowego Markdown jest niedozwolona.", + "saveChanges": { + "title": "Zapisz zmiany", + "successMessage": { + "detail": "Zmiany zapisane" + }, + "errorMessage": { + "detail": "Nie udało się zapisać zmian" + } + }, + "placeholders": { + "writeSomething": "Napisz coś lub wpisz / aby zobaczyć opcje...", + "detailsSummary": "Wprowadź podsumowanie szczegółów" + }, + "prompts": { + "simplify": "Uprość", + "fixSpellingAndGrammar": "Popraw pisownię i gramatykę", + "makeShorter": "Skróć", + "makeLonger": "Wydłuż", + "tldr": "TL;DR;", + "emojify": "Dodaj emoji", + "changeTone": { + "title": "@:change ton", + "academic": "Akademicki", + "business": "Biznesowy", + "casual": "Swobodny", + "childFriendly": "Przyjazny dzieciom", + "conversational": "Konwersacyjny", + "emotional": "Emocjonalny", + "humorous": "Humorystyczny", + "informative": "Informacyjny", + "inspirational": "Inspirujący", + "professional": "Profesjonalny", + "narrative": "Narracyjny", + "objective": "Obiektywny", + "persuasive": "Perswazyjny", + "poetic": "Poetycki" + } + }, + "clearFormatting": "Usuń formatowanie", + "bold": "Pogrubienie", + "italic": "Kursywa", + "underline": "Podkreślenie", + "strikethrough": "Przekreślenie", + "code": "Kod", + "codeBlock": "Blok kodu", + "blockQuote": "Cytat blokowy", + "undo": "Cofnij", + "redo": "Ponów", + "texts": "Tekst", + "paragraph": "Akapit", + "heading1": "Nagłówek 1", + "heading2": "Nagłówek 2", + "heading3": "Nagłówek 3", + "lists": "Listy", + "bulletList": "Lista punktowana", + "numberedList": "Lista numerowana", + "taskList": "Lista zadań", + "whatToForgePlaceholder": "Co chcesz dziś stworzyć?", + "forgeWriter": "Edytor Forge", + "inlinePrompt": { + "placeholder": "Wpisz swój niestandardowy monit...", + "ask": "Zapytaj", + "askTooltip": "Poproś model o wygenerowanie odpowiedzi na podstawie niestandardowego monitu" + }, + "forgeCanvas": "Kanwa @:forge.title", + "newForgeCanvas": "Nowa @:forge.forgeCanvas", + "addNewForgeCanvas": "Dodaj nową @:forge.forgeCanvas" + }, + "preview": "Podgląd", + "prompt": "Monit | Monity", + "discard": "Odrzuć", + "insert": "Wstaw", + "regenerate": "Regeneruj", + "rewrite": "Przepisz", + "exit": "Wyjdź", + "customPrompt": "Niestandardowy monit", + "markdown": "Markdown", + "json": "JSON", + "html": "HTML", + "formatted": "Sformatowany", + "invalidJson": "Nieprawidłowy @:json", + "downloadMarkdown": "@:download jako plik @:markdown", + "downloadJson": "@:download jako plik @:json", + "downloadHTML": "@:download jako plik HTML", + "copyMarkdownToClipboard": "Kopiuj @:markdown do schowka", + "copyHTMLToClipboard": "Kopiuj HTML do schowka", + "copyFormattedToClipboard": "Kopiuj tekst do schowka", + "copiedToClipboard": { + "summary": "Skopiowano!", + "markdownDetail": "Treść skopiowana do schowka jako @:markdown", + "htmlDetail": "Treść skopiowana do schowka jako HTML", + "formattedDetail": "Treść skopiowana do schowka jako sformatowany tekst", + "jsonDetail": "Treść skopiowana do schowka jako @:json", + "itemCopied": "{item} skopiowane do schowka" + }, + "exportJsonToClipboard": "Treść wyeksportowana do schowka jako @:json", + "variable": "Zmienna | Zmienne", + "pinItem": { + "title": "@:pinned {item}", + "action": "Przypnij {item}", + "successMessage": { + "detail": "{item} przypięte" + }, + "errorMessage": { + "detail": "Nie można przypiąć {item}" + } + }, + "unpinItem": { + "action": "Odepnij {item}", + "successMessage": { + "detail": "{item} odpięte" + }, + "errorMessage": { + "detail": "Nie można odpiąć {item}" + } + }, + "setDefaultItem": { + "title": "Domyślny {item}", + "action": "Ustaw {item} jako domyślny", + "successMessage": { + "detail": "{item} ustawiony jako domyślny" + }, + "errorMessage": { + "detail": "Nie można ustawić {item} jako domyślnego" + } + }, + "unsetDefaultItem": { + "action": "Domyślny {item}. Kliknij, aby cofnąć.", + "successMessage": { + "detail": "{item} usunięty jako domyślny" + } + }, + "model": "Model", + "modelSelector": { + "filterControls": { + "title": "Sortowanie i wyświetlanie", + "searchPlaceholder": "Szukaj modeli...", + "clear": "Resetuj", + "providerSort": { + "label": "Sortowanie dostawców", + "none": "Brak", + "name": "Nazwa", + "createdAt": "Data utworzenia", + "ascending": "Rosnąco", + "descending": "Malejąco", + "groupByProvider": "Grupuj według dostawcy" + }, + "modelSort": { + "label": "Sortowanie modeli", + "none": "Brak", + "name": "Nazwa", + "recent": "Ostatnie", + "ascending": "Rosnąco", + "descending": "Malejąco" + }, + "purpose": { + "label": "Filtruj według przeznaczenia", + "placeholder": "Wszystkie przeznaczenia" + } + } + }, + "modelSettings": "Ustawienia @:model", + "syncSplit": "Synchronizuj @:split", + "name": "Nazwa", + "split": "Podział | Podziały", + "template": "Szablon | Szablony", + "discardChanges": "Odrzuć zmiany", + "applyChanges": "Zastosuj zmiany", + "splitPreset": { + "title": "Ustawienie wstępne podziału | Ustawienia wstępne podziału", + "selectPlaceholder": "@:select ustawienie wstępne", + "new": "Nowe @:preset", + "newSplit": "Nowe @:preset", + "splits": { + "splitIndex": "Podział {index}", + "delete": "@:delete @:preset" + }, + "import": { + "title": "Importuj @:preset | Importuj @:preset", + "dragAndDropMessage": "Przeciągnij i upuść spakowany plik ustawień wstępnych Msty, aby zaimportować i utworzyć nowe ustawienia wstępne. W przypadku zduplikowanych nazw importowane ustawienia wstępne zostaną przemianowane. Możesz to zmienić później.", + "successMessage": { + "detail": "@:preset zaimportowane" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować ustawień wstępnych" + } + }, + "export": { + "title": "Eksportuj @:preset | Eksportuj @:preset", + "selected": "Eksportuj wybrane @:preset | Eksportuj wybrane @:preset", + "successMessage": { + "detail": "Ustawienie wstępne podziału wyeksportowane jako {fileName} | Ustawienia wstępne podziału wyeksportowane jako {fileName}" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować ustawienia wstępnego | Nie udało się wyeksportować ustawień wstępnych" + } + }, + "delete": { + "title": "@:delete @:preset | Usuń @:preset", + "selected": "@:delete wybrane @:preset | Usuń wybrane @:preset", + "deleteConfirmation": { + "header": "@:delete @:preset", + "description": "Czy na pewno chcesz usunąć {presetName}? | Czy na pewno chcesz usunąć {count} ustawień wstępnych?" + }, + "successMessage": { + "detail": "Ustawienie wstępne podziału usunięte | Ustawienia wstępne podziału usunięte" + }, + "errorMessage": { + "detail": "Nie można usunąć ustawienia wstępnego podziału | Nie można usunąć ustawień wstępnych podziału" + } + }, + "update": { + "successMessage": { + "detail": "Ustawienie wstępne podziału zaktualizowane" + }, + "errorMessage": { + "detail": "Nie można zaktualizować ustawienia wstępnego podziału" + } + }, + "save": { + "successMessage": { + "detail": "Ustawienie wstępne podziału zapisane" + }, + "errorMessage": { + "detail": "Nie można zapisać ustawienia wstępnego podziału" + } + }, + "empty": { + "title": "Brak dostępnych @:splitPreset.title.", + "description": "Zacznij od dodania lub zaimportowania nowego @:splitPreset.title" + }, + "invalidTemplatesMessage": { + "summary": "Nieprawidłowe szablony", + "detail": "Niektóre szablony są nieprawidłowe lub brakuje wymaganych pól. Popraw je przed kontynuowaniem." + } + }, + "shadowPersonas": { + "title": "Cienie person", + "create": "Utwórz cień persony", + "editTitle": "Edytuj cień persony", + "assignedPersona": "Przypisana persona", + "changePersona": "Zmień personę", + "changePersonaTitle": "Zmień cień persony", + "currentPersona": "Aktualna persona", + "selectNewPersona": "Wybierz nową personę", + "waitingForCompletion": "Oczekiwanie na zakończenie", + "changePersonaWarning": "Zmiana persony zresetuje kontekst analizy i może wpłynąć na ciągłość.", + "unassigned": "Brak przypisanej persony", + "hideSidebar": "Ukryj cienie person", + "showSidebar": "Pokaż cienie person", + "noMonitoring": "Żadne podziały nie są monitorowane", + "monitoringHiddenHint": "Monitorowanie {count} podziału (kliknij, aby pokazać) | Monitorowanie {count} podziałów (kliknij, aby pokazać)", + "monitoringSplitsHint": "Monitorowanie {count} podziału | Monitorowanie {count} podziałów", + "noSplitsMonitoredHint": "Żadne podziały nie są monitorowane", + "monitoringStatus": "Monitorowanie {count} podziału | Monitorowanie {count} podziałów", + "activate": "Aktywuj", + "deactivate": "Dezaktywuj", + "processNow": "Przetwórz teraz", + "processing": "Przetwarzanie...", + "createAndAssign": "Utwórz i przypisz", + "latestInsight": "Najnowszy wgląd", + "noOutputYet": "Brak wyników", + "outputs": "Wyniki", + "viewLatest": "Zobacz najnowszy", + "viewHistory": "Zobacz historię", + "noHistory": "Brak dostępnej historii", + "selectVersion": "Wybierz wersję", + "name": "Nazwa cienia persony", + "namePlaceholder": "np. Analityk techniczny, Monitor wydajności", + "edit": "Edytuj cień persony", + "switchShadowPersona": "Przełącz cień persony", + "selectShadowPersonaToSwitch": "Wybierz cień persony, na który chcesz się przełączyć", + "selectShadowPersona": "Wybierz cień persony", + "searchShadowPersonas": "Szukaj cieni person...", + "description": "Opis (opcjonalny)", + "descriptionPlaceholder": "Opisz, co ten cień persony obserwuje lub analizuje", + "selectPersona": "Wybierz personę", + "selectPersonaPlaceholder": "Wybierz personę do użycia", + "selectSplits": "Wybierz podziały do monitorowania", + "selectSplitsPlaceholder": "Wybierz podziały do monitorowania", + "selectSplitsPlaceholderOptional": "Wybierz podziały do monitorowania (można ustawić później)", + "splitsCanBeAssignedLater": "Podziały można dynamicznie przypisywać i zarządzać nimi po utworzeniu", + "updateTrigger": "Wyzwalacz aktualizacji", + "messageInterval": "Interwał wiadomości", + "timeInterval": "Interwał czasowy", + "messagesPerSplit": "Wiadomości na podział", + "maxContext": "Maksymalny kontekst", + "synthesisMode": "Tryb syntezy", + "outputFormat": "Format wyjściowy", + "maxProcessingTime": "Maksymalny czas przetwarzania", + "versionManagement": "Zarządzanie wersjami", + "maxVersions": "Maksymalna liczba wersji", + "advancedSettings": "Ustawienia zaawansowane", + "includeSystemMessages": "Uwzględnij komunikaty systemowe", + "autoDeleteOld": "Automatycznie usuń stare wersje", + "waitingForSplits": "Oczekiwanie na podziały", + "processingNow": "Przetwarzanie teraz", + "empty": { + "title": "Brak cieni person", + "description": "Utwórz cień persony, aby monitorować i analizować podziały rozmów" + }, + "unlock": "Odblokuj cienie person", + "experimental": "Eksperymentalne", + "experimentalInfo": "Cienie person to eksperymentalna funkcja, która analizuje rozmowy i równolegle generuje alternatywne perspektywy i wglądy.", + "noOutput": { + "title": "Brak wyników", + "description": "Ten cień persony nie wygenerował jeszcze żadnych wyników" + }, + "saveToEnableProcessing": "Zapisz tę rozmowę, aby włączyć przetwarzanie przez cień persony", + "delete": { + "title": "Usuń cień persony", + "action": "Usuń", + "confirmMessage": "Czy na pewno chcesz usunąć \"{name}\"? \"{name}\" zostanie usunięty ze wszystkich rozmów, do których jest przypisany. Tej operacji nie można cofnąć.", + "successMessage": "Cień persony został pomyślnie usunięty", + "errorMessage": "Nie udało się usunąć cienia persony" + }, + "detach": { + "title": "Odepnij cień persony", + "action": "Odepnij", + "confirmMessage": "Odpiąć \"{name}\" od tej rozmowy? Cień persony pozostanie dostępny dla innych rozmów.", + "successMessage": "Cień persony został pomyślnie odpięty", + "errorMessage": "Nie udało się odpiąć cienia persony" + }, + "switch": { + "successMessage": "Cień persony został pomyślnie przełączony", + "errorMessage": "Nie udało się przełączyć cienia persony" + }, + "editToast": { + "successMessage": "Cień persony został pomyślnie zaktualizowany", + "errorMessage": "Nie udało się zaktualizować cienia persony" + }, + "createToast": { + "successMessage": "Cień persony został pomyślnie utworzony", + "errorMessage": "Nie udało się utworzyć cienia persony" + }, + "queueClearedToast": { + "summary": "Kolejka wyczyszczona", + "detail": "Anulowano {cancelledCount} element w kolejce | Anulowano {cancelledCount} elementy w kolejce | Anulowano {cancelledCount} elementów w kolejce" + }, + "queueUpdatedToast": { + "summary": "Kolejka zaktualizowana", + "detail": "Anulowano {cancelledCount} element wyzwalany automatycznie | Anulowano {cancelledCount} elementy wyzwalane automatycznie | Anulowano {cancelledCount} elementów wyzwalanych automatycznie" + }, + "queueFullToast": { + "summary": "Kolejka pełna", + "detail": "Kolejka przetwarzania jest pełna. Poczekaj na zakończenie bieżących elementów" + }, + "alreadyProcessingToast": { + "summary": "Już przetwarzane", + "detail": "Ta rozmowa jest już przetwarzana" + }, + "trigger": { + "everyMessage": "Każda wiadomość", + "everyNMessages": "Co {n} wiadomości", + "manual": "Tylko ręcznie", + "timeInterval": "Interwał czasowy", + "automatic": "Automatycznie" + }, + "triggerHints": { + "everyMessage": "Uruchamia się po każdej wiadomości (najszybciej, najczęściej)", + "everyNMessages": "Uruchamia się co {n} wiadomości (wsadowo)", + "manual": "Tylko gdy klikniesz \"Przetwórz teraz\"" + }, + "synthesis": { + "auto": "Automatycznie", + "combined": "Analiza łączona", + "perSplit": "Na podział", + "comparative": "Porównawcza" + }, + "synthesisHints": { + "auto": "Wybiera najlepszy tryb na podstawie podziałów i intencji", + "combined": "Jedno podsumowanie dla wszystkich podziałów", + "perSplit": "Każdy podział oddzielnie i oznaczony", + "comparative": "Różnice i punkty zgodne zestawione obok siebie" + }, + "synthesisAutoReasons": { + "singleSplit": "Automatycznie użyje trybu łączonego, ponieważ istnieje tylko jeden podział.", + "multipleModels": "Automatycznie użyje trybu porównawczego, ponieważ używanych jest wiele modeli.", + "sameModel": "Automatycznie użyje trybu na podział, ponieważ podziały używają tego samego modelu." + }, + "format": { + "insights": "Wglądy", + "summary": "Podsumowanie", + "recommendations": "Zalecenia", + "analysis": "Analiza" + }, + "monitoringSplits": "Monitorowanie {count} podziału | Monitorowanie {count} podziałów", + "locateSplits": "Znajdź podziały", + "manageSplits": "Zarządzaj podziałami", + "addAllSplits": "Dodaj wszystkie podziały", + "deselectAll": "Odznacz wszystko", + "selectAll": "Zaznacz wszystko", + "selectedCount": "{count} z {total} zaznaczonych", + "streaming": "Strumieniowanie", + "starting": "Uruchamianie", + "collectingContext": "Zbieranie kontekstu z podziałów...", + "waitingForConversationCompletion": "Oczekiwanie na zakończenie rozmowy", + "analyzingConversationSplits": "Analizowanie podziałów rozmowy...", + "analyzeResponses": "Cień persony przeprowadzi analizę po otrzymaniu wszystkich odpowiedzi", + "toolCalls": "Wywołania narzędzi", + "reasoning": "Rozumowanie", + "attachExisting": "Dołącz istniejący", + "attachTitle": "Dołącz cień persony", + "previousVersion": "Poprzednia wersja", + "nextVersion": "Następna wersja", + "attach": "Dołącz", + "selectShadowPersonaToAttach": "Wybierz cień persony, który chcesz dołączyć do tej rozmowy", + "selectShadowPersonaPlaceholder": "Wybierz cień persony do dołączenia", + "queuedPosition": "W kolejce #{position}", + "addToQueue": "Dodaj do kolejki", + "processingQueue": "Kolejka przetwarzania", + "removeFromQueue": "Usuń z kolejki", + "removedFromQueue": "Usunięto z kolejki", + "inQueue": "w kolejce", + "clearQueue": "Wyczyść wszystko", + "queueEmpty": "Brak elementów w kolejce", + "estimatedWait": "Szac. czas oczekiwania: {time}", + "queuedItems": "{count} element w kolejce | {count} elementy w kolejce | {count} elementów w kolejce", + "monitoring": "Monitorowanie i kolejka", + "monitoredSplits": "Monitorowane podziały" + }, + "toolbox": { + "title": "Skrzynka narzędziowa", + "toolsUsageWillSkip": "Msty @:remoteToolsConnector.title nie działa; użycie narzędzi zostanie pominięte.", + "tools": { + "title": "Narzędzie | Narzędzia", + "description": "Zestaw narzędzi wspomagających pracę z LLM.", + "availableTools": "Dostępne narzędzia", + "availableToolsets": "Dostępne zestawy narzędzi", + "authorize": "Autoryzuj", + "setDefaultParams": "Ustaw domyślne parametry", + "setParams": "Ustaw parametry", + "missingThisDependency": "Ta zależność wydaje się być niedostępna w Twoim środowisku. Bez niej narzędzie może nie działać poprawnie.", + "defaultParamsForm": { + "header": "Domyślne parametry dla {toolName}", + "description": "Te parametry będą używane globalnie dla wszystkich instancji narzędzia {toolName}. Możesz je nadpisać podczas tworzenia zestawu narzędzi.", + "args": { + "label": "Argumenty", + "description": "@:select @:argument i ustaw jego wartość. Pozostaw puste, aby pominąć ustawianie wartości.", + "customArg": { + "label": "Niestandardowy @:argument", + "description": "Wprowadź nazwę nowego @:argument{'.'} Oddziel wiele argumentów przecinkiem.", + "placeholder": "np. --arg1, someArg, -verbose" + } + }, + "env": { + "label": "Zmienne środowiskowe", + "description": "@:select lub wprowadź nową @:variable środowiskową i ustaw jej wartość.", + "addEnv": "Dodaj @:variable środowiskową", + "selectPlaceholder": "@:select @:variable środowiskową", + "enterNew": "Dodaj nową @:variable środowiskową" + }, + "successMessage": { + "saveDetail": "Domyślne parametry zapisane dla {toolName}." + }, + "errorMessage": { + "saveDetail": "Nie udało się zapisać domyślnych parametrów." + } + }, + "addNewTool": { + "title": "Dodaj nowe narzędzie", + "description": "Dodaj własne narzędzie zgodne z MCP do skrzynki narzędziowej. Po dodaniu możesz dodać je do zestawu narzędzi, ustawić parametry i używać z modelem.", + "namePlaceholder": "Nadaj mu nazwę (domyślnie używa ID narzędzia)", + "id": { + "label": "ID narzędzia", + "placeholder": "Unikalny identyfikator narzędzia (wypełniany automatycznie po wykryciu z konfiguracji)" + }, + "duplicateId": "Narzędzie z tym ID już istnieje. Wprowadź unikalne ID.", + "successMessage": { + "summary": "Narzędzie dodane", + "detail": "Narzędzie dodane do skrzynki narzędziowej. Możesz teraz dodać je do zestawu narzędzi i używać z modelem." + }, + "successMessageWithToolset": { + "summary": "Narzędzie dodane", + "detail": "Narzędzie dodane do skrzynki narzędziowej i automatycznie utworzono pasujący zestaw narzędzi. Jest gotowe do użycia z modelem." + }, + "errorMessage": { + "detail": "Nie udało się dodać narzędzia do skrzynki narzędziowej. {error}" + }, + "toolConfig": { + "label": "Konfiguracja narzędzia", + "placeholder": "Wprowadź lub wklej JSON konfiguracji narzędzia. Akceptuje bezpośrednie konfiguracje lub formaty opakowane (automatycznie wyodrębni toolId)", + "showExampleTitle": "Pokaż mi przykład konfiguracji narzędzia", + "explanation": "Konfiguracja narzędzia akceptuje wiele formatów, w tym konfiguracje opakowane z mcpServers. Automatycznie wyodrębni toolId i nazwę, gdy to możliwe. Musi zawierać co najmniej {command}. Dynamiczne argumenty muszą być opakowane w nawiasy klamrowe {curly} w taki sposób: {argExample}. Podobnie dynamiczne zmienne środowiskowe można ustawiać za pomocą {envVarLabel}." + }, + "autoCreateToolset": { + "label": "Automatycznie utwórz zestaw narzędzi o tej samej nazwie" + } + }, + "editTool": { + "title": "Edytuj narzędzie", + "description": "Zaktualizuj nazwę, notatki i konfigurację narzędzia.", + "successMessage": { + "detail": "Narzędzie @:updatedSuccess" + }, + "errorMessage": { + "detail": "@:failedToUpdate narzędzie." + } + }, + "emptyPlaceholder": { + "description1": "Używaj zewnętrznych narzędzi MCP zasilanych przez Msty @:remoteToolsConnector.title, aby rozszerzyć możliwości modeli i wzbogacić swoje doświadczenie z LLM.", + "description2": "Możesz zacząć od zaimportowania wielu narzędzi dostarczanych z Msty lub dodania własnych.", + "description3": "Uwaga: Te narzędzia nie są dostarczane, testowane ani utrzymywane przez Msty. Jedynie udostępniamy platformę do ich używania i umożliwiamy ich importowanie dla wygody. UŻYWAJ ICH NA WŁASNE RYZYKO. Msty nie ponosi odpowiedzialności za żadne problemy wynikające z używania tych narzędzi. W celu uzyskania wsparcia skontaktuj się z autorem narzędzia." + }, + "importTools": { + "title": "Importuj domyślne @:toolbox.tools.title", + "successMessage": { + "detail": "{count} domyślnych narzędzi zostało pomyślnie zaimportowanych. Możesz tworzyć zestawy narzędzi i używać ich z modelem." + }, + "successMessageWithToolsets": { + "detail": "{count} domyślnych narzędzi zostało pomyślnie zaimportowanych i automatycznie utworzono {toolsetCount} odpowiadających zestawów narzędzi." + }, + "errorMessage": { + "detail": "Nie udało się zaimportować domyślnych @:toolbox.tools.title" + } + }, + "deleteConfirmation": { + "header": "Usuń narzędzie", + "description": "Czy na pewno chcesz usunąć {toolName}?", + "successMessage": { + "detail": "Narzędzie usunięte" + }, + "errorMessage": { + "detail": "@:failedToDelete narzędzie" + } + }, + "deleteAll": { + "confirmationHeader": "Usuń wszystkie narzędzia", + "confirmationMessage": "Czy na pewno chcesz usunąć wszystkie narzędzia? Tej operacji nie można cofnąć.", + "successMessage": "Wszystkie narzędzia zostały pomyślnie usunięte", + "errorMessage": "Nie udało się usunąć wszystkich narzędzi" + }, + "copiedToClipboard": "Konfiguracja narzędzia skopiowana do schowka", + "viewToolsUsage": { + "title": "Wyświetl użycie narzędzi", + "noToolCalls": { + "title": "Nie znaleziono wywołań narzędzi", + "description": "Wygląda na to, że model miał dostęp do niektórych narzędzi, ale nie wykonał żadnych wywołań. Może to być spowodowane tym, że model nie potrzebował użyć żadnego narzędzia." + } + } + }, + "toolsets": { + "title": "Zestaw narzędzi | Zestawy narzędzi", + "emptyPlaceholder": { + "title": "Nie znaleziono zestawów narzędzi", + "description": "Zestawy narzędzi to zbiory narzędzi z parametrami. Możesz utworzyć zestaw narzędzi i dodać do niego narzędzia. Podczas rozmowy z modelem możesz wybrać jeden lub więcej zestawów narzędzi do użycia." + }, + "addSomeTools": "Dodaj narzędzia, aby zacząć.", + "noTools": "Brak narzędzi w tym zestawie", + "tooltip": { + "selectedFeatures": "Włączone funkcje", + "loading": "Ładowanie szczegółów funkcji…", + "allFeatures": "Wszystkie funkcje", + "unavailable": "Nie można załadować szczegółów funkcji" + }, + "addNewToolset": { + "title": "Dodaj nowy @:toolbox.toolsets.title", + "description": "Utwórz nowy zestaw narzędzi, aby grupować narzędzia. Możesz dodawać narzędzia do zestawu i używać go z modelem. Pamiętaj, aby ustawić/nadpisać parametry dla każdego narzędzia w zestawie, klikając przycisk {icon}.", + "setParams": { + "title": "Ustaw parametry dla {toolName}", + "description": "Ustaw parametry dla narzędzia {toolName}. Możesz nadpisać domyślne parametry ustawione dla narzędzia. Użyj konsoli narzędzia, aby przetestować narzędzie, wyświetlić dostępne funkcje i w razie potrzeby ograniczyć funkcje." + }, + "successMessage": { + "saveDetail": "Zestaw narzędzi zapisany i dodany do skrzynki narzędziowej. Możesz teraz używać go z modelem." + }, + "errorMessage": { + "saveDetail": "@:failedToSave zestaw narzędzi." + } + }, + "editToolset": { + "title": "Edytuj zestaw narzędzi", + "description": "Edytuj nazwę i notatki zestawu narzędzi. Możesz również dodawać lub usuwać narzędzia z zestawu oraz dostosowywać parametry lub ograniczać funkcje dla każdego narzędzia, klikając przycisk {icon}.", + "successMessage": { + "detail": "Zestaw narzędzi @:updatedSuccess" + }, + "errorMessage": { + "detail": "@:failedToUpdate zestaw narzędzi." + } + }, + "deleteConfirmation": { + "header": "Usuń zestaw narzędzi", + "description": "Czy na pewno chcesz usunąć {toolsetName}?", + "successMessage": { + "detail": "Zestaw narzędzi usunięty" + }, + "errorMessage": { + "detail": "@:failedToDelete zestaw narzędzi" + } + }, + "deleteAll": { + "confirmationHeader": "Usuń wszystkie zestawy narzędzi", + "confirmationMessage": "Czy na pewno chcesz usunąć wszystkie zestawy narzędzi? Tej operacji nie można cofnąć.", + "successMessage": "Wszystkie zestawy narzędzi zostały pomyślnie usunięte", + "errorMessage": "Nie udało się usunąć wszystkich zestawów narzędzi" + }, + "export": { + "title": "Eksportuj @:toolbox.toolsets.title", + "description": "Ze względów bezpieczeństwa wrażliwe wartości konfiguracyjne można usunąć przed eksportem. Wybierz, które zmienne środowiskowe i argumenty mają zostać usunięte dla każdego narzędzia.", + "envVarsToScrub": "Zmienne środowiskowe do usunięcia", + "argsToScrub": "Argumenty do usunięcia", + "scrubCustomArgs": "Usuń niestandardowy ciąg argumentów", + "selectEnvVarsPlaceholder": "Wybierz zmienne środowiskowe do usunięcia wartości", + "selectArgsPlaceholder": "Wybierz argumenty do usunięcia wartości", + "noScrubbableData": "Brak danych konfiguracyjnych do usunięcia", + "sensitiveDataNote": "Typowe wrażliwe wartości są wstępnie zaznaczone dla Twojego bezpieczeństwa.", + "copiedToClipboard": "Konfiguracja zestawu narzędzi skopiowana do schowka", + "downloadedAsJson": "Konfiguracja zestawu narzędzi pobrana", + "fetchError": "Nie udało się pobrać danych zestawu narzędzi do eksportu" + }, + "import": { + "missingTools": "Niektóre narzędzia nie zostały znalezione i zostały pominięte: {tools}" + }, + "noOfTools": "{count} narzędzie | {count} narzędzia | {count} narzędzi", + "viewToolsAndNotes": "Wyświetl narzędzia i notatki", + "console": { + "title": "Konsola narzędzia", + "description": "Możesz użyć tej konsoli do testowania {toolName} i przeglądania wyników. Możesz również testować narzędzie z różnymi parametrami lub ograniczać dostępne funkcje. Domyślnie wszystkie funkcje są włączone; zaznacz pola wyboru, aby ograniczyć funkcje tylko do wybranych.", + "listTools": "Wyświetl funkcje {toolName}", + "missingRequiredArgument": "Brak {count} wymaganego @:argument", + "continueWithMissingArgs": "@:continue z brakującym @:argument", + "viewSourceOnGitHub": "Wyświetl źródło na GitHub", + "allowedFeaturesLabel": "Włącz określone funkcje dla tego narzędzia", + "allowedFeaturesPlaceholder": "Szukaj lub wybierz funkcje do włączenia", + "selectedFeaturesLabel": "Aktualnie włączone funkcje", + "toolCall": { + "title": "Wywołanie narzędzia", + "description": "Dodaj wymagane właściwości, aby wywołać {featureName}. Możesz dodać dodatkowe właściwości. Zachowaj ostrożność podczas wywoływania narzędzia, szczególnie bez właściwych wartości.", + "selectPlaceholder": "@:select właściwość", + "enterNew": "Dodaj nową właściwość", + "execute": "Wykonaj @:toolbox.toolsets.console.toolCall" + } + }, + "manageTooltip": "Kliknij, aby zarządzać używanymi zestawami narzędzi", + "noModelSupport": "Wybrany @:select model może nie obsługiwać narzędzi.", + "toolsetsUsedCount": "{count} aktywny zestaw narzędzi | {count} aktywne zestawy narzędzi | {count} aktywnych zestawów narzędzi" + } + }, + "liveContexts": { + "liveContextsUsedCount": "{count} aktywny kontekst na żywo | {count} aktywne konteksty na żywo | {count} aktywnych kontekstów na żywo", + "title": "Kontekst na żywo", + "contexts": "Konteksty na żywo", + "untitled": "Nienazwany kontekst na żywo", + "selectSource": "Wybierz źródło", + "selectSourceTooltip": "Przełącz, aby uwzględnić lub wykluczyć to źródło z kontekstu", + "addNew": { + "title": "Dodaj nowy @:liveContexts.title", + "description": "Utwórz nowe źródło @:liveContexts.title, aby dodać zewnętrzny kontekst danych do rozmowy.", + "errorMessage": { + "detail": "Nie udało się dodać @:liveContexts.title" + }, + "successMessage": { + "detail": "@:liveContexts.title dodany" + } + }, + "edit": { + "title": "Edytuj @:liveContexts.title" + }, + "promptPlaceholder": "Podaj monit dla trybu Push tutaj; szczegóły trybu Pull umieść w sekcji Notatki.", + "endpointDetails": "Szczegóły punktu końcowego", + "method": "Metoda", + "url": "URL", + "customHeaders": "Niestandardowe nagłówki", + "hasBody": "Ma treść", + "customProcessing": "Niestandardowe przetwarzanie", + "promptTemplate": "Szablon monitu", + "requestHeaders": { + "title": "Nagłówki żądania", + "description": "Dodaj nagłówki żądania jako obiekt JSON. Zostaną wysłane wraz z żądaniem do punktu końcowego API.", + "placeholder": "{'{'}\n \"Authorization\": \"Bearer {'{'}apiKey:'key'{'}'}\",\n \"X-From\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}" + }, + "requestBody": { + "title": "Treść żądania", + "description": "Dodaj treść żądania jako obiekt JSON. Zostanie wysłana wraz z żądaniem do punktu końcowego API.", + "placeholder": "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}" + }, + "placeholders": { + "title": "Dynamiczne symbole zastępcze", + "tooltip": "Składnia symboli zastępczych", + "label": "Symbole zastępcze:" + }, + "processingFunction": { + "title": "Funkcja przetwarzająca", + "description": "Dodaj funkcję przetwarzającą, aby przekształcić dane odpowiedzi przed użyciem w rozmowie. Funkcja powinna zwracać ciąg znaków.", + "placeholderHeader": "function process({'{'}data, placeholders{'}'}) {'{'}", + "placeholder": " // dostęp do danych i opcjonalnych symboli zastępczych\n return JSON.stringify(data)", + "placeholderFooter": "{'}'}", + "tooltip": "Dostęp przez parametr placeholders", + "usePlaceholders": "Użyj symboli zastępczych w kodzie:" + }, + "testVariables": { + "description": "Wprowadź wartości testowe dla wykrytych symboli zastępczych, aby przetestować punkt końcowy." + }, + "update": { + "successMessage": { + "detail": "@:liveContexts.title zaktualizowany" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować @:liveContexts.title" + } + }, + "deleteConfirmation": { + "header": "Usuń @:liveContexts.title", + "description": "Czy na pewno chcesz usunąć {liveContextName}?", + "successMessage": { + "detail": "@:liveContexts.title usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:liveContexts.title" + } + }, + "emptyPlaceholder": { + "title": "Nie znaleziono @:liveContexts.title", + "description": "@:liveContexts.title to zewnętrzne konteksty danych, które możesz dodać do rozmowy. Możesz utworzyć nowe źródło @:liveContexts.title i używać go z modelem." + }, + "deleteAll": { + "confirmationHeader": "Usuń wszystkie @:liveContexts.contexts", + "confirmationMessage": "Czy na pewno chcesz usunąć wszystkie konteksty na żywo? Tej operacji nie można cofnąć.", + "successMessage": "Wszystkie konteksty na żywo zostały pomyślnie usunięte", + "errorMessage": "Nie udało się usunąć wszystkich kontekstów na żywo" + }, + "export": { + "title": "Eksportuj @:liveContexts.title", + "headerScrubDescription": "Ze względów bezpieczeństwa wrażliwe wartości nagłówków można usunąć przed eksportem. Wybierz, które nagłówki mają zostać usunięte.", + "selectHeadersToScrub": "Nagłówki do usunięcia", + "selectHeadersPlaceholder": "Wybierz nagłówki do usunięcia wartości", + "sensitiveHeadersNote": "Typowe wrażliwe nagłówki są wstępnie zaznaczone dla Twojego bezpieczeństwa.", + "copiedToClipboard": "Konfiguracja kontekstu na żywo skopiowana do schowka", + "downloadedAsJson": "Konfiguracja kontekstu na żywo pobrana" + }, + "modeLabel": "Tryb", + "mode": { + "push": "Push", + "pull": "Pull", + "tooltip": { + "push": "Tryb Push: uruchamia się automatycznie przed odpowiedzią modelu", + "pull": "Tryb Pull: wywoływany na żądanie przez model" + } + } + }, + "modes": { + "mode": "Tryb | Tryby", + "title": "@:modes.mode", + "exitMode": "Wyjdź z trybu {mode} @:modes.mode", + "zenMode": { + "title": "Zen", + "quote": "stan spokojnej uważności", + "newConversation": "Nowa @:modes.zenMode.title @:conversation.title" + }, + "vaporMode": { + "title": "@:modes.vaporMode.vapor @:modes.mode", + "vapor": "Vapor", + "description": "Rozmowy nie będą zapisywane w historii i znikną po wyłączeniu tego trybu lub przejściu do innego widoku", + "willDisappearTooltip": "To zniknie po wyłączeniu trybu @:modes.vaporMode.vapor @:modes.mode lub przejściu do innego widoku", + "exitVaporMode": "Wyjdź z trybu @:modes.vaporMode.vapor @:modes.mode", + "enterVaporMode": "Wejdź w tryb @:modes.vaporMode.vapor @:modes.mode", + "preserverChat": { + "saveConversation": "@:save @:conversation.title", + "successMessage": { + "detail": "Czat @:modes.vaporMode.vapor został zachowany" + }, + "errorMessage": { + "detail": "Nie udało się zachować czatu @:modes.vaporMode.vapor" + } + } + }, + "focusMode": { + "title": "Tryb skupienia" + }, + "normalMode": { + "title": "Tryb normalny" + } + }, + "searchForm": { + "query": "Zapytanie", + "title": "Szukaj elementów", + "noResults": { + "title": "Nie znaleziono wyników", + "description": "Spróbuj wyszukać inną frazę" + }, + "entity": { + "conversationTextMessages": "@:conversation.title", + "promptsLibraryPrompts": "Monit | Monity" + }, + "foundResultsCount": "Znaleziono {count} wynik | Znaleziono {count} wyniki | Znaleziono {count} wyników", + "labels": { + "title": "Szukaj {entity}", + "description": "Szybko znajdź {entity} za pomocą słów kluczowych", + "tips": { + "default": { + "description": "Wyszukiwanie domyślnie dopasowuje wszystkie słowa (np. {example} → dopasowuje tekst zawierający oba słowa w dowolnej kolejności)", + "example": "niebieski samochód" + }, + "partial": { + "description": "Użyj {operator} do częściowego dopasowania (np. {example})", + "operator": "*", + "example": "run* → runs, running" + }, + "or": { + "description": "@:user {operator} aby dopasować dowolny termin (np. {example})", + "operator": "OR", + "example": "apple OR orange" + }, + "exact": { + "description": "Użyj podwójnych cudzysłowów {operator} do dokładnego dopasowania (np. {example})", + "operator": "\"\"", + "example": "\"blue car\"" + }, + "specialCharacters": { + "description": "Użyj {operator} aby zignorować znaki specjalne (np. {example})", + "operator": "\"\"", + "example": "\"C++\", \"node.js\"" + } + } + } + }, + "clearSearch": "Wyczyść wyszukiwanie", + "helpfulTips": "Przydatne wskazówki", + "hideSearch": "Ukryj wyszukiwanie", + "bookmarkItem": { + "action": "@:bookmark {item}", + "jump": "Przejdź do @:bookmarked {item}", + "title": "@:bookmarked {item}", + "successMessage": { + "detail": "{item} @:bookmarked" + }, + "errorMessage": { + "detail": "Nie można dodać {item} do zakładek" + }, + "deletedInfoMessage": { + "detail": "@:bookmarked {item} został usunięty" + }, + "emptyState": { + "title": "Brak dostępnych zakładek.", + "description": "Zacznij od dodania {item} do zakładek" + } + }, + "removeBookmarkedItem": { + "action": "Usuń @:bookmarked {item}", + "successMessage": { + "detail": "{item} usunięty z zakładek" + }, + "errorMessage": { + "detail": "Nie można usunąć {item} z zakładek" + } + }, + "turnstile": { + "title": "Turnstile | Turnstile", + "newTurnstile": "Nowy @:turnstile.title", + "queueEntry": "Dodaj do kolejki", + "selectPlaceholder": "@:select @:turnstile.title", + "addQueueWithAlt": "Kliknij, aby otworzyć lub Alt+Kliknij, aby dodać do kolejki", + "entriesQueued": "Brak wpisów w kolejce | {count}/{total} @:entry w kolejce | {count}/{total} @:entry w kolejce", + "emptyQueueMessage": "Gdy Twój prompt będzie gotowy, kliknij @:turnstile.queueEntry, aby dodać wpis do kolejki.", + "manageSavedTurnstiles": "Zarządzaj zapisanymi Turnstile", + "saveForm": { + "title": "Zapisz @:turnstile.title jako", + "successMessage": { + "detail": "@:turnstile.title został zapisany." + }, + "errorMessage": { + "detail": "Nie udało się zapisać turnstile." + } + }, + "loadTurnstiles": { + "title": "Załaduj @:turnstile.title", + "successMessage": { + "summary": "@:turnstile.title załadowany!", + "detail": "{count} wpis załadowany i dodany do kolejki. | {count} wpisy zostały załadowane i dodane do kolejki." + }, + "errorMessage": { + "detail": "Nie udało się załadować turnstile." + } + }, + "clearQueue": { + "title": "Wyczyść kolejkę", + "clearQueueConfirmation": { + "message": "Czy na pewno chcesz wyczyścić kolejkę? Spowoduje to usunięcie wszystkich dodanych wiadomości." + } + }, + "newEntry": { + "title": "Nowy wpis" + }, + "invalidEntriesMessage": { + "summary": "Nieprawidłowe wpisy", + "detail": "Niektóre wpisy są nieprawidłowe lub brakuje wymaganych pól. Popraw je przed kontynuowaniem." + }, + "metaSendMissingRootNode": { + "detail": "Nie można uruchomić {metaType}. Upewnij się, że nie jest to pierwszy wpis w kolejce." + }, + "update": { + "successMessage": { + "detail": "@:turnstile.title został zaktualizowany." + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować turnstile. Czy ustawiłeś prompt i model?" + } + }, + "save": { + "successMessage": { + "detail": "@:turnstile.title został zapisany." + }, + "errorMessage": { + "detail": "Nie udało się zapisać turnstile. Czy ustawiłeś prompt i model?" + } + }, + "delete": { + "selected": "Usuń wybrany @:turnstile.title | Usuń wybrane @:turnstile.title", + "deleteConfirmation": { + "header": "Usuń @:turnstile.title", + "description": "Czy na pewno chcesz usunąć {turnstileName}? | Czy na pewno chcesz usunąć {count} turnstile?" + } + }, + "empty": { + "title": "Brak dostępnych @:turnstile.title.", + "description": "Zacznij od dodania lub zaimportowania nowego @:turnstile.title{'.'}" + }, + "new": "@:new @:turnstile.title", + "entryIndex": "@:entry {index}", + "addContinue": "Dodaj @:message.renderingActions.continueGeneration", + "addRegenerate": "Dodaj @:regenerate", + "addPersona": "Dodaj @:persona.title", + "addShield": "Dodaj @:contextShield.title", + "addShieldWithSummary": "Dodaj @:contextShield.contextShieldWithSummary", + "import": { + "title": "Importuj @:turnstile.title", + "dragAndDropMessage": "Przeciągnij i upuść spakowany plik Msty @:turnstile.title, aby zaimportować i utworzyć nowe turnstile. W przypadku duplikatów nazw importowane turnstile zostaną przemianowane. Możesz to zmienić później.", + "successMessage": { + "detail": "Turnstile zaimportowane" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować turnstile" + } + }, + "export": { + "title": "Eksportuj @:turnstile.title", + "selected": "Eksportuj wybrany @:turnstile.title | Eksportuj wybrane @:turnstile.title", + "successMessage": { + "detail": "@:turnstile.title wyeksportowany jako {fileName} | @:turnstile.title wyeksportowane jako {fileName}" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować @:turnstile.title | Nie udało się wyeksportować @:turnstile.title" + } + } + }, + "modelMatchmaker": { + "title": "Dobieracz modeli", + "description": "Dostosuj suwaki grawitacji dla mocnych stron takich jak programowanie, rozumowanie czy matematyka, a Dobieracz uszereguje i zaproponuje najlepsze modele dla Twoich potrzeb. Wyniki mogą się różnić w zależności od jakości danych, rozmiaru modelu i złożoności zadania.", + "ctaIntro": "Znalazłeś swój model?", + "ctaMessage": "Testuj i porównuj w Msty Studio.", + "gravity": "Grawitacja", + "remoteOnly": "Tylko zdalne", + "rankedModels": { + "title": "Modele według rankingu", + "emptyMessage": "Nie znaleziono modeli. Spróbuj dostosować wymagania." + }, + "strengthsLabel": { + "ca": { + "title": "Programowanie", + "description": "Zdolność do pisania kodu w języku programowania." + }, + "aca": { + "title": "Programowanie agentowe", + "description": "Agentowa zdolność do pisania kodu w języku programowania." + }, + "daa": { + "title": "@:data Analiza", + "description": "Zdolność do analizowania danych i generowania wniosków." + }, + "ifa": { + "title": "Podążanie za instrukcjami", + "description": "Zdolność do wykonywania instrukcji i realizowania zadań." + }, + "jak": { + "title": "GOAT: Generalista wszystkich branż", + "description": "Zdolność do wykonywania szerokiego zakresu zadań." + }, + "la": { + "title": "Język", + "description": "Zdolność do rozumienia i generowania ludzkiego języka." + }, + "ma": { + "title": "Matematyka", + "description": "Zdolność do wykonywania obliczeń matematycznych." + }, + "pp": { + "title": "Parafrazowanie", + "description": "Udokumentowana zdolność do przepisywania i parafrazowania dowolnego tekstu." + }, + "ra": { + "title": "Rozumowanie", + "description": "Krytyczne myślenie – zdolność do rozumowania i podejmowania decyzji." + }, + "sim": { + "title": "Upraszczanie", + "description": "Zdolność do upraszczania dowolnych złożonych tekstów." + }, + "stg": { + "title": "Generowanie historii", + "description": "Zdolność do generowania historii lub narracji." + }, + "sum": { + "title": "Streszczanie", + "description": "Zdolność do streszczania informacji tekstowych i liczbowych." + }, + "tu": { + "title": "Korzystanie z narzędzi", + "description": "Zdolność do wywoływania i używania zewnętrznych narzędzi." + }, + "mit": { + "title": "Maks. tokenów wejściowych", + "description": "Maksymalna liczba tokenów przyjmowanych w jednym wywołaniu." + }, + "mot": { + "title": "Maks. tokenów wyjściowych", + "description": "Maksymalna liczba tokenów generowanych w jednym wywołaniu." + }, + "ics": { + "title": "Oszczędności na tokenach wejściowych", + "costTitle": "Koszt wejścia / milion tokenów", + "description": "Oszczędności kosztów generowania tokenów wejściowych." + }, + "ocs": { + "title": "Oszczędności na tokenach wyjściowych", + "costTitle": "Koszt wyjścia / milion tokenów", + "description": "Oszczędności kosztów generowania tokenów wyjściowych." + } + }, + "normalizedScore": "Wynik znormalizowany", + "resetStrengths": "Resetuj mocne strony", + "savePresetForm": { + "title": "@:save Mocne strony jako @:preset", + "errorMessage": { + "detail": "Nie udało się zapisać presetu mocnych stron." + }, + "successMessage": { + "detail": "Preset mocnych stron zapisany." + }, + "loadedMessage": { + "detail": "Preset mocnych stron załadowany." + } + }, + "deletePresetConfirm": { + "title": "Usuń @:preset", + "message": "Czy na pewno chcesz usunąć {presetName}?", + "errorMessage": { + "detail": "Nie udało się usunąć presetu mocnych stron." + }, + "successMessage": { + "detail": "Preset mocnych stron usunięty." + } + } + }, + "costCalculator": { + "title": "Kalkulator kosztów modeli", + "description": "Obliczaj i porównuj koszty modeli AI od OpenAI, Anthropic, Google i innych. Szacuj swoje wydatki na podstawie użycia tokenów wejściowych/wyjściowych i cennika modeli. Są to jedynie szacunki, a rzeczywiste koszty mogą się różnić.", + "tokenInputs": "Tokeny wejściowe", + "filters": "Filtry", + "ctaIntro": "Znalazłeś swój model?", + "ctaMessage": "Testuj i porównuj w Msty Studio." + }, + "vramCalculator": { + "title": "Kalkulator VRAM", + "description": "Sprawdź, czy model mieści się w pamięci VRAM Twojego urządzenia przed jego pobraniem lub uruchomieniem. Ten kalkulator podaje szacunkowe wymagania VRAM na podstawie architektury i rozmiaru modelu. Wybierz jedną z poniższych opcji, aby rozpocząć.", + "ctaIntro": "Znalazłeś swój model?", + "ctaMessage": "Testuj i porównuj w Msty Studio." + }, + "copyOrMoveItemToWorkspace": { + "copyTitle": "Kopiuj {item} do obszarów roboczych", + "copyOrMoveTitle": "Kopiuj/Przenieś {item} do obszarów roboczych", + "selectWorkspaces": "@:select Obszary robocze", + "availableWorkspaces": "Dostępne obszary robocze", + "actionLabel": "Akcja", + "inputLabel": { + "copy": "Kopiuj {item} do jednego lub więcej obszarów roboczych.", + "copyOrMove": "Kopiuj/Przenieś {item} do jednego lub więcej obszarów roboczych.", + "edit": "Synchronizuj tego dostawcę z jednym lub więcej obszarami roboczymi. Jeśli ten dostawca był wcześniej skopiowany, zostanie zaktualizowany. Jeśli nie, zostanie dodany." + }, + "successMessage": { + "copyDetail": "{item} skopiowany do {count} obszaru roboczego | {item} skopiowany do {count} obszarów roboczych", + "moveDetail": "{item} przeniesiony do {count} obszaru roboczego | {item} przeniesiony do {count} obszarów roboczych" + }, + "errorMessage": { + "copyDetail": "Nie udało się skopiować {item} do {count} obszaru roboczego | Nie udało się skopiować {item} do {count} obszarów roboczych", + "moveDetail": "Nie udało się przenieść {item} do {count} obszaru roboczego | Nie udało się przenieść {item} do {count} obszarów roboczych" + }, + "partialCopyWarningMessage": { + "summary": "Częściowo skopiowano", + "detail": "Nie udało się skopiować {item} do {count} obszaru roboczego | Nie udało się skopiować {item} do {count} obszarów roboczych" + }, + "partialMovedWarningMessage": { + "summary": "Częściowo przeniesiono", + "detail": "Nie udało się przenieść {item} do {count} obszaru roboczego | Nie udało się przenieść {item} do {count} obszarów roboczych" + }, + "existingCopiesInfo": "Niektóre obszary robocze ({workspaces}) zostały pominięte, ponieważ {item} już w nich istnieje", + "skippingExistingCopies": "Istniejące kopie {item} zostaną pominięte." + }, + "assignment": "Przypisanie | Przypisania", + "modelSquad": { + "title": "Drużyna modeli", + "description": "@:modelSquad.title to zbiór wyspecjalizowanych modeli AI, z których każdy jest przypisany do konkretnego zadania, takiego jak automatyczne generowanie tytułów, generowanie podsumowań @:context itp. Gdy nadejdzie czas wykonania danego zadania, przypisany model zostaje wybrany automatycznie.", + "addNewAssignment": "Dodaj nowe @:assignment", + "noTask": "Brak dostępnych zadań", + "tasks": { + "autoTitleGeneration": "Automatyczne generowanie tytułu", + "contextShieldSummaryGeneration": "Generowanie podsumowania @:contextShield.title", + "realTimeDataPromptSynthesis": "Synteza promptu @:rtd.title", + "forgeContentGeneration": "Generowanie zawartości Forge", + "piiScrubbing": "@:pii.scrubbing.title", + "iconFinder": "Wyszukiwarka ikon" + }, + "save": { + "successMessage": { + "detail": "@:assignment zapisane" + }, + "errorMessage": { + "detail": "Nie udało się zapisać @:assignment" + } + }, + "assignment": { + "dialog": { + "title": "Przypisz model dla {task}", + "description": "Wybierz model do przypisania do zadania {task} w Drużynie modeli.", + "selectModel": "Wybierz model", + "selectModelPlaceholder": "Wybierz model...", + "currentlyAssigned": "Aktualnie przypisany: {model}", + "unknownModel": "Nieznany model", + "assignButton": "Przypisz model", + "changeButton": "Zmień model", + "helpText": "Ten model będzie używany automatycznie podczas wykonywania zadania {task}." + }, + "success": "Model został pomyślnie przypisany do {task}!", + "errors": { + "noModelSelected": "Wybierz model do przypisania.", + "saveFailed": "Nie udało się zapisać przypisania modelu. Spróbuj ponownie." + } + } + }, + "pii": { + "title": "PII (Dane osobowe)", + "scrubbing": { + "title": "Usuwanie danych osobowych", + "description": "Automatycznie wykrywaj i usuwaj dane osobowe z zawartości Stosu wiedzy przed wyświetleniem ich w rozmowach.", + "info": { + "modelAssigned": "Używanie {model} do wykrywania i usuwania danych osobowych." + }, + "warning": { + "noModel": "Nie przypisano modelu do @:pii.scrubbing.title w Drużynie modeli. Pobieranie danych ze Stosu wiedzy będzie niemożliwe do momentu przypisania modelu.", + "configurationError": "Błąd konfiguracji @:pii.scrubbing.title – przerywanie pobierania danych ze Stosu wiedzy ze względów bezpieczeństwa", + "setupError": "Błąd konfiguracji @:pii.scrubbing.title – przerywanie pobierania danych ze Stosu wiedzy" + }, + "placeholders": { + "personName": "[IMIĘ_I_NAZWISKO]", + "emailAddress": "[ADRES_EMAIL]", + "phoneNumber": "[NUMER_TELEFONU]", + "address": "[ADRES]", + "idNumber": "[NUMER_ID]", + "creditCard": "[KARTA_KREDYTOWA]", + "bankAccount": "[KONTO_BANKOWE]", + "ipAddress": "[ADRES_IP]", + "dateOfBirth": "[DATA_URODZENIA]" + }, + "categories": { + "personalIdentifiers": "Identyfikatory osobowe", + "contactInformation": "Dane kontaktowe", + "financialInformation": "Dane finansowe", + "medicalInformation": "Dane medyczne", + "digitalIdentifiers": "Identyfikatory cyfrowe", + "biometricData": "Dane biometryczne", + "locationData": "Dane lokalizacji" + } + } + }, + "persona": { + "title": "Persona | Persony", + "newPersona": "Nowa @:persona.title", + "activePersona": "Aktywna @:persona.title", + "empty": { + "title": "Brak dostępnych @:persona.title.", + "description": "Zacznij od dodania lub zaimportowania nowej @:persona.title{'.'} Możesz też zaimportować domyślne persony, aby rozpocząć." + }, + "contextShieldPosition": "Pozycja @:contextShield.title", + "save": { + "successMessage": { + "detail": "@:persona.title zapisana" + }, + "errorMessage": { + "detail": "Nie udało się zapisać @:persona.title" + } + }, + "update": { + "successMessage": { + "detail": "@:persona.title zaktualizowana" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować @:persona.title" + } + }, + "delete": { + "selected": "Usuń wybraną @:persona.title", + "deleteConfirmation": { + "header": "Usuń @:persona.title", + "description": "Czy na pewno chcesz usunąć {personaName}? | Czy na pewno chcesz usunąć {count} @:persona.title{'?'}" + }, + "successMessage": { + "detail": "@:persona.title usunięta | @:persona.title usunięte" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:persona.title | Nie udało się usunąć @:persona.title" + } + }, + "import": { + "title": "Importuj @:persona.title", + "dragAndDropMessage": "Przeciągnij i upuść spakowany plik Msty @:persona.title, aby zaimportować i utworzyć nowe persony. W przypadku duplikatów nazw importowane persony zostaną przemianowane. Możesz to zmienić później.", + "successMessage": { + "detail": "Persony zaimportowane" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować person" + } + }, + "export": { + "title": "Eksportuj @:persona.title", + "selected": "Eksportuj wybraną @:persona.title | Eksportuj wybrane @:persona.title", + "successMessage": { + "detail": "@:persona.title wyeksportowana jako {fileName} | @:persona.title wyeksportowane jako {fileName}" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować @:persona.title | Nie udało się wyeksportować @:persona.title" + } + }, + "messages": { + "deleteSuccess": "@:persona.title usunięta | @:persona.title usunięte" + }, + "deleteConfirmation": { + "header": "Usuń @:persona.title", + "message": "Czy na pewno chcesz usunąć {personaName}? | Czy na pewno chcesz usunąć {count} @:persona.title{'?'}", + "errorMessage": { + "detail": "Nie udało się usunąć @:persona.title | Nie udało się usunąć @:persona.title" + } + }, + "addTitle": "Dodaj @:persona.title", + "createRootFolder": "Nowy folder w katalogu głównym", + "setDefaultFolder": "Ustaw jako folder domyślny", + "unsetDefaultFolder": "Usuń folder domyślny", + "folderForm": { + "updateSuccessMessage": { + "detail": "@:folder zaktualizowany" + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować @:folder" + }, + "createSuccessMessage": { + "detail": "@:folder utworzony" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć @:folder" + }, + "deleteConfirmation": { + "header": "Usuń @:folder", + "message": "Czy na pewno chcesz usunąć {folderName} wraz ze wszystkimi jego @:persona.title{'?'}", + "successMessage": { + "detail": "@:folder usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:folder" + } + } + }, + "selectPlaceholder": "@:select @:persona.title", + "autoResponder": { + "turnOn": "Włącz automatyczną odpowiedź", + "turnOff": "Wyłącz automatyczną odpowiedź" + }, + "hideAndIsolateSystemPrompt": "Ukryj i izoluj prompt systemowy", + "isolateResponse": "Izoluj odpowiedź", + "autoResponderDefault": "Automatyczna odpowiedź", + "contextMessageCount": { + "title": "Liczba kontekstów", + "description": "Ustaw liczbę ostatnich wiadomości używanych jako kontekst dla @:persona.title{'.'}" + } + }, + "fewShotPrompts": { + "title": "Prompty few-shot", + "description": "Few-shot learning to technika uczenia maszynowego, która pozwala trenować model na małej ilości danych. Możesz używać promptów few-shot, aby dostarczyć modelowi przykłady pomagające zrozumieć kontekst i generować lepsze odpowiedzi.", + "addNewShot": "Dodaj nowy shot" + }, + "insights": "Statystyki", + "cost": "Koszt", + "costInUSD": "Koszt w USD", + "promptTokens": "Tokeny promptu", + "completionTokens": "Tokeny odpowiedzi", + "totalTokens": "Łączna liczba tokenów", + "usage": "Użycie", + "tokens": "Tokeny", + "tokensProcessed": "Przetworzone tokeny", + "selectProvider": "@:select dostawcę | @:select dostawców", + "tokensProcessedForProvider": "Przetworzone tokeny dla {provider}", + "totalUsage": "Łączne użycie", + "fromTo": "Od {from} do {to}", + "crunchingTheNumbers": "Obliczanie danych", + "throughputForModel": { + "title": "Przepustowość dla {model}", + "unit": { + "description": "Mierzona w tokenach na sekundę" + } + }, + "latencyForModel": { + "title": "Opóźnienie dla {model}", + "unit": { + "description": "Mierzone w sekundach" + } + }, + "total": "Łącznie", + "min": "Min", + "max": "Maks", + "avg": "Śr", + "summary": "Podsumowanie", + "dates": { + "today": "Dzisiaj", + "last7Days": "Ostatnie 7 dni", + "last14Days": "Ostatnie 14 dni", + "last30Days": "Ostatnie 30 dni", + "last3Months": "Ostatnie 3 miesiące", + "last6Months": "Ostatnie 6 miesięcy", + "last12Months": "Ostatnie 12 miesięcy", + "monthToDate": "Bieżący miesiąc", + "yearToDate": "Bieżący rok", + "allTime": "Cały okres", + "selectDateRange": "@:select zakres dat", + "month": "Miesiąc", + "year": "Rok", + "day": "Dzień", + "week": "Tydzień" + }, + "insightsSummary": { + "emptyState": { + "title": "Podsumowanie statystyk", + "description": "Brak danych dla wybranego zakresu dat i dostawców." + } + }, + "insightsProviderTokensProcessed": { + "emptyState": { + "title": "Przetworzone tokeny", + "description": "Brak danych dla wybranego zakresu dat i dostawcy." + } + }, + "insightsProviderThroughput": { + "emptyState": { + "title": "Przepustowość", + "description": "Brak danych dla wybranego zakresu dat, dostawcy i modelu." + } + }, + "insightsProviderLatency": { + "emptyState": { + "title": "Opóźnienie", + "description": "Brak danych dla wybranego zakresu dat, dostawcy i modelu." + } + }, + "hideItem": { + "action": "Ukryj {item}", + "successMessage": { + "detail": "{item} został ukryty" + }, + "errorMessage": { + "detail": "Nie można ukryć {item}" + }, + "unhideParent": "Odkryj nadrzędny {item}", + "hiddenParentContentTitle": "Ukryta zawartość nadrzędna. Kliknij, aby odkryć." + }, + "showItem": { + "action": "Pokaż {item}" + }, + "licenseVerification": { + "errorMessage": "Nie udało się zweryfikować licencji. Spróbuj ponownie.", + "enterLicenseKey": "Wprowadź klucz licencji Aurum", + "licenseTypeInfo": "Używasz licencji {licenseType}.", + "licenseKey": "Klucz licencji", + "logout": "Wyloguj", + "licenseTypeInfoForAdmin": "Używasz licencji {licenseType} i jesteś zalogowany jako właściciel." + }, + "aurum": { + "activateLicense": "Aktywuj licencję Aurum", + "activateLicenseDescription": "Wprowadź klucz licencji, aby odblokować funkcje premium", + "manageLicense": "Zarządzaj licencją", + "lifetimeLicense": "Aurum dożywotni", + "lifetimeLicenseDescription": "Jednorazowy zakup z dożywotnim dostępem do funkcji premium", + "annualLicense": "Aurum roczny", + "annualLicenseDescription": "Roczna subskrypcja z ciągłymi aktualizacjami i funkcjami premium", + "oneTimePurchase": "Jednorazowy zakup", + "yearlySubscription": "Subskrypcja roczna", + "enterLicenseKey": "Klucz licencji", + "verifyAndActivate": "Weryfikuj i aktywuj", + "deactivateLicense": "Dezaktywuj licencję", + "licensedTo": "Licencja dla", + "expiresOn": "Wygasa", + "expired": "Wygasła", + "expiresInDays": "Wygasa za {days} dni", + "needLicense": "Potrzebujesz licencji?", + "purchaseLicense": "Kup na msty.ai", + "hasLicense": "Masz już licencję?", + "manageActivation": "Zarządzaj aktywacją" + }, + "cloneItem": { + "action": "Klonuj {item}", + "successMessage": { + "detail": "{item} został sklonowany" + }, + "errorMessage": { + "detail": "Nie można sklonować {item}" + } + }, + "cloneItemTo": { + "action": "Klonuj do {item}", + "successMessage": { + "detail": "Pomyślnie sklonowano do nowego {item}" + }, + "errorMessage": { + "detail": "Nie można sklonować do nowego {item}" + } + }, + "importJson": { + "clipboardTitle": "Importuj {item} ze schowka JSON", + "fileTitle": "Importuj {item} z pliku JSON", + "successMessage": { + "detail": "Pomyślnie zaimportowano {count} {item}", + "detailDestination": "@:importJson.successMessage.detail {item} do {destination}" + }, + "successMessageWithToolsets": { + "detail": "Pomyślnie zaimportowano {count} {item} i automatycznie utworzono odpowiednie zestawy narzędzi" + }, + "invalidConfig": { + "detail": "Nieprawidłowa konfiguracja lub brak danych do zaimportowania. Upewnij się, że JSON jest prawidłowy i spróbuj ponownie." + }, + "errorMessage": { + "detail": "Nie udało się zaimportować. Sprawdź plik JSON i spróbuj ponownie." + }, + "partialError": { + "detail": "Nie udało się zaimportować {failed} elementów: {items}" + }, + "dragAndDropMessage": "Przeciągnij i upuść plik JSON, aby zaimportować {item}." + }, + "team": { + "label": "Zespół | Zespoły", + "createTeam": "@:create @:team.label", + "inviteUserLabel": "Zaproś użytkownika", + "overview": "Przegląd", + "usersLabel": "Użytkownicy", + "allTeamLabel": "Wszystkie zespoły", + "createSuccess": "Zespół {teamName} został pomyślnie utworzony.", + "member": "Członek | Członkowie", + "allUsers": "Wszyscy użytkownicy", + "addTeamFormHeader": "Utwórz nowy zespół", + "updateTeamFormHeader": "Edytuj zespół", + "addUsers": "Dodaj użytkowników", + "updateUsers": "Zaktualizuj użytkowników", + "addUserToTeam": "Dodaj użytkowników do zespołu", + "teamNameLabel": "Nazwa zespołu", + "teamNamePlaceholder": "Wprowadź nazwę nowego zespołu", + "addTeamDescription": "Utwórz nowy zespół do zarządzania zasobami.", + "noUserInTeam": "Brak użytkowników przypisanych do tego zespołu.", + "editTeam": "Edytuj zespół", + "invited": "Zaproszony", + "shortDescription": "Zarządzaj swoimi zespołami i użytkownikami.", + "empty": { + "description": "Zespół służy do zarządzania zasobami. Możesz dodawać użytkowników do zespołu, aby współpracować i dzielić dostęp do zasobów." + }, + "deleteConfirmation": { + "header": "Usuń zespół", + "message": "Czy na pewno chcesz usunąć", + "inputPlaceholder": "Wpisz {name}, aby potwierdzić usunięcie.", + "rejectLabel": "@:cancel", + "acceptLabel": "@:delete" + }, + "policies": { + "title": "Reguła | Reguły", + "toolbox": { + "title": "@:toolbox.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Przybornika" + }, + "promptsLibrary": { + "title": "@:promptsLibrary.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Biblioteki promptów" + }, + "persona": { + "title": "@:persona.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Persony" + }, + "turnstile": { + "title": "@:turnstile.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Turnstile" + }, + "knowledgeStack": { + "title": "@:knowledgeStack.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Stosu wiedzy" + }, + "remoteToolsConnector": { + "title": "@:remoteToolsConnector.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji @:remoteToolsConnector.title" + }, + "rtd": { + "title": "@:rtd.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji @:rtd.title" + }, + "attachments": { + "title": "@:attachments.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji @:attachments.title" + }, + "forgeMode": { + "title": "@:forge.forgeMode.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji @:forge.forgeMode.title" + }, + "insights": { + "title": "@:insights", + "description": "Zezwól użytkownikowi na korzystanie z funkcji @:insights" + }, + "platformWeb": { + "title": "Dostęp do Msty Studio przez przeglądarkę", + "description": "Zezwól użytkownikowi na dostęp do Msty Studio z przeglądarki internetowej" + }, + "platformDesktop": { + "title": "Dostęp do Msty Studio przez aplikację desktopową", + "description": "Zezwól użytkownikowi na dostęp do Msty Studio z aplikacji desktopowej" + }, + "platformAccess": "Dostęp do platformy", + "modelHub": { + "description": "Zarządzaj dostępem do konkretnych dostawców modeli." + } + }, + "user": { + "noAvailableSeats": "Osiągnięto limit zapraszania użytkowników.", + "licenceAndAccess": { + "loggedInAsLabel": "Zalogowany jako", + "useSignInWithEmail": "Bezpieczny link do logowania zostanie wysłany na podany adres e-mail. Posiadacze licencji Aurum muszą zweryfikować swój klucz licencji przed skorzystaniem z tej funkcji.", + "continueWithlicenseLabel": "kontynuuj z kluczem licencji", + "sendLoginLink": "Wyślij link do logowania" + }, + "teamUserFormHeader": "Użytkownicy zespołu", + "invitationVerification": { + "inProgress": "Weryfikowanie żądania dostępu. Proszę czekać", + "info": "Zostałeś zaproszony do dołączenia do konta w Msty Studio.", + "error": "Coś poszło nie tak. Skontaktuj się z administratorem konta." + }, + "invitationInfo": "Link do logowania zostanie wysłany na podany powyżej adres e-mail.", + "invitation": { + "successMessage": { + "detail": "Użytkownik {email} zaproszony." + }, + "invalidEmail": "@:invalid @:email", + "errorMessageUserExist": "Użytkownik już istnieje", + "errorMessage": { + "detail": "Nie udało się zaprosić {email}." + } + }, + "fetch": { + "errorMessage": { + "detail": "Nie można załadować listy użytkowników" + } + }, + "delete": { + "successMessage": { + "detail": "Użytkownik {email} usunięty pomyślnie." + }, + "errorMessage": { + "detail": "Nie można usunąć użytkownika {email}" + } + }, + "deleteConfirmation": { + "header": "Usuń użytkownika", + "message": "Czy na pewno chcesz usunąć {email}?", + "rejectLabel": "@:cancel", + "acceptLabel": "@:delete" + }, + "assignUserToTeamLabel": "Przypisz użytkowników do zespołu {teamName}", + "assignUserToTeamSuccess": "Pomyślnie przypisano {user} do zespołu {teamName}", + "unassignUserToTeamLabel": "Usuń użytkownika z zespołu", + "unassignUserToTeamMessage": "Usuń {user} z zespołu {teamName}", + "selectUserToAddToTeamPlaceholder": "@:select użytkowników do dodania" + } + }, + "updateItem": { + "action": "Zaktualizuj {item}", + "editAction": "Edytuj {item}", + "successMessage": { + "detail": "{item} został zaktualizowany" + }, + "errorMessage": { + "detail": "Nie można zaktualizować {item}" + } + }, + "modelPurpose": { + "text": "Tekst", + "tools": "Narzędzia", + "vision": "Wizja", + "coding": "Programowanie", + "embedding": "Osadzanie", + "streaming": "Strumieniowanie", + "image": "Obraz", + "thinking": "Myślenie" + }, + "editModel": { + "inputLabels": { + "label": "Etykieta", + "purpose": "Przeznaczenie" + } + }, + "environment": { + "selectPlaceholder": "@:select @:environment.title", + "new": "Nowe @:environment.title", + "title": "Środowisko | Środowiska", + "empty": { + "description": "Dodaj nowe środowiska, aby rozpocząć." + }, + "save": { + "successMessage": { + "detail": "@:environment.title zapisane" + }, + "errorMessage": { + "detail": "Nie udało się zapisać @:environment.title" + } + }, + "delete": { + "title": "@:delete @:environment.title | Usuń @:environment.title", + "selected": "@:delete wybrane @:environment.title | Usuń wybrane @:environment.title", + "deleteConfirmation": { + "header": "@:delete @:environment.title", + "description": "Czy na pewno chcesz usunąć {environmentName}? | Czy na pewno chcesz usunąć {count} środowisk?" + }, + "successMessage": { + "detail": "@:environment.title usunięte | @:environment.title usunięte" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:environment.title | Nie udało się usunąć @:environment.title" + } + }, + "backup": { + "title": "Utwórz kopię zapasową @:environment.title", + "successMessage": { + "detail": "Kopia zapasowa @:environment.title utworzona" + }, + "errorMessage": { + "detail": "Nie udało się utworzyć kopii zapasowej @:environment.title" + } + }, + "restore": { + "title": "Przywróć @:environment.title", + "dragAndDropMessage": "Przeciągnij i upuść plik środowiska Msty, aby przywrócić środowiska. Uwaga: Wszystkie istniejące środowiska zostaną usunięte i zastąpione zaimportowanymi.", + "successMessage": { + "detail": "@:environment.title przywrócone" + }, + "errorMessage": { + "detail": "Nie udało się przywrócić @:environment.title" + } + }, + "quickSelect": { + "title": "Szybki @:select zmiennej środowiskowej", + "selectPlaceholder": "Wyszukaj lub wybierz zmienną, aby skopiować ją do schowka" + } + }, + "makeActive": { + "title": "Ustaw jako aktywny {itemType}", + "isActive": "Aktywny {itemType}", + "successMessage": { + "detail": "{itemName} jest teraz aktywnym {itemType}" + }, + "errorMessage": { + "detail": "Nie udało się ustawić {itemName} jako aktywnego {itemType}" + } + }, + "moveItem": { + "action": "Przenieś {item}", + "moveLocation": "Przenieś {count} {sourceType} do {item}", + "confirmation": { + "message": "Czy na pewno chcesz przenieść wybrane {item}?" + }, + "successMessage": { + "detail": "{item} został przeniesiony | {item} zostały przeniesione" + }, + "errorMessage": { + "detail": "Nie można przenieść {item}" + }, + "errrorMessage": { + "detail": "Nie można przenieść {item}" + }, + "cannotDetermineTargetProject": "Nie można określić projektu docelowego.", + "cannotDetermineTargetFolder": "Nie można określić folderu docelowego." + }, + "deleteItem": { + "action": "Usuń {item}", + "successMessage": { + "detail": "{item} został usunięty" + }, + "errorMessage": { + "detail": "Nie można usunąć {item}" + } + }, + "promptsLibrary": { + "title": "Biblioteka @:prompts", + "newPrompt": "Nowy @:prompt", + "search": "@:search.label @:prompt", + "quickPrompt": "Szybki @:prompt", + "saveToQuickPrompts": "Zapisz do szybkich @:prompts", + "copyPrompt": "Kopiuj @:prompt do schowka", + "shortcutUsage": "Wpisz /, aby przeszukać @:promptsLibrary.title", + "setDefaultFolder": "Ustaw jako folder domyślny", + "unsetDefaultFolder": "Usuń folder domyślny", + "createRootFolder": "Nowy folder w katalogu głównym", + "folder": "@:folder", + "prompt": "@:prompt", + "deleteAllPrompt": { + "title": "Usuń wszystkie @:prompt i @:folders", + "description": "Spowoduje to wyczyszczenie całej @:promptsLibrary.title i @:folder@:folders. Po usunięciu nie można ich odzyskać.", + "successMessage": { + "detail": "Wszystkie @:prompt usunięte" + } + }, + "empty": { + "title": "Brak dostępnych @:persona.title.", + "description": "Zacznij od dodania lub zaimportowania nowego @:prompt{'.'} Możesz też zaimportować domyślne @:prompts, aby rozpocząć." + }, + "import": { + "title": "Importuj domyślne @:prompts", + "successMessage": { + "detail": "Możesz teraz używać zaimportowanych promptów w swoich rozmowach." + }, + "copyMultiplePrompts": "Kopiuj {count} @:prompts do schowka", + "errorMessage": { + "detail": "Nie udało się zaimportować domyślnych @:prompts" + }, + "copyErrorMessage": { + "detail": "Nie udało się skopiować @:prompt{'.'} Spróbuj ponownie." + } + }, + "folderForm": { + "updateSuccessMessage": { + "detail": "@:folder zaktualizowany" + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować @:folder" + }, + "createSuccessMessage": { + "detail": "@:folder utworzony" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć @:folder" + }, + "deleteConfirmation": { + "header": "Usuń @:folder", + "message": "Czy na pewno chcesz usunąć {folderName} wraz ze wszystkimi podfolderami i promptami?", + "successMessage": { + "detail": "@:folder usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:folder" + } + } + }, + "promptForm": { + "addTitle": "Dodaj nowy @:prompt", + "editTitle": "Edytuj @:prompt", + "promptName": "Nazwa @:prompt", + "promptDescription": "@:description", + "updateSuccessMessage": { + "detail": "@:prompt zaktualizowany" + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować @:prompt" + }, + "createSuccessMessage": { + "detail": "@:prompt utworzony" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć @:prompt" + }, + "deleteConfirmation": { + "header": "Usuń {count} @:prompt", + "message": "Czy na pewno chcesz usunąć?", + "successMessage": { + "detail": "@:prompt usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:prompt" + } + } + } + }, + "importDefault": { + "title": "Importuj domyślne {item}", + "successMessage": { + "detail": "Domyślne {item} zaimportowane" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować domyślnych {item}" + } + }, + "contextIsolation": { + "isolate": "Izoluj @:context", + "unIsolate": "Usuń izolację @:context", + "label": "Izolowany @:context", + "clearAll": { + "title": "Wyczyść wszystkie izolacje @:context", + "successMessage": { + "detail": "Wszystkie izolacje @:context wyczyszczone" + } + } + }, + "responseMetrics": { + "title": "Metryki odpowiedzi", + "longPressOrAltClickToCycle": "Przytrzymaj lub Alt+kliknij, aby przełączać metryki" + }, + "quickView": "Szybki podgląd", + "detailsView": "Widok szczegółów", + "input": "Wejście | Wejścia", + "output": "Wyjście | Wyjścia", + "think": "Myśl", + "reasoning": { + "emptyNotice": "Model przeprowadził wewnętrzne myślenie, ale nie zwrócił podsumowania. Aby włączyć podsumowania myślenia, zastosuj tag \"Myślenie\" do tego modelu, klikając ikonę edycji obok wyboru modelu." + }, + "service": "Usługa | Usługi", + "localAIService": "@:localAI @:service", + "version": "Wersja | Wersje", + "invalidConfig": "Nieprawidłowa konfiguracja. Wprowadź prawidłowy obiekt JSON.", + "unsavedChanges": "Niezapisane zmiany", + "saveChanges": "Zapisz zmiany", + "day": "Dzień | Dni", + "every": "Każdy", + "files": "Pliki", + "file": "Plik | @:files", + "reallyDelete": "Na pewno usunąć?", + "similarity": "Podobieństwo", + "saveAsDraft": "Zapisz jako szkic", + "compose": "Utwórz", + "embeddingModel": "Model osadzania", + "document": "Dokument | Dokumenty", + "matched": "Dopasowano", + "active": "Aktywny", + "inactive": "Nieaktywny", + "folderName": "Nazwa @:folder", + "addNewFolder": "Dodaj nowy @:folder", + "editFolder": "Edytuj @:folder", + "errorGeneric": "Wystąpił błąd. Spróbuj ponownie później. Sprawdź logi, aby uzyskać więcej informacji.", + "sharedService": { + "modelsPath": { + "title": "Ścieżka modeli", + "description": "To jest miejsce, w którym {service} pobiera i szuka modeli. Możesz zaktualizować ścieżkę, aby użyć własnego folderu.", + "edit": { + "title": "Edytuj ścieżkę modeli", + "description": "Ustaw preferowaną lokalizację.", + "willRestartWarning": "Uwaga: Zmiana ścieżki modeli spowoduje ponowne uruchomienie {service}, aby zmiany zaczęły obowiązywać.", + "selectModelsPath": "Wybierz ścieżkę modeli", + "successMessage": { + "detail": "Ścieżka modeli zaktualizowana" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować ścieżki modeli" + } + } + }, + "quickPromptDialog": { + "title": "Zapisz do szybkich @:prompts", + "description": "Nadaj promptowi systemowemu krótki tytuł. Zostanie on dodany do szybkich promptów w celu łatwego ponownego użycia.", + "nameLabel": "Nazwa szybkiego @:prompt", + "successMessage": "Prompt systemowy zapisany do szybkich promptów.", + "errorMessage": "Nie udało się zapisać promptu systemowego do szybkich promptów.", + "emptyPromptMessage": "Dodaj treść promptu systemowego przed zapisaniem do szybkich promptów." + }, + "serviceHealth": { + "title": "Stan usługi", + "description": "Status {service}. Masz problem? Spróbuj ponownie uruchomić usługę lub sprawdź logi.", + "serviceAction": { + "restartService": "Uruchom ponownie usługę", + "stopService": "Zatrzymaj usługę", + "startService": "Uruchom usługę", + "errorMessage": { + "detail": "Nie udało się wykonać {action} na {service}. Sprawdź logi, aby uzyskać więcej informacji." + }, + "restartSuccessMessage": { + "detail": "{service} uruchomiony ponownie" + } + }, + "serviceStatus": { + "starting": "Uruchamianie", + "running": "Działa", + "stopped": "Zatrzymany" + } + }, + "serviceEndpoint": { + "title": "Punkt końcowy usługi | Punkty końcowe usługi", + "description": { + "base": "Lokalny punkt końcowy dla {service}. Użyj go, aby połączyć się z innych aplikacji działających lokalnie na urządzeniu.", + "serviceIsNotRunning": "Gdy usługa będzie działać, adres zostanie wyświetlony tutaj.", + "serviceIsAvailableOnNetwork": "Ponieważ usługa jest dostępna w sieci, możesz również połączyć się z nią z innych urządzeń, używając sieciowego adresu URL usługi." + }, + "copyNetworkURL": "Kopiuj adres URL sieci" + }, + "serviceVersion": { + "title": "Wersja usługi", + "description": "Wyświetla obecną wersję {service}. Aby zapewnić optymalną wydajność i dostęp do nowych funkcji, dbaj o jej aktualność. W razie potrzeby dostępna jest również ponowna instalacja.", + "forceUpdate": { + "title": "Wymuś aktualizację {service}", + "forCpu": "Wymuś aktualizację {service} (CPU)", + "forCuda": "Wymuś aktualizację {service} (CUDA)", + "forCuda124": "Wymuś aktualizację {service} (CUDA 12.4)", + "forCuda131": "Wymuś aktualizację {service} (CUDA 13.1)", + "forVulkan": "Wymuś aktualizację {service} (Vulkan)", + "forRocm": "Wymuś aktualizację {service} (ROCm)", + "forOpencl": "Wymuś aktualizację {service} (OpenCL)", + "forSycl": "Wymuś aktualizację {service} (SYCL)", + "successMessage": { + "detail": "Usługa {service} została zaktualizowana do najnowszej wersji {version}" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować {service}. Sprawdź logi, aby uzyskać więcej szczegółów." + } + }, + "removeService": { + "title": "Usuń {service}", + "confirmationHeader": "Usuń {service}", + "confirmationMessage": "Czy na pewno chcesz usunąć {service}? Spowoduje to usunięcie pliku binarnego usługi oraz wszystkich jej konfiguracji. Możesz ją później zainstalować ponownie na stronie ustawień.", + "confirmationAccept": "Usuń", + "successMessage": { + "detail": "Pomyślnie usunięto {service}" + }, + "errorMessage": { + "detail": "Nie udało się usunąć {service}. Sprawdź logi, aby uzyskać więcej szczegółów." + } + } + }, + "serviceConfigurations": { + "title": "Konfiguracje usługi", + "description": "Te konfiguracje są stosowane do {service} podczas uruchamiania. Usługa {service} zrestartuje się automatycznie po zapisaniu zmian.", + "enableNetworkAccess": { + "title": "Włącz dostęp sieciowy", + "description": "Zezwól innym urządzeniom w Twojej sieci na dostęp do {service} za pośrednictwem adresu IP tego urządzenia." + }, + "allowMstyStudioAccess": { + "title": "Zezwól na dostęp z Msty Studio", + "description": "Zezwól na połączenia z Msty Studio Web do tej aplikacji, aby umożliwić dostęp do {service}." + }, + "captureServiceLogs": { + "title": "Rejestruj logi usługi", + "description": "Włącz logowanie, aby rejestrować dane usługi do debugowania. Używaj tej opcji tylko wtedy, gdy jest to konieczne." + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w konfiguracji {service}. Po zapisaniu usługa {service} zostanie zrestartowana z nową konfiguracją.", + "saveChanges": "Zapisz zmiany i zrestartuj usługę", + "successMessage": { + "detail": "Zapisano konfigurację {service} i zrestartowano usługę" + }, + "errorMessage": { + "detail": "Nie udało się zapisać konfiguracji {service}. Sprawdź logi, aby uzyskać więcej szczegółów." + } + } + }, + "modelConfigurations": { + "title": "Konfiguracje @:model", + "description": "Te konfiguracje są stosowane do wszystkich modeli podczas sesji czatu." + } + }, + "keyboardShortcuts": { + "title": "Skróty klawiszowe", + "description": "Dostosuj skróty klawiszowe, aby uzyskać szybki dostęp do funkcji", + "search": "Szukaj skrótów...", + "searchByShortcut": "Szukaj po skrócie", + "searchByName": "Szukaj po nazwie", + "pressShortcut": "Naciśnij dowolną kombinację klawiszy...", + "pressKeys": "Naciśnij klawisze...", + "notSet": "Nie ustawiono", + "edit": "Edytuj skrót", + "clear": "Wyczyść", + "global": "Globalne", + "saved": "Zapisano skrót", + "error": "Błąd podczas zapisywania skrótu", + "reset": "Zresetowano skrót", + "resetToDefault": "Przywróć domyślne", + "resetAll": "Zresetuj wszystkie skróty", + "allReset": "Wszystkie skróty zostały przywrócone do ustawień domyślnych", + "noResults": "Nie znaleziono skrótów", + "conflictWith": "Konflikt z: {name}", + "categories": { + "all": "Wszystkie", + "general": "Ogólne", + "navigation": "Nawigacja", + "appearance": "@:settings.appearance", + "conversation": "Konwersacja" + }, + "resetAllConfirm": { + "title": "Zresetuj wszystkie skróty", + "message": "Czy na pewno chcesz przywrócić wszystkie skróty klawiszowe do wartości domyślnych?" + }, + "help": { + "title": "Skróty klawiszowe", + "customizeButton": "Dostosuj skróty" + }, + "contextual": "Kontekstowe", + "systemWide": "W całym systemie", + "perSplit": "Na panel", + "macOptionHint": "Skróty z klawiszem Option działają w Msty. Jeśli zamiast tego generują znaki specjalne, sprawdź Ustawienia systemowe > Klawiatura > Źródła wprowadzania", + "example": { + "title": "Przykład skrótów klawiszowych", + "description": "Ten komponent demonstruje, jak rejestrować i używać skrótów klawiszowych w Twoich komponentach.", + "registeredShortcuts": "Zarejestrowane skróty:", + "exampleAction1": "Przykładowa akcja 1", + "scopedAction": "Akcja zakresowa", + "actions": "Akcje:", + "updateFirstShortcut": "Aktualizuj pierwszy skrót", + "testConflictDetection": "Testuj wykrywanie konfliktów", + "actionLog": "Dziennik akcji:", + "noActionsYet": "Brak akcji. Spróbuj nacisnąć skróty!", + "developerNotes": { + "title": "Notatki programisty:", + "items": [ + "Shortcuts are automatically cleaned up when the component unmounts", + "Use component-scoped shortcuts to avoid ID conflicts", + "Platform-specific bindings are handled automatically (Cmd on Mac, Ctrl on Windows)", + "Check for conflicts before registering shortcuts that might collide with existing ones", + "Shortcuts can be global (work everywhere) or context-specific" + ] + } + }, + "splitRemoval": { + "selectSplitToRemove": "Wybierz panel do usunięcia", + "pressKeysToCancel": "Naciśnij", + "remove": "Usuń" + } + }, + "createNew": "Utwórz nowy", + "copy": "Kopiuj", + "miniMapActions": { + "noMessageSelectedWarning": { + "summary": "Nie wybrano żadnych wiadomości", + "detail": "Wybierz co najmniej jedną wiadomość, aby wykonać akcje" + }, + "exportOrCopyMessage": { + "exportMessage": "Eksportuj wiadomość | Eksportuj wiadomości", + "copyMessage": "Kopiuj wiadomość | Kopiuj wiadomości", + "asJson": "Jako JSON", + "asMarkdown": "Jako Markdown", + "successMessage": "Pomyślnie {action} wiadomości jako {format}", + "action": { + "export": "wyeksportowano", + "copy": "skopiowano" + } + } + }, + "reIndexItem": { + "action": "Przeindeksuj {item}", + "successMessage": { + "detail": "Pomyślnie przeindeksowano {item}" + }, + "errorMessage": { + "detail": "Nie udało się przeindeksować {item}" + }, + "confirmationMessage": "Czy na pewno chcesz przeindeksować {item}?" + }, + "recent": "Ostatni|Ostatnie", + "recentsPinned": "Ostatnie i @:pinned", + "knowledgeStack": { + "title": "Stos wiedzy | Stosy wiedzy", + "contexts": "Konteksty @:knowledgeStack.title", + "composeProgress": { + "processing": "Przetwarzanie: {fileName}", + "composing": "Komponowanie", + "composingEllipsis": "Komponowanie…", + "files": "Pliki", + "notes": "Notatki", + "youtube": "YouTube", + "folders": "Foldery", + "overallProgress": "Całkowity postęp", + "inFlight": "W toku:" + }, + "itemStatus": { + "ignoredForRetrieval": "Ignorowane podczas wyszukiwania" + }, + "cloudShare": { + "importingFolder": "Importowanie folderu: {name}", + "processingCount": "Przetwarzanie {count} stosu(ów) wiedzy" + }, + "saveEdits": { + "title": "Zapisz zmiany", + "confirmation": { + "header": "Zapisz zmiany i oznacz jako szkic", + "message": "Czy na pewno chcesz zapisać swoje zmiany? Spowoduje to oznaczenie Stosu wiedzy jako szkicu i zapobiegnie jego użyciu w produkcji, dopóki nie zostanie ponownie przetworzony." + } + }, + "selectFolderForImport": "Wybierz, gdzie zaimportować @:knowledgeStack.title", + "newKnowledgeStack": "Nowy @:knowledgeStack.title", + "addDescription": "Dodaj opis", + "editDescription": "Edytuj opis", + "descriptionPlaceholder": "Dodaj opis dla tego Stosu wiedzy...", + "autoSaving": "Zapisywanie...", + "autoSaved": "Zapisano {time}", + "basicInfo": "Podstawowe informacje", + "similarityThreshold": "Próg @:similarity", + "similarityMatch": "Dopasowanie @:similarity", + "unsavedChanges": { + "confirmNavigation": "Masz niezapisane zmiany. Czy na pewno chcesz opuścić tę stronę? Twoje zmiany zostaną utracone.", + "confirmReload": "Masz niezapisane zmiany, które zostaną utracone po ponownym załadowaniu strony." + }, + "empty": { + "title": "Nie wybrano żadnego @:knowledgeStack.title", + "description": "Stos wiedzy pozwala wprowadzać pliki, foldery, notatki oraz transkrypcje z YouTube, co sprawia, że można je przeszukiwać i używać na czacie dzięki technologii Retrieval-Augmented Generation (RAG)" + }, + "selectOrCreate": "Wybierz @:knowledgeStack.title", + "selectFromTreeOrCreate": "Wybierz @:knowledgeStack.title z drzewa lub utwórz nowy", + "folderForm": { + "addTitle": "Dodaj nowy @:folder", + "editTitle": "Edytuj @:folder", + "editIgnoreRules": "Edytuj reguły ignorowania", + "editIgnoreRulesTitle": "Reguły ignorowania", + "ignoreRulesDescription": "Zdefiniuj wzorce, aby wykluczyć pliki i foldery z przetwarzania.", + "ignoreRulesHierarchySimple": "Priorytet: Lokalne .mstyignore/.gitignore → Reguły folderu → Domyślne systemowe", + "ignoreRulesPlaceholder": "# Wprowadź wzorce tutaj, po jednym w linii\n# Przykład: *.log, node_modules/, !important.txt", + "showExamples": "Pokaż przykłady i pomoc", + "ignoreExample1": "Pliki logów", + "ignoreExample2": "Pliki tymczasowe we wszystkich katalogach", + "ignoreExample3": "Cały katalog", + "ignoreExample4": "Wzorzec wyjątku", + "ignoreExample5": "Wiele typów obrazów", + "ignoreExample6": "Wszystkie pliki w testach i podkatalogach", + "ignoreExample7": "Dopasowanie bez uwzględniania wielkości liter", + "ignoreExample8": "Pliki zaczynające się od secret-", + "insertTemplate": "Użyj szablonu", + "clearContent": "Wyczyść wszystko", + "ignoreRulesUpdated": "Reguły ignorowania zostały pomyślnie zaktualizowane", + "ignoreRulesUpdateError": "Nie udało się zaktualizować reguł ignorowania", + "deleteConfirmation": { + "header": "Usuń @:folder '{folderName}'", + "message": "Czy na pewno chcesz usunąć ten folder? Wszystkie Stosy wiedzy w jego wnętrzu zostaną usunięte. Tej akcji nie można cofnąć.", + "successMessage": { + "detail": "Usunięto @:folder" + }, + "errorMessage": { + "detail": "Nie udało się usunąć @:folder" + } + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować @:folder" + }, + "createSuccessMessage": { + "detail": "Utworzono @:folder" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć @:folder" + } + }, + "setDefaultFolder": "Ustaw jako domyślny folder", + "unsetDefaultFolder": "Usuń domyślny folder", + "createRootFolder": "Nowy folder w katalogu głównym", + "knowledgeStackForm": { + "addTitle": "Dodaj nowy @:knowledgeStack.title", + "deleteConfirmation": { + "header": "Usuń @:knowledgeStack.title", + "message": "Czy na pewno chcesz usunąć ten Stos wiedzy? Wszystkie elementy w jego wnętrzu zostaną usunięte. Tej akcji nie można cofnąć." + } + }, + "deleteAllKnowledgeStack": { + "title": "Usuń wszystkie @:knowledgeStack.title", + "description": "Spowoduje to wyczyszczenie całego @:knowledgeStack.title{'.'} Nie ma możliwości ich przywrócenia po usunięciu.", + "successMessage": { + "detail": "Wszystkie @:knowledgeStack.title zostały usunięte" + }, + "errorMessage": { + "detail": "Nie udało się usunąć wszystkich @:knowledgeStack.title" + } + }, + "chunksConsole": { + "chunk": "Fragment | @:knowledgeStack.chunksConsole.chunks", + "chunks": "Fragmenty", + "title": "Konsola @:knowledgeStack.chunksConsole.chunks", + "description": "Użyj tej konsoli, aby zrozumieć, jak używany jest Twój Stos wiedzy, { title }, i jakie fragmenty są przesyłane do modelu podczas czatowania. Możesz także usunąć fragment, jeśli uważasz, że nie jest on istotny lub użyteczny.", + "queryText": "Tekst zapytania", + "similarityFilter": { + "title": "@:similarity", + "all": "Wszystkie", + "highest": "Najwyższe", + "high": "Wysokie", + "medium": "Średnie", + "low": "Niskie" + }, + "matchCount": "Liczba @:knowledgeStack.chunksConsole.chunks", + "sourceFile": "Plik źródłowy", + "sourceNote": "Notatka źródłowa", + "sourceVideo": "Wideo źródłowe", + "source": "Źródło", + "score": "Wynik", + "searchResults": "Wyniki wyszukiwania", + "noResultsFound": "Nie znaleziono wyników wyszukiwania. Spróbuj dostosować zapytanie lub ustawienia wyszukiwania.", + "noResultsAfterFilter": "Brak wyników pasujących do obecnego filtra podobieństwa. Spróbuj dostosować filtr, aby wyświetlić więcej wyników.", + "deleteChunk": { + "successMessage": { + "detail": "@:knowledgeStack.chunksConsole.chunk został usunięty" + } + }, + "searchType": { + "title": "Typ wyszukiwania", + "hybrid": "Wyszukiwanie hybrydowe", + "semantic": "Wyszukiwanie semantyczne", + "keyword": "Wyszukiwanie po słowach kluczowych" + }, + "filterDisclaimer": "Ten filtr wpływa tylko na to, które wyniki są wyświetlane poniżej. Nie zmienia samego zapytania.", + "tooltip": { + "scrubbed": "Treść została oczyszczona z danych osobowych (PII)", + "cached": "Użyto zbuforowanej oczyszczonej wersji", + "fresh": "Świeżo oczyszczona treść" + }, + "runQuery": "Uruchom zapytanie" + }, + "addon": { + "title": "@:knowledgeStack.title", + "selectedCount": "Wybrano: {count}", + "selectedStacks": "Wybrane Stosy", + "searchPlaceholder": "Szukaj Stosów wiedzy...", + "recentlyUpdated": "Ostatnio aktualizowane", + "searchResults": "Wyniki wyszukiwania", + "noResults": "Nie znaleziono Stosów wiedzy", + "noStacks": "Brak dostępnych Stosów wiedzy", + "noDescription": "Brak opisu", + "numberOfChunks": "Liczba @:knowledgeStack.chunksConsole.chunks", + "searchType": "Typ wyszukiwania", + "synthesizePrompt": "Zsyntetyzuj zapytanie", + "enablePiiScrubbing": "Włącz usuwanie danych osobowych (PII)", + "fullContentContextLimit": "Limit pełnych kontekstów treści", + "fullContentContextWarning": "Pełne konteksty treści mogą znacząco zwiększyć użycie tokenów i wpłynąć na wydajność", + "manageStacks": "Zarządzaj Stosami", + "onlyCompletedStacks": "Można wybrać tylko ukończone stosy" + }, + "totalFiles": "Suma plików", + "vectorDimensions": "Wymiary wektora", + "wordCount": "Liczba słów", + "readingTime": "Czas czytania", + "embeddingModel": { + "title": "Model osadzania", + "noModel": "Brak skonfigurowanego modelu osadzania", + "modelMissing": "Nie znaleziono modelu {modelId}", + "providerRemapped": "Dostawca modelu został zmapowany automatycznie", + "changeModel": "Zmień model osadzania zapytań", + "selectModel": "Wybierz model osadzania zapytań", + "missingModelWarning": "Oryginalny model osadzania dla tego Stosu wiedzy nie jest dostępny. Proszę wybrać nowy model.", + "providerRemappedInfo": "Dostawca modelu osadzania został automatycznie zmapowany na kompatybilnego dostawcę.", + "currentModel": "Obecny model", + "noModelConfigured": "Brak skonfigurowanego modelu", + "selectNewModel": "Wybierz nowy model", + "defaultLocal": "Domyślny (Lokalny)" + }, + "buckets": { + "files": { + "title": "@:files", + "description": "Dodaj pliki w formatach .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx lub innych obsługiwanych.", + "dropZoneText": "Przeciągnij i upuść pliki tutaj", + "browseFiles": "Przeglądaj pliki", + "dropHint": "Upuść pliki tutaj" + }, + "folders": { + "title": "@:folders i Krypty Obsidian", + "description": "Dodaj foldery zawierające pliki. Możesz również upuścić Krypty Obsidian.", + "dropZoneText": "Przeciągnij i upuść foldery tutaj", + "browseFolders": "Przeglądaj foldery", + "liveMode": "Tryb na żywo", + "liveModeDescription": "Foldery są monitorowane pod kątem zmian i automatycznie aktualizują Stos wiedzy", + "duplicateFolder": "Zduplikuj folder", + "alreadyAdded": "Folder już dodany", + "folderAlreadyExists": "Ten folder został już dodany do @:knowledgeStack.title", + "folderAlreadyAdded": "Folder '{path}' został już dodany", + "folderProcessed": "Przetworzono folder", + "filesAdded": "Pomyślnie dodano pliki: {count}", + "onlyFoldersAllowed": "Tutaj można dodawać tylko foldery. Wybierz folder zamiast pojedynczych plików.", + "selectFolder": "Wybierz folder", + "useDirectoryPicker": "Użyj przycisku Przeglądaj, aby wybrać folder w trybie web", + "processed": "Przetworzone", + "processingError": "Błąd przetwarzania folderu", + "folderExplorer": "Eksplorator folderów", + "showIgnoredFiles": "Pokaż ignorowane pliki", + "noFolders": "Nie dodano jeszcze żadnych folderów", + "refresh": "Odśwież", + "showInFileManager": "Pokaż w Menedżerze plików", + "remove": "Usuń", + "loadError": "Nie udało się załadować folderu", + "removed": "Usunięto folder", + "folderRemoved": "Usunięto '{name}' ze Stosu wiedzy", + "removeError": "Nie udało się usunąć folderu", + "ignored": "Zignorowane", + "loading": "Ładowanie...", + "loadingContents": "Ładowanie zawartości folderu...", + "confirmRemove": "Czy na pewno chcesz usunąć \"{name}\" z tego Stosu wiedzy? Folder i jego pliki pozostaną w Twoim systemie.", + "expandFolder": "Rozwiń folder", + "collapseFolder": "Zwiń folder", + "folderIgnored": "Ten folder jest ignorowany na podstawie reguł .mstyignore lub .gitignore", + "fileIgnored": "Ten plik jest ignorowany na podstawie reguł .mstyignore lub .gitignore", + "actionMenu": "Menu akcji", + "emptyFolder": "Pusty folder", + "itemCount": "{count} element | {count} elementy", + "hiddenItemCount": "{count} ukryty element | {count} ukryte elementy" + }, + "obsidianVaults": { + "title": "Krypty Obsidian", + "description": "Dodaj Krypty Obsidian do swojego Stosu wiedzy. Msty zindeksuje wszystkie notatki w krypcie.", + "dropZoneText": "Przeciągnij i upuść Krypty Obsidian tutaj", + "browseVaults": "Przeglądaj Krypty Obsidian" + }, + "notes": { + "title": "Notatki", + "description": "Dodaj własne notatki do Stosu wiedzy. Te notatki zostaną podzielone na fragmenty i wektoryzowane na potrzeby wyszukiwania semantycznego.", + "addNote": "Dodaj notatkę", + "titlePlaceholder": "Wprowadź tytuł notatki...", + "contentPlaceholder": "Wprowadź treść notatki...", + "empty": "Nie dodano jeszcze żadnych notatek. Kliknij 'Dodaj notatkę', aby rozpocząć.", + "unsaved": "Jeszcze nie zapisano" + }, + "youTubeLinks": { + "title": "Linki YouTube", + "description": "Dodaj linki do filmów na YouTube, aby zaindeksować ich transkrypcje. Msty pobierze transkrypcje i sprawi, że będzie można je przeszukiwać.", + "dropZoneText": "Przeciągnij i upuść linki z YouTube tutaj lub wklej je poniżej", + "inputPlaceholder": "Wklej adresy URL z YouTube tutaj (oddzielone spacją lub przecinkiem)...", + "inputPlaceholderWithDetected": "Wklej adresy URL z YouTube tutaj (wykryto {count}) | Wklej adresy URL z YouTube tutaj (wykryto {count})", + "autoDetection": "Automatycznie pobierz wykryte adresy URL", + "detectedCount": "Wykryto {count} adres URL | Wykryto {count} adresy URL", + "detectedUnpulledUrls": "Wykryto {count} adres URL z YouTube, ale jeszcze go nie pobrano | Wykryto {count} adresy URL z YouTube, ale jeszcze ich nie pobrano" + } + }, + "itemActions": { + "markForReprocessing": "Oznacz do ponownego przetworzenia", + "lockTemporary": "Zablokuj tymczasowo", + "lockPermanent": "Zablokuj na stałe", + "unlock": "Odblokuj", + "ignoreRetrieval": "Ignoruj podczas wyszukiwania", + "unignoreRetrieval": "Uwzględnij w wyszukiwaniu", + "moreActions": "Więcej akcji" + }, + "loadMode": { + "title": "Tryb ładowania", + "dialogTitle": "Wybierz tryb ładowania", + "distribution": "Dystrybucja", + "dialogDescription": "Wybierz, w jaki sposób ten plik ma być ładowany podczas komponowania Stosu wiedzy.", + "staticFiles": "Pliki statyczne", + "dynamicFiles": "Pliki dynamiczne", + "syncFiles": "Pliki synchronizowane", + "totalFiles": "Suma plików", + "specialModes": "Tryby specjalne", + "specialModesRatio": "Współczynnik trybów specjalnych", + "static": { + "label": "Tryb statyczny", + "description": "Wykorzystuje zbuforowaną wersję z momentu dodania pliku. Szybki i przewidywalny, ale nie odzwierciedla najnowszych zmian.", + "shortDescription": "Zbuforowana treść załadowana z początkowego indeksowania", + "badge": "Domyślny" + }, + "dynamic": { + "label": "Tryb dynamiczny", + "description": "Ładuje najnowszą zawartość pliku przy każdym komponowaniu. Nieco wolniejszy, ale zawsze aktualny.", + "shortDescription": "Świeża treść ładowana przy każdym komponowaniu", + "badge": "Zalecany" + }, + "sync": { + "label": "Tryb synchronizacji", + "description": "Obserwuje zmiany w plikach i automatycznie je przekomponowuje. Najlepszy dla małych, często aktualizowanych plików.", + "shortDescription": "Automatycznie przekomponowuje, gdy pliki ulegną zmianie", + "badge": "Wymagający" + } + }, + "syncMode": { + "start": "Rozpocznij tryb synchronizacji", + "pause": "Wstrzymaj tryb synchronizacji", + "pauseAll": "Wstrzymaj wszystkie", + "started": "Rozpoczęto tryb synchronizacji", + "startedDetail": "Teraz obserwuję zmiany w pliku {name}", + "stopped": "Wstrzymano tryb synchronizacji", + "stoppedDetail": "Obserwowanie plików zostało wstrzymane", + "startFailed": "Nie udało się rozpocząć trybu synchronizacji", + "startFailedDetail": "Upewnij się, że Stos wiedzy ma pliki oznaczone trybem synchronizacji", + "allPaused": "Wstrzymano wszystkie tryby synchronizacji", + "allPausedDetail": "Obserwowanie plików zostało zatrzymane dla wszystkich stosów wiedzy", + "active": "Aktywne: {count} | Aktywne: {count}", + "activeTitle": "Aktywne tryby synchronizacji", + "filesWatching": "{count} plik | {count} pliki", + "filesCount": "{count} plik | {count} pliki", + "startedTime": "Rozpoczęto {time}", + "totalStats": "{stacks} stos, {files} pliki | {stacks} stosy, {files} plików", + "hoursAgo": "{hours} godz. temu", + "daysAgo": "{days} dni temu" + }, + "analytics": { + "title": "Analityka i wnioski", + "lastComposed": "Ostatnio skomponowano", + "sections": "Sekcje analityczne", + "performanceTimings": "Czasy wydajności", + "summaryStatistics": "Statystyki podsumowujące", + "contentBreakdown": "Rozbicie treści", + "querySettings": "Ustawienia zapytania", + "readingStatistics": "Statystyki czytania", + "noAnalyticsAvailable": "Brak dostępnej analityki", + "noAnalyticsDescription": "Analityka będzie dostępna po skomponowaniu tego Stosu wiedzy.", + "noSectionsSelected": "Nie wybrano żadnych sekcji analitycznych", + "noSectionsSelectedDescription": "Wybierz jedną lub więcej sekcji analitycznych powyżej, aby wyświetlić wnioski na temat swojego Stosu wiedzy.", + "selectAllSections": "Wybierz wszystkie sekcje", + "timings": { + "loadingItems": "Ładowanie elementów", + "splittingChunks": "Dzielenie na @:knowledgeStack.chunksConsole.chunks", + "embeddingChunks": "Wektoryzacja @:knowledgeStack.chunksConsole.chunks", + "composingStack": "Komponowanie Stosu", + "totalTime": "Czas całkowity", + "parallelNote": "Niektóre operacje mogą działać równolegle, więc poszczególne czasy mogą nie sumować się do czasu całkowitego", + "fileReading": "Odczyt pliku", + "databaseWrite": "Zapis w bazie danych" + }, + "stats": { + "numberOfItems": "Liczba elementów", + "totalChunks": "Wszystkie @:knowledgeStack.chunksConsole.chunks", + "availableChunks": "Dostępne @:knowledgeStack.chunksConsole.chunks", + "skippedChunks": "Pominięte @:knowledgeStack.chunksConsole.chunks", + "wordCount": "Liczba słów", + "characterCount": "Liczba znaków", + "readingTime": "Czas czytania" + }, + "ignoredItems": "Zignorowane elementy", + "ignoredForRetrieval": "Ignorowane podczas wyszukiwania", + "ignoredItemsDescription": "Te elementy są wykluczone z operacji wyszukiwania i pobierania", + "ignoredPercentage": "Procent ignorowanych elementów", + "ofTotal": "z {total}", + "files": "Pliki", + "notes": "Notatki", + "youTubeLinks": "Filmy z YouTube", + "noIgnoredItems": "Brak zignorowanych elementów", + "allItemsIncluded": "Wszystkie elementy w tym Stosie wiedzy są uwzględnione w wyszukiwaniu i pobieraniu", + "recommendation": "Rekomendacja", + "contentTypes": { + "files": "PLIKI", + "obsidianVaults": "KRYPTY OBSIDIAN", + "folders": "FOLDERY", + "notes": "NOTATKI", + "youTubeLinks": "LINKI YOUTUBE" + }, + "piiScrubbing": { + "title": "Oczyszczanie z PII", + "totalChunks": "Wszystkie @:knowledgeStack.chunksConsole.chunks", + "scrubbedChunks": "Oczyszczone @:knowledgeStack.chunksConsole.chunks", + "cachedChunks": "Zbuforowane @:knowledgeStack.chunksConsole.chunks", + "coverage": "Pokrycie", + "progress": "Postęp oczyszczania", + "loadAnalytics": "Załaduj analitykę", + "failedToLoadAnalytics": "Nie udało się załadować danych analitycznych PII", + "analyticsNotLoaded": "Analityka PII nie została załadowana", + "clickToViewAnalytics": "Kliknij \"Załaduj analitykę\", aby wyświetlić statystyki oczyszczania PII", + "scoreTooltip": "Ten wynik odzwierciedla, jak kompleksowo oczyszczanie z PII jest stosowane do Twojego Stosu wiedzy. Wyższy wynik oznacza, że przetworzono więcej fragmentów w celu usunięcia PII.", + "optionalDescription": "Oczyszczanie z PII jest opcjonalne. Włącz je w ustawieniach zapytań tylko wtedy, gdy Twoje treści zawierają wrażliwe dane osobowe.", + "protectionDescription": "Mierzy stopień ochrony wrażliwych informacji w Twoim Stosie wiedzy", + "status": { + "notEnabled": "Niewłączone", + "wellProtected": "Dobrze chronione", + "partiallyProtected": "Częściowo chronione", + "limitedProtection": "Ograniczona ochrona", + "minimalProtection": "Minimalna ochrona" + }, + "insights": { + "excellentPrivacy": "Znakomita ochrona prywatności - prawie wszystkie treści zabezpieczone", + "goodPrivacy": "Dobra ochrona prywatności - większość treści jest zabezpieczona", + "partialPrivacy": "Częściowa ochrona prywatności - rozważ przejrzenie ustawień", + "limitedPrivacy": "Ograniczona ochrona prywatności - przejrzyj wrażliwe treści", + "notEnabled": "Oczyszczanie z PII nie jest włączone. Jest to całkowicie w porządku, jeśli Twoje treści nie zawierają wrażliwych danych osobowych.", + "whenToEnable": "Rozważ włączenie oczyszczania z PII tylko wtedy, gdy Twój Stos wiedzy zawiera nazwiska, adresy, numery telefonów, e-maile lub inne dane osobowe.", + "significantReduction": "Znaczna redukcja treści ({percentage}%) - znaleziono rozległe PII", + "moderateReduction": "Umiarkowana redukcja treści ({percentage}%) - usunięto część PII", + "minimalReduction": "Minimalna redukcja treści ({percentage}%) - wykryto mało PII", + "noContentChange": "Brak zmiany rozmiaru treści - nie wykryto ani nie usunięto PII", + "allChunksProcessed": "Wszystkie fragmenty przetworzono pomyślnie", + "nearlyAllProcessed": "Prawie wszystkie fragmenty przetworzono pomyślnie", + "mostProcessed": "Większość fragmentów przetworzono - niektóre mogą wymagać uwagi", + "incompleteProcessing": "Niekompletne przetwarzanie - sprawdź konfigurację oczyszczania PII", + "largeKnowledgeBase": "Duża baza wiedzy - rozważ zwiększenie pokrycia wykrywania PII", + "manyUnprocessed": "Wiele nieprzetworzonych fragmentów - przejrzyj ustawienia oczyszczania PII", + "optionalFeature": "Oczyszczanie z PII jest opcjonalne. Włącz je w ustawieniach zapytań, jeśli Twoje treści zawierają wrażliwe informacje, takie jak imiona, e-maile lub numery telefonów.", + "privacyOption": "Oczyszczanie z PII pomaga chronić wrażliwe informacje. Jest opcjonalne i może być włączone w ustawieniach zapytań w razie potrzeby." + }, + "labels": { + "securityStatus": "Status bezpieczeństwa", + "privacyStatus": "Status prywatności", + "whenToEnable": "Kiedy włączyć", + "contentImpact": "Wpływ na treść", + "processingEfficiency": "Wydajność przetwarzania", + "scaleRecommendation": "Rekomendacja skali", + "coverageRecommendation": "Rekomendacja pokrycia", + "optionalFeature": "Funkcja opcjonalna", + "privacyOption": "Opcja prywatności" + } + }, + "querySettingsDetails": { + "searchType": "Typ wyszukiwania", + "numberOfChunks": "Liczba @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefiks promptu" + }, + "privacyOptimizationScore": "Wynik optymalizacji prywatności", + "piiProtectionLevel": "Poziom ochrony PII", + "piiScrubbingStatus": "Status oczyszczania z PII", + "unscrubbedChunks": "Nieoczyszczone @:knowledgeStack.chunksConsole.chunks", + "originalSize": "Oryginalny rozmiar", + "processedSize": "Przetworzony rozmiar", + "sizeReduction": "Redukcja rozmiaru", + "privacyInsights": "@:insgiths prywatności", + "dataModified": "Dane zostały zmodyfikowane", + "showOutdatedData": "Pokaż nieaktualne dane mimo to", + "contentDistribution": "Dystrybucja treści", + "contentContribution": "{label} stanowi {percentage}% wszystkich fragmentów", + "processingIssue": "Problem z przetwarzaniem", + "lowEfficiency": "{label} ma niską wydajność ({efficiency}%)", + "dataQualityIssue": "Problem z jakością danych", + "highSkipRates": "{count} typ(ów) treści ma wysokie wskaźniki pomijania", + "contentDiversity": "Różnorodność treści", + "singleContentType": "Jeden typ treści - rozważ zróżnicowanie źródeł", + "excellentDiversity": "Znakomita różnorodność treści w wielu typach źródeł", + "optimizationTip": "Wskazówka optymalizacyjna", + "reduceChunkSize": "Zmniejsz rozmiar fragmentu do 800-1200 znaków dla lepszej precyzji treści", + "increaseChunkSize": "Zwiększ rozmiar fragmentu do 1500-2000 znaków dla lepszej wydajności", + "embeddingThroughput": "Przepustowość osadzania", + "chunksPerSecond": "{rate} fragmentów/sek ({time}ms każdy)", + "searchStrategy": "Strategia wyszukiwania", + "balancedSearch": "Zrównoważone podejście łączące wyszukiwanie słów kluczowych i semantyczne", + "semanticSearch": "Semantyczne wyszukiwanie wspierane przez AI - najlepsze do zapytań koncepcyjnych", + "keywordSearch": "Tradycyjne wyszukiwanie słów kluczowych - najlepsze dla dokładnych terminów", + "retrievalVolume": "Liczba pobrań", + "lowChunkCount": "Bardzo niska liczba fragmentów może pominąć istotne informacje", + "highChunkCount": "Wysoka liczba fragmentów może wprowadzać szum i spowalniać odpowiedzi", + "optimalChunkCount": "Optymalna liczba fragmentów do zrównoważonego pobierania", + "contentFiltering": "Filtrowanie treści", + "relaxedFiltering": "Złagodzone filtrowanie - może zawierać luźno powiązane treści", + "strictFiltering": "Ścisłe filtrowanie - bardzo ukierunkowane wyniki", + "moderateFiltering": "Zrównoważone filtrowanie dopasowanych treści", + "guidedContext": "Kontekst sterowany", + "customPromptPrefix": "Niestandardowy prefiks promptu będzie kierował interpretacją zapytań", + "lockIndicator": "Wskaźnik blokady", + "allItemsCanBeReprocessed": "Wszystkie elementy mogą być ponownie przetworzone", + "itemsPartiallyLocked": "{percentage}% elementów jest zablokowanych", + "mostItemsLocked": "Większość elementów jest zablokowana - ograniczona możliwość ponownego przetwarzania", + "privacySecurity": "Prywatność i bezpieczeństwo", + "privacyProtectionEnabled": "Włączono ochronę prywatności danych wrażliwych", + "noPiiScrubbing": "Brak oczyszczania PII - upewnij się, że treść nie jest wrażliwa", + "scaleOptimization": "Optymalizacja skali", + "largeKnowledgeBase": "Duża baza wiedzy - zwiększ liczbę fragmentów, aby uzyskać lepsze pokrycie", + "smallKnowledgeBase": "Mała baza wiedzy - rozważ zmniejszenie liczby fragmentów", + "performanceProfile": "Profil wydajności", + "optimizedForSpeed": "Konfiguracja zoptymalizowana pod kątem szybkich odpowiedzi", + "optimizedForQuality": "Konfiguracja zoptymalizowana pod kątem wyników wysokiej jakości", + "highLockRate": "Wysoki wskaźnik blokady", + "lockedItemsPercentage": "{percentage}% elementów jest zablokowanych i nie będzie ponownie przetwarzanych", + "unlockRecommendation": "Rozważ odblokowanie tymczasowo zablokowanych elementów, jeśli wymagają aktualizacji", + "overHalfLocked": "Ponad 50% elementów jest zablokowanych. Może to znacznie zmniejszyć zdolność bazy wiedzy do pozostawania aktualną.", + "lockStatus": "Status blokady", + "totalItems": "Suma elementów", + "unlocked": "Odblokowane", + "temporarilyLocked": "Tymczasowo zablokowane", + "permanentlyLocked": "Na stałe zablokowane", + "lockStatusByContentType": "Status blokady wg typu treści", + "tempLocked": "Zabl. tymcz.", + "permLocked": "Zabl. na stałe", + "lockStatusInsights": "@:insights statusu blokady", + "processingEfficiency": "Wydajność przetwarzania", + "contentInsights": "@:insights treści", + "compositionOptimizationScore": "Wynik optymalizacji komponowania", + "compositionInsights": "@:insights komponowania", + "performanceInsights": "@:insights wydajności", + "processingPhaseDetails": "Szczegóły fazy przetwarzania", + "loadingItems": "Ładowanie elementów", + "splittingChunks": "Dzielenie na @:knowledgeStack.chunksConsole.chunks", + "embeddingChunks": "Wektoryzacja @:knowledgeStack.chunksConsole.chunks", + "fileReading": "Odczyt pliku", + "databaseWrite": "Zapis w bazie danych", + "composingStack": "Komponowanie Stosu", + "totalProcessingTime": "Całkowity czas przetwarzania", + "totalLockedItems": "Suma zablokowanych elementów", + "efficiency": "Wydajność", + "loadMode": { + "title": "Analityka trybu ładowania", + "description": "Zachowanie ładowania plików w Twoim Stosie wiedzy", + "distribution": "Rozkład trybu ładowania", + "totalFiles": "Suma plików", + "staticFiles": "Tryb statyczny", + "dynamicFiles": "Tryb dynamiczny", + "syncFiles": "Tryb synchronizacji", + "specialModes": "Tryby specjalne", + "specialModesRatio": "% trybów specjalnych", + "status": "Status", + "active": "Aktywny", + "inactive": "Nieaktywny", + "breakdown": "Rozbicie wizualne", + "noFiles": "Brak plików w tym Stosie wiedzy", + "desktopOnly": "Opcje trybu ładowania są dostępne tylko w aplikacji desktopowej", + "notAvailable": "Opcje trybu ładowania są dostępne tylko w aplikacji desktopowej", + "noSpecialModes": "Wszystkie pliki używają trybu statycznego. Włącz tryb dynamiczny lub synchronizacji, aby pliki używały najnowszych treści.", + "syncActive": "Tryb synchronizacji aktywny", + "syncActiveDetails": "Obserwuję {files} • Rozpoczęto {time}", + "staticDescription": "Zbuforowana treść załadowana z początkowego indeksowania", + "dynamicDescription": "Świeża treść ładowana przy każdym komponowaniu", + "syncDescription": "Automatycznie przekomponowuje, gdy pliki ulegną zmianie", + "staticBadge": "Domyślny", + "dynamicBadge": "Świeży", + "syncBadge": "Na żywo", + "insights": { + "highSyncCount": { + "title": "Wysoka liczba plików synchronizowanych", + "description": "{count} plików jest w trybie synchronizacji", + "recommendation": "Rozważ użycie trybu dynamicznego dla rzadziej aktualizowanych plików, aby zmniejszyć użycie zasobów" + }, + "syncEnabled": { + "title": "Włączony tryb synchronizacji", + "description": "{count} plików automatycznie aktualizuje się po zmianie" + }, + "highDynamicUsage": { + "title": "Wysokie użycie trybu dynamicznego", + "description": "{percentage}% plików używa trybu dynamicznego", + "recommendation": "Tryb statyczny może być wystarczający dla plików, które rzadko się zmieniają" + }, + "dynamicEnabled": { + "title": "Aktywny tryb dynamiczny", + "description": "{count} plików ładuje świeżą treść przy każdym komponowaniu" + }, + "staticOnly": { + "title": "Tylko tryb statyczny", + "description": "Wszystkie pliki używają zbuforowanej zawartości z początkowego indeksowania", + "recommendation": "Włącz tryb dynamiczny lub synchronizacji dla często aktualizowanych plików, aby zapewnić świeżą treść" + }, + "mixedModes": { + "title": "Mieszane tryby ładowania", + "description": "{percentage}% plików używa specjalnych trybów ładowania" + } + } + } + }, + "composeSettings": { + "title": "Ustawienia kompozycji", + "chunkOverlapping": "Nakładanie się @:knowledgeStack.chunksConsole.chunk", + "embeddingModel": { + "title": "Model osadzania", + "warning": "Zmiana modelu osadzania będzie wymagać ponownego skomponowania całego Stosu wiedzy, a nawet wtedy istnieje szansa, że rekompozycja się nie powiedzie.", + "learnMore": "Dowiedz się więcej o kompatybilności modelu osadzania", + "defaultPlaceholder": "Domyślny (Lokalny)" + }, + "placeholders": { + "selectEmbeddingModel": "Wybierz model osadzania", + "selectChunkOverlapping": "Wybierz nakładanie się fragmentów", + "selectChunkSize": "Wybierz rozmiar fragmentu" + }, + "chunkingMethod": { + "title": "Metoda fragmentacji", + "recursiveCharacter": "Znakowa rekurencyjna", + "sentence": "Zdaniowa", + "description": "Wybierz, w jaki sposób dokumenty powinny być dzielone na mniejsze fragmenty, aby usprawnić wyszukiwanie i pobieranie." + }, + "overlapping": { + "title": "Nakładanie się", + "description": "Wybierz, jak bardzo fragmenty powinny na siebie nachodzić. Większe nakładanie się może poprawić kontekst, ale zwiększy zużycie tokenów." + }, + "chunkSize": { + "title": "Rozmiar @:knowledgeStack.chunksConsole.chunk", + "description": "Ustaw maksymalny rozmiar każdego fragmentu w znakach. Mniejsze fragmenty mogą poprawić dokładność wyszukiwania, ale zwiększają zużycie tokenów." + }, + "chunkSizesToIgnore": { + "title": "Rozmiary @:knowledgeStack.chunksConsole.chunk do zignorowania", + "description": "Określ rozmiary fragmentów, które mają być ignorowane podczas przetwarzania. Przydatne do wykluczania bardzo małych lub bardzo dużych fragmentów." + } + }, + "querySettings": { + "title": "Ustawienia zapytania", + "numberOfChunks": "Liczba @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefiks promptu", + "similarityThreshold": { + "low": "Niski", + "medium": "Średni", + "high": "Wysoki", + "highest": "Najwyższy" + }, + "searchTypes": { + "semantic": "Wyszukiwanie semantyczne", + "keyword": "Wyszukiwanie po słowach kluczowych", + "hybrid": "Wyszukiwanie hybrydowe" + }, + "modes": { + "push": "Tryb Push", + "pull": "Tryb Pull" + }, + "chunks": { + "title": "Kontekst Stosu wiedzy", + "loadError": "Nie udało się załadować fragmentów Stosu wiedzy. Spróbuj ponownie.", + "searchSettings": "Ustawienia wyszukiwania", + "searchType": "Typ wyszukiwania", + "searchQuery": "Zapytanie wyszukiwania", + "source": "Źródło", + "content": "Treść", + "fullContent": "Pełna treść", + "chunkInfo": "Informacje o @:knowledgeStack.chunksConsole.chunk", + "knowledgeStack": "Stos wiedzy", + "chunks": "fragmenty", + "maxChunks": "Max. @:knowledgeStack.chunksConsole.chunks" + }, + "retrievalMode": { + "title": "Tryb pobierania @:knowledgeStack.chunksConsole.chunk", + "description": "Wybierz pomiędzy trybem Push, w którym fragmenty są pobierane z wyprzedzeniem, a trybem Pull, w którym model może bezpośrednio wysyłać zapytania do Stosów wiedzy" + } + }, + "chunks": { + "coverage": "Pokrycie", + "skippedChunks": "Pominięte @:knowledgeStack.chunksConsole.chunks", + "availableChunks": "Dostępne @:knowledgeStack.chunksConsole.chunks", + "numberOfChunks": "Liczba @:knowledgeStack.chunksConsole.chunks", + "promptPrefix": "Prefiks promptu", + "chunkingMethod": "Metoda fragmentacji", + "chunkSize": "Rozmiar @:knowledgeStack.chunksConsole.chunk", + "chunkOverlap": "Nakładanie się @:knowledgeStack.chunksConsole.chunk", + "totalChunks": "Wszystkie @:knowledgeStack.chunksConsole.chunks", + "cachedChunks": "Zbuforowane @:knowledgeStack.chunksConsole.chunks", + "scrubbedChunks": "Oczyszczone @:knowledgeStack.chunksConsole.chunks", + "loadError": "Nie udało się załadować fragmentów Stosu wiedzy. Spróbuj ponownie.", + "searchSettings": "Ustawienia wyszukiwania", + "searchType": "Typ wyszukiwania", + "maxChunks": "Max. @:knowledgeStack.chunksConsole.chunks", + "searchQuery": "Zapytanie wyszukiwania", + "synthesizedQuery": "Zsyntetyzowane zapytanie", + "chunks": "fragment | fragmenty", + "source": "Źródło", + "content": "Treść", + "viewFull": "Wyświetl pełną treść", + "fullContent": "Pełna treść @:knowledgeStack.chunksConsole.chunk", + "chunkInfo": "Informacje o @:knowledgeStack.chunksConsole.chunk", + "knowledgeStack": "Stos wiedzy", + "scrubbed": "Oczyszczono", + "original": "Oryginalny", + "chunkId": "ID @:knowledgeStack.chunksConsole.chunk", + "piiStatus": "Status PII", + "piiScrubbed": "Oczyszczono z PII", + "piiUnscrubbed": "Nieoczyszczono z PII", + "tooltip": { + "scrubbed": "Treść została oczyszczona z danych osobowych (PII)", + "cached": "Użyto zbuforowanej oczyszczonej wersji", + "fresh": "Świeżo oczyszczona treść", + "original": "Oryginalna treść bez @:pii.scrubbing.title" + }, + "queryAnalysis": "Analiza zapytania", + "fullContentRetrieved": "Pełny kontekst treści aktywny", + "documentsRetrieved": "Pobrane dokumenty", + "contentContext": "Kontekst treści", + "keywords": "Słowa kluczowe", + "fullDoc": "Pełny dokument", + "type": "Typ", + "fullDocument": "Pełny dokument" + }, + "chunksVisualizer": { + "title": "Wizualizator @:knowledgeStack.chunksConsole.chunks", + "description": "Zwizualizuj, jak dzielone są dokumenty", + "openStitcher": "Otwórz wizualizator", + "viewStitcher": "Wyświetl wizualizator", + "stitchableFiles": "Dostępne pliki", + "loading": "Ładowanie plików...", + "noFiles": "Nie znaleziono plików", + "selectFile": "Wybierz plik", + "selectFileDescription": "Wybierz plik z lewej strony, aby zwizualizować jego fragmenty i treść", + "mimeType": "Typ MIME", + "chunks": "@:knowledgeStack.chunksConsole.chunks", + "overlaps": "Nakładające się części", + "stitchedSize": "Złączony rozmiar", + "showOverlaps": "Pokaż nakładanie się", + "hideOverlaps": "Ukryj nakładanie się", + "showChunks": "Pokaż @:knowledgeStack.chunksConsole.chunks", + "showStitched": "Pokaż złączone", + "copyContent": "Kopiuj treść", + "stitchedContent": "Złączona treść", + "scrubbedChunks": "Oczyszczone @:knowledgeStack.chunksConsole.chunks", + "unScrubbedChunks": "Nieoczyszczone @:knowledgeStack.chunksConsole.chunks", + "overlapRemoved": "Nałożenia zostały usunięte w celu czystej rekonstrukcji tekstu", + "chunkNumber": "@:knowledgeStack.chunksConsole.chunk {number}", + "overlapPrevious": "Nałożenie na poprzedni", + "overlapNext": "Nałożenie na następny", + "overlapWithPrevious": "Ten tekst nakłada się z poprzednim fragmentem", + "overlapWithNext": "Ten tekst nakłada się z następnym fragmentem", + "chunkIndices": "Pozycje znaków w pliku", + "coreIndices": "Treść główna bez nakładania się", + "chunkCount": "Liczba fragmentów: {count}", + "showOriginal": "Pokaż oryginał", + "showScrubbed": "Pokaż oczyszczone", + "showScrubbedOnly": "Pokaż tylko oczyszczone", + "showAllChunks": "Pokaż wszystkie @:knowledgeStack.chunksConsole.chunks", + "tooltip": { + "scrubbed": "Treść została oczyszczona z danych osobowych (PII)", + "cached": "Użyto zbuforowanej oczyszczonej wersji", + "fresh": "Świeżo oczyszczona treść" + }, + "itemsPerPage": "Na stronę", + "showingChunks": "{start}-{end} z {total} fragmentów", + "loadingChunks": "Ładowanie fragmentów...", + "noItems": "Nie znaleziono elementów", + "selectItem": "Wybierz element", + "selectItemDescription": "Wybierz plik lub notatkę po lewej stronie, aby zwizualizować fragmenty i treść", + "openConsole": "Otwórz konsolę", + "selectedChunks": "Wybrano {count} @:knowledgeStack.chunksConsole.chunk", + "deleteSelected": "Usuń zaznaczone", + "clearSelection": "Wyczyść zaznaczenie", + "confirmDelete": "Potwierdź usunięcie", + "confirmDeleteMessage": "Czy na pewno chcesz usunąć {count} wybranych fragmentów? Tej akcji nie można cofnąć.", + "deleteSuccess": "Usunięto @:knowledgeStack.chunksConsole.chunks", + "deleteSuccessDetail": "Pomyślnie usunięto {count} fragmentów", + "deletedChunksCount": "Pomyślnie usunięto {count} @:knowledgeStack.chunksConsole.chunk", + "deleteError": "Usunięcie nie powiodło się" + }, + "export": { + "forceCompose": "Wymuś komponowanie", + "overallProgress": "Całkowity postęp", + "itemsExported": "Wyeksportowano {count} elementów", + "items": "Elementy", + "skip": "Pomiń", + "exportCompleted": "Eksport zakończony pomyślnie!", + "savedTo": "Zapisano w: {path}", + "cancelAll": "Anuluj wszystko", + "done": "Gotowe", + "export": "Eksportuj", + "exporting": "Eksportowanie", + "knowledgeStack": "Stos wiedzy", + "folder": "Folder", + "exportFailed": "Eksport nie powiódł się", + "importFailed": "Import nie powiódł się" + }, + "messages": { + "editsSaved": "Zmiany w Twoim Stosie wiedzy zostały zapisane. Konieczne będzie ponowne jego skomponowanie, aby zastosować zmiany.", + "savedAndProcessing": "Zapisano Stos wiedzy i rozpoczęto przetwarzanie", + "cannotForceCompose": "Nie można wymusić komponowania: Stos wiedzy musi zostać najpierw zapisany", + "failedToForceCompose": "Nie udało się wymusić komponowania Stosu wiedzy", + "forceComposeStarted": "Rozpoczęto wymuszone komponowanie - wszystkie elementy zostaną ponownie przetworzone", + "failedToUpdateQuerySettings": "Nie udało się zaktualizować ustawień zapytania", + "querySettingsUpdated": "Zaktualizowano ustawienia zapytania", + "justNow": "przed chwilą", + "minutesAgo": "{minutes} min temu", + "searchPlaceholder": "Szukaj...", + "failedToSelectItem": "Nie udało się wybrać elementu", + "failedToSelectFolder": "Nie udało się wybrać folderu", + "processingCompleted": "Przetwarzanie Stosu wiedzy {title} zakończone", + "processingFailed": "Przetwarzanie Stosu wiedzy {title} nie powiodło się", + "nothingToCompose": "Brak elementów do skomponowania dla Stosu wiedzy {title}", + "composeError": "Błąd podczas komponowania Stosu wiedzy {title}", + "downloadImportNotAvailableInWeb": "Importowanie z adresu URL jest dostępne tylko w aplikacji desktopowej", + "deleteSuccess": "Usunięto {count} @:knowledgeStack.title!", + "createError": "Nie udało się utworzyć @:knowledgeStack.title", + "saveEditsError": "Nie udało się zapisać zmian w @:knowledgeStack.title", + "folderAdded": "Dodano folder '{name}' do Stosu wiedzy" + }, + "folderLockedTemporary": "Folder '{name}' został tymczasowo zablokowany", + "folderLockedPermanent": "Folder '{name}' został zablokowany na stałe", + "lockFailed": "Nie udało się zablokować folderu", + "folderUnlocked": "Odblokowano folder '{name}'", + "unlockFailed": "Nie udało się odblokować folderu", + "unlock": "Odblokuj", + "status": { + "misc": "Różne", + "path": "Ścieżka: {path}", + "name": "Nazwa: {name}", + "unknown": "Nieznany", + "original": "Oryginalny", + "loadingPiiAnalytics": "Ładowanie analityki PII...", + "allItemsUnlocked": "Wszystkie elementy są odblokowane i mogą zostać ponownie przetworzone w razie potrzeby." + }, + "abortProcessing": "Przerwij przetwarzanie", + "errors": { + "processingFailed": "Przetwarzanie nie powiodło się", + "errorMessage": "Komunikat błędu", + "occurredAt": "Wystąpił w", + "failedFile": "Plik z błędem", + "errorSummary": "Podsumowanie błędu", + "technicalDetails": "Szczegóły techniczne", + "stackTrace": "Ślad stosu", + "copyDetails": "Kopiuj szczegóły", + "detailsCopied": "Szczegóły błędu skopiowano do schowka", + "clickToSeeDetails": "Kliknij, aby zobaczyć szczegóły błędu", + "fileIsNull": "Plik ma wartość null", + "checkingPathError": "Błąd sprawdzania, czy ścieżka jest katalogiem", + "processingFolderError": "Błąd przetwarzania folderu", + "lockFolderTemporaryFailed": "Nie udało się tymczasowo zablokować folderu", + "lockFolderPermanentFailed": "Nie udało się zablokować folderu na stałe", + "unlockFolderFailed": "Nie udało się odblokować folderu", + "status": { + "completed": "Status: Zakończono", + "processing": "Status: Przetwarzanie", + "pending": "Status: Oczekujące", + "draft": "Status: Szkic", + "needsReprocessing": "Status: Wymaga ponownego przetworzenia", + "error": "Status: Błąd", + "lockedTemporary": "Status: Tymczasowo zablokowano", + "lockedPermanent": "Status: Zablokowano na stałe", + "aborted": "Status: Przerwano", + "unknown": "Status: Nieznany" + } + } + }, + "features": { + "showcase": { + "title": "Odblokuj funkcje Aurum", + "subtitle": "Uaktualnij do licencji Aurum, aby uzyskać najpotężniejsze funkcje AI i zaawansowane możliwości", + "eyebrow": "Wszystko, czego potrzebujesz", + "viewPricing": "Zobacz cennik", + "featureMatrix": "Matryca funkcji", + "activateLicense": "Aktywuj licencję", + "licenses": { + "aurum": "Aurum" + } + } + }, + "images": { + "upload": "Prześlij obraz…", + "onlySupported": "Obsługiwane są tylko pliki obrazów.", + "maxSize": "Obraz musi mieć rozmiar 1 MB lub mniejszy." + }, + "userAvatar": { + "updated": "Zaktualizowano zdjęcie profilowe.", + "updateFailed": "Nie udało się zaktualizować zdjęcia. Spróbuj ponownie.", + "changeHint": "Kliknij, aby zmienić zdjęcie profilowe" + }, + "setting": { + "lostAndFound": { + "title": "Zgubione i znalezione", + "description": "Znajdź i odzyskaj utracone przestrzenie robocze ze swojego komputera. Skanowane i wykrywane są tylko bazy danych przestrzeni roboczych, a nie załączniki.", + "experimentalInfo": "Opcja Zgubione i znalezione ma charakter eksperymentalny. Zawsze zachowuj kopie zapasowe danych swoich przestrzeni roboczych przed próbą odzyskiwania.", + "scanForLostWorkspaces": "Skanuj w poszukiwaniu utraconych przestrzeni roboczych", + "scanAppData": "Skanuj dane aplikacji", + "scanFolder": "Skanuj folder…", + "workspace": "Przestrzeń robocza", + "file": "Plik", + "status": "Status", + "lastModifiedColumn": "Ostatnia modyfikacja", + "actions": "Akcje", + "statusCurrent": "Bieżący", + "statusLinked": "Powiązany", + "statusFound": "Znaleziony", + "restoreCurrentWorkspace": "Przywróć obecną przestrzeń roboczą", + "importAsNewWorkspace": "Zaimportuj jako nową przestrzeń roboczą", + "restoreConfirmHeader": "Przywrócić obecną przestrzeń roboczą?", + "restoreConfirmMessage": "Spowoduje to zastąpienie danych aktualnie aktywnej przestrzeni roboczej danymi z wybranego odzyskanego pliku. Tego działania nie można cofnąć.", + "restore": "Przywróć", + "failedToImportWorkspace": "Nie udało się zaimportować przestrzeni roboczej", + "workspaceImported": "Zaimportowano przestrzeń roboczą", + "workspaceImportedDetail": "Odzyskana przestrzeń robocza została zaimportowana. Przełącz się na nią z zasobnika przestrzeni roboczej w razie potrzeby.", + "failedToRestoreWorkspace": "Nie udało się przywrócić przestrzeni roboczej", + "workspaceRestored": "Przestrzeń robocza została przywrócona", + "workspaceRestoredDetail": "Obecna przestrzeń robocza została przywrócona z odzyskanego pliku.", + "showInFileExplorer": "Pokaż w Eksploratorze plików", + "lastModified": "Ostatnia modyfikacja", + "failedToImportRecoveredWorkspace": "Nie udało się zaimportować odzyskanej przestrzeni roboczej", + "failedToImportRecoveredWorkspaceUnexpected": "Nie udało się zaimportować odzyskanej przestrzeni roboczej (nieoczekiwany błąd)", + "failedToRestoreFromRecoveredFile": "Nie udało się przywrócić przestrzeni roboczej z odzyskanego pliku", + "failedToRestoreFromRecoveredFileUnexpected": "Nie udało się przywrócić przestrzeni roboczej z odzyskanego pliku (nieoczekiwany błąd)" + } + }, + "quickFilter": "Szybki filtr...", + "toggleFilter": "Przełącz filtr", + "toggleSidebar": "Przełącz pasek boczny", + "adjust": "Dostosuj", + "experimentalInfo": "{item} jest funkcją eksperymentalną w fazie aktywnego rozwoju. Prosimy o zgłaszanie wszelkich problemów zespołowi.", + "attachmentsManager": { + "columnHeaders": { + "name": "Nazwa", + "fileType": "Typ pliku", + "attachmentType": "Typ załącznika", + "size": "Rozmiar", + "actions": "Akcje" + }, + "actions": { + "browseExisting": "Przeglądaj istniejące załączniki", + "viewAssociations": "Wyświetl powiązania", + "attach": "Załącz", + "delete": { + "title": "Usuń załącznik | Usuń załączniki", + "confirmationMessage": "Czy na pewno chcesz usunąć ten załącznik? Wszystkie powiązania do tego załącznika zostaną również usunięte. Tej akcji nie można cofnąć. | Czy na pewno chcesz usunąć te załączniki? Wszystkie powiązania do tych załączników zostaną również usunięte. Tej akcji nie można cofnąć.", + "successMessage": "Pomyślnie usunięto załącznik | Pomyślnie usunięto załączniki", + "errorMessage": "Nie udało się usunąć załącznika | Nie udało się usunąć załączników" + } + }, + "search": "Szukaj po nazwie", + "filter": "Filtruj wg typu załącznika", + "title": "Menedżer załączników", + "emptyState": { + "title": "Nie znaleziono załączników", + "description": "Nie masz dostępnych załączników." + }, + "associations": { + "title": "Powiązania dla {attachmentName}", + "search": "Szukaj po nazwie powiązania", + "filter": "Filtruj wg powiązanego podmiotu", + "emptyState": { + "title": "Nie znaleziono powiązań", + "description": "Nigdzie jeszcze nie użyto tego załącznika." + }, + "columnHeaders": { + "associationName": "Nazwa powiązania", + "associatedEntity": "Powiązany podmiot", + "actions": "Akcje" + }, + "actions": { + "jumpTo": "Przejdź do {entity}", + "detach": { + "action": "Odłącz", + "title": "Odłącz powiązanie", + "confirmationMessage": "Czy na pewno chcesz odłączyć to powiązanie od {associationEntity}? Tej akcji nie można cofnąć.", + "successMessage": "Pomyślnie odłączono powiązanie", + "errorMessage": "Nie udało się odłączyć powiązania" + } + } + } + }, + "iconSelector": { + "searchMode": "Szukaj", + "aiMode": "Prompt AI", + "aiPlaceholder": "Opisz, co reprezentuje ikona...", + "findIcon": "Znajdź ikonę", + "finding": "Szukanie..." + } +}