From eaff2ca70dc890f41b4c4179e9d9daaa5223a6e7 Mon Sep 17 00:00:00 2001 From: Marcin Wojtczak Date: Wed, 10 Dec 2025 00:21:16 +0100 Subject: [PATCH] Added new language Polish --- web/src/components/language-switch.tsx | 1 + web/src/i18n.ts | 2 + web/src/locales/pl.json | 801 +++++++++++++++++++++++++ 3 files changed, 804 insertions(+) create mode 100644 web/src/locales/pl.json diff --git a/web/src/components/language-switch.tsx b/web/src/components/language-switch.tsx index 9c6d4cc..0c66a1b 100644 --- a/web/src/components/language-switch.tsx +++ b/web/src/components/language-switch.tsx @@ -39,6 +39,7 @@ const LANGUAGES = [ { code: 'ko', label: '한국어' }, { code: 'nl', label: 'Nederlands' }, { code: 'no', label: 'Norsk' }, + { code: 'pl', label: 'Polski' }, { code: 'pt', label: 'Português' }, { code: 'ru', label: 'Русский' }, { code: 'sv', label: 'Svenska' }, diff --git a/web/src/i18n.ts b/web/src/i18n.ts index 1a7b7d8..640bf2a 100644 --- a/web/src/i18n.ts +++ b/web/src/i18n.ts @@ -33,6 +33,7 @@ import jp from './locales/jp.json' import ko from './locales/ko.json' import nl from './locales/nl.json' import pt from './locales/pt.json' +import pl from './locales/pl.json' import ru from './locales/ru.json' import da from './locales/da.json' import sv from './locales/sv.json' @@ -66,6 +67,7 @@ i18n ko: { translation: ko }, nl: { translation: nl }, no: { translation: no }, + pl: { translation: pl }, pt: { translation: pt }, ru: { translation: ru }, sv: { translation: sv }, diff --git a/web/src/locales/pl.json b/web/src/locales/pl.json new file mode 100644 index 0000000..ac7707e --- /dev/null +++ b/web/src/locales/pl.json @@ -0,0 +1,801 @@ +{ + "common": { + "submit": "Zatwierdź", + "cancel": "Anuluj", + "save": "Zapisz", + "delete": "Usuń", + "edit": "Edytuj", + "search": "Szukaj", + "add": "Dodaj", + "remove": "Usuń", + "create": "Utwórz", + "update": "Zaktualizuj", + "confirm": "Potwierdź", + "close": "Zamknij", + "yes": "Tak", + "no": "Nie", + "ok": "OK", + "loading": "Ładowanie...", + "empty": "Pusto", + "noData": "Brak danych", + "table": { + "noResults": "Brak wyników" + }, + "failed": "błąd", + "notFound": "Nie znaleziono", + "back": "Wstecz", + "goBack": "Wróć", + "backToHome": "Wróć do początku", + "tryAgain": "Spróbuj ponownie", + "more": "Więcej", + "actions": "Akcje", + "filter": "Filtr", + "reset": "Reset", + "clear": "Wyczyść", + "error": "Błąd", + "apply": "Zastosuj", + "select": "Wybierz", + "selectAll": "Zaznacz wszystko", + "deselectAll": "Odznacz wszystko", + "all": "Wszystko", + "none": "Nic", + "showLess": "pokaż mniej", + "showMore": "pokaż więcej..." + }, + "navigation": { + "home": "Home", + "settings": "Ustawienia", + "accounts": "Konta", + "dashboard": "Panel", + "mailbox": "Poczta", + "oauth2": "OAuth2", + "accessTokens": "Tokeny", + "apiDocs": "Dokumentacja API", + "general": "Ogólne", + "auth": "Auth", + "other": "Pozostałe" + }, + "auth": { + "welcome": "Witaj w Bichon", + "username": "Nazwa", + "password": "Hasło", + "login": "Login", + "loginFailed": "Błędny login", + "invalidPassword": "Nieprawidłowe hasło, spróbuj ponownie", + "somethingWentWrong": "Coś poszło nie tak", + "sessionExpired": "Sesja wygasła", + "sessionExpiredDesc": "Twoja sesja wygasła z powodu bezczynności. Zaloguj się ponownie", + "logout": "Wyloguj", + "areYouSureYouWantToLogOut": "Czy na pewno chcesz się wylogować?", + "youWillNeedToLogInAgain": "Musisz zalogować się ponownie, aby ponownie móc korzystać." + }, + "errors": { + "pageNotFound": "Ups, nie znaleziono strony", + "pageNotFoundDesc": "Wygląda na to, że strona której szukasz nie istnieje lub została usunięta", + "somethingWentWrong": "Ups, coś poszło nie tak", + "somethingWentWrongDesc": "Za jakiś czas spróbuj ponownie.", + "internalServerError": "Błąd wewnętrzny serwera!", + "contentNotModified": "Treść nie jest modyfikowana!", + "networkError": "Błąd sieci", + "networkErrorDesc": "Problem z połączeniem z serwerem. Sprawdź połączenie z internetem i spróbuj ponownie.", + "forbidden": "Brak dostępu", + "forbiddenTitle": "Wstep wzbroniony", + "forbiddenDesc": "Nie masz wystarczających uprawnień do przeglądania tych zasobów", + "unauthorized": "Brak uprawnień", + "unauthorizedTitle": "Dostęp nieautoryzowany", + "unauthorizedDesc": "Aby uzyskać dostęp do tego zasobu, zaloguj się przy użyciu odpowiednich danych uwierzytelniających", + "maintenance": "Konserwacja", + "maintenanceTitle": "Strona jest w trakcie prac serwisowych!", + "maintenanceDesc": "Chwilowo strona jest niedostępna, ale niebawem będzie ponownie dostępna.", + "learnMore": "Dowiedz się więcej" + }, + "dashboard": { + "title": "Panel", + "mailAccounts": "Konta email", + "connected": "Podłączone", + "totalEmails": "Wszystkie wiadomości", + "syncedLocally": "Synchronizowane lokalnie", + "totalEmailSize": "Wielkość wszystkich wiadomości", + "logicalVolume": "Wielkość wolumenu", + "localDataFiles": "Lokalne pliki danych", + "actualDiskUsage": "Zajętość na dysku", + "indexSize": "Wielkość indeksu", + "tantivyIndex": "Wielkość indeksu wyszukiwania", + "dayTrend": "Trend z 30 dni", + "attachments": "Załączniki", + "topLists": "Lista TOP", + "newEmails": "Nowe wiadomości", + "messageDistribution": "Dystrybucja wiadomości", + "attachmentRatio": "Załącznik Ratio", + "attachmentRatioDesc": "{{percent}}% wiadomości ma załączniki", + "noEmailsSynced": "Żadne wiadomości nie zostały jeszcze zsynchronizowane", + "withAttachments": "Z załącznikami", + "noAttachments": "Bez załączników", + "top10Senders": "Top 10 Nadawców", + "byMessageCount": "Według ilości wiadomości", + "sender": "Nadawca", + "count": "Ilość", + "top10LargestEmails": "Top 10 największych wiadomości", + "byMessageSize": "Według rozmiaru wiadomości", + "subject": "Temat", + "size": "Rozmiar", + "noSubject": "(brak tematu)", + "top10Accounts": "Top 10 kont", + "emails": "Wiadomości", + "account": "Konto", + "noRecentActivity": "Brak aktywności", + "noSendersData": "Brak danych od Nadawcy", + "noLargeEmails": "Brak dużych wiadomości", + "noAccountData": "Brak danych konta", + "systemVersion": "Wersja systemu" + }, + "accounts": { + "title": "Konta Email", + "description": "Zarządzaj i konfiguruj konta email", + "addImap": "Dodaj IMAP", + "addNoSync": "Dodaj NoSync", + "moreAccountTypes": "Więcej typów kont", + "noAccountConfigurations": "Brak konfiguracji konta", + "noAccountConfigurationsDesc": "Nie skonfigurowano jeszcze żadnego konta, aby zacząć korzystać z funkcji dodaj pierwsze konto.", + "addConfiguration": "Dodaj konfigurację", + "name": "Login", + "email": "Email", + "status": "Status", + "type": "Typ", + "lastSync": "OStatnia synchronizacja", + "actions": "Działania", + "edit": "Edytuj", + "delete": "Usuń", + "detail": "Szczegóły", + "syncFolders": "Synchronizuj foldery", + "oauth2Tokens": "Tokeny OAuth2", + "id": "ID", + "enabled": "Aktywne", + "auth": "Auth", + "incSync": "Inc Sync", + "state": "Status", + "createdAt": "Utworzono", + "updatedAt": "Zaktualizowano", + "openMenu": "Otwórz menu", + "emailAccountRegistration": "Rejestracja konta email", + "emailAccountRegistrationDesc": "Podaj adres email. W kolejnych krokach skonfigurujesz dane IMAP/SMTP. Używając tego adresu email zostanie podjęta próba automatycznego pobrania adresów serwerów SMTP/IMAP.", + "emailAddress": "Adres Email", + "emailPlaceholder": "np. jan.kowalski@example.com", + "namePlaceholder": "np. jan.kowalski", + "optional": "Opcjonalnie", + "nameDescription": "Nazwa użytkownika IMAP. Pozostaw to pole puste, jeśli nazwą użytkownika będzie adres email.", + "emailCannotBeModified": "Adresu konta email nie można modyfikować podczas edycji.", + "addAccount": "Dodaj konto. ", + "updateAccount": "Zaktualizuj konto", + "accountUpdated": "Konto zaktualizowano", + "accountCreated": "Konto utworzono", + "accountUpdatedDesc": "Twoje konto zostało prawidłowo zaktualizowane.", + "accountCreatedDesc": "Twoje konto zostało prawidłowo utworzone.", + "accountUpdateFailed": "Bład aktulizacji konta", + "accountCreationFailed": "Bład podczas tworzenia konta", + "updateFailed": "Bład aktulizacji, spróbuj później", + "creationFailed": "Bład tworzenia, spróbuj później", + "selectSyncFolders": "Wybierz foldery do synchronizacji", + "allMailFolderSelected": "Uwaga: folder \"Wszystkie wiadomości\" izostał zaznaczony", + "accountSyncFoldersUpdated": "Zaktualizowano foldery synchronizacji kont", + "accountSyncFoldersUpdateFailed": "Nie udało się zaktualizować folderiów synchronizacji kont", + "serverConfiguration": "Konfiguracja serwera (IMAP)", + "syncFoldersTitle": "Synchronizcja folderów", + "allMailFolderSelectedDesc": "Wybierając foldery z atrybutem \"Wszystkie wiadomości\" prawdopodobnie spowoduje to duplikowanie się wiadomości już zsynchronizowanych z folderów takich jak Skrzynka odbiorcza i Wysłane. Może to zająć znacznie więcej miejsca", + "allMailSkipped": "Wybrane foldery standardowe. Pominięto 'Wszystkie wiadomości', aby uniknąć duplikatów.", + "selectAtLeastOneFolder": "Wybierz co najmniej jeden folder", + "chooseFoldersToSync": "Wybierz foldery do synchronizacji {{email}} a nowo dodane foldery zaczną być pobierane podczas kolejnej synchronizacji.", + "accountDetails": "Szczegóły konta", + "capabilities": "Możliwości", + "folderLimit": "Limit folderu", + "incrementalSyncInterval": "Przyrostowy interwał synchronizacji", + "everyMinutes": "co {{minutes}} minut", + "foldersConfiguredForSync": "{{count}} folder(ów) zostało skonfigurowane do synchronizacji", + "foldersSelected": "{{count}} folder(ów) zostało zaznaczonych", + "imapHost": "Host IMAP", + "imapHostPlaceholder": "np. imap.example.com", + "imapPort": "Port IMAP", + "imapPortPlaceholder": "np. 993 (szyfrowany TLS/SSL) lub 143 (bez szyfrowania)", + "imapEncryption": "Szyfrowanie IMAP", + "selectEncryptionMethod": "Wybierz metodę szyfrowania", + "chooseEncryptionMethod": "Wybierz metodę szyfrowania dla IMAP.", + "imapAuthMethod": "Metoda uwierzytelniania IMAP", + "selectAuthMethod": "Zaznacz metodę uwierzytelniania IMAP", + "chooseAuthMethod": "Wybierz metodę uwierzytelniania IMAP.", + "imapPassword": "Hasło IMAP", + "leaveEmptyToKeepPassword": "Pozostaw to pole puste, jeśli chcesz zachować dotychczasowe hasło", + "enterPassword": "Wprowadź hasło", + "leaveEmptyToKeepExisting": "Pozostaw to pole puste, jeśli chcesz zachować dotychczasowe hasło lub wpisz nowe, aby zaktualizować.", + "useProxy": "Użyj Proxy", + "selectProxy": "Wybierz proxy", + "incrementalSync": "Zmień czas synchronizacji(minuty)", + "incrementalSyncPlaceholder": "np. 300", + "enabledDescription": "Określ czy to konto jest aktywne. Jeśli wyłączone, powiązane synchronizacje nie będą działać", + "dateSince": "Od kiedy", + "none": "Nigdy", + "fixed": "Dokładnie", + "relative": "Wzglednie", + "selectDate": "Zaznacz datę", + "selectUnit": "Zaznacz jednostki", + "days": "Dni", + "months": "Miesiące", + "years": "Lata", + "enterValue": "Wpisz wartość", + "mustBeAtLeast1": "Nie mniej jak 1", + "dateSelection": "Zaznaczenie daty", + "since": "od", + "recent": "ostatnio", + "notAvailable": "niedostępny", + "host": "host", + "port": "port", + "encryption": "szyfrowanie", + "authType": "auth_type", + "password": "hasło", + "useProxyField": "użyj proxy", + "clickSaveWhenDone": "Kiedy skończysz kliknij 'Utwórz'.", + "step": "Krok {{index}}", + "goBack": "Wróć", + "autoConfiguring": "Auto konfiguracja...", + "continue": "Kontynuj", + "saveChanges": "Zapisz zmiany", + "submit": "Wyślij", + "field": "Pole", + "value": "Wartość", + "refreshToken": "Odśwież token", + "accessTokenCopiedToClipboard": "Token dostępu skopiowany do schowka", + "refreshTokenCopiedToClipboard": "Token odśwież skopiowany do schowka", + "noOAuth2Tokens": "Brak tokenów OAuth2", + "theAccountHasNotCompletedTheAuthorizationProcess": "Konto nie przeszło procesu autoryzacji, proszę ", + "clickHere": "kliknij tutaj", + "toAuthorizeTheAccount": ", aby zautoryzować konto.", + "detailsOfTheOAuth2TokensForTheAccount": "Szczegóły tokenów OAuth2 dla konta.", + "updateTheEmailAccountHere": "Zaktualizuj konto email tutaj. ", + "addNewEmailAccountHere": "Dodaj nowe konto email tutaj. ", + "thisAccountIsUsedForIdentificationPurposesOnly": "To konto służy wyłącznie do celów identyfikacyjnych i nie wymaga synchronizacji z serwerem pocztowym. Ułatwia ono importowanie danych email.", + "determinesWhetherThisAccountIsActiveNoSync": "Określa to, czy konto jest aktywne. Jeśli wyłączone, konto nie będzie mogło importować danych.", + "folderSync": { + "noData": "Brak danych", + "noFolders": "Brak folderów do synchronizacji", + "batches": "partie", + "autoSelectDescendants": "Automatyczny wybór dzieci (podrzędnych)", + "autoSelectParents": "Automatyczny wybór rodziców (nadrzędnych)", + "expandAll": "Rozwiń wszystko", + "collapseAll": "Zwiń wszystko", + "loadingMailboxFolders": "Ładowanie folderów skrzynki..." + }, + "viewDetails": "pokaż szczegóły", + "runningState": { + "notStarted": "Nie uruchomione", + "inProgress": "W trakcie", + "calculating": "Obliczanie...", + "initialSync": "Synchronizacja początkowa", + "completed": "Wykonano", + "duration": "Czas trwania", + "startTime": "Czas rozpoczęcia:", + "endTime": "Czas zakończenia:", + "syncProgress": "Postęp synchronizacji", + "incrementalSync": "Synchronizacja przyrostowa", + "syncInterval": "Cykliczność synchronizacji:", + "everyMinutes": "Co {{minutes}} minut", + "errorLogs": "Dzienniki błędów", + "noErrorLogs": "Brak błędów w dziennikach logów.", + "noActiveState": "Brak wpisów", + "accountNotStarted": "Synchronizacja konta mogła się jeszcze nie rozpocząć", + "close": "Zamknij" + }, + "steps": { + "complete": "Zakończono", + "emailAddress": "Adres email", + "imap": "IMAP", + "syncPreferences": "Preferencje Sync", + "summary": "Podsumowanie" + }, + "imapProxy": "Użyj proxy gniazda SOCKS5 dla połączeń IMAP.", + "syncStartDateDescription": "Definiuje datę rozpoczęcia synchronizacji: od początku tj. wszystko (nigdy), konkretna kartka z kalendarza (dokładnie) lub od teraz wstecz (względną). Poprzednie wiadomości email są wykluczone. {{fixedPart}}.", + "syncAfterDate": "Opcja 'dokładnie' synchronizuje dane po ustalonej dacie", + "syncRecentData": "Opcja 'względnie' przesuwa datę synchronizacji w czasie, synchronizując tylko najnowsze dane", + "folderLimitDescription": "Ogranicz liczbę wiadomości email, które należy synchronizować w jednym folderze (minimum 100). Pozostaw puste, aby nie było limitu.", + "folderLimitPlaceholder": "np. 1000", + "imap": "IMAP", + "minutes": "minut", + "accountHasBeenSuccessfully": "Konto zostalo {{action}}", + "enableAccount": "Włącz konto", + "disableAccount": "Wyłącz konto", + "areYouSureYouWantTo": "Czy na pewno chcesz {{action}} dla tego konta?", + "enable": "Włącz", + "disable": "Wyłącz", + "thisWillPreventTheAccountFromBeingUsed": "To konto nie będzie już więcej synchronizować danych z serwera IMAP, ale istniejące dane będą nadal dostępne", + "disabled": "Wyłączone", + "useDangerous": "Ufaj każdemu certyfikatowi TLS", + "useDangerousDescription": "Włącz tę opcję tylko wtedy, gdy łączysz się z serwerem IMAP z certyfikatem publicznym lub samopodpisanym, który może nie być rozpoznawany przez Twój system. Użycie tego ustawienia pomija standardową walidację certyfikatu, co może narażać na ataki typu man-in-the-middle. Włącz tę opcję tylko wtedy, gdy rozumiesz związane z tym ryzyko." + }, + "mailbox": { + "title": "Skrzynka pocztowa", + "folders": "Foldery", + "messages": "Wiadomości", + "noMessages": "Brak wiadomości", + "selectFolder": "Wybierz folder, aby przeglądać wiadomości", + "deleteDialog": { + "title": "Usuń wiadomość", + "desc": "Czy na pewno chcesz usunąć {{countText}}? Ta czynność spowoduje usunięcie wybranych adresów email z lokalnej bazy danych. Adresy email zostaną trwale usunięte i nie będzie można ich odzyskać.", + "descCountSingle": "ta wiadomość", + "descCountMultiple": "jest {{count}} wiadomości", + "warningTitle": "Ostrzeżenie!", + "warningDesc": "Zachować ostrożność przed kontynuacją.", + "confirm": "Usuń", + "successTitle": "Wiadomości zostały pomyślnie usunięte", + "successDesc": "Wiadomości zostały usunięte.", + "errorTitle": "Błąd podczas usuwania wiadomości" + }, + "thread": { + "title": "Wątki ({{count}} w {{messageLabel}})", + "message": "wiadomość", + "messages": "wiadomości", + "noSubject": "(brak tematu)", + "invalidDate": "Niewłaściwa data", + "empty": "Brak wiadomości w tym wątku.", + "loadError": "Błąd podczas ładowania wątków wiadomości", + "loadingMore": "Ładuje więcej...", + "loadMore": "Pokaż więcej" + }, + "bulkActions": { + "ariaLabel": "Akcje zbiorcze dla {{count}} zaznaczonych elementów {{emailLabel}}", + "email": "email", + "emails": "emails", + "selected": "zaznaczono", + "clearSelection": "Wyczyść zaznaczenie", + "clearSelectionWithKey": "Usuń zaznaczenie wg. ({{key}})", + "delete": "Usuń", + "deleteTooltip": "Usuń zaznaczone wiadomości" + } + }, + "search": { + "title": "Szukaj", + "searching": "Wyszukiwanie, proszę czekać...", + "noEmailsFound": "Nie znaleziono wiadomości", + "startSearching": "Zacznij od wpisania słowa kluczowego, nadawcy lub skorzystania z zaawansowanych filtrów.", + "adjustSearch": "Spróbuj zmienić kryteria wyszukiwania lub wyczyścić filtry.", + "tagFilter": "Filtrowanie wg. tagów", + "from": "Od", + "to": "Do", + "subject": "Temat", + "date": "Data", + "editTag": "Edytuj tagi", + "keyword": "Słowa kluczowe", + "sender": "Nadawca", + "recipient": "Odbiorca", + "hasAttachment": "Posiada załącznik", + "yes": "Tak", + "no": "Nie", + "dateRange": "Zakres saty", + "startDate": "Data od", + "endDate": "Data do", + "advancedFilters": "Zaawansowane filtry", + "searchArchivedEmails": "Wyszukaj w zarchiwizowanych wiadomościach", + "fullTextMultiAccount": "Full-text · Wiele-kont · Filtry zaawansowane", + "account": "Konto", + "mailbox": "Skrzynka pocztowa", + "selectAccount": "Zaznacz konto", + "selectMailbox": "Zaznacz skrzynkę pocztową", + "noActiveEmailAccount": "Brak aktywnego konta email.", + "addEmailAccount": "Dodaj konto email", + "noMailboxSelectAccount": "Brak skrzynki pocztowej. Pierw wybierz konto.", + "searchInSubjectBody": "Szukanie w tytułach, treści, załącznikach...", + "searchingButton": "Wyszukiwanie...", + "searchButton": "Szukanie", + "advanced": "Zaawansowane", + "clear": "Wyczyść", + "since": "Od:", + "before": "Przed:", + "selectDate": "Wybierz datę", + "pleaseSelectAtLeastOne": "Wybierz co najmniej jeden warunek wyszukiwania", + "cc": "DW", + "bcc": "UDW", + "attachmentName": "Nazwa załącznika", + "messageId": "ID wiadomości", + "minSize": "Rozmiar minimalny", + "maxSize": "Rozmiar maksymalny", + "senderRecipients": "Nadawca / Odbiorcy", + "attachmentsSize": "Załączniki & Rozmiar", + "minimumBytes": "Minimum", + "maximumBytes": "Maksimum", + "originalMessageIdHeader": "Oryginalny nagłówek Message-ID", + "addTags": { + "title": "Edytuj tagi", + "none": "Nie dodano tagów", + "searchPlaceholder": "Wyszukaj lub utwórz tag...", + "createHint": "Utwórz nowy tag: {{tag}}", + "invalidTitle": "Niewłaściwy tag", + "updatedTitle": "Tagi zaktualizowane", + "updatedDesc": "Tagi zostały pomyślnie zaktualizowane", + "updateFailedTitle": "Błąd przy aktualizacji", + "tryAgain": "Spróbuj ponownie poxniej", + "selectedCount": "Wybrano {{count}} tagów", + "cancel": "Anuluj", + "save": "Zapisz", + "saving": "Zapisywanie..." + }, + "thread": { + "title": "Wątek · {{count}} wiadomości", + "error": "Nie udało się załadować wątku", + "empty": "Brak wiadomości w tym wątku", + "invalidDate": "Nieprawidłowa data", + "noSubject": "(brak tematu)", + "loadingMore": "Ładowanie...", + "loadMore": "Załaduj więcej" + } + }, + "mail": { + "emailViewer": "Przegląd wiadomości", + "noMessageSelected": "Nie zaznaczono wiadomości", + "account": "Konto", + "from": "Z", + "to": "Do", + "subject": "Temat", + "date": "Data", + "tags": "Tagi", + "noTagsYet": "Nie ma tagów", + "id": "ID", + "cc": "DW", + "bcc": "UDW", + "attachments": "Załączniki", + "download": "Pobierz", + "delete": "Usuń", + "viewThread": "Zobacz wątki", + "downloadStarted": "Pobieranie rozpoczęte", + "downloadComplete": "Pobieranie zakończone", + "downloadFailed": "Błąd przy pobieraniu", + "failedToDownloadFile": "Błąd przy pobieraniu pliku", + "failedToLoadEmail": "Błąd przy ładowaniu wiadomości.", + "isBeingDownloaded": "{{id}} będzie pobierane", + "downloaded": "{{id}} został pobrany", + "showLess": "pokaż mniej", + "showMore": "pokaż więcej...", + "onlyNonInlineAttachments": "Wyświetlane są tylko załączniki non-inline.", + "noAttachments": "Bez załączników" + }, + "oauth2": { + "title": "OAuth2", + "addConfiguration": "Dodaj konfigurację", + "id": "ID", + "provider": "Provider", + "clientId": "ID klienta", + "clientSecret": "Sekret klienta", + "redirectUri": "Przekierowanie URI", + "scopes": "Zakres", + "status": "Status", + "enabled": "Aktywne", + "disabled": "Nieaktywne", + "edit": "Edytuj", + "delete": "Usuń", + "enable": "Włącz", + "disable": "Wyłącz", + "noConfigurations": "Brak konfiguracji OAuth2", + "noConfigurationsDesc": "Nie dodano jeszcze żadnych konfiguracji OAuth2. Dodaj jedną, aby zacząć korzystać z funkcji OAuth2.", + "description": "Automatycznie obsługuje pobieranie, przechowywanie i odświeżanie tokenów dostępu, zapewniając płynne i zawsze gotowe do użycia uwierzytelnianie", + "addNew": "Dodaj nowe", + "updateHere": "Aktualizuj to.", + "createNewHere": "Utwórz nowe tutaj.", + "clickSaveWhenDone": "Jeśli będziesz gotowy naciśnij 'Utwórz'.", + "quickPresets": "Szybkie szablony ustawień:", + "gmail": "Gmail", + "outlook": "Outlook", + "whenDisabled": "Kiedy wyłączone: Nowe przepływy autoryzacji zostaną natychmiast odrzucone - Istniejące tokeny dostępu i tokeny odświeżania zostaną unieważnione w ciągu 1 minutyi. Użytkownicy muszą ponownie dokonać autoryzacji po ponownym włączeniu", + "clientIdLabel": "Id klienta:", + "enterYourClientId": "Wpisz ID klienta", + "theUniqueIdentifierForYourApplication": "Unikalny identyfikator Twojej aplikacji dostarczony przez dostawcę OAuth", + "clientSecretLabel": "Sekret klienta:", + "leaveEmptyToKeepExistingSecret": "Pozostaw puste, aby zachować dotychczasowy", + "enterYourClientSecret": "Wpisz swkret klienta", + "leaveEmptyToKeepTheExistingSecret": "Pozostaw puste, aby zachować istniejący sekret. Wprowadź nową wartość tylko wtedy, gdy chcesz ją zmienić.", + "aSecretKeyProvidedByTheOAuthProvider": "Tajny klucz dostarczony przez dostawcę OAuth w celu uwierzytelnienia Twojej aplikacji.", + "authUrlLabel": "URL autoryzacji:", + "enterTheAuthorizationUrl": "Wpisz URL autoryzacji", + "theUrlWhereUsersWillBeRedirected": "Adres URL, na który użytkownicy zostaną przekierowani w celu autoryzacji Twojej aplikacji", + "tokenUrlLabel": "Token URL:", + "enterTheTokenUrl": "Wpisz token URL", + "theUrlUsedToExchange": "Adres URL służący do wymiany kodu autoryzacyjnego na token dostępu", + "redirectUrlLabel": "Przekierowanie URL:", + "enterYourRedirectUrl": "Wpisz przekierowanie URL", + "theRedirectUrlAfterAuthorization": "Adres URL przekierowania po autoryzacji. Musi być zgodny z adresem zarejestrowanym u dostawcy OAuth. Użyj formatu: http://[host]:[port]/oauth2/callback (lub https://), gdzie [host] i [port] do instalacji RustMailer. Stała ścieżka /oauth2/callback", + "scope": "Zakres:", + "enterTheScopeHere": "Wpisz zakres tutaj.", + "addScope": "Dodaj zakres", + "key": "Klucz:", + "enterTheKeyHere": "Wpisz klucz tutaj.", + "value": "Wartość:", + "enterTheValueHere": "Wpisz wartość tutaj.", + "addExtraParams": "Dodaj dodatkowe parametry", + "useProxyOptional": "Użyj Proxy (opcjonalnie):", + "selectAProxy": "Wybierz proxy", + "noProxyAvailable": "Brak dostępnych proxy", + "useSocks5ProxyForOAuthRequests": "Użyj serwera proxy SOCKS5 dla żądań OAuth, gdy bezpośredni dostęp jest zablokowany.", + "descriptionLabel": "Opis:", + "describeThePurposeOfTheOauth2Application": "Opisz cel aplikacji OAuth2", + "optional": "Opcjonalnie", + "saving": "Zapisywanie...", + "creating": "Tworzenie...", + "saveChanges": "Zapisywanie zmian", + "save": "Zapisz", + "updated": "Zaktualizowano", + "created": "Utworzono", + "yourOAuth2ApplicationHasBeenSuccessfully": "Twoja aplikacja OAuth2 została {{action}}.", + "updateFailed": "Błąd aktualizacji", + "creationFailed": "Błąd tworzenia", + "updateOrCreationFailed": "Nie udałoło się {{action}}, spróbuj później", + "clientSecretIsRequired": "'Client Secret' jest wymagany", + "clientSecretCannotBeEmpty": "'Client Secret' nie może być pust", + "keyIsRequired": "Klucz jest wymagany", + "keyCannotBeEmpty": "Klucz nie może być pusty", + "valueIsRequired": "Wartość jest wymagana", + "valueCannotBeEmpty": "Wartość nie może być pusta", + "descriptionMustNotExceed255Characters": "Opis nie może przekraczać 255 znaków", + "clientIdIsRequired": "'Client ID' jest wymagany", + "clientIdCannotBeEmpty": "'Client ID' nie może być pusty", + "authorizationUrlIsRequired": "URL Autoryzacji jest wymagany", + "authorizationUrlCannotBeEmpty": "URL Autoryzacji nie może być pusty", + "invalidAuthorizationUrlFormat": "Niewłaściwy format URLa Autoryzacji", + "tokenUrlIsRequired": "'Token URL' jest wymagany", + "tokenUrlCannotBeEmpty": "'Token URL' nie może być pusty", + "invalidTokenUrlFormat": "Niewłaściwy format 'Token URL'", + "redirectUriIsRequired": "'Redirect URI' jest wymagany", + "redirectUriCannotBeEmpty": "'Redirect URI' nie może być pusty", + "invalidRedirectUriFormat": "Niewłaściwy format 'Redirect URI'", + "authorizeEmailAccount": "Autoryzuj konto email", + "authorizeAnEmailAccountToStartTheOAuth2AuthorizationProcess": "Autoryzuj konto email, aby rozpocząć proces autoryzacji za pomocą OAuth2.", + "loadingAccounts": "Ładuje konta...", + "selectAnAccount": "Wybierz konto", + "noEmailAccountsRegistered": "Brak zarejestrowanych kont email. Proszę je utworzyć.", + "pleaseCreateOne": "Utwórz pierwsze.", + "createAccount": "Utwórz konto", + "authorize": "Autoryzacja", + "getAuthorizeUrlFailed": "Błąd Autoryzacji URL", + "getAuthorizeUrlFailedDesc": "Pobieranie URL Autoryzacji zakończyło się błędem, spróbuj ponownie", + "oauth2ClientUpdated": "Aktualizacja klienta OAuth2", + "oauth2ClientHasBeenSuccessfully": "Klient OAuth2 został {{action}}.", + "statusUpdateFailed": "Status aktualizacji zakończł się błędemi spróbuj ponownie", + "disableOAuth2Client": "Wyłacz klienta OAuth2", + "enableOAuth2Client": "Włącz klienta OAuth2", + "areYouSureYouWantTo": "Czy jesteś pewnny, aby {{action}} klienta OAuth2?", + "thisWillPreventTheOAuth2ClientFromBeingUsed": "Spowoduje to, że nie będzie można używać klienta OAuth2", + "deleteToken": "Usuń Token", + "areYouSureYouWantToDelete": "Czy na pewno chcesz usunąć?", + "thisActionWillPermanentlyRemoveTheOauth2Record": "Ta czynność spowoduje trwałe usunięcie rekordu OAuth2 z systemu. Tej czynności nie można cofnąć.", + "enterIdToConfirmDeletion": "Wpisz 'id', aby potwierdzić chęć usunięcia.", + "warning": "Ostrzeżenie!", + "pleaseBeCareful": "Należy zachować ostrożność, tej operacji nie można cofnąć", + "deleteSuccess": "Pomyślnie usunięto", + "yourOAuth2ApplicationHasBeenSuccessfullyDeleted": "Twoja aplikacja OAuth2 została pomyślnie usunięta", + "oauth2DeleteFailed": "Błąd przy usuwaniu OAuth2", + "deleteFailed": "Problem z usunięciem, spróbuj ponownie", + "actions": { + "openMenu": "Otwórz menu", + "edit": "Edytuj", + "authorize": "Autoryzuj", + "delete": "Usuń" + }, + "authFailed": "Bład przy autoryzacji OAuth2", + "error": "Błąd", + "unknownError": "Wystąpił nieznany błąd.", + "tryAgain": "Spróbuj ponownie", + "goHome": "Powrót to strony głównej", + "authSuccess": "Autoryzacja OAuth2 zakończona sukcesem", + "success": "Sukces", + "successMessage": "Twoje konto email zostało pomyślnie uwierzytelnione za pomocą protokołu OAuth2. Token dostępu został zapisany przez system i będzie automatycznie aktualizowany w razie potrzeby.", + "goToAccounts": "Idz do kont", + "authAtatus": "Status Autoryzacji OAuth2", + "information": "Informacje", + "noStatus": "Ta strona wyświetla wynik uwierzytelnienia OAuth2. Obecnie nie ma konkretnego statusu. Spróbuj ponownie, jeśli to konieczne.", + "backToLogin": "Wróć do ekranu logowania" + }, + "accessTokens": { + "title": "Tokeny dostępu", + "name": "Name", + "accounts": "Konta", + "token": "Token", + "createdAt": "Utworzono", + "expiresAt": "Wygasa o" , + "edit": "Edytuj", + "delete": "Usuń", + "create": "Utwórz", + "noTokens": "Brak tokenów dostępu", + "noTokensDesc": "Nie utworzyłeś jeszcze żadnych tokenów dostępu. Utwórz jeden, aby zacząć korzystać z funkcji API.", + "description": "Tutaj możesz zarządzać swoimi tokenami dostępu, kontrolą dostępu, białymi listami adresów IP i ustawieniami ograniczeń przepustowości.", + "editToken": "Edytuj Token", + "addNew": "Dodaj nowy", + "updateTheAccessTokenHere": "Uaktualnij token dostępu tutaj.", + "createNewAccessTokenHere": "Utwórz token dostępu tutaj.", + "selectAccounts": "Zaznacz konta", + "selectMultipleAccountsForTheAccessToken": "Wybierz wiele kont dla zakresu autoryzacji tokena dostępu", + "enterOneIpAddressPerLine": "Wpisz adres IPv4, każdy w nowej linijce, np:\n192.168.1.1\n192.168.1.2", + "aListOfIpAddressesAllowed": "Lista adresów IP, które mają dostęp do zasobu. Wprowadź po jednym adresie IP w każdym wierszu. (Opcjonalnie)", + "enterQuota": "Wprowadź limit np. 100", + "theMaximumNumberOfRequestsAllowed": "Maksymalna liczba żądań dozwolona w danym przedziale czasowym. (Opcjonalnie)", + "enterIntervalInSeconds": "Wprowadź interwał w sekundach np. 60", + "theTimeWindowForTheRateLimit": "Okno czasowe (w sekundach) dla limitu szybkości. (Opcjonalnie)", + "describeThePurposeOfTheAccessToken": "Opisz jaki jest cel tokena dostępu", + "updating": "Aktualizacja...", + "saving": "Zapisywanie...", + "creating": "Tworzenie...", + "saveChanges": "Zapisz zmiany", + "save": "Zapisz", + "updated": "Zaktualizowano", + "created": "Utworzono", + "yourAccessTokenHasBeenSuccessfully": "Token został {{action}}.", + "updateFailed": "Błąd aktualizacji", + "creationFailed": "Błąd tworzenia", + "updateOrCreationFailed": "Błąd {{action}}, spróbuj ponownym", + "quotaMustBeAPositiveInteger": "Quota musi być dodatnią liczbą całkowitą.", + "intervalMustBeAPositiveInteger": "Interval musi być dodatnią liczbą całkowitą.", + "invalidIpAddressesFound": "Błędny adres IP, wpisz poprawny adres IPv4/IPv6.", + "atLeastOneAccountIsRequired": "Minimum jedno konto jest wymagane.", + "descriptionMustNotExceed255Characters": "Opis nie może przekroczyć 255 znaków.", + "notUsedYet": "Jeszcze nie używany", + "theListOfAccountsThatCanBeQueried": "Lista kont, do których można wysłać zapytanie za pomocą tokena dostępu.", + "accountId": "ID konta", + "filterByEmailAddressOrAccountId": "Filtruj według adresu email lub identyfikatora konta...", + "aclRulesForAccessTokens": "Reguły ACL dla tokenów dostępu obejmują weryfikację białej listy adresów IP i egzekwowanie limitów przepustowości", + "actions": { + "openMenu": "Otwórz menu", + "edit": "Edytuj", + "delete": "Usuń" + }, + "quota": "Quota", + "interval": "Interval" + }, + "settings": { + "title": "Ustawienia", + "general": "Ogólne", + "proxy": "Proxy", + "name": "Nazwa", + "host": "Host", + "port": "Port", + "username": "Login", + "password": "Hasło", + "type": "Typ", + "actions": "Akcje", + "edit": "Edytuj", + "delete": "Usuń", + "add": "Dodaj", + "noProxies": "Brak Proxy", + "noProxiesDesc": "Nie dodano jeszcze żadnych konfiguracji proxy. Dodaj jedną, aby zacząć korzystać z funkcji proxy.", + "root": "Root", + "rootTitle": "Root", + "rootDesc": "Zarządzaj danymi uwierzytelniającymi dostępu root, w tym tokenem i hasłem", + "rootAccessManagement": "Zarządzanie dostępem", + "manageRootTokenAndPassword": "Zarządzaj tokenem głównym i hasłem w sposób bezpieczny", + "resetRootToken": "Resetuj Root Token", + "generateNewToken": "Wygeneruj nowy token, stary wygaśnie natychmiast.", + "reset": "Reset", + "resetRootPassword": "Resetuj hasło root", + "changePasswordForFutureLogins": "Zmień hasło dla przyszłych logowań", + "youAreAboutToResetTheRootToken": "Zamierzasz zresetować token główny. Tej czynności nie można cofnąć", + "confirmReset": "Potwierdź reset", + "youAreAboutToResetTheRootPassword": "Zamierzasz zresetować hasło roota. Przechowuj je bezpiecznie.", + "enterNewRootPassword": "Wprowadź nowe hasło dla roota", + "theRootTokenHasBeenReset": "Token główny został zresetowany", + "yourLoginInformationHasBeenUpdated": "Twoje dane logowania zostały zaktualizowane. Nie musisz się logować ponownie.", + "invalidPassword": "Błędne hasło", + "rootPasswordMustBeAtLeast6Characters": "Hasło dla roota musi mieć co najmniej 6 znaków", + "theRootPasswordHasBeenReset": "Hasło roota zostało zresetowane", + "useNewPasswordForNextLogin": "Użyj nowego hasła przy następnym logowaniu", + "failedToCopyText": "Błąd podczas kopiowania tekstu", + "filterProxy": "Filtr Proxy...", + "filterOauth2": "Filtr oauth2...", + "filterAccount": "Filtr konta...", + "filterAccessToken": "Filtr tokenów...", + "selectAll": "Zaznacz wszystko", + "theme": "Motyw", + "id": "Id", + "url": "URL", + "createdAt": "Utworzono o", + "updatedAt": "Zaktualizowano o", + "enabled": "Włączone", + "useProxy": "Użyj Proxy", + "authUrl": "Auth URL", + "tokenUrl": "Token URL", + "description": "Opis", + "token": "Token", + "accounts": "Konta", + "acl": "ACL", + "lastAccess": "Ostatni dostęp", + "enterProxyIdToConfirmDeletion": "Wpisz nazwę proxy, aby potwierdzić usunięcie.", + "updateTheProxyHere": "Uaktualnij Proxy tutaj. ", + "addNewProxyHere": "Dodaj nowe Proxy tutaj. ", + "pleaseUseAnIpAddressForBetterReliability": "Aby zapewnić większą niezawodność, użyj adresu IP (np. 127.0.0.1), a nie nazwy hosta lub domeny.", + "adding": "Dodawanie...", + "yourProxyHasBeenSuccessfully": "Proxy zostało {{action}}.", + "proxyUpdateOrAddFailed": "Błąd {{action}}, spróbuj później" + }, + "apiDocs": { + "choosePreferredType": "Wybierz preferowany typ dokumentacji API", + "swaggerUI": "Swagger UI", + "reDoc": "ReDoc", + "openAPIExplorer": "OpenAPI", + "scalar": "Scalar", + "downloadSpecYAML": "Plik YAML" + }, + "dialogs": { + "confirmDelete": "Potwierdź usunięcie", + "confirmDeleteDesc": "Czy na pewno chcesz usunąć ten element? Tej czynności nie można cofnąć.", + "deleteSuccess": "Usunięto", + "deleteFailed": "Błąd podczas usuwania", + "saveSuccess": "Zapisano", + "saveFailed": "Błąd podczas zapisu", + "createSuccess": "Utworzono", + "createFailed": "Błąd podczas tworzenia", + "updateSuccess": "Zaktualizowano", + "updateFailed": "Błąd podczas aktualizacji", + "continue": "Kontynuować", + "deleting": "Usuwanie...", + "accountDeleted": "Konto usunięte", + "accountDeletedDesc": "Konto zostało usunięte.", + "accountDeleteFailed": "Bład podczas usuwania konta", + "deleteAccountPermanently": "Usuń konto na stałe", + "youAreDeleting": "Właśnie usuwasz {{email}}. iTa operacja bezpowrotnie usunie:", + "accountCredentials": "Poświadczenia kont i ustawienia", + "localCachedMetadata": "Lokalne metadane w pamięci podręcznej i status synchronizacji", + "imapSyncData": "Data synchronizacji IMAP", + "oauthTokens": "Tokeny OAuth i poświadczenia API", + "typeEmailToConfirm": "Wpisz adres email konta, aby potwierdzić:", + "typeToConfirm": "Wpisz \"{{email}}\" aby potwierdzić", + "cannotBeUndone": "Tej czynności nie można cofnąć!", + "allResourcesErased": "Wszystkie powiązane zasoby zostaną trwale usunięte.", + "permanentlyDeleteAccount": "Trwałe usunięcie konta" + }, + "command": { + "typeCommandOrSearch": "Wpisz polecenie lub wyszukaj...", + "noResultsFound": "Brak wyników.", + "theme": "Motyw", + "light": "Jasny", + "dark": "Ciemny" + }, + "validation": { + "required": "To pole jest wymagane", + "invalidEmail": "Niewłaściwy adres email", + "invalidUrl": "Niewłaściwy URL", + "passwordMinLength": "Hasło musi posiadać conajmniej {{min}} znaków", + "pleaseEnterPassword": "Proszę podać hasło", + "passwordRequired": "Hasło jest wymagane, gdy metodą uwierzytelniania jest hasło", + "emailRequired": "Email jest wymagany", + "imapHostRequired": "Host IMAP jest wymagany", + "imapHostCannotBeEmpty": "Host IMAP nie może być pusty", + "imapPortMustBePositive": "Port IMAP musi być liczbą całkowitą dodatnią", + "imapPortMustBeLessThan65536": "Port IMAP musi być liczbą w przedziale 0-65535", + "folderLimitMustBeNumber": "Limit folderów musi być liczbą", + "folderLimitMustBeAtLeast100": "Limit folderów musi być liczbą nie mniejszą niż 100", + "incrementalSyncMustBeNumber": "Przyrostowy interwał synchronizacji musi być liczbą", + "incrementalSyncMustBeAtLeast10": "Przyrostowy interwał synchronizacji musi wynosić co najmniej 10 minut" + }, + "table": { + "noResults": "Brak wyników", + "loading": "Ładowanie...", + "page": "Strona", + "of": "z", + "rowsPerPage": "Wierszy na stronę", + "showing": "Pokazuj", + "to": "do", + "results": "wyniki", + "asc": "Rosnąco", + "desc": "Malejąco", + "hide": "Ukryj", + "edit": "Edytuj", + "delete": "Usuń" + }, + "proxyDelete": { + "title": "Usuń Proxy", + "successTitle": "Usunięto", + "successDesc": "Proxy zostało usunięte.", + "close": "Zamknij", + "failedTitle": "Błąd podczas usuwania proxy", + "failedDesc": "Błąd podczas usuwania, spróbuj ponownie za jakiś czas.", + "tryAgain": "Spróbuj ponownie", + "confirmText": "Czy na pewno chcesz usunąć?", + "permanent": "Ta czynność spowoduje trwałe usunięcie serwera proxy z systemu. Tej czynności nie można cofnąć.", + "proxyIdLabel": "Proxy Id:", + "proxyIdPlaceholder": "Wpisz Proxy Id aby potwierdzić usunięcie.", + "warningTitle": "Ostrzeżenie!", + "warningDesc": "Należy zachować ostrożność, tej operacji nie można cofnąć", + "deleteBtn": "Usuń" + } +}