From e6109e27126d9c150b93671e5c8446ab1a1d0724 Mon Sep 17 00:00:00 2001 From: Adrian Trabka Date: Sun, 5 Jul 2026 22:16:55 +0200 Subject: [PATCH] =?UTF-8?q?Add=20Polish=20(pl=5FPL)=20translation=20?= =?UTF-8?q?=E2=80=94=20100%=20coverage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full Polish translation of all 3566 strings from en_US.json: - key set and structure identical to en_US.json (verified by script: 0 diffs) - all {placeholders} preserved exactly (verified: 0 diffs) - @: linked references kept where Polish grammar allows; resolved inline where inflection is required (same approach as the merged ru_RU) - Slavic 3-form pluralization (1 / 2-4 / 5+) for {count} strings, following the ru_RU convention - tested in Msty Studio via Settings → Language → Import Locale Co-Authored-By: Claude Fable 5 --- 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..827b0e0 --- /dev/null +++ b/i18n/locales/pl_PL.json @@ -0,0 +1,5515 @@ +{ + "you": "Ty", + "select": "Wybierz", + "conversations": "Rozmowy", + "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 kliknij z klawiszem Alt, aby zobaczyć więcej opcji", + "onMessage": "na wiadomości", + "selectModel": "@:select model | @:select modele", + "manageModels": "@:manage modelami", + "required": "Wymagane", + "optional": "Opcjonalne", + "systemPrompt": "Prompt systemowy", + "systemPromptAttachMode": "@:mode dołączania promptu systemowego", + "userPrompt": "Prompt użytkownika", + "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": "Dodano do zakładek", + "pinned": "Przypięte", + "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 zapisane", + "toolbar": "Pasek narzędzi", + "bookmark": "Zakładka | Zakładki", + "waitingMessage": { + "waiting": "Czekam :: Chwileczkę :: Jeszcze moment :: Sekundka :: Cierpliwość to cnota :: Już prawie :: Ładuję cudowności", + "fetchingWebResults": "Przeszukuję sieć :: Przeglądam internet :: Sprawdzam online :: Przeczesuję sieć :: Radzę się wyroczni :: Grzecznie pytam internet :: Nurkuję w cyberprzestrzeni :: Kopię w sieci", + "queryingKnowledgeStack": "Odpytuję @:knowledgeStack.title :: Przeszukuję Twoją wiedzę :: Przeglądam Twoje dokumenty :: Eksploruję Twoją bazę wiedzy :: Wertuję Twoją mądrość :: Zaglądam do Twojej cyfrowej biblioteki :: Skanuję Twoje archiwa :: Przekopuję Twoje notatki", + "preparingTools": "Przygotowuję narzędzia :: Szykuję narzędzia :: Konfiguruję narzędzia :: Ładuję narzędzia :: Ostrzę instrumenty :: Kompletuję zestaw narzędzi :: Rozgrzewam silniki :: Przygotowuję warsztat", + "connectingToModel": "Model czaruje ✨ :: AI myśli :: Przetwarzam Twoje zapytanie :: Pracuję nad tym :: Mielę liczby :: Neurony iskrzą :: Głęboko rozmyślam :: Obliczam genialność :: Włączam tryb mózgu :: Przyzywam inteligencję", + "processingContext": "Przetwarzam kontekst :: Rozumiem kontekst :: Analizuję kontekst :: Odczytuję sytuację :: Łączę kropki :: Ogarniam szerszy obraz :: Składam to w całość :: Nadaję temu sens", + "streaming": "Strumieniuję :: Wysyłam odpowiedź :: Dostarczam odpowiedź :: Transmituję :: Teleportuję wyniki :: Płynie w Twoją stronę :: W drodze do Ciebie :: Nadciągam z impetem", + "scrubbingPIIData": "Czyszczę dane PII :: Chronię Twoją prywatność :: Usuwam informacje osobiste :: Anonimizuję dane :: Strzegę sekretów :: Tryb prywatności aktywny :: Zamazuję wrażliwe fragmenty :: Przechodzę w tryb incognito", + "synthesizingQuery": "Syntetyzuję zapytanie dla lepszych wyników :: Optymalizuję Twoje pytanie :: Ulepszam zapytanie :: Doprecyzowuję frazy wyszukiwania :: Szlifuję Twoją prośbę :: Dostrajam pytanie :: Tworzę idealne zapytanie :: Dodaję blasku Twoim słowom", + "fetchingLiveContexts": "Pobieram konteksty na żywo :: Zbieram dane w czasie rzeczywistym :: Wyciągam świeże spostrzeżenia :: Synchronizuję się ze źródłami na żywo :: Podłączam się do strumienia danych :: Gromadzę aktualne wieści :: Odświeżam kanały kontekstu :: Zbieram żniwo aktualizacji na żywo :: Łączę się z pulsem" + }, + "progress": { + "initializing": "Inicjalizowanie..." + }, + "add": "Dodaj", + "actionBar": { + "expandGroup": "Rozwiń {group}", + "collapseGroup": "Zwiń {group}", + "showExtraAddOns": "Pokaż pozostałe dodatki", + "hideExtraAddOns": "Ukryj pozostałe dodatki", + "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 ugruntowania", + "manage": "Zarządzaj", + "chat": "Czat | Czaty", + "advancedOptions": "Opcje zaawansowane", + "duplicate": "Duplikuj", + "manageItem": "@:manage {item}", + "success": "Udało się!", + "notes": "Notatki", + "viewNotes": "Zobacz notatki", + "error": "Błąd!", + "warning": "Ostrzeżenie", + "authorized": "Autoryzowano", + "notAuthorized": "Nieautoryzowano", + "authorize": "Autoryzuj", + "reauthorize": "Autoryzuj ponownie", + "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ć prompt systemowy", + "pause": "Wstrzymaj", + "resume": "Wznów", + "retry": "Ponów", + "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 | {count} możliwości", + "preset": "Preset | Presety", + "saveAsPreset": "Zapisz jako preset", + "append": "Dołącz na końcu", + "prepend": "Dołącz na początku", + "replace": "Zastąp", + "description": "Opis", + "mode": "Tryb", + "addOns": "Dodatki", + "user": "Użytkownik", + "assistant": "Asystent", + "assistantMessage": "@:message.title asystenta", + "connectionInfo": "Informacje o połączeniu", + "export": "Eksportuj", + "exportOptions": "Opcje eksportu", + "chooseFile": "Wybierz plik", + "purpose": "Cel", + "download": "Pobierz", + "downloads": "Pobierania", + "downloadAsJson": "Pobierz jako JSON", + "install": "Zainstaluj", + "installed": "Zainstalowane", + "modified": "Zmodyfikowano", + "created": "Utworzono", + "minimize": "Minimalizuj", + "status": "Status", + "type": "Typ", + "yes": "Tak", + "fileSize": "Rozmiar pliku", + "size": "Rozmiar", + "likes": "Polubienie | Polubienia", + "cancelled": "Anulowano", + "parameterSize": "@:size parametrów", + "quantization": "Kwantyzacja", + "quantizationLevel": "Poziom kwantyzacji", + "contextSize": "Rozmiar kontekstu", + "defaultToModelMax": "Domyślnie maksimum modelu", + "llamaCppContextSizeDescription": "Maksymalna liczba tokenów przetwarzanych przez model naraz. 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 po równo między równoczesne żądania, których liczbę ustawia się w ustawieniach usługi LLaMa.cpp.", + "truncationStrategy": { + "truncateMiddle": "Przytnij środek", + "truncateOld": "Przytnij stare", + "none": "Brak" + }, + "truncationStrategyDescription": "Jak obsługiwać wiadomości, gdy zbliża się limit kontekstu.", + "storage": "Magazyn", + "params": "Parametry", + "arch": "Architektura", + "filter": "Filtruj", + "treeControls": { + "title": "Sortowanie i wyświetlanie", + "searchPlaceholder": "Szukaj...", + "clear": "Resetuj", + "foldersFirst": "Najpierw foldery", + "itemsFirst": "Najpierw elementy", + "sort": { + "none": "Brak", + "name": "Nazwa", + "title": "Tytuł", + "created": "Utworzono", + "updated": "Zaktualizowano", + "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ż liczbę elementów", + "hide": "Ukryj liczbę elementów" + } + } + }, + "noSearchResults": "Nie znaleziono {item} dla tego wyszukiwania", + "loading": "Wczytywanie", + "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": "Klonuj {item}", + "successMessage": { + "detail": "Sklonowano {item}" + }, + "errorMessage": { + "detail": "Nie udało się sklonować {item}" + } + }, + "notesPurposePlaceholder": "Dodaj notatki, które pomogą Ci zapamiętać przeznaczenie tego {item}; zobaczą je również modele, dzięki czemu otrzymają więcej szczegółów, jak używać tego {item} (opcjonalne)", + "endpointTestResults": "Wyniki testu endpointu", + "testConnection": "Testuj połączenie", + "emptyPlaceholder": "Nie znaleziono {item}", + "selectItem": "@:select {item}", + "selectedItemLabel": "{count} {title}", + "feature": "Funkcja|Funkcje", + "raw": "Surowe", + "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 na najwyższym poziomie", + "projectName": "Nazwa projektu", + "projectDescription": "Opis projektu", + "defaultModel": "Model domyślny", + "customInstructions": "Instrukcje niestandardowe", + "addChildProject": "Dodaj projekt podrzędny", + "promoteToRoot": { + "title": "Przenieś folder na najwyższy poziom", + "errorMessage": { + "detail": "Nie udało się przenieść projektu na najwyższy poziom." + }, + "successMessage": { + "detail": "Projekt został przeniesiony na najwyższy poziom." + } + }, + "deleteProject": "Usuń projekt", + "setDefaultForNewConversations": "Ustaw jako projekt domyślny", + "unsetDefaultForNewConversations": "Cofnij ustawienie projektu domyślnego", + "orphanageProjectName": "Różne", + "includeProjectContext": "Uwzględnij kontekst projektu", + "deleteConfirmation": { + "header": "Usuń projekt", + "message": "Czy na pewno chcesz usunąć {projectName} i wszystkie jego rozmowy?", + "rejectLabel": "@:cancel", + "acceptLabel": "@:delete", + "successMessage": { + "detail": "Usunięto projekt" + } + }, + "deleteAllConversations": { + "title": "Usuń wszystkie rozmowy", + "description": "Czy na pewno chcesz usunąć wszystkie rozmowy w {projectName}? Tej operacji nie można cofnąć.", + "successMessage": { + "detail": "Usunięto rozmowę | Usunięto {count} rozmowy | Usunięto {count} rozmów", + "empty": "Brak rozmów do usunięcia" + }, + "errorMessage": { + "detail": "Nie udało się usunąć rozmów" + } + }, + "archiveAllConversations": { + "title": "Archiwizuj wszystkie rozmowy", + "description": "Zarchiwizować wszystkie rozmowy w {projectName}? Trafią do archiwum i będzie można je później przywrócić.", + "confirmLabel": "Archiwizuj wszystkie", + "successMessage": { + "detail": "Zarchiwizowano rozmowę | Zarchiwizowano {count} rozmowy | Zarchiwizowano {count} rozmów" + }, + "errorMessage": { + "detail": "Nie udało się zarchiwizować rozmów" + } + }, + "projectForm": { + "addFiles": "Dodaj pliki", + "editProject": "Edytuj projekt", + "createNewProject": "Nowy projekt", + "dragAndDropFiles": "Przeciągnij i upuść pliki, które zostaną dołączone do każdej rozmowy w tym projekcie.", + "successMessage": { + "createDetail": "Projekt utworzony", + "createDetailHidden": "Projekt utworzony! Na razie jest ukryty, ponieważ jest pusty. Kliknij przycisk poniżej, aby go teraz pokazać, albo pojawi się automatycznie, gdy dodasz pierwszą rozmowę.", + "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ą rozmowę, aby zacząć" + }, + "selectedModel": "Wybrany model", + "endpoint": "Endpoint", + "authToken": "Token uwierzytelniania", + "before": "Przed", + "after": "Po", + "method": "Metoda", + "httpMethod": "@:method HTTP", + "get": "Get", + "post": "Post", + "presetAlreadyExistsMessage": "@:preset o tej samej nazwie już istnieje.", + "duplicatePresetOverwriteMessage": "@:presetAlreadyExistsMessage Jeśli zapiszesz, istniejący preset zostanie nadpisany.", + "noPropsAvailable": "Brak dostępnych {propsName}. Dodaj niestandardowe.", + "localAI": "Lokalna AI", + "branch": { + "clickToLabel": "Kliknij, aby dodać etykietę", + "labelPlaceholder": "Etykieta gałęzi (maks. 30 znaków)", + "labelBranch": "Nadaj etykietę gałęzi...", + "labelDialogTitle": "Nadaj etykietę 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 powyżej dwie gałęzie, aby porównać ich zawartość", + "switchToBranch": "Przełącz na {name}", + "viewDiff": "Różnice", + "viewSideBySide": "Obok siebie" + } + }, + "conversation": { + "title": "Rozmowa | Rozmowy", + "conversationTitle": "Tytuł rozmowy", + "contextShieldErrorMessage": { + "summary": "Nie udało się wygenerować podsumowania kontekstu.", + "detail": "Sprawdź Ustawienia > Powiadomienia, aby poznać szczegóły." + }, + "sendErrorMessage": { + "summary": "Nie udało się wysłać wiadomości.", + "detail": "Sprawdź Ustawienia > Powiadomienia, aby poznać szczegóły. {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, ograniczyć wyniki wyszukiwania, wyczyścić historię rozmowy, użyć modelu z większym kontekstem (16k+) lub skrócić instrukcje systemowe." + }, + "deleteConversation": "Usuń rozmowę", + "addNewConversation": "Dodaj nową rozmowę", + "newConversation": "Nowa rozmowa", + "treeControls": { + "title": "Sortowanie i wyświetlanie", + "projectSort": { + "none": "Brak", + "name": "Nazwa", + "created": "Data utworzenia", + "ascending": "Rosnąco", + "descending": "Malejąco", + "projectsFirst": "Najpierw projekty" + }, + "conversationSort": { + "none": "Brak", + "title": "Tytuł", + "created": "Data utworzenia", + "lastActivity": "Ostatnia aktywność", + "ascending": "Rosnąco", + "descending": "Malejąco" + }, + "priority": { + "none": "Bez priorytetu", + "pinned": "@:pinned najpierw", + "bookmarked": "@:bookmarked najpierw" + }, + "visibility": { + "label": "Widoczność", + "recents": { + "show": "Pokaż ostatnie i przypięte", + "hide": "Ukryj ostatnie i przypięte" + }, + "archive": { + "show": "Pokaż archiwum", + "hide": "Ukryj archiwum" + }, + "empty": { + "show": "Pokaż puste projekty", + "hide": "Ukryj puste projekty" + }, + "counts": { + "show": "Pokaż liczbę rozmów", + "hide": "Ukryj liczbę rozmów" + } + }, + "clear": "Resetuj" + }, + "promptPlaceHolder": { + "normal": { + "focused": "Naciśnij {trigger}, aby otworzyć szybkie polecenia, LUB zacznij pisać...", + "unfocused": "Naciśnij /, aby przejść tutaj i zacząć pisać" + } + }, + "deleteConfirmation": { + "header": "Usuń rozmowę", + "message": "Czy na pewno chcesz usunąć wybraną rozmowę i wszystkie jej podziały czatu? | Czy na pewno chcesz usunąć wybrane rozmowy i wszystkie ich podziały czatu?", + "rejectLabel": "Anuluj", + "acceptLabel": "Usuń", + "successMessage": { + "detail": "@:conversation.title usunięta" + }, + "errorMessage": { + "detail": "Nie udało się usunąć rozmowy" + } + }, + "convertToChat": { + "title": "Konwertuj na czat", + "successMessage": { + "detail": "@:conversation.title przekonwertowana na czat" + }, + "errorMessage": { + "detail": "Nie udało się przekonwertować rozmowy na czat" + } + }, + "convertToForgeCanvas": { + "title": "Konwertuj na @:forge.forgeCanvas", + "successMessage": { + "detail": "@:conversation.title przekonwertowana na @:forge.forgeCanvas" + }, + "errorMessage": { + "detail": "Nie udało się przekonwertować rozmowy na @:forge.forgeCanvas" + } + }, + "cloneAncestorsSuccess": { + "detail": "Wiadomości sklonowane do nowego podziału" + }, + "cloneAncestorsError": { + "detail": "Nie udało się sklonować wiadomości do nowego podziału" + }, + "cloneAncestorsToNewConversationSuccess": { + "detail": "Wiadomości sklonowane do nowej rozmowy" + }, + "cloneAncestorsToNewConversationError": { + "detail": "Nie udało się sklonować wiadomości do nowej rozmowy" + }, + "archive": { + "groupLabel": "Archiwum", + "orphanProject": "Osierocona rozmowa", + "bannerMessage": "Ta rozmowa jest zarchiwizowana. Przywróć ją z archiwum, aby kontynuować dyskusję.", + "bannerHint": "Wysłanie nowej wiadomości automatycznie przywróci ją z archiwum.", + "unarchiveAction": "Przywróć z archiwum", + "autoUnarchivedToast": "Rozmowa automatycznie przywrócona z archiwum.", + "archivedToast": "Rozmowa zarchiwizowana | {count} rozmowy zarchiwizowane | {count} rozmów zarchiwizowanych", + "unarchivedToast": "Rozmowa przywrócona | {count} rozmowy przywrócone | {count} rozmów przywróconych", + "archiveSingle": "Archiwizuj", + "unarchiveSingle": "Przywróć z archiwum", + "unload": "Wyładuj zarchiwizowane elementy", + "unloaded": "Zarchiwizowane elementy wyładowane", + "error": "Nie udało się zaktualizować stanu archiwum. Spróbuj ponownie.", + "archiveMultiple": "Archiwizuj {item}" + } + }, + "conversationActions": { + "exportConversation": { + "title": "Eksportuj rozmowę jako JSON", + "successMessage": "Pomyślnie wyeksportowano rozmowy 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łu", + "splitPresetForm": { + "saveTitle": "Zapisz podziały jako preset", + "editTitle": "Edytuj preset podziału {presetName}", + "presetName": "Nazwa presetu", + "presetOptions": "Opcje presetu", + "presetOptionsPlaceholder": "@:select opcje presetu", + "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 tryb kompaktowy", + "disableCompactMode": "@:disable tryb kompaktowy", + "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 z zaawansowanymi parametrami modelu", + "placeholder": "" + }, + "providerOptions": { + "title": "Opcje dostawcy", + "description": "Konfiguracja specyficzna dla dostawcy", + "placeholder": "" + }, + "thinkingConfig": { + "title": "Konfiguracja myślenia", + "description": "Konfiguracja rozszerzonego myślenia", + "notice": "Dostawca może zignorować ustawienia myślenia lub uwzględnić je tylko częściowo" + }, + "customParameters": { + "title": "Parametry niestandardowe", + "helper": "Dostawca może je zignorować lub uwzględnić tylko częściowo", + "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 parametrów wbudowanych.", + "duplicate": "Parametr o tym kluczu już istnieje." + } + }, + "json": { + "invalid": "Nieprawidłowy JSON" + }, + "tooltips": { + "constraintMode": "Tryb ograniczeń jest włączony", + "freeformMode": "Tryb swobodny jest włączony – bez limitów min/maks" + }, + "expandOtherOptions": "Rozwiń, aby zobaczyć pozostałe opcje", + "collapseOtherOptions": "Zwiń pozostałe opcje", + "parameters": { + "temperature": { + "label": "Temperatura", + "helper": "Kontroluje losowość (0=skupienie, 2=kreatywność)" + }, + "topP": { + "label": "Top P", + "helper": "Masa prawdopodobieństwa zachowywana podczas próbkowania nucleus" + }, + "topK": { + "label": "Top K", + "helper": "Ogranicza wybór tokenów do K najbardziej prawdopodobnych" + }, + "maxOutputTokens": { + "label": "Maks. tokenów odpowiedzi", + "helper": "Maksymalna liczba tokenów w odpowiedziach", + "helperWithLimit": "Maksymalna liczba tokenów w odpowiedziach (limit {0})" + }, + "numCtx": { + "label": "Rozmiar okna kontekstu", + "helper": "Maksymalna liczba tokenów przyjmowana w prompcie", + "helperWithLimit": "Maksymalna liczba tokenów przyjmowana w prompcie (limit {0})", + "llamaCppHint": "Ustaw 0, aby użyć maksymalnego rozmiaru kontekstu modelu" + }, + "presencePenalty": { + "label": "Kara za obecność", + "helper": "Karze nowe tokeny w zależności od tego, czy pojawiły się już w dotychczasowym tekście" + }, + "frequencyPenalty": { + "label": "Kara za częstotliwość", + "helper": "Karze tokeny w zależności od częstotliwości ich występowania w dotychczasowym tekście" + }, + "repeatPenalty": { + "label": "Kara za powtórzenia", + "helper": "Zniechęca do powtarzania fraz" + }, + "repeatLastN": { + "label": "Repeat Last N", + "helper": "Okno kontekstu do stosowania kary za powtórzenia" + }, + "minP": { + "label": "Min P", + "helper": "Minimalne skumulowane prawdopodobieństwo wyboru tokenu" + }, + "mirostat": { + "label": "Mirostat", + "helper": "Dynamicznie stabilizuje perpleksję", + "options": { + "off": "Wył.", + "v1": "Mirostat 1.0", + "v2": "Mirostat 2.0" + } + }, + "mirostatTau": { + "label": "Mirostat Tau", + "helper": "Docelowy poziom zaskoczenia (niższy = bezpieczniej)" + }, + "mirostatEta": { + "label": "Mirostat Eta", + "helper": "Współczynnik uczenia dla korekty Mirostat" + }, + "numGpu": { + "label": "Warstwy GPU", + "helper": "Liczba warstw przenoszonych 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. tokenów odpowiedzi (przestarzałe)", + "maxOutputTokens": "Maks. tokenów odpowiedzi", + "temperature": "Temperatura", + "topP": "Top P", + "presencePenalty": "Kara za obecność", + "frequencyPenalty": "Kara za częstotliwość", + "numCtx": "@:size okna kontekstu", + "numGpu": "Liczba warstw GPU", + "selectPlaceholder": "@:select lub wstaw parametr", + "selectPresetPlaceholder": "@:select preset", + "saveAsPreset": "Zapisz jako preset", + "addParameter": "Dodaj nowy parametr", + "extraParams": "Dodatkowe parametry", + "applyAndSaveAsDefault": "Zastosuj i zapisz jako domyślne dla modelu", + "savePresetForm": { + "title": "Zapisz parametry jako preset", + "errorMessage": { + "detail": "Nie udało się zapisać presetu parametrów." + }, + "successMessage": { + "detail": "Preset parametrów 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 parametrów usunięty." + } + }, + "thinkingEffort": { + "label": "Intensywność myślenia", + "light": "Myśl pobieżnie", + "moderate": "Myśl umiarkowanie", + "deep": "Myśl dogłębnie", + "default": "Domyślny", + "none": "Brak", + "dynamic": "Dynamiczny", + "exclude": "Wyklucz" + } + }, + "chatSplitActions": { + "title": "Opcje podziału", + "addSplitChat": "Dodaj podzielony czat", + "hideSplit": "Ukryj podział", + "copySplitToNewConversation": "Kopiuj podział do nowej rozmowy", + "moveSplitToNewConversation": "Przenieś podział do nowej rozmowy", + "deleteSplit": "Usuń podział", + "removeSplit": "Usuń podział", + "splitRemoved": "Podział usunięty", + "splitReset": "Podział zresetowany", + "copySplitToNewConversationSuccess": { + "detail": "Podział skopiowany do nowej rozmowy" + }, + "moveSplitToNewConversationSuccess": { + "detail": "Podział przeniesiony do nowej rozmowy" + }, + "copySplitToNewConversationError": { + "detail": "Nie udało się skopiować podziału do nowej rozmowy" + }, + "moveSplitToNewConversationError": { + "detail": "Nie udało się przenieść podziału do nowej rozmowy" + }, + "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 jej potomki", + "sendOnEnter": "Wysyłaj klawiszem 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ść asystenta", + "sendAsAssistantMessageHelp": "Wysłanie wiadomości jako „Asystent” pozwala kształtować rozmowę przez samodzielne dodawanie odpowiedzi AI. AI będzie kontynuować tak, jakby samo napisało tę wiadomość. Przydatne do przekazania kontekstu lub ukierunkowania odpowiedzi.", + "sentAsAssistantBadge": "Wysłano jako wiadomość asystenta", + "manuallyEdited": "Edytowano ręcznie", + "stopGeneration": "Zatrzymaj", + "renderingActions": { + "bookmark": "Dodaj wiadomość do zakładek | Dodaj wiadomości do zakładek", + "removeBookmark": "Usuń zakładkę | 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 promptu 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 rozmowy", + "extraActions": "Dodatkowe akcje" + }, + "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 potomki", + "message": "Czy na pewno chcesz usunąć tę wiadomość i wszystkie jej potomki?" + } + }, + "slashCommands": { + "title": "Szybkie polecenia", + "noMatches": "Brak pasujących poleceń", + "hint": "Wpisz \\, a następnie polecenie lub alias", + "executed": { + "regenerate": "Ponowne generowanie wiadomości...", + "shield": "Zastosowano tarczę kontekstu", + "compress": "Kompresowanie z tarczą...", + "bookmark": "Dodano wiadomość do zakładek", + "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 odróżnieniu od standardowych skrótów klawiszowych, Shiftcuts wyzwala się, stukając dwukrotnie klawisz Shift, a następnie naciskając inny klawisz, aby wykonać akcję, m.in.: 't' otwiera nowy podzielony czat, 'e' otwiera wybór środowiska, '1' przełącza pasek boczny, a 'm' otwiera minimapę." + }, + "urlEndpoint": "Endpoint URL", + "giveUniqueNamePlaceholder": "Nadaj unikalną nazwę", + "duplicateName": "Zduplikowana lub nieprawidłowa nazwa {item}. Podaj unikalną nazwę.", + "manageData": { + "firstBackupReminder": "Nie masz jeszcze kopii zapasowej danych. Czy chcesz wyeksportować dane do kopii zapasowej?", + "scheduledBackupReminder": "Od ostatniej kopii zapasowej minęły 24 godziny. Czy chcesz wyeksportować dane do kopii zapasowej?", + "nonPersistentStorage": "Przeglądarka może wyczyścić magazyn danych przy braku miejsca. Zalecamy regularne tworzenie kopii zapasowych danych.", + "exportData": "Eksportuj dane", + "clearData": "Wyczyść dane", + "restoreData": "Przywróć dane", + "dragAndDropExportedData": "Przeciągnij i upuść kopię zapasową danych, aby ją przywrócić.", + "restoreDataWarning": "Przywrócenie 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ą danych", + "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ść dane", + "message": "Czy na pewno chcesz wyczyścić wszystkie dane? Tej akcji nie można cofnąć.", + "rejectLabel": "Anuluj", + "acceptLabel": "Wyczyść" + }, + "restoreDataConfirmation": { + "fileNotSelectedWarning": { + "summary": "@:warning", + "message": "Wybierz plik, z którego chcesz przywrócić dane" + }, + "header": "Przywróć dane", + "message": "Czy na pewno chcesz przywrócić wszystkie dane? Ta akcja 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ć danych" + } + }, + "setupItem": { + "label": "Skonfiguruj {item}", + "success": "Konfiguracja {item} zakończona", + "failure": "Nie udało się skonfigurować {item}" + }, + "onboard": { + "greeting": "Witaj w Msty Studio!", + "getStarted": "Do rozpoczęcia potrzebny jest co najmniej jeden dostawca modeli.", + "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 (jeśli je masz) albo wskazać niestandardową lokalizację. Uwaga: do uruchamiania tych modeli nadal będziemy używać naszej własnej usługi.", + "descriptionMLX": "Jeśli nie masz jeszcze żadnych modeli MLX, możesz wskazać niestandardową lokalizację, w której chcesz je przechowywać.", + "descriptionMLXWithSwama": "Znaleźliśmy modele MLX w Twojej pamięci podręcznej Hugging Face Hub! Możesz używać ich bezpośrednio lub wskazać niestandardową lokalizację.", + "descriptionLlamaCpp": "Wskaż 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": "Podaj niestandardową ścieżkę modeli" + }, + "setupLocalAI": { + "description": "Na początek zostanie pobrany model {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 danych", + "item3": "Pobieranie i używanie modeli jest bezpłatne", + "item4": "Instaluj i używaj wyspecjalizowanych modeli" + }, + "cons": { + "item1": "Wymaga dodatkowego miejsca na dysku i pamięci" + }, + "successMessage": { + "summary": "To wszystko!", + "detail": "Możesz teraz czatować ze swoimi modelami prywatnie i bezpiecznie." + }, + "errorMessage": { + "summary": "Błąd konfiguracji usługi lokalnej AI", + "detail": "Nie udało się skonfigurować usługi lokalnej AI{'.'} Więcej szczegółów znajdziesz w logach. {errorMessage}", + "epermDetail": "Wystąpił problem z uprawnieniami podczas konfiguracji lokalnej AI. Możesz ponownie uruchomić aplikację jako administrator (niezalecane) lub rozważyć instalację aplikacji tylko dla jednego użytkownika (zalecane).", + "abortDetail": "{errorMessage} Jeśli błąd będzie się powtarzał, rozważ instalację lokalnej AI z plików archiwum. 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. Więcej szczegółów znajdziesz w logach. {errorMessage}" + }, + "description": "Na początek zostanie pobrany model {modelName}. MLX to zoptymalizowany framework Apple dla Apple Silicon.", + "experimentalInfo": "MLX jest obecnie w trybie eksperymentalnym. Może mieć pewne ograniczenia i niedociągnięcia. Zgłaszaj zespołowi wszelkie problemy.", + "pros": { + "item1": "Zoptymalizowany dla Apple Silicon (M1, M2, M3, M4)", + "item2": "Efektywne wykorzystanie pamięci dzięki zunifikowanej architekturze pamięci", + "item3": "Obsługuje modele MLX, SafeTensors i GGUF", + "item4": "Natywna wydajność na macOS" + }, + "cons": { + "item1": "Dostępny tylko na komputerach Mac z Apple Silicon", + "item2": "Mniejszy wybór modeli w porównaniu z 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. Więcej szczegółów znajdziesz w logach. {errorMessage}" + }, + "description": "Na początek zostanie pobrany model {modelName}. LLaMA.cpp zapewnia wydajną, wieloplatformową inferencję AI.", + "pros": { + "item1": "Działa na Windows, macOS i Linux", + "item2": "Obsługuje akcelerację zarówno CPU, jak i GPU", + "item3": "Efektywne wykorzystanie pamięci i szybka inferencja", + "item4": "Zgodny z formatem modeli GGUF" + }, + "cons": { + "item1": "Wymaga aplikacji desktopowej", + "item2": "Wydajność zależy od konfiguracji sprzętowej" + }, + "successMessage": { + "summary": "Konfiguracja LLaMA.cpp zakończona!", + "detail": "Możesz teraz wydajnie korzystać z modeli LLaMA.cpp 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 musisz uzyskać klucz API na stronie dostawcy. {findYourKey}", + "findYourKey": "Znajdź swój klucz API", + "pros": { + "item1": "Używaj OpenAI, Azure, Claude Sonnet, Google Gemini, Perplexity, zdalnego Ollama, zdalnego Msty itp.", + "item2": "Zacznij bez pobierania modeli", + "item3": "Niektórzy dostawcy oferują dodatkowe funkcje, np. generowanie obrazów czy wyszukiwanie w internecie" + }, + "cons": { + "item1": "Czatowanie wymaga połączenia z internetem", + "item2": "Dostawca może naliczać opłaty" + } + } + }, + "modelsAvailableCount": "1 dostępny model | {count} dostępne modele | {count} dostępnych modeli", + "modelsAddedCount": "Dodano 1 model | Dodano {count} modele | Dodano {count} modeli", + "forgetThisProvider": "Zapomnij tego dostawcę", + "submitAndContinue": "Zaczynamy!", + "getSidecar": "Nie masz lokalnej AI? Pobierz usługę zdalną i skonfiguruj jednym kliknięciem", + "completedWithProvider": { + "summary": "To wszystko!", + "detail": "Możesz już czatować z jednym z modeli od {providerName}." + }, + "continueSetup": "Kontynuuj konfigurację {service}" + }, + "login": { + "enterEmail": "Podaj swój adres e-mail", + "errorMessage": "Nieprawidłowy adres e-mail lub coś poszło nie tak. Spróbuj ponownie.", + "successMessage": "Link do logowania wysłano na { email }" + }, + "modelHub": { + "title": "Model Hub", + "languageModelsProviders": { + "title": "Dostawcy modeli", + "subtitle": "Korzystaj z modeli z chmury lub zdalnych serwerów.", + "autoFetchModels": "Lista modeli jest pobierana automatycznie", + "addLanguageModelsProvider": "Dodaj dostawcę", + "prosAndCons": { + "pros": [ + "Używaj OpenAI GPT, Azure, Claude Sonnet, Google Gemini, Perplexity, zdalnego Msty, zdalnego Ollama itp.", + "Zacznij szybko", + "Nie wymaga pobierania" + ], + "cons": [ + "Czatowanie wymaga połączenia z internetem", + "Dostawca może naliczać opłaty" + ] + }, + "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 innej przestrzeni roboczej", + "titleUpdate": "Kopiuj/synchronizuj do innych przestrzeni roboczych", + "descriptionNew": "Skopiuj tego dostawcę do jednej lub kilku przestrzeni roboczych.", + "descriptionUpdate": "Zsynchronizuj tego dostawcę z jedną lub kilkoma przestrzeniami roboczymi. Jeśli ten dostawca był już wcześniej kopiowany, zostanie zaktualizowany. Jeśli nie, zostanie dodany.", + "selectWorkspaces": "@:select przestrzenie robocze", + "availableWorkspaces": "Dostępne przestrzenie robocze" + }, + "providerForm": { + "addTitle": "Dodaj dostawcę", + "updateTitle": "Aktualizuj 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": "Nadaj nazwę (opcjonalnie)", + "selectModels": "@:select modele", + "availableModels": "Dostępne modele", + "addCustomModel": "Dodaj niestandardowy model", + "inferenceEndpoint": "Endpoint inferencji (musi zaczynać się od http:// lub https://)", + "baseURL": "Bazowy URL", + "resourceName": "Nazwa zasobu (ignorowana, jeśli ustawiono bazowy URL)", + "apiVersion": "@:version 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, więc nie wszystkie modele dostępne u dostawcy muszą być obsługiwane.", + "enterAndManuallyFetchModels": "Kliknij „Pobierz modele”, aby pobrać dostępne modele od dostawcy (może być wymagany klucz API), albo dodaj model ręcznie poniżej.", + "enterAndFetchModels": "Podaj klucz API, aby spróbować pobrać wszystkie dostępne modele od {providerName}, albo ręcznie dodaj niestandardowy model.", + "fetchModels": "Pobierz modele", + "modelsFilter": { + "all": "Wszystkie modele", + "selected": "Wybrane", + "unselected": "Niewybrane" + }, + "purposeFilter": { + "all": "Wszystkie zastosowania" + }, + "searchInModels": "Szukaj modeli...", + "lmsCorsNote": "Aby współpracować z Msty, musisz mieć włączony CORS w LM Studio", + "openAICompatibleNote": "Większość endpointów dostawców zgodnych z OpenAI wymaga prefiksu /v1, np. https://example.com/v1 Jeśli napotykasz problemy, spróbuj dodać /v1 na końcu endpointu.", + "successMessage": { + "addDetail": "Dodano dostawcę modeli {providerName}", + "updateDetail": "Zaktualizowano dostawcę modeli {providerName}" + }, + "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": "Pokazuj w selektorze modeli", + "availableModels": "Dostępne modele", + "noModels": "Brak dostępnych modeli dla tego dostawcy", + "modelUpdated": "Model został zaktualizowany", + "modelUpdateError": "Nie udało się zaktualizować modelu", + "manageProviders": "Zarządzaj", + "addNewProvider": "Dodaj nowego" + }, + "sidecarLocalAIProxyEndpoint": { + "title": "Endpoint lokalnej AI przez proxy usługi zdalnej", + "description": "Upewnij się, że usługa zdalna działa i jest dostępna pod podanym adresem URL przez tunelowanie. Skopiuj i wklej pełne dane połączenia tunelu wraz z tokenem i adresem URL." + }, + "mstyRemoteEndpoint": { + "description": "Upewnij się, że Msty Desktop działa z włączonymi połączeniami zdalnymi.", + "learnMore": "Dowiedz się, jak włączyć połączenia zdalne" + }, + "mstyLocalEndpoint": { + "description": "Ta usługa działa zawsze, gdy działa sama aplikacja. Może być konieczna aktualizacja numeru portu, jeśli port lokalnej AI został zmieniony. W przeciwnym razie najlepiej zostawić bez zmian." + }, + "ollamaRemoteEndpoint": { + "description": "Jeśli używasz samodzielnie hostowanego Ollama, upewnij się, że Ollama działa i jest dostępny pod podanym adresem URL. Uruchamiając usługę Ollama, musisz dodać https://msty.studio do dozwolonych źródeł (allowed origins).", + "placeholder": "np. http://localhost:11434 lub https://ollama.com" + }, + "mlxEndpoint": { + "description": "Ten dostawca służy do uruchamiania modeli MLX na komputerach Mac z Apple Silicon. Endpoint jest automatycznie korygowany, aby pasował do Twojej lokalnej konfiguracji MLX. W razie potrzeby możesz go tymczasowo zmienić." + }, + "llamacppEndpoint": { + "description": "Ten dostawca służy do uruchamiania modeli LLaMA.cpp. Najprawdopodobniej nie musisz zmieniać domyślnego endpointu. Jeśli jednak to zrobisz, upewnij się, że usługa LLaMA.cpp działa i jest dostępna pod podanym adresem URL." + }, + "localModels": { + "title": "Modele lokalnej AI", + "noCompatibleProviders": "Brak zgodnych dostawców do zarządzania modelami lokalnymi. Dodaj co najmniej jednego dostawcę typu Msty Remote lub Ollama Remote, aby korzystać z modeli lokalnych.", + "activeDownloads": "1 aktywne pobieranie | {count} aktywne pobierania | {count} aktywnych pobierań", + "featured": { + "title": "Polecane modele" + }, + "installed": { + "title": "Zainstalowane modele" + }, + "customOllamaModelPlaceholder": "Albo zainstaluj model po 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 lokalnej AI. Zaktualizuj do najnowszej wersji w Ustawienia > Lokalna AI > Wersja usługi > ... > Wymuś aktualizację usługi lokalnej AI" + } + }, + "ollamaModels": { + "title": "Modele Ollama" + }, + "huggingfaceModels": { + "title": "Modele Hugging Face", + "searchPlaceholder": "Szukaj po autorze lub modelu albo wklej URL repozytorium Hugging Face", + "searchPlaceholderAlt": "Znajdź modele po nazwie, autorze lub URL. Albo zacznij od jednej z poniższych rodzin modeli.", + "searching": "Wyszukiwanie modeli..." + }, + "ggufImport": { + "tabTitle": "Import 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ść tutaj plik GGUF albo kliknij poniższy przycisk", + "dropFileHere": "Upuść plik tutaj", + "releaseToUpload": "Puść, aby wybrać plik", + "selectGgufFile": "Wybierz plik GGUF", + "chooseDifferentFile": "Wybierz inny plik", + "importModel": "Importuj model", + "modelName": "Nazwa modelu", + "modelNamePlaceholder": "np. my-custom-model", + "modelNameDescription": "Pod tą nazwą będziesz odwoływać się do modelu w rozmowach.", + "removeFile": "Usuń plik", + "dismissJob": "Zamknij", + "useSymlink": "Użyj dowiązania symbolicznego (oszczędza miejsce na dysku)", + "symlinkDescription": "Tworzy dowiązanie symboliczne zamiast kopiować plik. Dostępne tylko dla serwerów lokalnych.", + "process": { + "calculatingDigest": "Obliczanie sumy kontrolnej pliku", + "uploadingFile": "Przesyłanie pliku", + "creatingSymlink": "Tworzenie dowiązania symbolicznego", + "creatingModel": "Tworzenie modelu" + }, + "success": "Model {modelName} został pomyślnie zaimportowany", + "labels": { + "name": "Nazwa", + "file": "Plik", + "status": "Status", + "error": "Błąd" + }, + "status": { + "uploading": "Przesyłanie", + "creating": "Tworzenie modelu", + "completed": "Ukończono", + "error": "Błąd", + "cancelled": "Anulowano" + }, + "errors": { + "invalidFile": "Wybierz prawidłowy plik GGUF" + } + }, + "safetensorsImport": { + "tabTitle": "Import Safetensors", + "title": "Importuj model Safetensors", + "description": "Wybierz katalog z wagami modelu w formacie safetensors, aby zaimportować go do {providerLabel}. Obsługiwane architektury to m.in. 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. my-custom-model", + "modelNameDescription": "Pod tą nazwą będziesz odwoływać się do modelu w rozmowach.", + "removeDirectory": "Usuń katalog", + "process": { + "scanningDirectory": "Skanowanie katalogu", + "processingFile": "Przetwarzanie pliku {current} z {total}", + "creatingModel": "Tworzenie modelu z plików safetensors" + }, + "success": "Model {modelName} został pomyślnie zaimportowany", + "labels": { + "name": "Nazwa", + "directory": "Katalog", + "status": "Status", + "error": "Błąd" + }, + "status": { + "uploading": "Przesyłanie plików", + "creating": "Tworzenie modelu", + "completed": "Ukończono", + "error": "Błąd", + "cancelled": "Anulowano" + }, + "filesSelected": "wybranych plików", + "errors": { + "desktopOnly": "Import Safetensors jest dostępny tylko w aplikacji desktopowej", + "selectFailed": "Nie udało się wybrać katalogu", + "noValidFiles": "W wybranym katalogu nie znaleziono prawidłowych plików safetensors" + } + } + }, + "llamacppModels": { + "title": "Modele LLaMA.cpp", + "activeDownloads": "1 aktywne pobieranie LLaMA.cpp | {count} aktywne pobierania LLaMA.cpp | {count} aktywnych pobierań 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": "Zainstalowano model LLaMA.cpp {modelName}" + }, + "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": "Polecane 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ź modele GGUF zgodne z LLaMA.cpp albo wybierz jedną z poniższych polecanych rodzin modeli.", + "searching": "Wyszukiwanie modeli LLaMA.cpp..." + } + }, + "mlxModels": { + "title": "Modele MLX", + "notAppleSilicon": "Modele MLX są obsługiwane tylko na komputerach Mac z układami Apple Silicon (M1, M2, M3, M4 itd.). Twoje obecne urządzenie nie jest zgodne.", + "noCompatibleProviders": "Brak zgodnych dostawców MLX. Dodaj co najmniej jednego dostawcę MLX, aby korzystać z modeli MLX.", + "activeDownloads": "1 aktywne pobieranie MLX | {count} aktywne pobierania MLX | {count} aktywnych pobierań MLX", + "learnMore": "Dowiedz się więcej o MLX", + "featured": { + "title": "Polecane 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ź modele zoptymalizowane pod MLX z HuggingFace. Albo zacznij od jednej z poniższych rodzin modeli.", + "searching": "Wyszukiwanie modeli MLX..." + } + } + }, + "stickyPrompt": { + "title": "Przyklejony prompt", + "disableStickyPrompt": "Wyłącz przyklejony prompt", + "editDialog": { + "title": "Edytuj przyklejony prompt", + "description": "Gdy „przyklejony” prompt jest przypięty, jest dodawany na początku każdej nowej wiadomości, a wcześniejsze prompty są ignorowane. Dzięki temu rozmowa koncentruje się na jednym aktywnym kontekście. Prompt systemowy jest zawsze uwzględniany w kontekście." + } + }, + "contextShield": { + "title": "Tarcza kontekstu", + "enableContextShield": "Włącz Tarczę kontekstu", + "enableContextShieldWithSplitsSync": "Włącz Tarczę kontekstu{'.'} Przytrzymaj Option/Alt, aby włączyć Tarczę kontekstu we wszystkich zsynchronizowanych podziałach.", + "removeContextShield": "Usuń Tarczę kontekstu", + "removeContextShieldWithSplitsSync": "Wyłącz Tarczę kontekstu{'.'} Przytrzymaj Option/Alt, aby usunąć Tarczę kontekstu ze wszystkich zsynchronizowanych podziałów.", + "breakContext": "Przerwij kontekst", + "customContext": "Niestandardowy kontekst", + "generateContextSummary": "Generuj podsumowanie kontekstu", + "contextSummary": "@:summary kontekstu", + "editContextSummary": "Edytuj podsumowanie kontekstu", + "regenerateContextSummary": "Wygeneruj ponownie podsumowanie kontekstu", + "clearContextSummary": "Wyczyść podsumowanie kontekstu", + "summaryDescriptionInfoHeader": "To podsumowanie jest generowane na podstawie kontekstu powyższych rozmów i uwzględniane w kontekście podczas generowania nowych wiadomości poniżej tej tarczy.", + "contextShieldWithSummary": "@:contextShield.title z podsumowaniem" + }, + "data": "Dane", + "advancedConfigurations": "Zaawansowane konfiguracje", + "applicationInfo": { + "title": "Informacje o aplikacji", + "appVersion": { + "title": "Wersja aplikacji", + "description": "Dostępność aktualizacji jest sprawdzana okresowo, a gdy pojawi się nowa aktualizacja, otrzymasz powiadomienie. Możesz też sprawdzić aktualizacje ręcznie — dostępne aktualizacje zostaną wtedy zainstalowane automatycznie.", + "checkForUpdates": "Sprawdź i zastosuj aktualizacje", + "enableAutoUpdates": "Włącz automatyczne aktualizacje", + "disableAutoUpdates": "Wyłącz automatyczne aktualizacje", + "viewChangelog": "Zobacz listę 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 lokalne metadane modeli. Te informacje obejmują szczegóły każdego modelu, ale nie same pliki modeli. Dotyczy to zarówno modeli przechowywanych lokalnie, jak i modeli online.", + "fetchLatest": "Pobierz najnowsze informacje o modelach", + "updated": "Informacje o modelach zostały zaktualizowane", + "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. Zostaną przywrócone domyślne preferencje użytkownika, takie jak wygląd i ścieżka modeli, ale żadne dane nie zostaną usunięte — w tym czaty ani pobrane/zaimportowane modele.", + "resetApp": "Resetuj ustawienia aplikacji", + "resetConfirm": { + "header": "Resetuj ustawienia aplikacji", + "message": "Czy na pewno chcesz przywrócić wszystkie ustawienia aplikacji do wartości domyślnych? Przywróci to domyślne preferencje, ale nie usunie Twoich danych." + }, + "resetSuccess": "Ustawienia aplikacji zostały zresetowane", + "resetError": "Nie udało się zresetować ustawień aplikacji" + }, + "dataPaths": { + "title": "Ścieżki danych", + "description": "Wszystkie dane, w tym modele, rozmowy, ustawienia i logi, są przechowywane lokalnie na Twoim urządzeniu. Modyfikuj zawartość tych katalogów tylko wtedy, gdy znasz strukturę plików aplikacji.", + "appData": "Dane aplikacji", + "appLogs": "Logi 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ę opinią i być na bieżąco.", + "sayHi": "Przywitaj się!", + "viewDocs": "Zobacz dokumentację" + } + }, + "logViewer": { + "title": "Przeglądarka logów", + "description": "Przeglądaj i analizuj logi aplikacji w czasie rzeczywistym. Używaj filtrów i wyszukiwania, aby sprawnie diagnozować problemy.", + "searchPlaceholder": "Szukaj w logach...", + "refresh": "Odśwież logi", + "autoRefreshOn": "Zatrzymaj automatyczne odświeżanie", + "autoRefreshOff": "Włącz automatyczne odświeżanie", + "pause": "Zatrzymaj automatyczne przewijanie", + "resume": "Wznów automatyczne przewijanie", + "copy": "Kopiuj logi do schowka", + "download": "Pobierz logi", + "clearTemporarily": "Wyczyść widok logów", + "clearPermanently": "Wyczyść plik logów", + "showAllLogs": "Pokaż wszystkie logi", + "clearPermanentlyConfirmation": { + "header": "Wyczyść plik logów", + "message": "Czy na pewno chcesz wyczyścić plik logów? Wszystkie wpisy logów zostaną trwale usunięte." + }, + "loading": "Wczytywanie logów...", + "noLogs": "Brak dostępnych logów", + "noMatchingLogs": "Żadne logi nie pasują do bieżących filtrów", + "totalLines": "1 wiersz łącznie | {count} wiersze łącznie | {count} wierszy łącznie", + "filteredLines": "1 przefiltrowany wiersz | {count} przefiltrowane wiersze | {count} przefiltrowanych wierszy", + "copiedToClipboard": "Logi skopiowane do schowka", + "downloaded": "Logi zostały pobrane", + "clearedPermanently": "Plik logów został wyczyszczony", + "errorLoading": "Nie udało się wczytać logów", + "errorCopying": "Nie udało się skopiować logów", + "errorDownloading": "Nie udało się pobrać logów", + "errorClearing": "Nie udało się wyczyścić logów", + "levels": { + "all": "Wszystkie poziomy", + "error": "Błąd", + "warn": "@:warning", + "info": "Info", + "debug": "Debug" + } + }, + "notifications": { + "title": "Powiadomienia", + "description": "Przeglądaj powiadomienia aplikacji, w tym błędy, ostrzeżenia i zdarzenia informacyjne, oraz zarządzaj nimi.", + "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 operacji nie można cofnąć." + }, + "loading": "Wczytywanie powiadomień...", + "loadingMore": "Wczytywanie kolejnych...", + "endOfList": "Koniec listy", + "noLogs": "Brak dostępnych powiadomień", + "totalLogs": "1 powiadomienie | {count} powiadomienia | {count} powiadomień", + "displayedLogs": "Wyświetlane: {count}", + "copiedToClipboard": "Powiadomienie skopiowane do schowka", + "downloaded": "Powiadomienia zostały pobrane", + "clearedPermanently": "Powiadomienia zostały wyczyszczone", + "deleted": "Powiadomienie zostało usunięte", + "errorLoading": "Nie udało się wczytać 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 operacji nie można cofnąć.", + "purge": "Wyczyść", + "purged": "Powiadomienia zostały wyczyszczone", + "errorPurging": "Nie udało się wyczyścić powiadomień" + }, + "levels": { + "all": "Wszystkie poziomy", + "error": "Błędy", + "warn": "Ostrzeżenia", + "info": "Informacje" + } + }, + "sidebar": { + "expandGroup": "Rozwiń {group}", + "collapseGroup": "Zwiń {group}", + "showExtraItems": "Pokaż dodatkowe elementy", + "hideExtraItems": "Ukryj dodatkowe elementy", + "groups": { + "modelsPrompts": "Modele i prompty", + "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 listę zmian", + "openingChangelog": "Otwieranie listy 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 prompty", + "prompts": { + "description": "Te prompty określają, jak generowane są tytuły, jak budowane są zapytania wyszukiwania, jak pobierana jest wiedza i jak podsumowywany jest kontekst. Zmiany są zapisywane w globalnych ustawieniach tego urządzenia (głównej bazie danych) i obowiązują we wszystkich przestrzeniach roboczych (nie per przestrzeń).", + "availablePrompts": "Dostępne prompty", + "customized": "Dostosowane", + "customizedCount": "Dostosowane: {count}", + "modified": "Zmodyfikowany", + "usingCustom": "Używany niestandardowy", + "usingDefault": "Używany domyślny", + "clickToEdit": "Kliknij, aby edytować prompt", + "variables": "Zmienne", + "lastModified": "Ostatnia modyfikacja", + "selectPrompt": "Wybierz prompt do dostosowania", + "clearContent": "Wyczyść zawartość", + "resetToDefault": "Przywróć domyślny", + "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": "@: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 przy tworzeniu nowych rozmów.", + "saved": "{provider} ustawiono jako domyślnego dostawcę RTD", + "saveError": "Nie udało się zapisać domyślnego dostawcy RTD", + "noProvidersAvailable": "Brak dostępnych dostawców RTD", + "configureLabel": "Skonfiguruj zaawansowane opcje dla", + "configSaved": "Zapisano konfigurację 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": "Automatycznie archiwizuj nieaktywne rozmowy", + "description": "Automatycznie przenoś nieaktywne rozmowy do archiwum po upływie wybranej liczby dni. Użyj opcji „Włącz autoarchiwizację”, aby ją uruchomić. „Archiwizuj teraz” wykonuje jednorazowe porządki według bieżącego progu dni.", + "enableLabel": "Włącz autoarchiwizację", + "disableLabel": "Wyłącz autoarchiwizację", + "enableHint": "Zarchiwizowane rozmowy pozostają dostępne w sekcji Archiwum.", + "daysLabel": "Archiwizuj po", + "suffix": "dniu | dniach | dniach", + "disabledHint": "Włącz lub wyłącz z poziomu menu", + "runNowLabel": "Archiwizuj teraz", + "runNowDisabled": "Aby uruchomić, włącz autoarchiwizację i ustaw liczbę dni > 0", + "runNowResult": "Zarchiwizowano 1 rozmowę | Zarchiwizowano {count} rozmowy | Zarchiwizowano {count} rozmów", + "daysSaved": "Autoarchiwizacja ustawiona na {days} dzień | Autoarchiwizacja ustawiona na {days} dni | Autoarchiwizacja ustawiona na {days} dni", + "enabledToast": "Autoarchiwizacja włączona", + "disabledToast": "Autoarchiwizacja wyłączona" + } + }, + "setupService": "Skonfiguruj usługę {service}", + "workspaceLock": { + "title": "Blokada przestrzeni roboczej i szyfrowanie sekretów", + "description": "Zablokuj przestrzeń roboczą hasłem, aby wrażliwe ustawienia i klucze API pozostały ukryte do czasu 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": "Zablokowana", + "unlocked": "Odblokowana", + "lock": "Zablokuj", + "unlock": "Odblokuj", + "protectedSection": "Przestrzeń robocza jest chroniona. Odblokuj ją swoim hasłem.", + "unprotected": "Niechroniona", + "unprotectedToast": "Blokada przestrzeni roboczej nie jest skonfigurowana. Najpierw ustaw hasło.", + "unlockTitle": "Wprowadź hasło", + "cancel": "Anuluj", + "toastUnlocked": "Przestrzeń robocza odblokowana na tę sesję", + "toastLocked": "Przestrzeń robocza zablokowana", + "disable": "Wyłącz szyfrowanie", + "disableHelp": "Wprowadź hasło, aby odszyfrować dane i wyłączyć szyfrowanie.", + "disableProtection": "Wyłącz ochronę", + "disableProtectionHelp": "Wprowadź hasło, aby wyłączyć ochronę przestrzeni roboczej. Spowoduje to usunięcie szyfrowania z zapisanych sekretów i kluczy API.", + "disableProtectionConfirmMessage": "Czy na pewno chcesz wyłączyć ochronę przestrzeni roboczej? Spowoduje to trwałe odszyfrowanie wszystkich zaszyfrowanych sekretów i kluczy API w Twojej bazie danych.", + "enableProtection": "Włącz ochronę", + "setPassphrase": "Ustaw hasło", + "setPassphraseWarning": "Ważne: przechowuj hasło w bezpiecznym miejscu. Zapomnianego hasła nie da się odzyskać, a bez niego utracisz dostęp do zaszyfrowanych danych przestrzeni roboczej.", + "changePassphrase": "Zmień hasło", + "changePassphraseWarning": "Ważne: przechowuj nowe hasło w bezpiecznym miejscu. Zapomnianego hasła nie da się odzyskać, a bez niego utracisz dostęp do zaszyfrowanych danych przestrzeni roboczej.", + "updatePassphrase": "Zaktualizuj hasło", + "passphrase": "Hasło", + "passphraseCurrent": "Obecne 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", + "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ć zapisane sekrety i usunąć ochronę przestrzeni roboczej?", + "disableSuccess": "Szyfrowanie wyłączone", + "disableFailed": "Nie udało się wyłączyć szyfrowania", + "incorrectPassphrase": "Nieprawidłowe hasło", + "lockedWithName": "Przestrzeń {workspaceName} jest zablokowana", + "switchBackTitle": "Nie możesz odblokować tej przestrzeni roboczej?", + "switchBackDescription": "Wróć do {workspaceName}, aby kontynuować pracę.", + "switchBackAction": "Wróć do {workspaceName}", + "switchBackError": "Nie udało się przełączyć przestrzeni roboczej. Spróbuj ponownie." + }, + "dataBackup": { + "title": "Eksportuj dane", + "description": "Kliknij poniższy przycisk, aby wyeksportować kopię swoich danych na potrzeby kopii zapasowej lub przeniesienia na inne urządzenie. Wyeksportowane dane obejmują rozmowy, prompty, modele, ustawienia i inne dane aplikacji ze wszystkich przestrzeni roboczych." + }, + "dataBackupReminderInterval": { + "title": "Częstotliwość przypomnień o kopii zapasowej danych", + "description": "Jak często przypominać o wykonaniu kopii zapasowej danych." + }, + "dangerZone": { + "title": "Strefa zagrożenia", + "description": "Działania w tej sekcji są nieodwracalne i mogą spowodować utratę danych. Zalecamy wyeksportowanie kopii danych przed wykonaniem tutaj jakichkolwiek działań.", + "clearData": { + "title": "Wyczyść dane", + "description": "Trwale usuń wszystkie dane aplikacji, w tym rozmowy, prompty, modele, ustawienia i inne powiązane informacje ze wszystkich przestrzeni roboczych." + }, + "restoreData": { + "title": "Przywróć dane z kopii zapasowej", + "description": "Zaimportuj wcześniej wyeksportowany plik ZIP z danymi, aby przywrócić rozmowy, prompty, modele, ustawienia i inne dane aplikacji we wszystkich przestrzeniach roboczych. Ta operacja 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": "Do bieżącej przestrzeni roboczej możesz zaimportować prompty z biblioteki promptów, zdalnych dostawców modeli, rozmowy i załączniki. Jeśli chcesz importować do innej przestrzeni roboczej, najpierw się na nią przełącz.", + "remoteModelProviders": "Migracja zdalnych dostawców modeli NIE przenosi kluczy API — trzeba je wprowadzić ponownie. Niektóre starsze modele mogą nie być obsługiwane w Studio.", + "attachmentsMigration": "Jeśli migrujesz załączniki, najpierw spakuj folder załączników do pliku ZIP. Załączniki możesz zmigrować osobno po migracji bazy danych albo razem z bazą." + }, + "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 zwykle nazywają się `msty.db`" + }, + "attachmentsMigration": { + "title": "Migracja załączników", + "migrate": "Migruj osobno", + "label": "Krok 3: dodaj spakowany folder załączników", + "success": "Pomyślnie zmigrowano załączniki", + "error": "Nie udało się zmigrować 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 do pliku ZIP. Po wybraniu możesz zmigrować go osobno, jeśli dodajesz po migracji bazy danych." + }, + "missingDataWarning": { + "description": "Wybierz plik bazy danych i co najmniej jedną tabelę do migracji", + "title": "Brak danych" + }, + "description": "Zmigruj 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ę zmigrować: {item}", + "migrationInProgress": "Migracja w toku...", + "migrationComplete": "Migracja ukończona: {item}", + "migrationFail": "Migracja nie powiodła się: {item}", + "migratingItem": "Migrowanie: {item}...", + "migrationError": { + "title": "Błąd migracji", + "action": "Zobacz szczegóły", + "message": "Komunikat", + "cause": "Przyczyna" + } + }, + "colorPreference": "Preferencja kolorów", + "accentColor": "Kolor akcentu", + "dark": "Ciemny", + "light": "Jasny", + "default": "Domyślny | Domyślne", + "system": "Systemowy", + "baseColor": "Kolor bazowy", + "emerald": "Szmaragdowy", + "lime": "Limonkowy", + "green": "Zielony", + "red": "Czerwony", + "orange": "Pomarańczowy", + "amber": "Bursztynowy", + "yellow": "Żółty", + "teal": "Morski", + "cyan": "Cyjanowy", + "sky": "Błękitny", + "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ład od prawej do lewej dla języków takich jak arabski, hebrajski i perski. Cała przestrzeń robocza 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 używa obecnie układu od lewej do prawej." + }, + "miniMap": { + "title": "Minimapa", + "description": "Włącz wbudowaną minimapę do nawigacji po wiadomościach z podglądem gałęzi. Gdy jest wyłączona, używany jest prostszy nawigator góra/dół." + }, + "branchBreadcrumbs": { + "title": "Ścieżka gałęzi", + "description": "Pokazuj kompaktowy pasek nawigacji u góry rozmowy, gdy istnieją gałęzie." + }, + "spellcheck": { + "title": "Sprawdzanie pisowni", + "description": "Włącz lub wyłącz sprawdzanie pisowni w polach tekstowych. Wyłączenie może pomóc przy pracy z wieloma językami lub treściami technicznymi. Ustawienia sprawdzania pisowni Twojego systemu operacyjnego mogą nadpisywać te preferencje. Aby zmiany w pełni zadziałały, po zmianie tego ustawienia uruchom aplikację ponownie." + }, + "language": { + "sectionTitle": "Język i lokalizacja", + "sectionDescription": "Przełączaj języki interfejsu, testuj tryb dewelopera lub zaimportuj tymczasowy plik lokalizacji. Jeśli chcesz pomóc w tłumaczeniu, odwiedź https://github.com/cloudstack-llc/msty-studio-i18n", + "localeLabel": "Język", + "downloadTemplate": "Pobierz szablon", + "downloadBuiltInLocale": "Pobierz plik JSON tej wbudowanej lokalizacji.", + "downloadCustomLocale": "Pobierz aktualnie zaimportowaną niestandardową lokalizację.", + "downloadDeveloperTemplate": "Pobierz pusty szablon oparty na lokalizacji bazowej.", + "importLocale": "Importuj lokalizację", + "importLocaleHint": "Zaimportowane lokalizacje działają tylko do ponownego uruchomienia lub odświeżenia aplikacji.", + "importSuccessSummary": "Lokalizacja zaimportowana", + "importSuccessDetail": "Używasz teraz {code}. Przejrzyj interfejs, aby zweryfikować tłumaczenia.", + "importError": "Nie udało się zaimportować tego pliku lokalizacji. Upewnij się, że to poprawny JSON oparty na szablonie.", + "developerMode": { + "label": "Tryb dewelopera" + } + }, + "security": { + "title": "Bezpieczeństwo", + "subtitle": "Skonfiguruj ustawienia bezpieczeństwa aplikacji" + }, + "webSecurity": { + "title": "Wyłącz Web Security", + "description": "Może to pomóc rozwiązać niektóre problemy związane z CORS. Nie jest to jednak zalecane i może narazić aplikację na zagrożenia bezpieczeństwa. Wyłącz tylko wtedy, gdy wiesz, co robisz. Aby to ustawienie zadziałało, musisz ponownie uruchomić aplikację.", + "applyAndRestart": "Zastosuj i uruchom ponownie" + }, + "fontStyle": { + "title": "Styl czcionki", + "galaxyFarAway": "Odległa galaktyka", + "everythingEverywhere": "Wszystko wszędzie naraz", + "homeAlone": "Kevin sam w domu", + "lordOfTheLoops": "Władca pętli" + }, + "renderingModules": { + "title": "Moduły renderowania", + "selectPlaceholder": "@:select moduły renderowania" + }, + "remoteToolsConnector": { + "description": "Zezwól wersji webowej Msty Studio na łączenie się z tym urządzeniem w celu uruchamiania zdalnych narzędzi i dostępu do lokalnych modeli. Aby zdalne połączenia były możliwe, ta usługa musi być aktywnie uruchomiona.", + "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 każdej chwili wygenerować ponownie, aby unieważnić poprzedni token. Używaj silnego tokenu i trzymaj go w tajemnicy.", + "successMessage": { + "detail": "Usługa zdalna jest teraz aktywna" + }, + "errorMessage": { + "summary": "Nie udało się włączyć łącznika", + "detail": "Nie udało się włączyć usługi zdalnej. Więcej informacji znajdziesz w logach" + }, + "copyConnectionInfo": "Kopiuj lokalny URL", + "copyTunnelConnectionInfo": "Kopiuj URL tunelu", + "stopSuccessMessage": { + "detail": "Usługa zdalna jest teraz wyłączona" + } + }, + "enableTunneling": "Włącz tunelowanie (eksperymentalne)" + }, + "copyLocalURL": "Kopiuj lokalny URL", + "localAI": { + "notInstalled": { + "description": "Skonfiguruj usługę lokalnej AI, aby uruchamiać modele AI lokalnie na swoim urządzeniu." + }, + "modelsLocation": { + "title": "Lokalizacja modeli", + "description": "Określ, gdzie mają być przechowywane Twoje modele lokalnej AI." + }, + "existingModels": { + "title": "Użyj istniejących modeli", + "description": "Korzystaj z modeli, które już masz, bez ponownego ich pobierania." + }, + "serviceConfigurations": { + "title": "Konfiguracja usługi", + "description": "Ta konfiguracja jest stosowana przy uruchamianiu usługi. Po zapisaniu zmian usługa lokalnej AI zostanie automatycznie uruchomiona ponownie.", + "configurePortNumber": { + "title": "Skonfiguruj numer portu", + "description": "Numer portu, na którym działa usługa lokalnej AI{'.'} Pozostaw puste pole, aby użyć wartości domyślnej." + }, + "maximumParallelChats": { + "title": "Maksymalna liczba równoległych czatów", + "description": "Maksymalna liczba jednoczesnych sesji czatu (podczas korzystania z trybu podzielonego)." + }, + "maximumLoadedModels": { + "title": "Maksymalna liczba wczytanych modeli", + "description": "Maksymalna liczba modeli LLM wczytanych jednocześnie. Trzymanie większej liczby modeli w pamięci przyspiesza pierwsze odpowiedzi, ale zużywa więcej zasobów systemowych." + }, + "enableNetworkAccess": { + "title": "Włącz dostęp sieciowy", + "description": "Zezwól, aby usługa lokalnej AI była dostępna dla innych urządzeń w Twojej sieci poprzez adres IP tego urządzenia." + }, + "allowedNetworkOrigins": { + "title": "Dozwolone źródła sieciowe", + "description": "Wymień 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 aplikacji Msty Studio Web na połączenia z tą aplikacją, aby miała dostęp do usługi lokalnej AI{'.'}" + }, + "captureServiceLogs": { + "title": "Rejestruj logi usługi", + "description": "Włącz rejestrowanie, aby zbierać dane usługi do debugowania. Używaj tej opcji tylko wtedy, gdy to konieczne." + }, + "advancedConfiguration": { + "description": "Wprowadź poprawny JSON, aby ustawić zmienne środowiskowe dla usługi lokalnej AI{'.'}" + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w konfiguracji usługi lokalnej AI. Po zapisaniu usługa lokalnej AI zostanie uruchomiona ponownie z nową konfiguracją.", + "saveChanges": "Zapisz zmiany i uruchom ponownie usługę", + "successMessage": { + "detail": "Konfiguracja usługi zapisana, usługa lokalnej AI uruchomiona ponownie" + }, + "errorMessage": { + "detail": "Nie udało się zapisać konfiguracji usługi lokalnej AI. Sprawdź logi, aby poznać szczegóły." + } + } + }, + "modelConfigurations": { + "title": "Konfiguracja modelu", + "description": "Ta konfiguracja jest stosowana do wszystkich modeli podczas sesji czatu.", + "keepAliveTimeout": { + "title": "Czas utrzymania modelu w pamięci", + "description": "Czas (w minutach), po którym nieużywany model zostanie usunięty z pamięci." + }, + "advancedConfiguration": { + "description": "Wprowadź poprawny JSON, aby przekazywać modelom dodatkowe parametry podczas sesji czatu." + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w sekcji Konfiguracja modelu{'.'} Zapisz je przed rozpoczęciem nowej sesji czatu.", + "successMessage": { + "detail": "Zapisano: konfiguracja modelu" + }, + "errorMessage": { + "detail": "Nie udało się zapisać: @:settings.localAI.modelConfigurations.title. Sprawdź logi, aby poznać szczegóły." + } + } + }, + "openSettings": "Otwórz ustawienia lokalnej AI", + "manageModels": { + "title": "Zarządzaj modelami lokalnej AI", + "description": "Przeglądaj i instaluj modele AI do lokalnej inferencji oraz zarządzaj nimi.", + "openModelHub": "Otwórz Model Hub lokalnej AI" + } + }, + "vibeCliProxy": { + "shortTitle": "Vibe CLI Proxy", + "title": "Vibe CLI Proxy", + "subtitle": "Zunifikowany proxy dla asystentów AI do kodowania. Połącz się z Claude Code, ChatGPT, Gemini i Qwen Code przez jeden lokalny endpoint.", + "install": { + "copy": "Instaluje plik binarny CLIProxyAPI, aby łączyć asystentów AI do kodowania (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": "Endpoint usługi", + "description": "Użyj tego endpointu dla żądań zgodnych z OpenAI kierowanych przez Vibe CLI Proxy.", + "network": "Host sieciowy: {host}", + "copied": "Endpoint skopiowany" + }, + "version": { + "title": "Wersja", + "description": "Zainstalowana wersja CLIProxyAPI.", + "current": "Bieżąca wersja", + "reinstall": "Zainstaluj ponownie", + "unknown": "Nie zainstalowano" + }, + "configs": { + "title": "Konfiguracja 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": "Rejestruj logi usługi", + "captureLogsHelp": "Zachowuj logi proxy na potrzeby rozwiązywania problemów (może zwiększyć użycie dysku).", + "enableRemoteManagement": "Włącz zdalne zarządzanie", + "enableRemoteManagementHelp": "Udostępnia endpointy zarządzania; wymaga tajnego klucza.", + "managementKey": "Tajny klucz zarządzania", + "updated": "Konfiguracja Vibe CLI Proxy zaktualizowana", + "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 w przypadku nieudanych żądań do serwerów nadrzędnych.", + "authDirDescription": "Katalog, w którym przechowywane są tokeny uwierzytelniania.", + "managementKeyDescription": "Tajny klucz wymagany do operacji zdalnego zarządzania." + }, + "authPath": { + "title": "Folder uwierzytelniania", + "description": "Ścieżka, w której Vibe CLI Proxy przechowuje tokeny OAuth połączonych dostawców. Zarządzana automatycznie; bez możliwości edycji." + }, + "authStatus": { + "title": "Uwierzytelnianie", + "description": "Bezpiecznie połącz swoje konta AI, aby Vibe CLI Proxy mógł wywoływać ich API w Twoim imieniu. Podczas łączenia otwiera się okno przeglądarki danego dostawcy, w którym dokończysz logowanie.", + "connecting": "Otwieranie przeglądarki w celu uwierzytelnienia OAuth…", + "browser": "Dokończ uwierzytelnianie w przeglądarce, a następnie wróć tutaj.", + "failed": "Nie udało się rozpocząć procesu OAuth", + "deviceCodeTitle": "Autoryzacja urządzenia", + "deviceCodeInstructions": "Wprowadź poniższy kod na stronie autoryzacji, aby dokończyć uwierzytelnianie.", + "copyCode": "Kopiuj kod", + "codeCopied": "Kod skopiowany do schowka", + "openGitHub": "Otwórz GitHub" + }, + "setup": { + "disclaimer": "Ważne: Vibe CLI Proxy to lokalny proxy do zewnętrznych agentów kodowania CLI. Kontynuując, bierzesz pełną odpowiedzialność za zgodność z warunkami korzystania z usług każdego z dostawców AI. Używasz na własne ryzyko. Msty nie ponosi odpowiedzialności za ewentualne problemy z kontem ani naruszenia warunków usług." + } + }, + "mlx": { + "notInstalled": { + "description": "Skonfiguruj usługę MLX, aby uruchamiać zoptymalizowane modele AI na Macu z Apple Silicon." + }, + "modelsLocation": { + "title": "Lokalizacja modeli", + "description": "Określ, gdzie mają być przechowywane Twoje modele MLX." + }, + "existingModels": { + "title": "Użyj istniejących modeli", + "description": "Korzystaj z modeli, które już masz, bez ponownego ich pobierania." + }, + "openSettings": "Otwórz ustawienia MLX", + "manageModels": { + "title": "Zarządzaj modelami MLX", + "description": "Przeglądaj i instaluj modele MLX zoptymalizowane pod Apple Silicon oraz zarządzaj nimi.", + "openModelHub": "Otwórz Model Hub MLX" + }, + "compatibility": { + "title": "Zgodność systemu", + "description": "Sprawdź, czy Twój system jest zgodny z MLX.", + "checkAgain": "Sprawdź ponownie", + "status": { + "notChecked": "Nie sprawdzono", + "compatible": "Zgodny", + "notCompatible": "Niezgodny" + }, + "requirements": { + "title": "Wymagania MLX:", + "appleSilicon": "Mac z Apple Silicon (M1, M2, M3, M4)", + "macOS13": "macOS 13.0 lub nowszy", + "unifiedMemory": "Architektura zunifikowanej pamięci" + } + } + }, + "llamacpp": { + "notInstalled": { + "description": "Skonfiguruj usługę LLaMA.cpp, aby wydajnie uruchamiać modele AI w systemach Windows, macOS i Linux." + }, + "modelsLocation": { + "title": "Lokalizacja modeli", + "description": "Określ, gdzie mają być przechowywane Twoje modele LLaMA.cpp." + }, + "existingModels": { + "title": "Użyj istniejących modeli", + "description": "Korzystaj z modeli, które już masz, bez ponownego ich pobierania." + }, + "openSettings": "Otwórz ustawienia LLaMA.cpp", + "manageModels": { + "title": "Zarządzaj modelami LLaMA.cpp", + "description": "Przeglądaj i instaluj modele LLaMA.cpp do inferencji na różnych platformach oraz zarządzaj nimi.", + "openModelHub": "Otwórz Model Hub LLaMA.cpp" + }, + "compatibility": { + "title": "Zgodność systemu", + "description": "Sprawdź, czy Twój system jest zgodny z LLaMA.cpp.", + "checkAgain": "Sprawdź ponownie", + "status": { + "notChecked": "Nie sprawdzono", + "compatible": "Zgodny", + "notCompatible": "Niezgodny", + "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 lub więcej)", + "storage": "Wystarczająca ilość miejsca na modele (zależnie 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 inferencji. Ustaw -1, aby dobrać automatycznie na podstawie Twojego systemu (odpowiada fladze --threads)." + }, + "concurrentRequests": { + "title": "Jednoczesne żądania", + "description": "Liczba czatów, które mogą działać jednocześnie na jednym modelu (odpowiada fladze --parallel). Przy parallel=2 każdy czat otrzymuje połowę rozmiaru kontekstu.", + "inputLabel": "Jednoczesne żądania" + }, + "advancedConfiguration": { + "description": "Wprowadź poprawny JSON, aby ustawić zmienne środowiskowe procesu llama-server. Te zmienne mają niższy priorytet niż argumenty CLI ustawione w konfiguracji usługi i modelu." + } + }, + "modelConfigurations": { + "title": "Konfiguracja modelu", + "description": "Ta konfiguracja jest stosowana do wszystkich modeli podczas sesji czatu.", + "keepAliveTimeout": { + "title": "Czas utrzymania modelu w pamięci", + "description": "Czas (w minutach), po którym nieużywany model zostanie usunięty z pamięci." + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w sekcji Konfiguracja modelu{'.'} Zapisz je przed rozpoczęciem nowej sesji czatu.", + "successMessage": { + "detail": "Zapisano: konfiguracja modelu" + }, + "errorMessage": { + "detail": "Nie udało się zapisać: @:settings.llamacpp.modelConfigurations.title. Sprawdź logi, aby poznać szczegóły." + } + } + } + } + }, + "mlx": "MLX", + "mlxService": "Usługa @:mlx", + "llamacpp": "LLaMA.cpp", + "llamacppService": "Usługa @:llamacpp", + "settingsAndConfigs": "Ustawienia i konfiguracje", + "prompts": "Prompty", + "apiKeys": "Klucze API", + "workspaces": { + "createNewWorkspace": "Utwórz nową przestrzeń roboczą", + "switchWorkspace": "Przełącz przestrzeń roboczą", + "switchToCustomWorkspace": "Przełącz na przestrzeń roboczą {workspaceName}", + "hideWorkspaceTray": "Ukryj pasek przestrzeni roboczych", + "showWorkspaceTray": "Pokaż pasek przestrzeni roboczych", + "switchAction": { + "successMessage": { + "summary": "Przestrzeń robocza przełączona!", + "detail": "{workspaceName} jest teraz aktywną przestrzenią roboczą" + } + }, + "deleteWorkspace": "Usuń przestrzeń roboczą", + "workspaceIsActive": "Przestrzeń robocza {workspaceName} jest aktywna", + "currentActiveWorkspace": "Twoja obecnie aktywna przestrzeń robocza to: {workspaceName}", + "workspaceForm": { + "newTitle": "Nowa przestrzeń robocza", + "editTitle": "Edytuj przestrzeń roboczą", + "workspaceName": "Nazwa przestrzeni roboczej", + "whatToCopy": "Co skopiować z przestrzeni roboczej {activeWorkspace}?", + "copyDisabledForLockedWorkspace": "Kopiowanie elementów jest wyłączone, ponieważ aktywna przestrzeń robocza ma ustawione hasło.", + "createAndSwitch": "Utwórz i przełącz", + "createOnly": "Utwórz i pozostań", + "duplicateWorkspaceName": "Przestrzeń robocza o tej nazwie już istnieje", + "invalidWorkspaceName": "Nieprawidłowa lub powtórzona nazwa przestrzeni roboczej", + "updateSuccessMessage": { + "detail": "Przestrzeń robocza zaktualizowana" + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować przestrzeni roboczej" + }, + "createAndSwitchSuccessMessage": { + "detail": "Przestrzeń robocza utworzona i przełączona" + }, + "createSuccessMessage": { + "detail": "Przestrzeń robocza utworzona" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć przestrzeni roboczej" + } + }, + "deleteConfirmation": { + "header": "Usuń przestrzeń roboczą", + "message": "Czy na pewno chcesz usunąć {workspaceName}? Wszystkie dane powiązane z tą przestrzenią roboczą zostaną usunięte. Tej operacji nie można cofnąć.", + "downloadWorkspaceData": "@:download dane przestrzeni roboczej", + "successMessage": { + "detail": "Przestrzeń robocza {workspaceName} usunięta" + }, + "errorMessage": { + "detail": "Nie udało się usunąć przestrzeni roboczej" + } + }, + "exportWorkspace": { + "title": "Eksportuj przestrzeń roboczą", + "successMessage": { + "detail": "Dane przestrzeni roboczej {workspaceName} wyeksportowane jako {fileName}" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować przestrzeni roboczej {workspaceName}" + } + }, + "importWorkspace": { + "title": "@:import przestrzeń roboczą", + "dragAndDropMessage": "Przeciągnij i upuść spakowany plik przestrzeni roboczej Msty (ZIP), aby zaimportować go i utworzyć nową przestrzeń roboczą. W przypadku powtórzonych nazw zaimportowana przestrzeń robocza otrzyma zmienioną nazwę. Możesz ją później zmienić.", + "successMessage": { + "detail": "Przestrzeń robocza {workspaceName} została zaimportowana" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować przestrzeni roboczej" + } + } + }, + "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ść tutaj: {attachmentType}", + "addNew": "Dodaj nowe załączniki", + "addDocumentTypes": "Dodaj {documentTypes}, a także inne pliki z kodem", + "addImageTypes": "Dodaj obrazy .png, .jpg lub jpeg", + "dragAndDropOrBrowseMore": "Przeciągnij i upuść lub wybierz kolejne pliki", + "commaSeparatedUrls": "lub wklej adresy URL rozdzielone 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ć funkcje rozpoznawania obrazu.", + "checkingVisionCapabilities": "Sprawdzanie funkcji rozpoznawania obrazu...", + "installingVision": "Instalowanie funkcji rozpoznawania obrazu...", + "documentsAttachedCount": "Załączono 1 dokument | Załączono {count} dokumenty | Załączono {count} dokumentów", + "imagesAttachedCount": "Załączono 1 obraz | Załączono {count} obrazy | Załączono {count} obrazów", + "webpagesAttachedCount": "Załączono 1 stronę internetową | Załączono {count} strony internetowe | Załączono {count} stron internetowych", + "webpageLinks": "link do strony internetowej | linki do stron internetowych", + "holdKeyToShareWithSyncedSplits": "Przytrzymaj {key}, aby współdzielić z zsynchronizowanymi podziałami", + "youTubeLinksAttachedCount": "Załączono 1 link YouTube | Załączono {count} linki YouTube | Załączono {count} linków YouTube", + "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": "Odłącz wszystko", + "confirm": { + "header": "Odłącz wszystko", + "message": "Czy na pewno chcesz odłączyć wszystkie {attachmentType}? Te {attachmentType} nie będą już dostępne w rozmowie w żadnym z podziałów.", + "acceptLabel": "@:delete" + }, + "maxResult": { + "title": "Maksymalna liczba wyników" + }, + "successMessage": { + "detail": "Załączniki odłączone" + } + } + }, + "jinaAPI": { + "manageJinaAPIKeys": "Zarządzaj kluczami", + "jinaApiKeyRequired": "Do korzystania z tej funkcji wymagany jest prawidłowy klucz API Jina. Możesz go uzyskać bezpłatnie pod poniższym linkiem:", + "willUseJina": { + "description": "Masz obecnie dodane klucze API Jina: {count}. Możesz dodać więcej kluczy, a Msty wybierze losowy prawidłowy klucz do obsługi żądania." + }, + "jinaAPIKeyForm": { + "newTitle": "Nowy klucz API Jina", + "editTitle": "Edytuj klucz API Jina", + "availableKeys": "Dostępne klucze", + "reVerifyKey": "Klucz ma status: {status}. Kliknij, aby zweryfikować ponownie", + "verifyKeyAndAdd": "Zweryfikuj klucz i dodaj", + "newDescription": "Dodaj nowy klucz API Jina do użycia z endpointami Jina Reader i Search. Możesz dodać wiele kluczy i zweryfikować je, aby upewnić się, że są prawidłowe. Podczas korzystania z kluczy Msty wybierze losowy prawidłowy klucz do obsługi żądania.", + "keyIsGood": { + "summary": "Wszystko gra!", + "detail": "Klucz wygląda na prawidłowy i jest gotowy do użycia" + }, + "successMessage": { + "detail": "Klucz API Jina 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 używanych w żądaniach API Jina. Pomaga to kontrolować koszty i długość odpowiedzi." + } + }, + "rtd": { + "title": "@:data w czasie rzeczywistym", + "enableRTD": "Kliknij, aby przełączyć RTD; kliknij dwukrotnie, aby skonfigurować", + "contexts": "Konteksty danych w czasie rzeczywistym", + "removeSource": { + "successMessage": { + "detail": "Źródł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 usługi zdalnej", + "noSources": "Brak dostępnych źródeł", + "settings": { + "maxResult": { + "title": "Maksymalna liczba wyników" + }, + "saveAsDefaultProvider": { + "title": "Zapisz {providerName} jako domyślnego dostawcę wyszukiwania", + "successMessage": { + "summary": "Niech będzie {providerName}!", + "detail": "{providerName} to teraz domyślny dostawca wyszukiwania" + } + }, + "autoWithFallback": "Auto z opcją zapasową", + "google": "Google", + "brave": "Brave", + "ecosia": "Ecosia", + "customSearchQuery": { + "title": "Niestandardowe zapytanie wyszukiwania", + "placeholder": "To zapytanie zostanie użyte do wyszukiwania. Pozostaw puste, aby użyć promptu jako zapytania" + }, + "limitByDomain": { + "title": "Ogranicz do domeny", + "placeholder": "np. reddit.com, gov lub (site:reddit.com OR site:gov)", + "commaDelimitedPlaceholder": "Podaj domeny rozdzielone przecinkami, np. reddit.com,wikipedia.com" + }, + "extraOperators": { + "title": "Dodatkowe operatory" + }, + "dateRange": { + "title": "Zakres dat wyszukiwania", + "placeholder": "Od daty - Do daty" + }, + "successMessage": { + "detail": "Włączono @:rtd.title" + }, + "types": { + "api": "API", + "rtc": "@:remoteToolsConnector.title" + } + }, + "useJinaLabel": "Użyj @:rtd.jina", + "google": { + "useLabel": "Użyj @:rtd.settings.google", + "apiKey": { + "placeholder": "@:apiKey @:rtd.settings.google" + }, + "cseIdLabel": "ID niestandardowej wyszukiwarki", + "cseIdPlaceholder": "@:rtd.google.cseIdLabel @:rtd.settings.google" + }, + "brave": { + "useLabel": "Użyj @:rtd.settings.brave", + "resultFilter": "Filtr wyników", + "apiKey": { + "placeholder": "@:apiKey @:rtd.settings.brave" + } + }, + "searXng": { + "title": "SearXNG", + "engines": { + "title": "Silniki", + "placeholder": "Lista silników rozdzielonych przecinkami, np. google, brave itd." + }, + "extraParams": { + "title": "Dodatkowe parametry", + "placeholder": "Dodaj dodatkowe parametry. To musi być poprawny obiekt JSON." + }, + "notice": "Twój serwer SearXNG musi mieć włączoną obsługę JSON i być dostępny przez HTTPS. Obejście dla HTTP w niektórych przeglądarkach znajdziesz w naszej dokumentacji: 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": "Aktualności", + "finance": "Finanse" + }, + "apiKey": { + "placeholder": "Podaj klucz API @:rtd.tavily.title" + }, + "searchDepth": { + "title": "Głębokość wyszukiwania", + "placeholder": "Głębokość przeszukiwania", + "advanced": "Zaawansowane", + "basic": "Podstawowe" + }, + "timeRange": { + "title": "Zakres czasu", + "placeholder": "Zakres czasu wstecz od bieżącej daty" + } + }, + "exa": { + "title": "Exa", + "useLabel": "Użyj @:rtd.exa.title", + "apiKey": { + "placeholder": "Podaj klucz API @:rtd.exa.title" + } + }, + "ollama": { + "title": "Ollama", + "useLabel": "Użyj @:rtd.ollama.title", + "apiKey": { + "placeholder": "Podaj klucz API @:rtd.ollama.title" + } + }, + "disableRTD": { + "label": "Wyłącz @:rtd.title", + "successMessage": { + "detail": "Wyłączono @:rtd.title" + }, + "errorMessage": { + "detail": "Nie udało się wyłączyć funkcji @:rtd.title" + } + } + }, + "remoteToolsConnector": { + "title": "Usługa zdalna", + "connectionRequired": "Aby korzystać z tej funkcji, musisz połączyć się z usługą zdalną{'.'}", + "experimentalInfo": "RTD to funkcja eksperymentalna i może nie działać zgodnie z oczekiwaniami.", + "isConnectedTooltip": "@:remoteToolsConnector.title - Połączono", + "isDisconnectedTooltip": "@:remoteToolsConnector.title - Rozłączono", + "connectNow": "@:connect z usługą zdalną", + "connectFirst": "Najpierw połącz się z usługą zdalną", + "reconnectNow": "@:reconnect z usługą zdalną", + "disconnectNow": "@:disconnect 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 usługą zdalną", + "saveAndConnect": "Zapisz i połącz", + "rememberConnectionInfo": "Zapamiętaj informacje o połączeniu" + }, + "import": { + "title": "@:import informacje o połączeniu", + "dragAndDropMessage": "Przeciągnij i upuść plik konfiguracji zdalnego połączenia Msty, aby zaimportować dane i połączyć się z usługą zdalną{'.'}", + "successMessage": { + "detail": "Zaimportowano informacje o połączeniu" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować informacji o połączeniu" + } + }, + "export": { + "title": "Eksportuj zapisane informacje o połączeniu", + "successMessage": { + "detail": "Wyeksportowano informacje o połączeniu" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować informacji o połączeniu" + } + }, + "successMessage": { + "summary": "Połączono!", + "detail": "@:remoteToolsConnector.title połączona pod adresem {url}" + }, + "errorMessage": { + "detail": "Nie udało się połączyć z usługą zdalną{'.'} Upewnij się, że usługa zdalna działa i jest dostępna pod podanym adresem URL.", + "tokenMissing": "Brakuje tokenu. Sprawdź token i spróbuj ponownie." + }, + "forgetConnectionInfo": "Zapomnij poprzednie informacje o połączeniu", + "forgetSuccessMessage": { + "detail": "Zapomniano informacje o połączeniu" + }, + "toolCommandPaths": { + "title": "Ścieżki poleceń narzędzi", + "description": "Jeśli korzystasz z zestawów narzędzi (Toolsets), ustaw ścieżki do poleceń, których używasz.", + "selectPlaceholder": "@:select lub wpisz polecenie", + "pathPlaceholder": "Podaj pełną ścieżkę do polecenia", + "assignPath": "Przypisz ścieżkę" + } + }, + "disconnect": { + "successMessage": { + "summary": "Rozłączono!", + "detail": "Rozłączono z usługą zdalną" + } + } + }, + "forge": { + "forgeMode": { + "title": "Tryb Forge", + "description": "Tryb Forge daje Ci czyste płótno i potężne narzędzie pisarskie, aby swobodnie tworzyć, edytować, stylizować i dopracowywać treści." + }, + "title": "Forge", + "forgeContent": "Treść @:forge.title", + "forgingContent": "Wykuwanie treści", + "editRawMarkdown": "Edytuj surowy Markdown", + "editAsBranch": "Edytuj jako gałąź", + "disabledEditRawMarkdown": "Ta treść została wykuta w Forge. Edycja surowego Markdownu nie jest dozwolona.", + "saveChanges": { + "title": "Zapisz zmiany", + "successMessage": { + "detail": "Zapisano zmiany" + }, + "errorMessage": { + "detail": "Nie udało się zapisać zmian" + } + }, + "placeholders": { + "writeSomething": "Napisz coś lub wpisz /, aby zobaczyć opcje...", + "detailsSummary": "Wpisz 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": "Wyczyść 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": "Teksty", + "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ś wykuć?", + "forgeWriter": "Asystent pisania Forge", + "inlinePrompt": { + "placeholder": "Wpisz swój niestandardowy prompt...", + "ask": "Zapytaj", + "askTooltip": "Poproś model o wygenerowanie odpowiedzi na podstawie niestandardowego promptu" + }, + "forgeCanvas": "Płótno @:forge.title", + "newForgeCanvas": "Nowe @:forge.forgeCanvas", + "addNewForgeCanvas": "Dodaj nowe @:forge.forgeCanvas" + }, + "preview": "Podgląd", + "prompt": "Prompt | Prompty", + "discard": "Odrzuć", + "insert": "Wstaw", + "regenerate": "Wygeneruj ponownie", + "rewrite": "Przepisz", + "exit": "Wyjdź", + "customPrompt": "Niestandardowy prompt", + "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": "Skopiowano do schowka: {item}" + }, + "exportJsonToClipboard": "Treść wyeksportowana do schowka jako @:json", + "variable": "Zmienna | Zmienne", + "pinItem": { + "title": "@:pinned {item}", + "action": "Przypnij {item}", + "successMessage": { + "detail": "Przypięto {item}" + }, + "errorMessage": { + "detail": "Nie udało się przypiąć {item}" + } + }, + "unpinItem": { + "action": "Odepnij {item}", + "successMessage": { + "detail": "Odpięto {item}" + }, + "errorMessage": { + "detail": "Nie udało się odpiąć {item}" + } + }, + "setDefaultItem": { + "title": "Domyślne: {item}", + "action": "Ustaw {item} jako domyślne", + "successMessage": { + "detail": "Ustawiono {item} jako domyślne" + }, + "errorMessage": { + "detail": "Nie udało się ustawić {item} jako domyślne" + } + }, + "unsetDefaultItem": { + "action": "Domyślne: {item}. Kliknij, aby cofnąć.", + "successMessage": { + "detail": "{item} nie jest już domyślne" + } + }, + "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": "Ostatnio używane", + "ascending": "Rosnąco", + "descending": "Malejąco" + }, + "purpose": { + "label": "Filtruj według zastosowania", + "placeholder": "Wszystkie zastosowania" + } + } + }, + "modelSettings": "Ustawienia modelu", + "syncSplit": "Synchronizuj podział", + "name": "Nazwa", + "split": "Podział | Podziały", + "template": "Szablon | Szablony", + "discardChanges": "Odrzuć zmiany", + "applyChanges": "Zastosuj zmiany", + "splitPreset": { + "title": "@:preset podziału | Presety podziału", + "selectPlaceholder": "@:select preset", + "new": "Nowy preset", + "newSplit": "Nowy preset", + "splits": { + "splitIndex": "Podział {index}", + "delete": "@:delete preset" + }, + "import": { + "title": "Importuj preset | Importuj presety", + "dragAndDropMessage": "Przeciągnij i upuść spakowany plik presetów Msty, aby zaimportować i utworzyć nowe presety. W przypadku powtarzających się nazw zaimportowane presety zostaną przemianowane. Możesz to później zmienić.", + "successMessage": { + "detail": "Zaimportowano preset" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować presetów" + } + }, + "export": { + "title": "Eksportuj preset | Eksportuj presety", + "selected": "Eksportuj wybrany preset | Eksportuj wybrane presety", + "successMessage": { + "detail": "Preset podziału wyeksportowano jako {fileName} | Presety podziału wyeksportowano jako {fileName}" + }, + "errorMessage": { + "detail": "Nie udało się wyeksportować presetu | Nie udało się wyeksportować presetów" + } + }, + "delete": { + "title": "@:delete preset | Usuń presety", + "selected": "@:delete wybrany preset | Usuń wybrane presety", + "deleteConfirmation": { + "header": "@:delete preset", + "description": "Czy na pewno chcesz usunąć {presetName}? | Czy na pewno chcesz usunąć wybrane presety ({count})?" + }, + "successMessage": { + "detail": "Usunięto preset podziału | Usunięto presety podziału" + }, + "errorMessage": { + "detail": "Nie udało się usunąć presetu podziału | Nie udało się usunąć presetów podziału" + } + }, + "update": { + "successMessage": { + "detail": "Zaktualizowano preset podziału" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować presetu podziału" + } + }, + "save": { + "successMessage": { + "detail": "Zapisano preset podziału" + }, + "errorMessage": { + "detail": "Nie udało się zapisać presetu podziału" + } + }, + "empty": { + "title": "Brak dostępnych presetów podziału.", + "description": "Zacznij od dodania lub zaimportowania nowego presetu podziału" + }, + "invalidTemplatesMessage": { + "summary": "Nieprawidłowe szablony", + "detail": "Niektóre szablony są nieprawidłowe lub brakuje w nich wymaganych pól. Popraw je przed kontynuowaniem." + } + }, + "shadowPersonas": { + "title": "Persony-cienie", + "create": "Utwórz personę-cień", + "editTitle": "Edytuj personę-cień", + "assignedPersona": "Przypisana persona", + "changePersona": "Zmień personę", + "changePersonaTitle": "Zmień personę-cień", + "currentPersona": "Bieżąca 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": "Nie przypisano persony", + "hideSidebar": "Ukryj persony-cienie", + "showSidebar": "Pokaż persony-cienie", + "noMonitoring": "Brak monitorowanych podziałów", + "monitoringHiddenHint": "Monitorowany 1 podział (kliknij, aby pokazać) | Monitorowane {count} podziały (kliknij, aby pokazać) | Monitorowanych {count} podziałów (kliknij, aby pokazać)", + "monitoringSplitsHint": "Monitorowany 1 podział | Monitorowane {count} podziały | Monitorowanych {count} podziałów", + "noSplitsMonitoredHint": "Brak monitorowanych podziałów", + "monitoringStatus": "Monitorowany 1 podział | Monitorowane {count} podziały | Monitorowanych {count} podziałów", + "activate": "Aktywuj", + "deactivate": "Dezaktywuj", + "processNow": "Przetwórz teraz", + "processing": "Przetwarzanie...", + "createAndAssign": "Utwórz i przypisz", + "latestInsight": "Najnowsze spostrzeżenie", + "noOutputYet": "Jeszcze brak wyników", + "outputs": "Wyniki", + "viewLatest": "Zobacz najnowszy", + "viewHistory": "Zobacz historię", + "noHistory": "Brak historii", + "selectVersion": "Wybierz wersję", + "name": "Nazwa persony-cienia", + "namePlaceholder": "np. Analityk techniczny, Monitor wydajności", + "edit": "Edytuj personę-cień", + "switchShadowPersona": "Przełącz personę-cień", + "selectShadowPersonaToSwitch": "Wybierz personę-cień, na którą chcesz się przełączyć", + "selectShadowPersona": "Wybierz personę-cień", + "searchShadowPersonas": "Szukaj person-cieni...", + "description": "Opis (opcjonalnie)", + "descriptionPlaceholder": "Opisz, co ta persona-cień 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żesz to 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": "Maks. kontekst", + "synthesisMode": "Tryb syntezy", + "outputFormat": "Format wyników", + "maxProcessingTime": "Maks. czas przetwarzania", + "versionManagement": "Zarządzanie wersjami", + "maxVersions": "Maks. liczba wersji", + "advancedSettings": "Ustawienia zaawansowane", + "includeSystemMessages": "Uwzględniaj wiadomości systemowe", + "autoDeleteOld": "Automatycznie usuwaj stare wersje", + "waitingForSplits": "Oczekiwanie na podziały", + "processingNow": "Trwa przetwarzanie", + "empty": { + "title": "Brak person-cieni", + "description": "Utwórz personę-cień, aby monitorować i analizować podziały rozmowy" + }, + "unlock": "Odblokuj persony-cienie", + "experimental": "Eksperymentalne", + "experimentalInfo": "Persony-cienie to eksperymentalna funkcja, która analizuje rozmowy i równolegle generuje alternatywne perspektywy oraz spostrzeżenia.", + "noOutput": { + "title": "Jeszcze brak wyników", + "description": "Ta persona-cień nie wygenerowała jeszcze żadnych wyników" + }, + "saveToEnableProcessing": "Zapisz tę rozmowę, aby włączyć przetwarzanie przez personę-cień", + "delete": { + "title": "Usuń personę-cień", + "action": "Usuń", + "confirmMessage": "Czy na pewno chcesz usunąć „{name}”? Persona „{name}” zostanie usunięta ze wszystkich rozmów, do których jest dołączona. Tej operacji nie można cofnąć.", + "successMessage": "Pomyślnie usunięto personę-cień", + "errorMessage": "Nie udało się usunąć persony-cienia" + }, + "detach": { + "title": "Odłącz personę-cień", + "action": "Odłącz", + "confirmMessage": "Odłączyć „{name}” od tej rozmowy? Persona-cień pozostanie dostępna dla innych rozmów.", + "successMessage": "Pomyślnie odłączono personę-cień", + "errorMessage": "Nie udało się odłączyć persony-cienia" + }, + "switch": { + "successMessage": "Pomyślnie przełączono personę-cień", + "errorMessage": "Nie udało się przełączyć persony-cienia" + }, + "editToast": { + "successMessage": "Pomyślnie zaktualizowano personę-cień", + "errorMessage": "Nie udało się zaktualizować persony-cienia" + }, + "createToast": { + "successMessage": "Pomyślnie utworzono personę-cień", + "errorMessage": "Nie udało się utworzyć persony-cienia" + }, + "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} automatycznie wyzwolony element | Anulowano {cancelledCount} automatycznie wyzwolone elementy | Anulowano {cancelledCount} automatycznie wyzwolonych elementów" + }, + "queueFullToast": { + "summary": "Kolejka pełna", + "detail": "Kolejka przetwarzania jest pełna. Poczekaj, aż bieżące elementy zostaną ukończone" + }, + "alreadyProcessingToast": { + "summary": "Przetwarzanie już trwa", + "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, częściej)", + "everyNMessages": "Uruchamia się po {n} wiadomościach (zbiorczo)", + "manual": "Tylko po kliknięciu „Przetwórz teraz”" + }, + "synthesis": { + "auto": "Auto", + "combined": "Analiza łączona", + "perSplit": "Osobno dla każdego podziału", + "comparative": "Analiza porównawcza" + }, + "synthesisHints": { + "auto": "Wybiera najlepszy tryb na podstawie podziałów i intencji", + "combined": "Jedno podsumowanie dla wszystkich podziałów", + "perSplit": "Zachowuje każdy podział osobno, z etykietą", + "comparative": "Zestawienie różnic i podobieństw obok siebie" + }, + "synthesisAutoReasons": { + "singleSplit": "Tryb Auto użyje analizy łączonej, ponieważ obecny jest tylko jeden podział.", + "multipleModels": "Tryb Auto użyje analizy porównawczej, ponieważ używanych jest wiele modeli.", + "sameModel": "Tryb Auto przeanalizuje każdy podział osobno, ponieważ podziały używają tego samego modelu." + }, + "format": { + "insights": "Spostrzeżenia", + "summary": "Podsumowanie", + "recommendations": "Rekomendacje", + "analysis": "Analiza" + }, + "monitoringSplits": "Monitorowany 1 podział | Monitorowane {count} podziały | Monitorowanych {count} podziałów", + "locateSplits": "Zlokalizuj podziały", + "manageSplits": "Zarządzaj podziałami", + "addAllSplits": "Dodaj wszystkie podziały", + "deselectAll": "Odznacz wszystko", + "selectAll": "Zaznacz wszystko", + "selectedCount": "Wybrano {count} z {total}", + "streaming": "Strumieniowanie", + "starting": "Uruchamianie", + "collectingContext": "Zbieranie kontekstu z podziałów...", + "waitingForConversationCompletion": "Oczekiwanie na zakończenie rozmowy", + "analyzingConversationSplits": "Analizowanie podziałów rozmowy...", + "analyzeResponses": "Persona-cień przeprowadzi analizę, gdy nadejdą wszystkie odpowiedzi", + "toolCalls": "Wywołania narzędzi", + "reasoning": "Rozumowanie", + "attachExisting": "Dołącz istniejącą", + "attachTitle": "Dołącz personę-cień", + "previousVersion": "Poprzednia wersja", + "nextVersion": "Następna wersja", + "attach": "Dołącz", + "selectShadowPersonaToAttach": "Wybierz personę-cień do dołączenia do tej rozmowy", + "selectShadowPersonaPlaceholder": "Wybierz personę-cień 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. oczekiwanie: {time}", + "queuedItems": "1 element w kolejce | {count} elementy w kolejce | {count} elementów w kolejce", + "monitoring": "Monitorowanie i kolejka", + "monitoredSplits": "Monitorowane podziały" + }, + "toolbox": { + "title": "Narzędzia", + "toolsUsageWillSkip": "Usługa zdalna Msty nie jest uruchomiona; użycie narzędzi zostanie pominięte.", + "tools": { + "title": "Narzędzie | Narzędzia", + "description": "Kolekcja narzędzi pomocnych w pracy z LLM.", + "availableTools": "Dostępne narzędzia", + "availableToolsets": "Dostępne zestawy narzędzi", + "authorize": "Autoryzuj", + "setDefaultParams": "Ustaw parametry domyślne", + "setParams": "Ustaw parametry", + "missingThisDependency": "Wygląda na to, że tej zależności brakuje w Twoim środowisku. Bez niej narzędzie może nie działać zgodnie z oczekiwaniami.", + "defaultParamsForm": { + "header": "Parametry domyślne dla {toolName}", + "description": "Te parametry będą używane globalnie we wszystkich instancjach 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": "Podaj nazwę nowego argumentu{'.'} Wiele argumentów oddziel przecinkami.", + "placeholder": "np. --arg1, someArg, -verbose" + } + }, + "env": { + "label": "Zmienne środowiskowe", + "description": "@:select lub wprowadź nową zmienną środowiskową i ustaw jej wartość.", + "addEnv": "Dodaj zmienną środowiskową", + "selectPlaceholder": "@:select zmienną środowiskową", + "enterNew": "Dodaj nową zmienną środowiskową" + }, + "successMessage": { + "saveDetail": "Zapisano parametry domyślne dla {toolName}." + }, + "errorMessage": { + "saveDetail": "Nie udało się zapisać parametrów domyślnych." + } + }, + "addNewTool": { + "title": "Dodaj nowe narzędzie", + "description": "Dodaj do sekcji Narzędzia własne narzędzie zgodne z MCP. Po dodaniu możesz umieścić je w zestawie narzędzi, ustawić parametry i używać go z modelem.", + "namePlaceholder": "Nadaj mu nazwę (domyślnie używane jest ID narzędzia)", + "id": { + "label": "ID narzędzia", + "placeholder": "Unikalny identyfikator narzędzia (uzupełniany automatycznie, jeśli wykryto go w konfiguracji)" + }, + "duplicateId": "Narzędzie o tym ID już istnieje. Wprowadź unikalne ID.", + "successMessage": { + "summary": "Dodano narzędzie", + "detail": "Narzędzie dodano do sekcji Narzędzia. Możesz teraz dodać je do zestawu narzędzi i używać z modelem." + }, + "successMessageWithToolset": { + "summary": "Dodano narzędzie", + "detail": "Narzędzie dodano do sekcji Narzędzia i utworzono pasujący zestaw narzędzi. Jest gotowe do użycia z modelem." + }, + "errorMessage": { + "detail": "Nie udało się dodać narzędzia do sekcji Narzędzia. {error}" + }, + "toolConfig": { + "label": "Konfiguracja narzędzia", + "placeholder": "Wpisz lub wklej konfigurację narzędzia w formacie JSON. Akceptowana jest konfiguracja bezpośrednia lub formaty opakowane (toolId zostanie wyodrębniony automatycznie)", + "showExampleTitle": "Pokaż przykład konfiguracji narzędzia", + "explanation": "Konfiguracja narzędzia akceptuje wiele formatów, w tym konfiguracje opakowane z mcpServers. Gdy to możliwe, toolId i nazwa zostaną wyodrębnione automatycznie. Musi zawierać co najmniej {command}. Argumenty dynamiczne należy ująć w nawiasy klamrowe {curly}, na przykład: {argExample}. Podobnie dynamiczne zmienne środowiskowe można ustawić 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ędzia." + } + }, + "emptyPlaceholder": { + "description1": "Używaj zewnętrznych narzędzi MCP obsługiwanych przez usługę zdalną Msty, aby rozszerzyć możliwości swoich modeli i ulepszyć pracę z LLM.", + "description2": "Możesz zacząć od zaimportowania wielu narzędzi dostarczanych z Msty lub dodać własne.", + "description3": "Uwaga: te narzędzia nie są dostarczane, testowane ani utrzymywane przez Msty. Zapewniamy jedynie platformę do korzystania z nich i dla wygody umożliwiamy ich import. UŻYWAJ ICH NA WŁASNE RYZYKO. Msty nie ponosi odpowiedzialności za żadne problemy wynikające z ich używania. Po wsparcie zwróć się do autora danego narzędzia." + }, + "importTools": { + "title": "Importuj domyślne narzędzia", + "successMessage": { + "detail": "Pomyślnie zaimportowano domyślne narzędzia ({count}). Możesz teraz tworzyć zestawy narzędzi i używać ich z modelem." + }, + "successMessageWithToolsets": { + "detail": "Pomyślnie zaimportowano domyślne narzędzia ({count}) i automatycznie utworzono odpowiadające im zestawy narzędzi ({toolsetCount})." + }, + "errorMessage": { + "detail": "Nie udało się zaimportować domyślnych narzędzi" + } + }, + "deleteConfirmation": { + "header": "Usuń narzędzie", + "description": "Czy na pewno chcesz usunąć {toolName}?", + "successMessage": { + "detail": "Usunięto narzędzie" + }, + "errorMessage": { + "detail": "@:failedToDelete narzędzia" + } + }, + "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": "Konfigurację narzędzia skopiowano do schowka", + "viewToolsUsage": { + "title": "Zobacz użycie narzędzi", + "noToolCalls": { + "title": "Nie znaleziono wywołań narzędzi", + "description": "Wygląda na to, że model miał do dyspozycji narzędzia, ale nie wykonał żadnych wywołań. Być może model nie potrzebował z nich korzystać." + } + } + }, + "toolsets": { + "title": "Zestaw narzędzi | Zestawy narzędzi", + "emptyPlaceholder": { + "title": "Nie znaleziono zestawów narzędzi", + "description": "Zestawy narzędzi to kolekcje narzędzi z parametrami. Możesz utworzyć zestaw i dodać do niego narzędzia. Podczas czatu z modelem możesz wybrać jeden lub kilka zestawów narzędzi do użycia z modelem." + }, + "addSomeTools": "Dodaj narzędzia, aby zacząć.", + "noTools": "Brak narzędzi w tym zestawie", + "tooltip": { + "selectedFeatures": "Włączone funkcje", + "loading": "Wczytywanie szczegółów funkcji…", + "allFeatures": "Wszystkie funkcje", + "unavailable": "Nie można wczytać szczegółów funkcji" + }, + "addNewToolset": { + "title": "Dodaj nowy zestaw narzędzi", + "description": "Utwórz nowy zestaw narzędzi, aby pogrupować narzędzia. Możesz dodać do niego narzędzia i używać go z modelem. Pamiętaj, aby ustawić/nadpisać parametry każdego narzędzia w zestawie, klikając przycisk {icon}.", + "setParams": { + "title": "Ustaw parametry dla {toolName}", + "description": "Ustaw parametry narzędzia {toolName}. Możesz nadpisać domyślne parametry ustawione dla narzędzia. Użyj konsoli narzędzia, aby je przetestować, zobaczyć dostępne funkcje i w razie potrzeby je ograniczyć." + }, + "successMessage": { + "saveDetail": "Zestaw narzędzi zapisano i dodano do sekcji Narzędzia. Możesz teraz używać go z modelem." + }, + "errorMessage": { + "saveDetail": "@:failedToSave zestawu narzędzi." + } + }, + "editToolset": { + "title": "Edytuj zestaw narzędzi", + "description": "Edytuj nazwę i notatki zestawu narzędzi. Możesz też dodawać i usuwać narzędzia z zestawu oraz dostosowywać parametry lub ograniczać funkcje poszczególnych narzędzi, klikając przycisk {icon}.", + "successMessage": { + "detail": "Zestaw narzędzi @:updatedSuccess" + }, + "errorMessage": { + "detail": "@:failedToUpdate zestawu narzędzi." + } + }, + "deleteConfirmation": { + "header": "Usuń zestaw narzędzi", + "description": "Czy na pewno chcesz usunąć {toolsetName}?", + "successMessage": { + "detail": "Usunięto zestaw narzędzi" + }, + "errorMessage": { + "detail": "@:failedToDelete zestawu 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 zestaw narzędzi", + "description": "Ze względów bezpieczeństwa przed eksportem można usunąć wrażliwe wartości konfiguracji. Wybierz, które zmienne środowiskowe i argumenty wyczyścić dla każdego narzędzia.", + "envVarsToScrub": "Zmienne środowiskowe do wyczyszczenia", + "argsToScrub": "Argumenty do wyczyszczenia", + "scrubCustomArgs": "Wyczyść ciąg niestandardowych argumentów", + "selectEnvVarsPlaceholder": "Wybierz zmienne środowiskowe, z których usunąć wartości", + "selectArgsPlaceholder": "Wybierz argumenty, z których usunąć wartości", + "noScrubbableData": "Brak danych konfiguracji do wyczyszczenia", + "sensitiveDataNote": "Typowe wrażliwe wartości zostały wstępnie zaznaczone dla Twojego bezpieczeństwa.", + "copiedToClipboard": "Konfigurację zestawu narzędzi skopiowano do schowka", + "downloadedAsJson": "Pobrano konfigurację zestawu narzędzi", + "fetchError": "Nie udało się pobrać danych zestawu narzędzi do eksportu" + }, + "import": { + "missingTools": "Niektórych narzędzi nie znaleziono i je pominięto: {tools}" + }, + "noOfTools": "1 narzędzie | {count} narzędzia | {count} narzędzi", + "viewToolsAndNotes": "Zobacz narzędzia i notatki", + "console": { + "title": "Konsola narzędzia", + "description": "Ta konsola pozwala przetestować {toolName} i zobaczyć wynik. Możesz też testować narzędzie z różnymi parametrami lub ograniczyć dostępne funkcje. Domyślnie włączone są wszystkie funkcje — zaznacz pola wyboru, aby ograniczyć je tylko do wybranych.", + "listTools": "Wyświetl funkcje {toolName}", + "missingRequiredArgument": "Brakuje wymaganych argumentów: {count}", + "continueWithMissingArgs": "@:continue mimo brakujących argumentów", + "viewSourceOnGitHub": "Zobacz kod źródłowy w serwisie GitHub", + "allowedFeaturesLabel": "Włącz określone funkcje tego narzędzia", + "allowedFeaturesPlaceholder": "Wyszukaj lub wybierz dozwolone funkcje", + "selectedFeaturesLabel": "Obecnie włączone funkcje", + "toolCall": { + "title": "Wywołanie narzędzia", + "description": "Dodaj wymagane właściwości, aby wywołać {featureName}. Jeśli chcesz, możesz dodać dodatkowe właściwości. Zachowaj ostrożność przy takim wywoływaniu narzędzia, zwłaszcza bez odpowiednich 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 model może nie obsługiwać narzędzi.", + "toolsetsUsedCount": "1 aktywny zestaw narzędzi | {count} aktywne zestawy narzędzi | {count} aktywnych zestawów narzędzi" + } + }, + "liveContexts": { + "liveContextsUsedCount": "1 aktywny kontekst na żywo | {count} aktywne konteksty na żywo | {count} aktywnych kontekstów na żywo", + "title": "@:context na żywo", + "contexts": "Konteksty na żywo", + "untitled": "Kontekst na żywo bez nazwy", + "selectSource": "Wybierz źródło", + "selectSourceTooltip": "Przełącz, aby uwzględnić lub wykluczyć to źródło z kontekstu", + "addNew": { + "title": "Dodaj nowy kontekst na żywo", + "description": "Utwórz nowe źródło typu kontekst na żywo, aby dodać do rozmowy zewnętrzny kontekst danych.", + "errorMessage": { + "detail": "Nie udało się dodać kontekstu na żywo" + }, + "successMessage": { + "detail": "@:liveContexts.title został dodany" + } + }, + "edit": { + "title": "Edytuj kontekst na żywo" + }, + "promptPlaceholder": "Tutaj podaj prompt dla trybu Push; szczegóły dotyczące trybu Pull umieść w sekcji Notatki.", + "endpointDetails": "Szczegóły endpointu", + "method": "Metoda", + "url": "URL", + "customHeaders": "Niestandardowe nagłówki", + "hasBody": "Zawiera treść żądania", + "customProcessing": "Niestandardowe przetwarzanie", + "promptTemplate": "Szablon promptu", + "requestHeaders": { + "title": "Nagłówki żądania", + "description": "Dodaj nagłówki żądania jako obiekt JSON. Zostaną wysłane wraz z żądaniem do endpointu 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 endpointu API.", + "placeholder": "{'{'}\n \"q\": \"{'{'}query:'term'{'}'}\",\n \"from\": \"{'{'}from?:'ISO'{'}'}\"\n{'}'}" + }, + "placeholders": { + "title": "Dynamiczne placeholdery", + "tooltip": "Składnia placeholderów", + "label": "Placeholdery:" + }, + "processingFunction": { + "title": "Funkcja przetwarzająca", + "description": "Dodaj funkcję przetwarzającą, aby przekształcić dane odpowiedzi przed użyciem ich w rozmowie. Funkcja powinna zwracać string.", + "placeholderHeader": "function process({'{'}data, placeholders{'}'}) {'{'}", + "placeholder": " // dostęp do danych i opcjonalnych placeholderów\n return JSON.stringify(data)", + "placeholderFooter": "{'}'}", + "tooltip": "Dostęp przez parametr placeholders", + "usePlaceholders": "Użyj placeholderów w kodzie:" + }, + "testVariables": { + "description": "Wprowadź wartości testowe dla wykrytych placeholderów, aby przetestować endpoint." + }, + "update": { + "successMessage": { + "detail": "@:liveContexts.title został zaktualizowany" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować kontekstu na żywo" + } + }, + "deleteConfirmation": { + "header": "Usuń kontekst na żywo", + "description": "Czy na pewno chcesz usunąć {liveContextName}?", + "successMessage": { + "detail": "@:liveContexts.title został usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć kontekstu na żywo" + } + }, + "emptyPlaceholder": { + "title": "Nie znaleziono żadnego kontekstu na żywo", + "description": "Konteksty na żywo to zewnętrzne konteksty danych, które możesz dodawać do rozmowy. Możesz utworzyć nowe źródło typu kontekst na żywo i używać go z modelem." + }, + "deleteAll": { + "confirmationHeader": "Usuń wszystkie konteksty na żywo", + "confirmationMessage": "Czy na pewno chcesz usunąć wszystkie konteksty na żywo? Tej operacji nie można cofnąć.", + "successMessage": "Wszystkie konteksty na żywo zostały usunięte", + "errorMessage": "Nie udało się usunąć wszystkich kontekstów na żywo" + }, + "export": { + "title": "Eksportuj kontekst na żywo", + "headerScrubDescription": "Ze względów bezpieczeństwa wrażliwe wartości nagłówków można usunąć przed eksportem. Wybierz, które nagłówki wyczyścić.", + "selectHeadersToScrub": "Nagłówki do wyczyszczenia", + "selectHeadersPlaceholder": "Wybierz nagłówki, z których usunąć wartości", + "sensitiveHeadersNote": "Typowe wrażliwe nagłówki zostały wstępnie zaznaczone dla Twojego bezpieczeństwa.", + "copiedToClipboard": "Konfiguracja kontekstu na żywo została skopiowana do schowka", + "downloadedAsJson": "Konfiguracja kontekstu na żywo została pobrana" + }, + "modeLabel": "Tryb", + "mode": { + "push": "Push", + "pull": "Pull", + "tooltip": { + "push": "Tryb Push: uruchamia się automatycznie, zanim model odpowie", + "pull": "Tryb Pull: wywoływany przez model na żądanie" + } + } + }, + "modes": { + "mode": "Tryb | Tryby", + "title": "@:modes.mode", + "exitMode": "Opuść tryb {mode}", + "zenMode": { + "title": "Zen", + "quote": "stan spokojnej uważności", + "newConversation": "Nowa rozmowa zen" + }, + "vaporMode": { + "title": "@:modes.mode @:modes.vaporMode.vapor", + "vapor": "Vapor", + "description": "Rozmowy nie zostaną zapisane w historii i znikną, gdy wyłączysz ten tryb lub opuścisz ten widok", + "willDisappearTooltip": "To zniknie, gdy wyłączysz tryb @:modes.vaporMode.vapor lub opuścisz ten widok", + "exitVaporMode": "Opuść tryb @:modes.vaporMode.vapor", + "enterVaporMode": "Włącz tryb @:modes.vaporMode.vapor", + "preserverChat": { + "saveConversation": "Zapisz rozmowę", + "successMessage": { + "detail": "Czat @:modes.vaporMode.vapor został zachowany" + }, + "errorMessage": { + "detail": "Nie udało się zachować czatu @:modes.vaporMode.vapor" + } + } + }, + "focusMode": { + "title": "@:modes.mode skupienia" + }, + "normalMode": { + "title": "@:modes.mode normalny" + } + }, + "searchForm": { + "query": "Zapytanie", + "title": "Szukaj elementów", + "noResults": { + "title": "Brak wyników", + "description": "Spróbuj wyszukać inne hasło" + }, + "entity": { + "conversationTextMessages": "@:conversation.title", + "promptsLibraryPrompts": "Prompt | Prompty" + }, + "foundResultsCount": "Znaleziono 1 wynik | Znaleziono {count} wyniki | Znaleziono {count} wyników", + "labels": { + "title": "Szukaj: {entity}", + "description": "Szybko wyszukuj {entity} za pomocą słów kluczowych", + "tips": { + "default": { + "description": "Wyszukiwanie domyślnie dopasowuje wszystkie słowa (np. {example} → dopasuje tekst zawierający oba słowa w dowolnej kolejności)", + "example": "niebieski samochód" + }, + "partial": { + "description": "Użyj {operator}, aby dopasować częściowo (np. {example})", + "operator": "*", + "example": "bieg* → biegać, bieganie" + }, + "or": { + "description": "Użyj {operator}, aby dopasować dowolne z haseł (np. {example})", + "operator": "OR", + "example": "jabłko OR pomarańcza" + }, + "exact": { + "description": "Użyj cudzysłowów {operator}, aby dopasować dokładnie (np. {example})", + "operator": "\"\"", + "example": "\"niebieski samochód\"" + }, + "specialCharacters": { + "description": "Użyj {operator}, aby wyszukiwać frazy ze znakami specjalnymi (np. {example})", + "operator": "\"\"", + "example": "\"C++\", \"node.js\"" + } + } + } + }, + "clearSearch": "Wyczyść wyszukiwanie", + "helpfulTips": "Przydatne wskazówki", + "hideSearch": "Ukryj wyszukiwanie", + "bookmarkItem": { + "action": "Dodaj {item} do zakładek", + "jump": "Przejdź do zakładki: {item}", + "title": "{item} w zakładkach", + "successMessage": { + "detail": "Dodano do zakładek: {item}" + }, + "errorMessage": { + "detail": "Nie udało się dodać {item} do zakładek" + }, + "deletedInfoMessage": { + "detail": "Element z zakładek ({item}) został usunięty" + }, + "emptyState": { + "title": "Brak zakładek.", + "description": "Aby zacząć, dodaj {item} do zakładek" + } + }, + "removeBookmarkedItem": { + "action": "Usuń {item} z zakładek", + "successMessage": { + "detail": "Usunięto {item} z zakładek" + }, + "errorMessage": { + "detail": "Nie udało się 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ć; Alt+kliknięcie dodaje do kolejki", + "entriesQueued": "Brak wpisów w kolejce | W kolejce: {count}/{total} | W kolejce: {count}/{total}", + "emptyQueueMessage": "Gdy prompt będzie gotowy, kliknij „Dodaj do kolejki”, 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": "Wczytaj @:turnstile.title", + "successMessage": { + "summary": "@:turnstile.title wczytany!", + "detail": "1 wpis został wczytany i dodany do kolejki. | {count} wpisy zostały wczytane i dodane do kolejki. | {count} wpisów zostało wczytanych i dodanych do kolejki." + }, + "errorMessage": { + "detail": "Nie udało się wczytać 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 w nich wymaganych pól. Popraw je przed kontynuowaniem." + }, + "metaSendMissingRootNode": { + "detail": "Nie udało się 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 ustawiono prompt i model?" + } + }, + "save": { + "successMessage": { + "detail": "@:turnstile.title został zapisany." + }, + "errorMessage": { + "detail": "Nie udało się zapisać Turnstile. Czy ustawiono 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.", + "description": "Zacznij od dodania lub zaimportowania nowego @:turnstile.title{'.'}" + }, + "new": "@:new @:turnstile.title", + "entryIndex": "@:entry {index}", + "addContinue": "Dodaj kontynuuj generowanie", + "addRegenerate": "Dodaj wygeneruj ponownie", + "addPersona": "Dodaj personę", + "addShield": "Dodaj tarczę kontekstu", + "addShieldWithSummary": "Dodaj tarczę kontekstu z podsumowaniem", + "import": { + "title": "Importuj @:turnstile.title", + "dragAndDropMessage": "Przeciągnij i upuść spakowany (ZIP) @:turnstile.title z Msty, aby zaimportować go i utworzyć nowe Turnstile. W przypadku powtarzających się nazw zaimportowane Turnstile otrzymają zmienione nazwy. Możesz je później zmienić.", + "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": "Dobór modeli (Model Matchmaker)", + "description": "Dostosuj suwaki grawitacji dla mocnych stron, takich jak programowanie, rozumowanie czy matematyka, a Matchmaker uszereguje i poleci modele najlepiej dopasowane do Twoich potrzeb. Wyniki mogą się różnić w zależności od jakości danych, rozmiaru modelu i złożoności zadania.", + "ctaIntro": "Masz już swój model?", + "ctaMessage": "Przetestuj i porównaj w Msty Studio.", + "gravity": "Grawitacja", + "remoteOnly": "Tylko zdalne", + "rankedModels": { + "title": "Ranking modeli", + "emptyMessage": "Nie znaleziono modeli. Spróbuj zmienić wymagania." + }, + "strengthsLabel": { + "ca": { + "title": "Programowanie", + "description": "Umiejętność pisania kodu w języku programowania." + }, + "aca": { + "title": "Programowanie agentowe", + "description": "Agentowa umiejętność pisania kodu w języku programowania." + }, + "daa": { + "title": "Analiza danych", + "description": "Umiejętność analizowania danych i generowania wniosków." + }, + "ifa": { + "title": "Wykonywanie instrukcji", + "description": "Umiejętność wykonywania instrukcji i realizowania zadań." + }, + "jak": { + "title": "GOAT: specjalista od wszystkiego", + "description": "Umiejętność wykonywania szerokiego zakresu zadań." + }, + "la": { + "title": "Język", + "description": "Umiejętność rozumienia i generowania ludzkiego języka." + }, + "ma": { + "title": "Matematyka", + "description": "Umiejętność wykonywania obliczeń matematycznych." + }, + "pp": { + "title": "Parafrazowanie", + "description": "Wykazana umiejętność przeredagowywania dowolnego tekstu." + }, + "ra": { + "title": "Rozumowanie", + "description": "Krytyczne myślenie — umiejętność rozumowania i podejmowania decyzji." + }, + "sim": { + "title": "Upraszczanie", + "description": "Umiejętność upraszczania dowolnego złożonego tekstu." + }, + "stg": { + "title": "Tworzenie historii", + "description": "Umiejętność generowania historii i narracji." + }, + "sum": { + "title": "Podsumowywanie", + "description": "Umiejętność podsumowywania informacji tekstowych i liczbowych." + }, + "tu": { + "title": "Korzystanie z narzędzi", + "description": "Umiejętność 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ść kosztów przetwarzania tokenów wejściowych." + }, + "ocs": { + "title": "Oszczędności na tokenach wyjściowych", + "costTitle": "Koszt wyjścia/milion tokenów", + "description": "Oszczędność kosztów generowania tokenów wyjściowych." + } + }, + "normalizedScore": "Znormalizowany wynik", + "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 wczytany." + } + }, + "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": "Oblicz i porównaj koszty modeli AI od OpenAI, Anthropic, Google i innych. Oszacuj wydatki na podstawie zużycia tokenów wejściowych/wyjściowych oraz cennika modeli. To tylko szacunki — rzeczywiste koszty mogą się różnić.", + "tokenInputs": "Liczba tokenów", + "filters": "Filtry", + "ctaIntro": "Masz już swój model?", + "ctaMessage": "Przetestuj i porównaj w Msty Studio." + }, + "vramCalculator": { + "title": "Kalkulator VRAM", + "description": "Sprawdź, czy model zmieści się w pamięci VRAM Twojego urządzenia, zanim go pobierzesz lub uruchomisz. Kalkulator podaje szacunkowe wymagania VRAM na podstawie architektury i rozmiaru modelu. Aby zacząć, wybierz jedną z poniższych opcji.", + "ctaIntro": "Masz już swój model?", + "ctaMessage": "Przetestuj i porównaj w Msty Studio." + }, + "copyOrMoveItemToWorkspace": { + "copyTitle": "Kopiuj {item} do przestrzeni roboczych", + "copyOrMoveTitle": "Kopiuj/przenieś {item} do przestrzeni roboczych", + "selectWorkspaces": "@:select przestrzenie robocze", + "availableWorkspaces": "Dostępne przestrzenie robocze", + "actionLabel": "Akcja", + "inputLabel": { + "copy": "Skopiuj {item} do jednej lub kilku przestrzeni roboczych.", + "copyOrMove": "Skopiuj/przenieś {item} do jednej lub kilku przestrzeni roboczych.", + "edit": "Zsynchronizuj tego dostawcę z jedną lub kilkoma przestrzeniami roboczymi. Jeśli dostawca był już wcześniej skopiowany, zostanie zaktualizowany. Jeśli nie — zostanie dodany." + }, + "successMessage": { + "copyDetail": "Skopiowano {item} do {count} przestrzeni roboczej | Skopiowano {item} do {count} przestrzeni roboczych", + "moveDetail": "Przeniesiono {item} do {count} przestrzeni roboczej | Przeniesiono {item} do {count} przestrzeni roboczych" + }, + "errorMessage": { + "copyDetail": "Nie udało się skopiować {item} do {count} przestrzeni roboczej | Nie udało się skopiować {item} do {count} przestrzeni roboczych", + "moveDetail": "Nie udało się przenieść {item} do {count} przestrzeni roboczej | Nie udało się przenieść {item} do {count} przestrzeni roboczych" + }, + "partialCopyWarningMessage": { + "summary": "Częściowo skopiowano", + "detail": "Nie można było skopiować {item} do {count} przestrzeni roboczej | Nie można było skopiować {item} do {count} przestrzeni roboczych" + }, + "partialMovedWarningMessage": { + "summary": "Częściowo przeniesiono", + "detail": "Nie można było przenieść {item} do {count} przestrzeni roboczej | Nie można było przenieść {item} do {count} przestrzeni roboczych" + }, + "existingCopiesInfo": "Niektóre przestrzenie robocze ({workspaces}) zostały pominięte, ponieważ {item} już w nich istnieje", + "skippingExistingCopies": "Istniejące już kopie {item} zostaną pominięte." + }, + "assignment": "Przypisanie | Przypisania", + "modelSquad": { + "title": "Model Squad", + "description": "@:modelSquad.title to zestaw wyspecjalizowanych modeli AI, w którym każdemu modelowi przypisano konkretne zadanie, np. automatyczne generowanie tytułów czy generowanie podsumowania kontekstu. Gdy przychodzi czas na wykonanie takiego zadania, przypisany model jest wybierany automatycznie.", + "addNewAssignment": "Dodaj nowe przypisanie", + "noTask": "Nie ma więcej dostępnych zadań", + "tasks": { + "autoTitleGeneration": "Automatyczne generowanie tytułów", + "contextShieldSummaryGeneration": "@:contextShield.title — generowanie podsumowania", + "realTimeDataPromptSynthesis": "@:rtd.title — synteza promptu", + "forgeContentGeneration": "Generowanie treści w Forge", + "piiScrubbing": "@:pii.scrubbing.title", + "iconFinder": "Wyszukiwanie ikon" + }, + "save": { + "successMessage": { + "detail": "@:assignment zostało zapisane" + }, + "errorMessage": { + "detail": "Nie udało się zapisać przypisania" + } + }, + "assignment": { + "dialog": { + "title": "Przypisz model do zadania {task}", + "description": "Wybierz model, który zostanie przypisany do zadania {task} w ModelSquad.", + "selectModel": "Wybierz model", + "selectModelPlaceholder": "Wybierz model...", + "currentlyAssigned": "Obecnie 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ł przypisany do zadania {task}!", + "errors": { + "noModelSelected": "Wybierz model do przypisania.", + "saveFailed": "Nie udało się zapisać przypisania modelu. Spróbuj ponownie." + } + } + }, + "pii": { + "title": "PII (dane umożliwiające identyfikację osoby)", + "scrubbing": { + "title": "Czyszczenie PII", + "description": "Automatycznie wykrywaj i usuwaj dane umożliwiające identyfikację osoby z treści stosu wiedzy, zanim zostaną wyświetlone w rozmowach.", + "info": { + "modelAssigned": "Do wykrywania i usuwania PII używany jest model {model}." + }, + "warning": { + "noModel": "Brak modelu przypisanego do funkcji „Czyszczenie PII” w ModelSquad. Pobieranie danych ze stosu wiedzy będzie kończyć się błędem, dopóki nie przypiszesz modelu.", + "configurationError": "Błąd konfiguracji funkcji „Czyszczenie PII” — ze względów bezpieczeństwa przerwano pobieranie danych ze stosu wiedzy", + "setupError": "Błąd podczas konfigurowania funkcji „Czyszczenie PII” — przerwano pobieranie danych ze stosu wiedzy" + }, + "placeholders": { + "personName": "[PERSON_NAME]", + "emailAddress": "[EMAIL_ADDRESS]", + "phoneNumber": "[PHONE_NUMBER]", + "address": "[ADDRESS]", + "idNumber": "[ID_NUMBER]", + "creditCard": "[CREDIT_CARD]", + "bankAccount": "[BANK_ACCOUNT]", + "ipAddress": "[IP_ADDRESS]", + "dateOfBirth": "[DATE_OF_BIRTH]" + }, + "categories": { + "personalIdentifiers": "Identyfikatory osobiste", + "contactInformation": "Dane kontaktowe", + "financialInformation": "Dane finansowe", + "medicalInformation": "Dane medyczne", + "digitalIdentifiers": "Identyfikatory cyfrowe", + "biometricData": "Dane biometryczne", + "locationData": "Dane lokalizacyjne" + } + } + }, + "persona": { + "title": "Persona | Persony", + "newPersona": "Nowa persona", + "activePersona": "Aktywna persona", + "empty": { + "title": "Brak dostępnych person.", + "description": "Zacznij od dodania lub zaimportowania nowej persony{'.'} Możesz też zaimportować domyślne persony, aby szybko rozpocząć." + }, + "contextShieldPosition": "Pozycja tarczy kontekstu", + "save": { + "successMessage": { + "detail": "@:persona.title zapisana" + }, + "errorMessage": { + "detail": "@:persona.title nie została zapisana" + } + }, + "update": { + "successMessage": { + "detail": "@:persona.title zaktualizowana" + }, + "errorMessage": { + "detail": "@:persona.title nie została zaktualizowana" + } + }, + "delete": { + "selected": "Usuń zaznaczone persony", + "deleteConfirmation": { + "header": "Usuń personę", + "description": "Czy na pewno chcesz usunąć {personaName}? | Czy na pewno chcesz usunąć {count} persony? | Czy na pewno chcesz usunąć {count} person?" + }, + "successMessage": { + "detail": "@:persona.title usunięta | @:persona.title usunięte" + }, + "errorMessage": { + "detail": "@:persona.title nie została usunięta | @:persona.title nie zostały usunięte" + } + }, + "import": { + "title": "Importuj personę", + "dragAndDropMessage": "Przeciągnij i upuść spakowaną (ZIP) personę Msty, aby ją zaimportować i utworzyć nowe persony. Jeśli nazwy się powtarzają, zaimportowane persony zostaną przemianowane. Możesz to później zmienić.", + "successMessage": { + "detail": "Zaimportowano persony" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować person" + } + }, + "export": { + "title": "Eksportuj personę", + "selected": "Eksportuj zaznaczoną personę | Eksportuj zaznaczone persony", + "successMessage": { + "detail": "@:persona.title wyeksportowana jako {fileName} | @:persona.title wyeksportowane jako {fileName}" + }, + "errorMessage": { + "detail": "@:persona.title nie została wyeksportowana | @:persona.title nie zostały wyeksportowane" + } + }, + "messages": { + "deleteSuccess": "@:persona.title usunięta | @:persona.title usunięte" + }, + "deleteConfirmation": { + "header": "Usuń personę", + "message": "Czy na pewno chcesz usunąć {personaName}? | Czy na pewno chcesz usunąć {count} persony? | Czy na pewno chcesz usunąć {count} person?", + "errorMessage": { + "detail": "@:persona.title nie została usunięta | @:persona.title nie zostały usunięte" + } + }, + "addTitle": "Dodaj personę", + "createRootFolder": "Nowy folder w katalogu głównym", + "setDefaultFolder": "Ustaw jako folder domyślny", + "unsetDefaultFolder": "Usuń ustawienie folderu domyślnego", + "folderForm": { + "updateSuccessMessage": { + "detail": "@:folder zaktualizowany" + }, + "updateErrorMessage": { + "detail": "@:folder nie został zaktualizowany" + }, + "createSuccessMessage": { + "detail": "@:folder utworzony" + }, + "createErrorMessage": { + "detail": "@:folder nie został utworzony" + }, + "deleteConfirmation": { + "header": "Usuń folder", + "message": "Czy na pewno chcesz usunąć {folderName} wraz ze wszystkimi zawartymi w nim personami{'?'}", + "successMessage": { + "detail": "@:folder usunięty" + }, + "errorMessage": { + "detail": "@:folder nie został usunięty" + } + } + }, + "selectPlaceholder": "@:select personę", + "autoResponder": { + "turnOn": "Włącz automatyczne odpowiadanie", + "turnOff": "Wyłącz automatyczne odpowiadanie" + }, + "hideAndIsolateSystemPrompt": "Ukryj i izoluj prompt systemowy", + "isolateResponse": "Izoluj odpowiedź", + "autoResponderDefault": "Automatyczne odpowiadanie", + "contextMessageCount": { + "title": "Liczba wiadomości kontekstu", + "description": "Ustaw liczbę ostatnich wiadomości używanych jako kontekst dla persony{'.'}" + } + }, + "fewShotPrompts": { + "title": "Prompty few-shot", + "description": "Uczenie few-shot to technika uczenia maszynowego, która pozwala wytrenować model na niewielkiej ilości danych. Prompty few-shot pozwalają przekazać modelowi przykłady, które pomagają mu zrozumieć kontekst i generować lepsze odpowiedzi.", + "addNewShot": "Dodaj nowy przykład" + }, + "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": "Tokeny przetworzone dla dostawcy {provider}", + "totalUsage": "Łączne użycie", + "fromTo": "Od {from} do {to}", + "crunchingTheNumbers": "Przeliczamy dane", + "throughputForModel": { + "title": "Przepustowość modelu {model}", + "unit": { + "description": "Mierzona w tokenach na sekundę" + } + }, + "latencyForModel": { + "title": "Opóźnienie modelu {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": "Od początku miesiąca", + "yearToDate": "Od początku roku", + "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": "Ukryto {item}" + }, + "errorMessage": { + "detail": "Nie udało się ukryć {item}" + }, + "unhideParent": "Pokaż nadrzędny {item}", + "hiddenParentContentTitle": "Ukryta zawartość elementu nadrzędnego. Kliknij, aby ją pokazać." + }, + "showItem": { + "action": "Pokaż {item}" + }, + "licenseVerification": { + "errorMessage": "Nie udało się zweryfikować licencji. Spróbuj ponownie.", + "enterLicenseKey": "Wprowadź klucz licencji Aurum", + "licenseTypeInfo": "Korzystasz z licencji {licenseType}.", + "licenseKey": "Klucz licencji", + "logout": "Wyloguj się", + "licenseTypeInfoForAdmin": "Korzystasz z 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 Lifetime", + "lifetimeLicenseDescription": "Jednorazowy zakup z dożywotnim dostępem do funkcji premium", + "annualLicense": "Aurum Annual", + "annualLicenseDescription": "Roczna subskrypcja z ciągłymi aktualizacjami i funkcjami premium", + "oneTimePurchase": "Zakup jednorazowy", + "yearlySubscription": "Subskrypcja roczna", + "enterLicenseKey": "Klucz licencji", + "verifyAndActivate": "Zweryfikuj 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": "Sklonowano {item}" + }, + "errorMessage": { + "detail": "Nie udało się sklonować {item}" + } + }, + "cloneItemTo": { + "action": "Klonuj do {item}", + "successMessage": { + "detail": "Sklonowano do nowego {item} " + }, + "errorMessage": { + "detail": "Nie udało się sklonować do nowego {item}" + } + }, + "importJson": { + "clipboardTitle": "Importuj {item} z JSON ze schowka", + "fileTitle": "Importuj {item} z pliku JSON", + "successMessage": { + "detail": "Zaimportowano {count} {item}", + "detailDestination": "@:importJson.successMessage.detail {item} do {destination}" + }, + "successMessageWithToolsets": { + "detail": "Zaimportowano {count} {item} i automatycznie utworzono odpowiadające im zestawy narzędzi" + }, + "invalidConfig": { + "detail": "Nieprawidłowa konfiguracja lub brak danych do zaimportowania. Upewnij się, że JSON jest poprawny, i spróbuj ponownie." + }, + "errorMessage": { + "detail": "Nie udało się zaimportować. Sprawdź 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 zespół", + "inviteUserLabel": "Zaproś użytkownika", + "overview": "Przegląd", + "usersLabel": "Użytkownicy", + "allTeamLabel": "Wszystkie zespoły", + "createSuccess": "Zespół {teamName} został utworzony.", + "member": "Członek|Członkowie", + "allUsers": "Wszyscy użytkownicy", + "addTeamFormHeader": "Utwórz nowy zespół", + "updateTeamFormHeader": "Edytuj zespół", + "addUsers": "Dodaj użytkowników", + "updateUsers": "Aktualizuj 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ół, aby zarządzać zasobami.", + "noUserInTeam": "Do tego zespołu nie przypisano żadnych użytkowników.", + "editTeam": "Edytuj zespół", + "invited": "Zaproszony", + "shortDescription": "Zarządzaj zespołami i użytkownikami.", + "empty": { + "description": "Zespół służy do zarządzania zasobami. Możesz dodać do niego użytkowników, aby współpracować i współ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": "Zasada | Zasady", + "toolbox": { + "title": "@:toolbox.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Narzędzia" + }, + "promptsLibrary": { + "title": "@:promptsLibrary.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Biblioteka promptów" + }, + "persona": { + "title": "@:persona.title", + "description": "Zezwól użytkownikowi na korzystanie z funkcji Persona" + }, + "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 Stos 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 w przeglądarce", + "description": "Zezwól użytkownikowi na dostęp do Msty Studio z przeglądarki internetowej" + }, + "platformDesktop": { + "title": "Dostęp do Msty Studio w aplikacji desktopowej", + "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 poszczególnych dostawców modeli." + } + }, + "user": { + "noAvailableSeats": "Osiągnięto limit zapraszania użytkowników.", + "licenceAndAccess": { + "loggedInAsLabel": "Zalogowano jako", + "useSignInWithEmail": "Na podany adres e-mail zostanie wysłany bezpieczny link logowania. Posiadacze licencji Aurum muszą zweryfikować klucz licencji, zanim skorzystają z tej funkcji.", + "continueWithlicenseLabel": "kontynuuj z kluczem licencji", + "sendLoginLink": "Wyślij link logowania" + }, + "teamUserFormHeader": "Użytkownicy zespołu", + "invitationVerification": { + "inProgress": "Weryfikujemy Twoją prośbę o dostęp. Poczekaj chwilę", + "info": "Zaproszono Cię do dołączenia do konta w Msty Studio. ", + "error": "Coś poszło nie tak. Skontaktuj się z administratorem swojego konta." + }, + "invitationInfo": "Link logowania zostanie wysłany na podany wyżej adres e-mail.", + "invitation": { + "successMessage": { + "detail": "Zaproszono użytkownika {email}." + }, + "invalidEmail": "@:invalid e-mail", + "errorMessageUserExist": "Użytkownik już istnieje", + "errorMessage": { + "detail": "Nie udało się zaprosić {email}." + } + }, + "fetch": { + "errorMessage": { + "detail": "Nie udało się wczytać listy użytkowników" + } + }, + "delete": { + "successMessage": { + "detail": "Użytkownik {email} został usunięty." + }, + "errorMessage": { + "detail": "Nie udało się 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": "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": "Aktualizuj {item}", + "editAction": "Edytuj {item}", + "successMessage": { + "detail": "Zaktualizowano {item}" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować {item}" + } + }, + "modelPurpose": { + "text": "Tekst", + "tools": "Narzędzia", + "vision": "Wizja", + "coding": "Kodowanie", + "embedding": "Osadzenia", + "streaming": "Strumieniowanie", + "image": "Obraz", + "thinking": "Myślenie" + }, + "editModel": { + "inputLabels": { + "label": "Etykieta", + "purpose": "Przeznaczenie" + } + }, + "environment": { + "selectPlaceholder": "@:select środowisko", + "new": "Nowe środowisko", + "title": "Środowisko | Środowiska", + "empty": { + "description": "Dodaj nowe środowiska, aby rozpocząć." + }, + "save": { + "successMessage": { + "detail": "@:environment.title zostało zapisane" + }, + "errorMessage": { + "detail": "Nie udało się zapisać środowiska" + } + }, + "delete": { + "title": "@:delete środowisko | Usuń środowisko", + "selected": "@:delete zaznaczone środowisko | Usuń zaznaczone środowiska", + "deleteConfirmation": { + "header": "@:delete środowisko", + "description": "Czy na pewno chcesz usunąć {environmentName}? | Czy na pewno chcesz usunąć {count} środowiska? | Czy na pewno chcesz usunąć {count} środowisk?" + }, + "successMessage": { + "detail": "@:environment.title zostało usunięte | @:environment.title zostały usunięte" + }, + "errorMessage": { + "detail": "Nie udało się usunąć środowiska | Nie udało się usunąć środowisk" + } + }, + "backup": { + "title": "Utwórz kopię zapasową środowiska", + "successMessage": { + "detail": "Utworzono kopię zapasową środowiska" + }, + "errorMessage": { + "detail": "Nie udało się utworzyć kopii zapasowej środowiska" + } + }, + "restore": { + "title": "Przywróć środowisko", + "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 zostało przywrócone" + }, + "errorMessage": { + "detail": "Nie udało się przywrócić środowiska" + } + }, + "quickSelect": { + "title": "Szybki wybór zmiennej środowiskowej", + "selectPlaceholder": "Wyszukaj lub wybierz zmienną, aby skopiować ją do schowka" + } + }, + "makeActive": { + "title": "Ustaw jako aktywne: {itemType}", + "isActive": "Aktywne: {itemType}", + "successMessage": { + "detail": "Ustawiono {itemName} jako aktywne: {itemType}" + }, + "errorMessage": { + "detail": "Nie udało się ustawić {itemName} jako aktywne: {itemType}" + } + }, + "moveItem": { + "action": "Przenieś {item}", + "moveLocation": "Przenieś {count} {sourceType} do {item}", + "confirmation": { + "message": "Czy na pewno chcesz przenieść zaznaczone {item}?" + }, + "successMessage": { + "detail": "Przeniesiono {item} | Przeniesiono {item}" + }, + "errorMessage": { + "detail": "Nie udało się przenieść {item}" + }, + "errrorMessage": { + "detail": "Nie udało się przenieść {item}" + }, + "cannotDetermineTargetProject": "Nie udało się określić projektu docelowego.", + "cannotDetermineTargetFolder": "Nie udało się określić folderu docelowego." + }, + "deleteItem": { + "action": "Usuń {item}", + "successMessage": { + "detail": "Usunięto {item}" + }, + "errorMessage": { + "detail": "Nie udało się usunąć {item}" + } + }, + "promptsLibrary": { + "title": "Biblioteka promptów", + "newPrompt": "Nowy prompt", + "search": "Szukaj promptu", + "quickPrompt": "Szybki prompt", + "saveToQuickPrompts": "Zapisz w szybkich promptach", + "copyPrompt": "Kopiuj prompt do schowka", + "shortcutUsage": "Wpisz /, aby przeszukać bibliotekę promptów", + "setDefaultFolder": "Ustaw jako folder domyślny", + "unsetDefaultFolder": "Cofnij ustawienie folderu domyślnego", + "createRootFolder": "Nowy folder w katalogu głównym", + "folder": "@:folder", + "prompt": "@:prompt", + "deleteAllPrompt": { + "title": "Usuń wszystkie prompty i foldery", + "description": "Spowoduje to wyczyszczenie całej biblioteki promptów wraz z folderami. Po usunięciu nie da się ich odzyskać.", + "successMessage": { + "detail": "Usunięto wszystkie prompty" + } + }, + "empty": { + "title": "Brak dostępnych promptów.", + "description": "Zacznij od dodania lub zaimportowania nowego promptu{'.'} Możesz też zaimportować domyślne prompty na start." + }, + "import": { + "title": "Importuj domyślne prompty", + "successMessage": { + "detail": "Możesz teraz używać zaimportowanych promptów w swoich rozmowach." + }, + "copyMultiplePrompts": "Skopiuj prompty do schowka ({count})", + "errorMessage": { + "detail": "Nie udało się zaimportować domyślnych promptów" + }, + "copyErrorMessage": { + "detail": "Nie udało się skopiować promptu{'.'} Spróbuj ponownie." + } + }, + "folderForm": { + "updateSuccessMessage": { + "detail": "@:folder został zaktualizowany" + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować folderu" + }, + "createSuccessMessage": { + "detail": "@:folder został utworzony" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć folderu" + }, + "deleteConfirmation": { + "header": "Usuń folder", + "message": "Czy na pewno chcesz usunąć {folderName} wraz ze wszystkimi podfolderami i promptami?", + "successMessage": { + "detail": "@:folder został usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć folderu" + } + } + }, + "promptForm": { + "addTitle": "Dodaj nowy prompt", + "editTitle": "Edytuj prompt", + "promptName": "Nazwa promptu", + "promptDescription": "@:description", + "updateSuccessMessage": { + "detail": "@:prompt został zaktualizowany" + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować promptu" + }, + "createSuccessMessage": { + "detail": "@:prompt został utworzony" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć promptu" + }, + "deleteConfirmation": { + "header": "Usuń prompty ({count})", + "message": "Czy na pewno chcesz usunąć?", + "successMessage": { + "detail": "@:prompt został usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć promptu" + } + } + } + }, + "importDefault": { + "title": "Importuj domyślne {item}", + "successMessage": { + "detail": "Zaimportowano domyślne {item}" + }, + "errorMessage": { + "detail": "Nie udało się zaimportować domyślnych {item}" + } + }, + "contextIsolation": { + "isolate": "Izoluj kontekst", + "unIsolate": "Usuń izolację kontekstu", + "label": "Izolowany kontekst", + "clearAll": { + "title": "Wyczyść wszystkie izolacje kontekstu", + "successMessage": { + "detail": "Wyczyszczono wszystkie izolacje kontekstu" + } + } + }, + "responseMetrics": { + "title": "Metryki odpowiedzi", + "longPressOrAltClickToCycle": "Przytrzymaj lub kliknij z klawiszem Alt, aby przełączać metryki" + }, + "quickView": "Szybki podgląd", + "detailsView": "Widok szczegółów", + "input": "Wejście | Wejścia", + "output": "Wyjście | Wyjścia", + "think": "Myślenie", + "reasoning": { + "emptyNotice": "Model przeprowadził wewnętrzne myślenie, ale nie zwrócił podsumowania. Aby włączyć podsumowania myślenia, przypisz temu modelowi tag „Myślenie”, klikając ikonę edycji obok wyboru modelu." + }, + "service": "Usługa | Usługi", + "localAIService": "Usługa lokalnej AI", + "version": "Wersja | Wersje", + "invalidConfig": "Nieprawidłowa konfiguracja. Wprowadź poprawny obiekt JSON.", + "unsavedChanges": "Niezapisane zmiany", + "saveChanges": "Zapisz zmiany", + "day": "Dzień | Dni", + "every": "Co", + "files": "Pliki", + "file": "Plik | @:files", + "reallyDelete": "Na pewno usunąć?", + "similarity": "Podobieństwo", + "saveAsDraft": "Zapisz jako wersję roboczą", + "compose": "Napisz", + "embeddingModel": "Model osadzeń", + "document": "Dokument | Dokumenty", + "matched": "Dopasowane", + "active": "Aktywny", + "inactive": "Nieaktywny", + "folderName": "Nazwa folderu", + "addNewFolder": "Dodaj nowy folder", + "editFolder": "Edytuj folder", + "errorGeneric": "Wystąpił błąd. Spróbuj ponownie później. Sprawdź logi, aby poznać szczegóły.", + "sharedService": { + "modelsPath": { + "title": "Ścieżka modeli", + "description": "To tutaj {service} pobiera modele i ich szuka. Możesz zmienić ścieżkę, aby używać niestandardowego 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": "Zaktualizowano ścieżkę modeli" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować ścieżki modeli" + } + } + }, + "quickPromptDialog": { + "title": "Zapisz w szybkich promptach", + "description": "Nadaj promptowi systemowemu krótki tytuł. Zostanie dodany do szybkich promptów, aby ułatwić ponowne użycie.", + "nameLabel": "Nazwa szybkiego promptu", + "successMessage": "Prompt systemowy zapisano w szybkich promptach.", + "errorMessage": "Nie udało się zapisać promptu systemowego w szybkich promptach.", + "emptyPromptMessage": "Dodaj treść promptu systemowego przed zapisaniem w szybkich promptach." + }, + "serviceHealth": { + "title": "Stan usługi", + "description": "Status {service}. Masz problemy? Spróbuj ponownie uruchomić usługę lub przejrzyj logi.", + "serviceAction": { + "restartService": "Uruchom usługę ponownie", + "stopService": "Zatrzymaj usługę", + "startService": "Uruchom usługę", + "errorMessage": { + "detail": "Nie udało się wykonać akcji {action} na {service}. Sprawdź logi, aby poznać szczegóły." + }, + "restartSuccessMessage": { + "detail": "Ponownie uruchomiono {service}" + } + }, + "serviceStatus": { + "starting": "Uruchamianie", + "running": "Działa", + "stopped": "Zatrzymano" + } + }, + "serviceEndpoint": { + "title": "Endpoint usługi | Endpointy usługi", + "description": { + "base": "Lokalny endpoint dla {service}. Umożliwia łączenie się z innych aplikacji działających lokalnie na tym urządzeniu.", + "serviceIsNotRunning": "Gdy usługa zostanie uruchomiona, tutaj pojawi się jej adres.", + "serviceIsAvailableOnNetwork": "Ponieważ usługa jest dostępna w sieci, możesz też łączyć się z nią z innych urządzeń, używając sieciowego adresu URL usługi." + }, + "copyNetworkURL": "Kopiuj sieciowy adres URL" + }, + "serviceVersion": { + "title": "Wersja usługi", + "description": "Pokazuje bieżącą wersję {service}. Aby zapewnić optymalną wydajność i dostęp do nowych funkcji, dbaj o jej aktualność. W razie potrzeby dostępna jest też 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": "Zaktualizowano {service} do najnowszej wersji {version}" + }, + "errorMessage": { + "detail": "Nie udało się zaktualizować {service}. Sprawdź logi, aby poznać szczegóły." + } + }, + "removeService": { + "title": "Usuń {service}", + "confirmationHeader": "Usuń {service}", + "confirmationMessage": "Czy na pewno chcesz usunąć {service}? Spowoduje to usunięcie pliku binarnego usługi i całej jej konfiguracji. Możesz później zainstalować ją ponownie na stronie ustawień.", + "confirmationAccept": "Usuń", + "successMessage": { + "detail": "Pomyślnie usunięto {service}" + }, + "errorMessage": { + "detail": "Nie udało się usunąć {service}. Sprawdź logi, aby poznać szczegóły." + } + } + }, + "serviceConfigurations": { + "title": "Konfiguracja usługi", + "description": "Ta konfiguracja jest stosowana do {service} podczas uruchamiania. Po zapisaniu zmian {service} automatycznie uruchomi się ponownie.", + "enableNetworkAccess": { + "title": "Włącz dostęp sieciowy", + "description": "Zezwól innym urządzeniom w Twojej sieci na dostęp do {service} przez adres 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 mogła korzystać z {service}." + }, + "captureServiceLogs": { + "title": "Rejestruj logi usługi", + "description": "Włącz rejestrowanie, aby zbierać dane usługi na potrzeby debugowania. Używaj tej opcji tylko wtedy, gdy to konieczne." + }, + "unsavedChanges": { + "message": "Masz niezapisane zmiany w konfiguracji {service}. Po zapisaniu {service} uruchomi się ponownie z nową konfiguracją.", + "saveChanges": "Zapisz zmiany i uruchom usługę ponownie", + "successMessage": { + "detail": "Zapisano konfigurację {service} i uruchomiono usługę ponownie" + }, + "errorMessage": { + "detail": "Nie udało się zapisać konfiguracji {service}. Sprawdź logi, aby poznać szczegóły." + } + } + }, + "modelConfigurations": { + "title": "Konfiguracja modeli", + "description": "Ta konfiguracja jest stosowana do wszystkich modeli podczas sesji czatu." + } + }, + "keyboardShortcuts": { + "title": "Skróty klawiszowe", + "description": "Dostosuj skróty klawiszowe, aby mieć 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": "Globalny", + "saved": "Zapisano skrót", + "error": "Nie udało się zapisać skrótu", + "reset": "Zresetowano skrót", + "resetToDefault": "Resetuj do domyślnego", + "resetAll": "Resetuj wszystkie skróty", + "allReset": "Zresetowano wszystkie skróty do wartości domyślnych", + "noResults": "Nie znaleziono skrótów", + "conflictWith": "Konflikt z: {name}", + "categories": { + "all": "Wszystkie", + "general": "Ogólne", + "navigation": "Nawigacja", + "appearance": "@:settings.appearance", + "conversation": "Rozmowa" + }, + "resetAllConfirm": { + "title": "Resetuj wszystkie skróty", + "message": "Czy na pewno chcesz zresetować wszystkie skróty klawiszowe do wartości domyślnych?" + }, + "help": { + "title": "Skróty klawiszowe", + "customizeButton": "Dostosuj skróty" + }, + "contextual": "Kontekstowy", + "systemWide": "Ogólnosystemowy", + "perSplit": "Na podział", + "macOptionHint": "Skróty z klawiszem Option działają w Msty. Jeśli zamiast tego wstawiają znaki specjalne, sprawdź Ustawienia systemowe > Klawiatura > Źródła wprowadzania", + "example": { + "title": "Przykład skrótów klawiszowych", + "description": "Ten komponent pokazuje, jak rejestrować i używać skrótów klawiszowych we własnych komponentach.", + "registeredShortcuts": "Zarejestrowane skróty:", + "exampleAction1": "Przykładowa akcja 1", + "scopedAction": "Akcja z zakresem", + "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": "Uwagi dla deweloperów:", + "items": [ + "Skróty są automatycznie usuwane, gdy komponent jest odmontowywany", + "Używaj skrótów ograniczonych do komponentu, aby uniknąć konfliktów ID", + "Przypisania zależne od platformy są obsługiwane automatycznie (Cmd na Macu, Ctrl w Windows)", + "Sprawdzaj konflikty przed zarejestrowaniem skrótów, które mogą kolidować z istniejącymi", + "Skróty mogą być globalne (działają wszędzie) lub kontekstowe" + ] + } + }, + "splitRemoval": { + "selectSplitToRemove": "Wybierz podział do usunięcia", + "pressKeysToCancel": "Naciśnij", + "remove": "Usuń" + } + }, + "createNew": "Utwórz nowy", + "copy": "Kopiuj", + "miniMapActions": { + "noMessageSelectedWarning": { + "summary": "Nie zaznaczono wiadomości", + "detail": "Zaznacz 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": "Indeksuj ponownie {item}", + "successMessage": { + "detail": "Ponownie zindeksowano {item}" + }, + "errorMessage": { + "detail": "Nie udało się ponownie zindeksować {item}" + }, + "confirmationMessage": "Czy na pewno chcesz ponownie zindeksować {item}?" + }, + "recent": "Ostatnie|Ostatnie", + "recentsPinned": "Ostatnie i przypięte", + "knowledgeStack": { + "title": "Stos wiedzy | Stosy wiedzy", + "contexts": "Konteksty stosu wiedzy", + "composeProgress": { + "processing": "Przetwarzanie: {fileName}", + "composing": "Komponowanie", + "composingEllipsis": "Komponowanie…", + "files": "Pliki", + "notes": "Notatki", + "youtube": "YouTube", + "folders": "Foldery", + "overallProgress": "Ogólny postęp", + "inFlight": "W trakcie:" + }, + "itemStatus": { + "ignoredForRetrieval": "Pomijane przy wyszukiwaniu" + }, + "cloudShare": { + "importingFolder": "Importowanie folderu: {name}", + "processingCount": "Przetwarzanie stosów wiedzy: {count}" + }, + "saveEdits": { + "title": "Zapisz zmiany", + "confirmation": { + "header": "Zapisz zmiany i oznacz jako wersję roboczą", + "message": "Czy na pewno chcesz zapisać zmiany? Stos wiedzy zostanie oznaczony jako wersja robocza i nie będzie mógł być używany produkcyjnie, dopóki nie zostanie ponownie przetworzony." + } + }, + "selectFolderForImport": "Wybierz, dokąd zaimportować @:knowledgeStack.title", + "newKnowledgeStack": "Nowy @:knowledgeStack.title", + "addDescription": "Dodaj opis", + "editDescription": "Edytuj opis", + "descriptionPlaceholder": "Dodaj opis tego stosu wiedzy...", + "autoSaving": "Zapisywanie...", + "autoSaved": "Zapisano {time}", + "basicInfo": "Podstawowe informacje", + "similarityThreshold": "Próg podobieństwa", + "similarityMatch": "Dopasowanie podobieństwa", + "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, jeśli przeładujesz stronę." + }, + "empty": { + "title": "Nie wybrano żadnego stosu wiedzy", + "description": "Stos wiedzy pozwala dodawać pliki, foldery, notatki i transkrypty z YouTube, dzięki czemu można je przeszukiwać i wykorzystywać w czacie za pomocą generowania wspomaganego wyszukiwaniem (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 wykluczające pliki i foldery z przetwarzania.", + "ignoreRulesHierarchySimple": "Priorytet: lokalne .mstyignore/.gitignore → reguły folderu → domyślne ustawienia systemowe", + "ignoreRulesPlaceholder": "# Wpisz wzorce, po jednym w wierszu\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 test i podkatalogach", + "ignoreExample7": "Dopasowanie bez rozróżniania wielkości liter", + "ignoreExample8": "Pliki zaczynające się od secret-", + "insertTemplate": "Użyj szablonu", + "clearContent": "Wyczyść wszystko", + "ignoreRulesUpdated": "Reguły ignorowania zostały 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 nim zawarte zostaną usunięte. Tej operacji nie można cofnąć.", + "successMessage": { + "detail": "@:folder usunięty" + }, + "errorMessage": { + "detail": "Nie udało się usunąć folderu" + } + }, + "updateErrorMessage": { + "detail": "Nie udało się zaktualizować folderu" + }, + "createSuccessMessage": { + "detail": "@:folder utworzony" + }, + "createErrorMessage": { + "detail": "Nie udało się utworzyć folderu" + } + }, + "setDefaultFolder": "Ustaw jako folder domyślny", + "unsetDefaultFolder": "Cofnij ustawienie folderu domyślnego", + "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 nim zawarte zostaną usunięte. Tej operacji nie można cofnąć." + } + }, + "deleteAllKnowledgeStack": { + "title": "Usuń wszystkie stosy wiedzy", + "description": "Spowoduje to wyczyszczenie wszystkich stosów wiedzy{'.'} Po usunięciu nie da się ich odzyskać.", + "successMessage": { + "detail": "Usunięto wszystkie stosy wiedzy" + }, + "errorMessage": { + "detail": "Nie udało się usunąć wszystkich stosów wiedzy" + } + }, + "chunksConsole": { + "chunk": "Fragment | @:knowledgeStack.chunksConsole.chunks", + "chunks": "Fragmenty", + "title": "Konsola fragmentów", + "description": "Ta konsola pozwala zrozumieć, jak używany jest Twój stos wiedzy { title } i jakie fragmenty są wysyłane do modelu podczas czatu. Możesz też usunąć fragment, jeśli uznasz, że nie jest trafny ani przydatny.", + "queryText": "Tekst zapytania", + "similarityFilter": { + "title": "@:similarity", + "all": "Wszystkie", + "highest": "Najwyższe", + "high": "Wysokie", + "medium": "Średnie", + "low": "Niskie" + }, + "matchCount": "Liczba fragmentów", + "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 zmienić zapytanie lub ustawienia wyszukiwania.", + "noResultsAfterFilter": "Żadne wyniki nie pasują do bieżącego filtra podobieństwa. Spróbuj zmienić filtr, aby zobaczyć 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 oczyszczonej wersji z pamięci podręcznej", + "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 fragmentów", + "searchType": "Typ wyszukiwania", + "synthesizePrompt": "Syntetyzuj zapytanie", + "enablePiiScrubbing": "Włącz oczyszczanie z danych osobowych (PII)", + "fullContentContextLimit": "Maks. liczba kontekstów z pełną treścią", + "fullContentContextWarning": "Konteksty z pełną treścią mogą znacząco zwiększyć zużycie tokenów i wpłynąć na wydajność", + "manageStacks": "Zarządzaj stosami", + "onlyCompletedStacks": "Można wybrać tylko ukończone stosy" + }, + "totalFiles": "Łączna liczba plików", + "vectorDimensions": "Wymiary wektora", + "wordCount": "Liczba słów", + "readingTime": "Czas czytania", + "embeddingModel": { + "title": "Model osadzeń", + "noModel": "Nie skonfigurowano modelu osadzeń", + "modelMissing": "Nie znaleziono modelu {modelId}", + "providerRemapped": "Dostawca modelu został automatycznie przemapowany", + "changeModel": "Zmień model osadzeń zapytań", + "selectModel": "Wybierz model osadzeń zapytań", + "missingModelWarning": "Pierwotny model osadzeń tego stosu wiedzy jest niedostępny. Wybierz nowy model.", + "providerRemappedInfo": "Dostawca modelu osadzeń został automatycznie przemapowany na zgodnego dostawcę.", + "currentModel": "Bieżący model", + "noModelConfigured": "Nie skonfigurowano modelu", + "selectNewModel": "Wybierz nowy model", + "defaultLocal": "Domyślny (lokalny)" + }, + "buckets": { + "files": { + "title": "@:files", + "description": "Dodaj pliki .pdf, .csv, .md, .json, .jsonl, .xlsx, .docx, .rtf, .txt, .pptx lub dowolne inne obsługiwane typy plików.", + "dropZoneText": "Przeciągnij i upuść pliki tutaj", + "browseFiles": "Przeglądaj pliki", + "dropHint": "Upuść pliki tutaj" + }, + "folders": { + "title": "@:folders i Obsidian Vaults", + "description": "Dodaj foldery zawierające pliki. Możesz też upuszczać Obsidian Vaults.", + "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": "Zduplikowany folder", + "alreadyAdded": "Folder już dodany", + "folderAlreadyExists": "Ten folder został już dodany do tego stosu wiedzy", + "folderAlreadyAdded": "Folder '{path}' został już dodany", + "folderProcessed": "Folder przetworzony", + "filesAdded": "Pomyślnie dodano pliki: {count}", + "onlyFoldersAllowed": "Tutaj można dodawać tylko foldery. Wybierz folder zamiast pojedynczych plików.", + "selectFolder": "Wybierz folder", + "useDirectoryPicker": "W trybie przeglądarkowym użyj przycisku Przeglądaj, aby wybrać folder", + "processed": "Przetworzono", + "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ę wczytać folderu", + "removed": "Folder usunięty", + "folderRemoved": "'{name}' został usunięty ze stosu wiedzy", + "removeError": "Nie udało się usunąć folderu", + "ignored": "Ignorowany", + "loading": "Wczytywanie...", + "loadingContents": "Wczytywanie 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": "1 element | {count} elementy | {count} elementów", + "hiddenItemCount": "1 ukryty element | {count} ukryte elementy | {count} ukrytych elementów" + }, + "obsidianVaults": { + "title": "Obsidian Vaults", + "description": "Dodaj Obsidian Vaults do swojego stosu wiedzy. Msty zindeksuje wszystkie notatki w vaulcie.", + "dropZoneText": "Przeciągnij i upuść Obsidian Vaults tutaj", + "browseVaults": "Przeglądaj Obsidian Vaults" + }, + "notes": { + "title": "Notatki", + "description": "Dodaj własne notatki do stosu wiedzy. Notatki zostaną podzielone na fragmenty i osadzone na potrzeby wyszukiwania semantycznego.", + "addNote": "Dodaj notatkę", + "titlePlaceholder": "Wpisz tytuł notatki...", + "contentPlaceholder": "Wpisz treść notatki...", + "empty": "Nie dodano jeszcze notatek. Kliknij 'Dodaj notatkę', aby rozpocząć.", + "unsaved": "Jeszcze nie zapisano" + }, + "youTubeLinks": { + "title": "Linki YouTube", + "description": "Dodaj linki do filmów YouTube, aby zindeksować ich transkrypty. Msty pobierze transkrypty i umożliwi ich przeszukiwanie.", + "dropZoneText": "Przeciągnij i upuść linki YouTube tutaj lub wklej je poniżej", + "inputPlaceholder": "Wklej tutaj adresy URL YouTube (rozdzielone spacją lub przecinkiem)...", + "inputPlaceholderWithDetected": "Wklej tutaj adresy URL YouTube (wykryto 1) | Wklej tutaj adresy URL YouTube (wykryto {count}) | Wklej tutaj adresy URL YouTube (wykryto {count})", + "autoDetection": "Automatycznie pobieraj wykryte adresy URL", + "detectedCount": "Wykryto 1 adres URL | Wykryto {count} adresy URL | Wykryto {count} adresów URL", + "detectedUnpulledUrls": "Wykryto 1 adres URL YouTube, którego jeszcze nie pobrano | Wykryto {count} adresy URL YouTube, których jeszcze nie pobrano | Wykryto {count} adresów URL YouTube, których jeszcze nie pobrano" + } + }, + "itemActions": { + "markForReprocessing": "Oznacz do ponownego przetworzenia", + "lockTemporary": "Zablokuj tymczasowo", + "lockPermanent": "Zablokuj na stałe", + "unlock": "Odblokuj", + "ignoreRetrieval": "Pomijaj przy wyszukiwaniu", + "unignoreRetrieval": "Uwzględniaj przy wyszukiwaniu", + "moreActions": "Więcej akcji" + }, + "loadMode": { + "title": "Tryb wczytywania", + "dialogTitle": "Wybierz tryb wczytywania", + "distribution": "Rozkład", + "dialogDescription": "Wybierz, jak ten plik ma być wczytywany podczas komponowania stosu wiedzy.", + "staticFiles": "Pliki statyczne", + "dynamicFiles": "Pliki dynamiczne", + "syncFiles": "Pliki synchronizowane", + "totalFiles": "Łączna liczba plików", + "specialModes": "Tryby specjalne", + "specialModesRatio": "Udział trybów specjalnych", + "static": { + "label": "Tryb statyczny", + "description": "Używa wersji z pamięci podręcznej z chwili dodania pliku. Szybki i przewidywalny, ale nie odzwierciedla ostatnich zmian.", + "shortDescription": "Treść z pamięci podręcznej z pierwszego indeksowania", + "badge": "Domyślny" + }, + "dynamic": { + "label": "Tryb dynamiczny", + "description": "Wczytuje najnowszą treść pliku przy każdym komponowaniu. Nieco wolniejszy, ale zawsze aktualny.", + "shortDescription": "Świeża treść wczytywana przy każdym komponowaniu", + "badge": "Zalecany" + }, + "sync": { + "label": "Tryb synchronizacji", + "description": "Obserwuje zmiany w plikach i automatycznie komponuje ponownie. Najlepszy do małych, często aktualizowanych plików.", + "shortDescription": "Automatycznie komponuje ponownie po zmianie plików", + "badge": "Kosztowny" + } + }, + "syncMode": { + "start": "Uruchom tryb synchronizacji", + "pause": "Wstrzymaj tryb synchronizacji", + "pauseAll": "Wstrzymaj wszystkie", + "started": "Tryb synchronizacji uruchomiony", + "startedDetail": "Obserwowanie zmian plików dla {name}", + "stopped": "Tryb synchronizacji wstrzymany", + "stoppedDetail": "Obserwowanie plików zostało wstrzymane", + "startFailed": "Nie udało się uruchomić trybu synchronizacji", + "startFailedDetail": "Upewnij się, że stos wiedzy ma pliki oznaczone do trybu synchronizacji", + "allPaused": "Wszystkie tryby synchronizacji wstrzymane", + "allPausedDetail": "Obserwowanie plików zostało zatrzymane dla wszystkich stosów wiedzy", + "active": "1 aktywny | {count} aktywne | {count} aktywnych", + "activeTitle": "Aktywne tryby synchronizacji", + "filesWatching": "1 plik | {count} pliki | {count} plików", + "filesCount": "1 plik | {count} pliki | {count} plików", + "startedTime": "Uruchomiono {time}", + "totalStats": "{stacks} stos, pliki: {files} | stosy: {stacks}, pliki: {files}", + "hoursAgo": "{hours} godz. temu", + "daysAgo": "{days} dn. temu" + }, + "analytics": { + "title": "Analityka i spostrzeżenia", + "lastComposed": "Ostatnio skomponowano", + "sections": "Sekcje analityki", + "performanceTimings": "Pomiary czasu", + "summaryStatistics": "Statystyki podsumowujące", + "contentBreakdown": "Podział treści", + "querySettings": "Ustawienia zapytań", + "readingStatistics": "Statystyki czytania", + "noAnalyticsAvailable": "Brak danych analitycznych", + "noAnalyticsDescription": "Analityka będzie dostępna po skomponowaniu tego stosu wiedzy.", + "noSectionsSelected": "Nie wybrano sekcji analityki", + "noSectionsSelectedDescription": "Wybierz powyżej co najmniej jedną sekcję analityki, aby zobaczyć spostrzeżenia dotyczące Twojego stosu wiedzy.", + "selectAllSections": "Wybierz wszystkie sekcje", + "timings": { + "loadingItems": "Wczytywanie elementów", + "splittingChunks": "Dzielenie na fragmenty", + "embeddingChunks": "Osadzanie fragmentów", + "composingStack": "Komponowanie stosu", + "totalTime": "Łączny czas", + "parallelNote": "Niektóre operacje mogą przebiegać równolegle, więc poszczególne czasy mogą nie sumować się do czasu łącznego", + "fileReading": "Odczyt plików", + "databaseWrite": "Zapis do bazy danych" + }, + "stats": { + "numberOfItems": "Liczba elementów", + "totalChunks": "@:knowledgeStack.chunksConsole.chunks łącznie", + "availableChunks": "Dostępne fragmenty", + "skippedChunks": "Pominięte fragmenty", + "wordCount": "Liczba słów", + "characterCount": "Liczba znaków", + "readingTime": "Czas czytania" + }, + "ignoredItems": "Ignorowane elementy", + "ignoredForRetrieval": "Ignorowane przy pobieraniu", + "ignoredItemsDescription": "Te elementy są wykluczone z operacji wyszukiwania i pobierania", + "ignoredPercentage": "Odsetek ignorowanych elementów", + "ofTotal": "z {total}", + "files": "Pliki", + "notes": "Notatki", + "youTubeLinks": "Filmy YouTube", + "noIgnoredItems": "Brak ignorowanych elementów", + "allItemsIncluded": "Wszystkie elementy tego stosu wiedzy są uwzględniane w wyszukiwaniu i pobieraniu", + "recommendation": "Zalecenie", + "contentTypes": { + "files": "PLIKI", + "obsidianVaults": "OBSIDIAN VAULTS", + "folders": "FOLDERY", + "notes": "NOTATKI", + "youTubeLinks": "LINKI YOUTUBE" + }, + "piiScrubbing": { + "title": "Czyszczenie PII", + "totalChunks": "@:knowledgeStack.chunksConsole.chunks łącznie", + "scrubbedChunks": "Oczyszczone fragmenty", + "cachedChunks": "Zbuforowane fragmenty", + "coverage": "Pokrycie", + "progress": "Postęp czyszczenia", + "loadAnalytics": "Wczytaj analitykę", + "failedToLoadAnalytics": "Nie udało się wczytać danych analitycznych PII", + "analyticsNotLoaded": "Nie wczytano analityki PII", + "clickToViewAnalytics": "Kliknij „Wczytaj analitykę”, aby zobaczyć statystyki czyszczenia PII", + "scoreTooltip": "Ten wynik odzwierciedla, jak kompleksowo czyszczenie PII jest stosowane w Twoim stosie wiedzy. Wyższy wynik oznacza, że więcej fragmentów przetworzono pod kątem usunięcia PII.", + "optionalDescription": "Czyszczenie PII jest opcjonalne. Włącz je w ustawieniach zapytań tylko wtedy, gdy Twoje treści zawierają wrażliwe dane osobowe.", + "protectionDescription": "Mierzy, jak dobrze wrażliwe informacje są chronione w Twoim stosie wiedzy", + "status": { + "notEnabled": "Wyłączone", + "wellProtected": "Dobrze chronione", + "partiallyProtected": "Częściowo chronione", + "limitedProtection": "Ograniczona ochrona", + "minimalProtection": "Minimalna ochrona" + }, + "insights": { + "excellentPrivacy": "Znakomita ochrona prywatności — niemal cała treść zabezpieczona", + "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": "Czyszczenie PII nie jest włączone. To zupełnie w porządku, jeśli Twoje treści nie zawierają wrażliwych danych osobowych.", + "whenToEnable": "Rozważ włączenie czyszczenia PII tylko wtedy, gdy Twój stos wiedzy zawiera imiona i nazwiska, adresy, numery telefonów, adresy e-mail lub inne dane osobowe.", + "significantReduction": "Znaczna redukcja treści ({percentage}%) — znaleziono dużo PII", + "moderateReduction": "Umiarkowana redukcja treści ({percentage}%) — usunięto część PII", + "minimalReduction": "Minimalna redukcja treści ({percentage}%) — wykryto niewiele PII", + "noContentChange": "Brak zmiany rozmiaru treści — nie wykryto ani nie usunięto PII", + "allChunksProcessed": "Wszystkie fragmenty przetworzono pomyślnie", + "nearlyAllProcessed": "Niemal wszystkie fragmenty przetworzono pomyślnie", + "mostProcessed": "Większość fragmentów przetworzono — niektóre mogą wymagać uwagi", + "incompleteProcessing": "Niepełne przetwarzanie — sprawdź konfigurację czyszczenia PII", + "largeKnowledgeBase": "Duża baza wiedzy — rozważ zwiększenie pokrycia wykrywania PII", + "manyUnprocessed": "Wiele nieprzetworzonych fragmentów — przejrzyj ustawienia czyszczenia PII", + "optionalFeature": "Czyszczenie PII jest opcjonalne. Włącz je w ustawieniach zapytań, jeśli Twoje treści zawierają wrażliwe informacje, takie jak imiona i nazwiska, adresy e-mail czy numery telefonów.", + "privacyOption": "Czyszczenie PII pomaga chronić wrażliwe informacje. Jest opcjonalne i w razie potrzeby można je włączyć w ustawieniach zapytań." + }, + "labels": { + "securityStatus": "Stan bezpieczeństwa", + "privacyStatus": "Stan prywatności", + "whenToEnable": "Kiedy włączyć", + "contentImpact": "Wpływ na treść", + "processingEfficiency": "Wydajność przetwarzania", + "scaleRecommendation": "Zalecenie dotyczące skali", + "coverageRecommendation": "Zalecenie dotyczące pokrycia", + "optionalFeature": "Funkcja opcjonalna", + "privacyOption": "Opcja prywatności" + } + }, + "querySettingsDetails": { + "searchType": "Typ wyszukiwania", + "numberOfChunks": "Liczba fragmentów", + "promptPrefix": "Prefiks promptu" + }, + "privacyOptimizationScore": "Wynik optymalizacji prywatności", + "piiProtectionLevel": "Poziom ochrony PII", + "piiScrubbingStatus": "Stan czyszczenia PII", + "unscrubbedChunks": "Nieoczyszczone fragmenty", + "originalSize": "Rozmiar pierwotny", + "processedSize": "Rozmiar po przetworzeniu", + "sizeReduction": "Redukcja rozmiaru", + "privacyInsights": "Analizy prywatności", + "dataModified": "Dane zostały zmodyfikowane", + "showOutdatedData": "Mimo to pokaż nieaktualne dane", + "contentDistribution": "Rozkład treści", + "contentContribution": "{label} stanowią {percentage}% wszystkich fragmentów", + "processingIssue": "Problem z przetwarzaniem", + "lowEfficiency": "{label} mają niską wydajność ({efficiency}%)", + "dataQualityIssue": "Problem z jakością danych", + "highSkipRates": "Liczba typów treści z wysokim odsetkiem pominięć: {count}", + "contentDiversity": "Różnorodność treści", + "singleContentType": "Jeden typ treści — rozważ zróżnicowanie źródeł", + "excellentDiversity": "Znakomita różnorodność treści z wielu typów źródeł", + "optimizationTip": "Wskazówka optymalizacyjna", + "reduceChunkSize": "Zmniejsz rozmiar fragmentu do 800–1200 znaków, aby uzyskać lepszą granulację treści", + "increaseChunkSize": "Zwiększ rozmiar fragmentu do 1500–2000 znaków, aby uzyskać lepszą wydajność", + "embeddingThroughput": "Przepustowość osadzania", + "chunksPerSecond": "{rate} fragmentów/s ({time} ms na fragment)", + "searchStrategy": "Strategia wyszukiwania", + "balancedSearch": "Zrównoważone podejście łączące wyszukiwanie słów kluczowych i semantyczne", + "semanticSearch": "Wyszukiwanie semantyczne oparte na AI — najlepsze do zapytań koncepcyjnych", + "keywordSearch": "Tradycyjne wyszukiwanie słów kluczowych — najlepsze do dokładnych terminów", + "retrievalVolume": "Wolumen pobierania", + "lowChunkCount": "Bardzo mała liczba fragmentów może pomijać istotne informacje", + "highChunkCount": "Duża liczba fragmentów może wprowadzać szum i spowalniać odpowiedzi", + "optimalChunkCount": "Optymalna liczba fragmentów dla zrównoważonego pobierania", + "contentFiltering": "Filtrowanie treści", + "relaxedFiltering": "Łagodne filtrowanie — może obejmować luźno powiązane treści", + "strictFiltering": "Ścisłe filtrowanie — mocno ukierunkowane wyniki", + "moderateFiltering": "Zrównoważone filtrowanie trafnych treści", + "guidedContext": "Kontekst kierowany", + "customPromptPrefix": "Niestandardowy prefiks promptu pokieruje interpretacją zapytania", + "lockIndicator": "Wskaźnik blokady", + "allItemsCanBeReprocessed": "Wszystkie elementy można przetworzyć ponownie", + "itemsPartiallyLocked": "{percentage}% elementów jest zablokowanych", + "mostItemsLocked": "Większość elementów jest zablokowana — ograniczona możliwość ponownego przetwarzania", + "privacySecurity": "Prywatność i bezpieczeństwo", + "privacyProtectionEnabled": "Ochrona prywatności włączona dla danych wrażliwych", + "noPiiScrubbing": "Brak czyszczenia PII — upewnij się, że treści nie są wrażliwe", + "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 wysokiej jakości wyników", + "highLockRate": "Wysoki odsetek blokad", + "lockedItemsPercentage": "{percentage}% elementów jest zablokowanych i nie zostanie ponownie przetworzonych", + "unlockRecommendation": "Rozważ odblokowanie tymczasowo zablokowanych elementów, jeśli wymagają aktualizacji", + "overHalfLocked": "Ponad 50% elementów jest zablokowanych. Może to znacznie ograniczyć zdolność bazy wiedzy do pozostawania aktualną.", + "lockStatus": "Stan blokady", + "totalItems": "Elementy łącznie", + "unlocked": "Odblokowane", + "temporarilyLocked": "Tymczasowo zablokowane", + "permanentlyLocked": "Trwale zablokowane", + "lockStatusByContentType": "Stan blokady według typu treści", + "tempLocked": "Tymcz. zablokowane", + "permLocked": "Trw. zablokowane", + "lockStatusInsights": "@:insights dotyczące stanu blokad", + "processingEfficiency": "Wydajność przetwarzania", + "contentInsights": "@:insights dotyczące treści", + "compositionOptimizationScore": "Wynik optymalizacji kompozycji", + "compositionInsights": "@:insights dotyczące kompozycji", + "performanceInsights": "@:insights dotyczące wydajności", + "processingPhaseDetails": "Szczegóły faz przetwarzania", + "loadingItems": "Wczytywanie elementów", + "splittingChunks": "Dzielenie na fragmenty", + "embeddingChunks": "Osadzanie fragmentów", + "fileReading": "Odczyt plików", + "databaseWrite": "Zapis do bazy danych", + "composingStack": "Komponowanie stosu", + "totalProcessingTime": "Łączny czas przetwarzania", + "totalLockedItems": "Zablokowane elementy łącznie", + "efficiency": "Wydajność", + "loadMode": { + "title": "Analityka trybu wczytywania", + "description": "Sposób wczytywania plików w Twoim stosie wiedzy", + "distribution": "Rozkład trybów wczytywania", + "totalFiles": "Pliki łącznie", + "staticFiles": "Tryb statyczny", + "dynamicFiles": "Tryb dynamiczny", + "syncFiles": "Tryb synchronizacji", + "specialModes": "Tryby specjalne", + "specialModesRatio": "% trybów specjalnych", + "status": "Stan", + "active": "Aktywny", + "inactive": "Nieaktywny", + "breakdown": "Podział wizualny", + "noFiles": "Brak plików w tym stosie wiedzy", + "desktopOnly": "Opcje trybu wczytywania są dostępne tylko w aplikacji desktopowej", + "notAvailable": "Opcje trybu wczytywania są dostępne tylko w aplikacji desktopowej", + "noSpecialModes": "Wszystkie pliki używają trybu statycznego. Włącz tryb dynamiczny lub tryb synchronizacji, aby pliki korzystały z najnowszej treści.", + "syncActive": "Tryb synchronizacji aktywny", + "syncActiveDetails": "Obserwowanie {files} • Rozpoczęto {time}", + "staticDescription": "Zbuforowana treść wczytana z pierwotnego indeksowania", + "dynamicDescription": "Świeża treść wczytywana przy każdym komponowaniu", + "syncDescription": "Automatycznie komponuje ponownie przy zmianie plików", + "staticBadge": "Domyślny", + "dynamicBadge": "Świeży", + "syncBadge": "Na żywo", + "insights": { + "highSyncCount": { + "title": "Dużo plików w trybie synchronizacji", + "description": "Liczba plików w trybie synchronizacji: {count}", + "recommendation": "Rozważ użycie trybu dynamicznego dla rzadziej aktualizowanych plików, aby zmniejszyć zużycie zasobów" + }, + "syncEnabled": { + "title": "Tryb synchronizacji włączony", + "description": "Liczba plików aktualizowanych automatycznie po zmianie: {count}" + }, + "highDynamicUsage": { + "title": "Częste użycie trybu dynamicznego", + "description": "{percentage}% plików używa trybu dynamicznego", + "recommendation": "Tryb statyczny może wystarczyć dla plików, które rzadko się zmieniają" + }, + "dynamicEnabled": { + "title": "Tryb dynamiczny aktywny", + "description": "Liczba plików wczytujących świeżą treść przy każdym komponowaniu: {count}" + }, + "staticOnly": { + "title": "Tylko tryb statyczny", + "description": "Wszystkie pliki używają zbuforowanej treści z pierwotnego indeksowania", + "recommendation": "Włącz tryb dynamiczny lub tryb synchronizacji dla często aktualizowanych plików, aby zapewnić świeżą treść" + }, + "mixedModes": { + "title": "Mieszane tryby wczytywania", + "description": "{percentage}% plików używa specjalnych trybów wczytywania" + } + } + } + }, + "composeSettings": { + "title": "Ustawienia komponowania", + "chunkOverlapping": "Nakładanie fragmentów", + "embeddingModel": { + "title": "Model osadzeń", + "warning": "Zmiana modelu osadzeń będzie wymagać ponownego skomponowania całego stosu wiedzy, a i tak istnieje ryzyko, że ponowna kompozycja się nie powiedzie.", + "learnMore": "Dowiedz się więcej o zgodności modeli osadzeń", + "defaultPlaceholder": "Domyślny (lokalny)" + }, + "placeholders": { + "selectEmbeddingModel": "Wybierz model osadzeń", + "selectChunkOverlapping": "Wybierz nakładanie fragmentów", + "selectChunkSize": "Wybierz rozmiar fragmentu" + }, + "chunkingMethod": { + "title": "Metoda dzielenia na fragmenty", + "recursiveCharacter": "Rekurencyjnie po znakach", + "sentence": "Po zdaniach", + "description": "Wybierz, jak dokumenty mają być dzielone na mniejsze fragmenty dla lepszego wyszukiwania i pobierania." + }, + "overlapping": { + "title": "Nakładanie", + "description": "Wybierz, jak duże ma być nakładanie się fragmentów. Większe nakładanie może poprawić kontekst, ale zwiększa zużycie tokenów." + }, + "chunkSize": { + "title": "Rozmiar fragmentu", + "description": "Ustaw maksymalny rozmiar każdego fragmentu w znakach. Mniejsze fragmenty mogą poprawić trafność wyszukiwania, ale zwiększają zużycie tokenów." + }, + "chunkSizesToIgnore": { + "title": "Ignorowane rozmiary fragmentów", + "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 zapytań", + "numberOfChunks": "Liczba fragmentów", + "promptPrefix": "Prefiks promptu", + "similarityThreshold": { + "low": "Niski", + "medium": "Średni", + "high": "Wysoki", + "highest": "Najwyższy" + }, + "searchTypes": { + "semantic": "Wyszukiwanie semantyczne", + "keyword": "Wyszukiwanie słów kluczowych", + "hybrid": "Wyszukiwanie hybrydowe" + }, + "modes": { + "push": "Tryb push", + "pull": "Tryb pull" + }, + "chunks": { + "title": "Kontekst stosu wiedzy", + "loadError": "Nie udało się wczytać 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 fragmencie", + "knowledgeStack": "Stos wiedzy", + "chunks": "fragmenty", + "maxChunks": "Maks. liczba fragmentów" + }, + "retrievalMode": { + "title": "Tryb pobierania fragmentów", + "description": "Wybierz między trybem push, w którym fragmenty są pobierane z wyprzedzeniem, a trybem pull, w którym model może bezpośrednio odpytywać stosy wiedzy" + } + }, + "chunks": { + "coverage": "Pokrycie", + "skippedChunks": "Pominięte fragmenty", + "availableChunks": "Dostępne fragmenty", + "numberOfChunks": "Liczba fragmentów", + "promptPrefix": "Prefiks promptu", + "chunkingMethod": "Metoda dzielenia na fragmenty", + "chunkSize": "Rozmiar fragmentu", + "chunkOverlap": "Nakładanie fragmentów", + "totalChunks": "Łączna liczba fragmentów", + "cachedChunks": "@:knowledgeStack.chunksConsole.chunks w pamięci podręcznej", + "scrubbedChunks": "Oczyszczone fragmenty", + "loadError": "Nie udało się wczytać fragmentów stosu wiedzy. Spróbuj ponownie.", + "searchSettings": "Ustawienia wyszukiwania", + "searchType": "Typ wyszukiwania", + "maxChunks": "Maks. liczba fragmentów", + "searchQuery": "Zapytanie wyszukiwania", + "synthesizedQuery": "Zsyntetyzowane zapytanie", + "chunks": "fragment | fragmenty", + "source": "Źródło", + "content": "Treść", + "viewFull": "Pokaż pełną treść", + "fullContent": "Pełna treść fragmentu", + "chunkInfo": "Informacje o fragmencie", + "knowledgeStack": "Stos wiedzy", + "scrubbed": "Oczyszczone", + "original": "Oryginał", + "chunkId": "ID fragmentu", + "piiStatus": "Status PII", + "piiScrubbed": "Oczyszczono z PII", + "piiUnscrubbed": "Nie oczyszczono z PII", + "tooltip": { + "scrubbed": "Treść została oczyszczona z danych osobowych (PII)", + "cached": "Użyto oczyszczonej wersji z pamięci podręcznej", + "fresh": "Świeżo oczyszczona treść", + "original": "Oryginalna treść bez czyszczenia PII" + }, + "queryAnalysis": "Analiza zapytania", + "fullContentRetrieved": "Aktywny kontekst pełnej treści", + "documentsRetrieved": "Pobrane dokumenty", + "contentContext": "Kontekst treści", + "keywords": "Słowa kluczowe", + "fullDoc": "Pełny dok.", + "type": "Typ", + "fullDocument": "Pełny dokument" + }, + "chunksVisualizer": { + "title": "Wizualizator fragmentów", + "description": "Zobacz, jak dokumenty są dzielone na fragmenty", + "openStitcher": "Otwórz wizualizator", + "viewStitcher": "Pokaż wizualizator", + "stitchableFiles": "Dostępne pliki", + "loading": "Wczytywanie plików...", + "noFiles": "Nie znaleziono plików", + "selectFile": "Wybierz plik", + "selectFileDescription": "Wybierz plik z listy po lewej, aby zwizualizować jego fragmenty i treść", + "mimeType": "Typ MIME", + "chunks": "@:knowledgeStack.chunksConsole.chunks", + "overlaps": "Nakładania", + "stitchedSize": "Rozmiar po scaleniu", + "showOverlaps": "Pokaż nakładania", + "hideOverlaps": "Ukryj nakładania", + "showChunks": "Pokaż fragmenty", + "showStitched": "Pokaż scalone", + "copyContent": "Kopiuj treść", + "stitchedContent": "Scalona treść", + "scrubbedChunks": "Oczyszczone fragmenty", + "unScrubbedChunks": "Nieoczyszczone fragmenty", + "overlapRemoved": "Nakładania zostały usunięte, aby odtworzyć czysty tekst", + "chunkNumber": "@:knowledgeStack.chunksConsole.chunk {number}", + "overlapPrevious": "Nakładanie z poprzednim", + "overlapNext": "Nakładanie z następnym", + "overlapWithPrevious": "Ten tekst nakłada się na poprzedni fragment", + "overlapWithNext": "Ten tekst nakłada się na następny fragment", + "chunkIndices": "Pozycje znaków w pliku", + "coreIndices": "Główna treść bez nakładań", + "chunkCount": "Fragmenty: {count}", + "showOriginal": "Pokaż oryginał", + "showScrubbed": "Pokaż oczyszczone", + "showScrubbedOnly": "Pokaż tylko oczyszczone", + "showAllChunks": "Pokaż wszystkie fragmenty", + "tooltip": { + "scrubbed": "Treść została oczyszczona z danych osobowych (PII)", + "cached": "Użyto oczyszczonej wersji z pamięci podręcznej", + "fresh": "Świeżo oczyszczona treść" + }, + "itemsPerPage": "Na stronę", + "showingChunks": "Fragmenty {start}-{end} z {total}", + "loadingChunks": "Wczytywanie fragmentów...", + "noItems": "Nie znaleziono elementów", + "selectItem": "Wybierz element", + "selectItemDescription": "Wybierz plik lub notatkę z listy po lewej, aby zwizualizować fragmenty i treść", + "openConsole": "Otwórz konsolę", + "selectedChunks": "Zaznaczone fragmenty: {count}", + "deleteSelected": "Usuń zaznaczone", + "clearSelection": "Wyczyść zaznaczenie", + "confirmDelete": "Potwierdź usunięcie", + "confirmDeleteMessage": "Czy na pewno chcesz usunąć zaznaczone fragmenty ({count})? Tej operacji nie można cofnąć.", + "deleteSuccess": "@:knowledgeStack.chunksConsole.chunks usunięte", + "deleteSuccessDetail": "Pomyślnie usunięto fragmenty ({count})", + "deletedChunksCount": "Pomyślnie usunięto fragmenty: {count}", + "deleteError": "Nie udało się usunąć" + }, + "export": { + "forceCompose": "Wymuś komponowanie", + "overallProgress": "Ogólny postęp", + "itemsExported": "Wyeksportowane elementy: {count}", + "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": "Twoje zmiany w stosie wiedzy zostały zapisane. Aby je zastosować, musisz skomponować go ponownie.", + "savedAndProcessing": "Stos wiedzy zapisany, przetwarzanie rozpoczęte", + "cannotForceCompose": "Nie można wymusić komponowania: najpierw zapisz stos wiedzy", + "failedToForceCompose": "Nie udało się wymusić komponowania stosu wiedzy", + "forceComposeStarted": "Rozpoczęto wymuszone komponowanie — wszystkie elementy zostaną przetworzone ponownie", + "failedToUpdateQuerySettings": "Nie udało się zaktualizować ustawień zapytań", + "querySettingsUpdated": "Ustawienia zapytań zaktualizowane", + "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 w stosie wiedzy {title}", + "composeError": "Nie udało się skomponować stosu wiedzy {title}", + "downloadImportNotAvailableInWeb": "Importowanie z adresu URL jest dostępne tylko w aplikacji desktopowej", + "deleteSuccess": "Usunięto stosy wiedzy ({count})!", + "createError": "Nie udało się utworzyć stosu wiedzy", + "saveEditsError": "Nie udało się zapisać zmian w stosie wiedzy", + "folderAdded": "Folder '{name}' dodany do stosu wiedzy" + }, + "folderLockedTemporary": "Folder '{name}' tymczasowo zablokowany", + "folderLockedPermanent": "Folder '{name}' trwale zablokowany", + "lockFailed": "Nie udało się zablokować folderu", + "folderUnlocked": "Folder '{name}' odblokowany", + "unlockFailed": "Nie udało się odblokować folderu", + "unlock": "Odblokuj", + "status": { + "misc": "Różne", + "path": "Ścieżka: {path}", + "name": "Nazwa: {name}", + "unknown": "Nieznany", + "original": "Oryginał", + "loadingPiiAnalytics": "Wczytywanie analityki PII...", + "allItemsUnlocked": "Wszystkie elementy są odblokowane i w razie potrzeby można je przetworzyć ponownie." + }, + "abortProcessing": "Przerwij przetwarzanie", + "errors": { + "processingFailed": "Przetwarzanie nie powiodło się", + "errorMessage": "Komunikat błędu", + "occurredAt": "Czas wystąpienia", + "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 skopiowane do schowka", + "clickToSeeDetails": "Kliknij, aby zobaczyć szczegóły błędu", + "fileIsNull": "Plik ma wartość null", + "checkingPathError": "Nie udało się sprawdzić, czy ścieżka jest katalogiem", + "processingFolderError": "Nie udało się przetworzyć folderu", + "lockFolderTemporaryFailed": "Nie udało się tymczasowo zablokować folderu", + "lockFolderPermanentFailed": "Nie udało się trwale zablokować folderu", + "unlockFolderFailed": "Nie udało się odblokować folderu", + "status": { + "completed": "Status: ukończono", + "processing": "Status: przetwarzanie", + "pending": "Status: oczekuje", + "draft": "Status: wersja robocza", + "needsReprocessing": "Status: wymaga ponownego przetworzenia", + "error": "Status: błąd", + "lockedTemporary": "Status: tymczasowo zablokowany", + "lockedPermanent": "Status: trwale zablokowany", + "aborted": "Status: przerwano", + "unknown": "Status: nieznany" + } + } + }, + "features": { + "showcase": { + "title": "Odblokuj funkcje Aurum", + "subtitle": "Przejdź na licencję Aurum, aby korzystać z najpotężniejszych funkcji AI i zaawansowanych możliwości", + "eyebrow": "Wszystko, czego potrzebujesz", + "viewPricing": "Zobacz cennik", + "featureMatrix": "Macierz funkcji", + "activateLicense": "Aktywuj licencję", + "licenses": { + "aurum": "Aurum" + } + } + }, + "images": { + "upload": "Prześlij obraz…", + "onlySupported": "Obsługiwane są tylko pliki graficzne.", + "maxSize": "Obraz może mieć maksymalnie 1 MB." + }, + "userAvatar": { + "updated": "Zdjęcie profilowe zaktualizowane.", + "updateFailed": "Nie udało się zaktualizować zdjęcia. Spróbuj ponownie.", + "changeHint": "Kliknij, aby zmienić zdjęcie profilowe" + }, + "setting": { + "lostAndFound": { + "title": "Biuro rzeczy znalezionych", + "description": "Znajdź i odzyskaj utracone przestrzenie robocze z komputera. Skanowane i wykrywane są tylko bazy danych przestrzeni roboczych, bez załączników.", + "experimentalInfo": "Biuro rzeczy znalezionych to funkcja eksperymentalna. Przed próbą odzyskiwania zawsze rób kopie zapasowe danych przestrzeni roboczej.", + "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żąca", + "statusLinked": "Połączona", + "statusFound": "Znaleziona", + "restoreCurrentWorkspace": "Przywróć bieżącą przestrzeń roboczą", + "importAsNewWorkspace": "Importuj jako nową przestrzeń roboczą", + "restoreConfirmHeader": "Przywrócić bieżącą przestrzeń roboczą?", + "restoreConfirmMessage": "Dane aktualnie aktywnej przestrzeni roboczej zostaną zastąpione danymi z wybranego odzyskanego pliku. Tej operacji nie można cofnąć.", + "restore": "Przywróć", + "failedToImportWorkspace": "Nie udało się zaimportować przestrzeni roboczej", + "workspaceImported": "Przestrzeń robocza zaimportowana", + "workspaceImportedDetail": "Odzyskana przestrzeń robocza została zaimportowana. W razie potrzeby przełącz się na nią w zasobniku przestrzeni roboczych.", + "failedToRestoreWorkspace": "Nie udało się przywrócić przestrzeni roboczej", + "workspaceRestored": "Przestrzeń robocza przywrócona", + "workspaceRestoredDetail": "Bieżąca 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} to funkcja eksperymentalna w aktywnym rozwoju. Zgłaszaj zespołowi wszelkie problemy.", + "attachmentsManager": { + "columnHeaders": { + "name": "Nazwa", + "fileType": "Typ pliku", + "attachmentType": "Typ załącznika", + "size": "Rozmiar", + "actions": "Akcje" + }, + "actions": { + "browseExisting": "Przeglądaj istniejące załączniki", + "viewAssociations": "Pokaż powiązania", + "attach": "Załącz", + "delete": { + "title": "Usuń załącznik | Usuń załączniki", + "confirmationMessage": "Czy na pewno chcesz usunąć załącznik? Wszystkie powiązania z tym załącznikiem również zostaną usunięte. Tej operacji nie można cofnąć. | Czy na pewno chcesz usunąć załączniki? Wszystkie powiązania z tymi załącznikami również zostaną usunięte. Tej operacji 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 wg nazwy", + "filter": "Filtruj wg typu załącznika", + "title": "Menedżer załączników", + "emptyState": { + "title": "Nie znaleziono załączników", + "description": "Nie masz żadnych załączników." + }, + "associations": { + "title": "Powiązania załącznika {attachmentName}", + "search": "Szukaj wg nazwy powiązania", + "filter": "Filtruj wg powiązanego elementu", + "emptyState": { + "title": "Nie znaleziono powiązań", + "description": "Ten załącznik nie został jeszcze nigdzie użyty." + }, + "columnHeaders": { + "associationName": "Nazwa powiązania", + "associatedEntity": "Powiązany element", + "actions": "Akcje" + }, + "actions": { + "jumpTo": "Przejdź do: {entity}", + "detach": { + "action": "Odłącz", + "title": "Odłącz powiązanie", + "confirmationMessage": "Czy na pewno chcesz odłączyć powiązanie od elementu {associationEntity}? Tej operacji 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 ma przedstawiać ikona...", + "findIcon": "Znajdź ikonę", + "finding": "Szukanie..." + } +} \ No newline at end of file