diff --git a/static/js/core/i18n.js b/static/js/core/i18n.js index c46ad23a..6da237d8 100644 --- a/static/js/core/i18n.js +++ b/static/js/core/i18n.js @@ -10,7 +10,7 @@ let currentLocale = navigator.language?.substring(0, 2) || navigator.userLanguag // Supported locales (languages that have locale files on the server) // When a locale file is not found, the system gracefully falls back to English -const supportedLocales = ['en', 'es', 'zh', 'fa', 'fr', 'de', 'pt', 'nl', 'it', 'hi', 'ar', 'ru', 'ja', 'ko']; +const supportedLocales = ['en', 'es', 'zh', 'fa', 'fr', 'de', 'pt', 'nl', 'it', 'hi', 'ar', 'ru', 'ja', 'ko', 'pl']; // Fallback to English if locale is not supported if (!supportedLocales.includes(currentLocale)) { diff --git a/static/js/core/languageSelector.js b/static/js/core/languageSelector.js index 6468f545..5a7a5354 100644 --- a/static/js/core/languageSelector.js +++ b/static/js/core/languageSelector.js @@ -8,7 +8,7 @@ import { i18n } from './i18n.js'; // Locale files that actually exist (have full translations) // Keep this list in sync when adding new locale JSON files -const AVAILABLE_LOCALES = new Set(['en', 'es', 'zh', 'fa', 'fr', 'de', 'pt', 'it', 'nl', 'hi', 'ar', 'ru', 'ja', 'ko']); +const AVAILABLE_LOCALES = new Set(['en', 'es', 'zh', 'fa', 'fr', 'de', 'pt', 'it', 'nl', 'hi', 'ar', 'ru', 'ja', 'ko', 'pl']); // Language codes, names, and flag emojis // Only returns languages that have a real locale file diff --git a/static/locales/pl.json b/static/locales/pl.json new file mode 100644 index 00000000..d5b13014 --- /dev/null +++ b/static/locales/pl.json @@ -0,0 +1,683 @@ +{ + "app": { + "title": "OxiCloud", + "description": "Minimalistyczny cloud storage" + }, + "nav": { + "files": "Pliki", + "shared": "Udostępnione", + "recent": "Ostatnie", + "favorites": "Ulubione", + "photos": "Zdjęcia", + "music": "Muzyka", + "trash": "Kosz" + }, + "photos": { + "empty_state": "Brak zdjęć", + "empty_hint": "Prześlij obrazy lub filmy, aby zobaczyć je tutaj", + "items_selected": "wybrane", + "view_daily": "Dzień", + "view_monthly": "Miesiąc", + "view_yearly": "Rok" + }, + "music": { + "create_playlist": "Utwórz playlistę", + "playlists": "Playlisty", + "no_playlists": "Brak playlist", + "empty_hint": "Utwórz pierwszą playlistę, aby zacząć organizować swoją muzykę", + "select_playlist": "Wybierz playlistę", + "select_hint": "Wybierz playlistę z paska bocznego lub utwórz nową", + "add_tracks": "Dodaj utwory", + "add_to_playlist": "Dodaj do playlisty", + "add": "Dodaj", + "added": "Dodano!", + "added_to_playlist": "dodano do playlisty", + "load_error": "Błąd ładowania playlist", + "add_error": "Nie można dodać utworów do playlisty", + "no_playlists_yet": "Brak playlist. Utwórz pierwszą!", + "selected_files": "Wybrane:", + "no_tracks": "Brak utworów na tej playliście", + "unknown_artist": "Nieznany wykonawca", + "unknown_title": "Nieznany", + "confirm_delete": "Usunąć tę playlistę?", + "playlist_name": "Nazwa playlisty", + "create": "Utwórz", + "delete": "Usuń", + "share": "Udostępnij", + "edit": "Edytuj", + "play_all": "Odtwórz wszystkie", + "shuffle": "Losowo", + "repeat": "Powtarzaj", + "repeat_one": "Powtarzaj jeden", + "queue": "Kolejka", + "queue_empty": "Kolejka jest pusta", + "not_playing": "Nic nie jest odtwarzane", + "play": "Odtwórz", + "pause": "Pauza", + "previous": "Poprzedni", + "next": "Następny", + "volume": "Głośność", + "mute": "Wycisz", + "unmute": "Włącz dźwięk", + "title": "Tytuł", + "artist": "Wykonawca", + "album": "Album", + "tracks": "utwory", + "share_with_user": "ID użytkownika lub e-mail", + "playback_error": "Odtwarzanie nie powiodło się", + "error": "Błąd", + "remove": "Usuń", + "track_removed": "Utwór usunięty", + "manage_shares": "Zarządzaj udostępnieniami", + "no_shares": "Brak udostępnień", + "remove_share": "Usuń udostępnienie", + "can_write": "Może edytować", + "read_only": "Tylko do odczytu", + "public": "Publiczny", + "private": "Prywatny", + "toggle_public": "Widoczność", + "make_public": "Ustaw jako publiczny", + "make_private": "Ustaw jako prywatny", + "set_cover": "Ustaw okładkę", + "cover_updated": "Okładka zaktualizowana", + "search_audio": "Szukaj plików audio…", + "no_audio_files": "Nie znaleziono plików audio", + "selected": "wybrane", + "loading": "Ładowanie…", + "search_error": "Nie można załadować plików audio", + "adding": "Dodawanie…" + }, + "actions": { + "search": "Szukaj plików...", + "new_folder": "Nowy folder", + "upload": "Prześlij", + "upload_files": "Prześlij pliki", + "upload_folder": "Prześlij folder", + "upload.uploading": "Przesyłanie...", + "upload.complete": "{count} / {total} przesłano", + "upload.files": "plików", + "rename": "Zmień nazwę", + "move": "Przenieś do...", + "move_to": "Przenieś do", + "delete": "Usuń", + "download": "Pobierz", + "view": "Pokaż", + "cancel": "Anuluj", + "confirm": "Potwierdź", + "share": "Udostępnij", + "favorite": "Dodaj do ulubionych", + "unfavorite": "Usuń z ulubionych", + "copy": "Kopiuj", + "notify": "Powiadom", + "send": "Wyślij", + "clear_recent": "Wyczyść ostatnie", + "logout": "Wyloguj się", + "create": "Utwórz", + "search_btn": "Szukaj", + "close": "Zamknij", + "delete_permanently": "Usuń trwale", + "empty_trash": "Opróżnij kosz" + }, + "user_menu": { + "appearance": "Wygląd", + "about": "O OxiCloud", + "about_description": "Platforma pamięci masowej w chmurze zbudowana w oparciu o Rust & Clean Architecture. Szybka, bezpieczna i prywatna.", + "admin_panel": "Panel administratora", + "profile": "Mój profil", + "role_user": "Użytkownik" + }, + "share": { + "dialogTitle": "Link udostępniania", + "linkLabel": "Link udostępniania:", + "copyLink": "Kopiuj", + "permissions": "Uprawnienia:", + "permissionRead": "Odczyt", + "permissionWrite": "Zapis", + "permissionReshare": "Dalsze udostępnianie", + "password": "Ochrona hasłem:", + "generatePassword": "Wygeneruj", + "expiration": "Data wygaśnięcia:", + "update": "Zaktualizuj udostępnienie", + "remove": "Usuń udostępnienie", + "notifyTitle": "Wyślij powiadomienie", + "notifyEmailLabel": "Adres e-mail:", + "notifyMessageLabel": "Wiadomość (opcjonalnie):", + "notifySend": "Wyślij powiadomienie", + "shareWithOthers": "Udostępnij innym", + "sharePublicly": "Udostępnij publicznie", + "shareSettings": "Ustawienia udostępniania", + "shareCopied": "Link skopiowany do schowka", + "shareCreated": "Link udostępniania utworzony pomyślnie", + "shareUpdated": "Ustawienia udostępniania zaktualizowane pomyślnie", + "shareRemoved": "Udostępnienie usunięte pomyślnie" + }, + "share_dialogTitle": "Link udostępniania", + "share_linkLabel": "Link udostępniania:", + "share_copyLink": "Kopiuj", + "share_permissions": "Uprawnienia:", + "share_permissionRead": "Odczyt", + "share_permissionWrite": "Zapis", + "share_permissionReshare": "Dalsze udostępnianie", + "share_password": "Ochrona hasłem:", + "share_generatePassword": "Wygeneruj", + "share_expiration": "Data wygaśnięcia:", + "share_update": "Zaktualizuj udostępnienie", + "share_remove": "Usuń udostępnienie", + "share_notifyTitle": "Wyślij powiadomienie", + "share_notifyEmailLabel": "Adres e-mail:", + "share_notifyMessageLabel": "Wiadomość (opcjonalnie):", + "share_notifySend": "Wyślij powiadomienie", + "shared": { + "backToFiles": "Powrót do plików", + "pageTitle": "Udostępnione zasoby", + "pageDescription": "Zarządzaj udostępnionymi plikami i folderami", + "filterType": "Typ:", + "filterAll": "Wszystkie", + "filterFiles": "Pliki", + "filterFolders": "Foldery", + "sortBy": "Sortuj według:", + "sortByName": "Nazwa", + "sortByDate": "Data udostępnienia", + "sortByExpiration": "Wygaśnięcie", + "search": "Szukaj", + "colName": "Nazwa", + "colType": "Typ", + "colDateShared": "Data udostępnienia", + "colExpiration": "Wygaśnięcie", + "colPermissions": "Uprawnienia", + "colPassword": "Hasło", + "colActions": "Akcje", + "emptyStateTitle": "Brak udostępnionych zasobów", + "emptyStateDesc": "Gdy udostępnisz pliki lub foldery, pojawią się tutaj", + "goToFiles": "Przejdź do plików", + "typeFile": "Plik", + "typeFolder": "Folder", + "noExpiration": "Bez wygaśnięcia", + "hasPassword": "Tak", + "noPassword": "Nie", + "editShare": "Edytuj udostępnienie", + "notifyShare": "Powiadom kogoś", + "copyLink": "Kopiuj link", + "removeShare": "Usuń udostępnienie", + "linkCopied": "Link skopiowany do schowka!", + "linkCopyFailed": "Nie udało się skopiować linku", + "itemUpdated": "Ustawienia udostępniania zaktualizowane pomyślnie", + "itemRemoved": "Udostępnienie usunięte pomyślnie", + "invalidEmail": "Wprowadź prawidłowy adres e-mail", + "notificationSent": "Powiadomienie wysłane pomyślnie", + "notificationFailed": "Nie udało się wysłać powiadomienia", + "shared_backToFiles": "Powrót do plików", + "shared_pageTitle": "Udostępnione zasoby", + "shared_pageDescription": "Zarządzaj udostępnionymi plikami i folderami", + "shared_filterType": "Typ:", + "shared_filterAll": "Wszystkie", + "shared_filterFiles": "Pliki", + "shared_filterFolders": "Foldery", + "shared_sortBy": "Sortuj według:", + "shared_sortByName": "Nazwa", + "shared_sortByDate": "Data udostępnienia", + "shared_sortByExpiration": "Wygaśnięcie", + "shared_search": "Szukaj", + "shared_colName": "Nazwa", + "shared_colType": "Typ", + "shared_colDateShared": "Data udostępnienia", + "shared_colExpiration": "Wygaśnięcie", + "shared_colPermissions": "Uprawnienia", + "shared_colPassword": "Hasło", + "shared_colActions": "Akcje", + "shared_emptyStateTitle": "Brak udostępnionych zasobów", + "shared_emptyStateDesc": "Gdy udostępnisz pliki lub foldery, pojawią się tutaj", + "shared_goToFiles": "Przejdź do plików", + "shared_typeFile": "Plik", + "shared_typeFolder": "Folder", + "shared_noExpiration": "Bez wygaśnięcia", + "shared_hasPassword": "Tak", + "shared_noPassword": "Nie", + "shared_editShare": "Edytuj udostępnienie", + "shared_notifyShare": "Powiadom kogoś", + "shared_copyLink": "Kopiuj link", + "shared_removeShare": "Usuń udostępnienie", + "shared_linkCopied": "Link skopiowany do schowka!", + "shared_linkCopyFailed": "Nie udało się skopiować linku", + "shared_itemUpdated": "Ustawienia udostępniania zaktualizowane pomyślnie", + "shared_itemRemoved": "Udostępnienie usunięte pomyślnie", + "shared_invalidEmail": "Wprowadź prawidłowy adres e-mail", + "shared_notificationSent": "Powiadomienie wysłane pomyślnie", + "shared_notificationFailed": "Nie udało się wysłać powiadomienia" + }, + "files": { + "name": "Nazwa", + "type": "Typ", + "size": "Rozmiar", + "modified": "Zmodyfikowano", + "no_files": "Brak plików w tym folderze", + "empty_hint": "Prześlij pliki lub utwórz foldery, aby rozpocząć", + "loading": "Ładowanie plików…", + "view_grid": "Widok siatki", + "view_list": "Widok listy", + "file_types": { + "document": "Dokument", + "image": "Obraz", + "video": "Wideo", + "audio": "Audio", + "pdf": "PDF", + "text": "Tekst", + "folder": "Folder", + "spreadsheet": "Arkusz kalkulacyjny", + "presentation": "Prezentacja", + "archive": "Archiwum", + "installer": "Instalator", + "code": "Kod" + } + }, + "dialogs": { + "rename_folder": "Zmień nazwę folderu", + "rename_file": "Zmień nazwę pliku", + "new_name": "Nowa nazwa", + "new_folder_title": "Nowy folder", + "folder_name": "Nazwa folderu", + "folder_placeholder": "Mój folder", + "rename_title": "Zmień nazwę", + "move_file": "Przenieś plik", + "move_folder": "Przenieś folder", + "select_destination": "Wybierz folder docelowy:", + "select_this_folder": "Wybierz ten folder", + "go_to_parent": ".. (folder nadrzędny)", + "no_subfolders": "Brak podfolderów", + "root": "Główny", + "delete_confirmation": "Czy na pewno chcesz usunąć", + "and_contents": "i całą jego zawartość", + "no_undo": "Tej akcji nie można cofnąć", + "confirm_title": "Potwierdź akcję", + "confirm_delete": "Przenieś do kosza", + "confirm_delete_file": "Czy na pewno chcesz przenieść plik \"{{name}}\" do kosza?", + "confirm_delete_folder": "Czy na pewno chcesz przenieść folder \"{{name}}\" i całą jego zawartość do kosza?", + "confirm_permanent_delete": "Usuń trwale", + "confirm_permanent_delete_msg": "Czy na pewno chcesz trwale usunąć ten element? Tej akcji nie można cofnąć.", + "confirm_empty_trash": "Opróżnij kosz", + "confirm_delete_share": "Usuń link udostępniania", + "confirm_delete_share_msg": "Czy na pewno chcesz usunąć ten link udostępniania?", + "share_file": "Udostępnij plik", + "share_folder": "Udostępnij folder", + "existing_shares": "Istniejące udostępnienia", + "share_options": "Opcje udostępniania", + "password": "Hasło", + "expiration": "Wygaśnięcie", + "permissions": "Uprawnienia", + "generated_link": "Wygenerowany link", + "notify": "Wyślij powiadomienie", + "recipient": "Odbiorca", + "message": "Wiadomość", + "move_to_home": "Przenieś do folderu domowego" + }, + "dropzone": { + "drag_files": "Przeciągnij pliki tutaj lub kliknij, aby wybrać", + "drop_files": "Upuść pliki, aby przesłać" + }, + "permissions": { + "read": "Odczyt", + "write": "Zapis", + "reshare": "Dalsze udostępnianie" + }, + "errors": { + "file_not_found": "Plik nie został znaleziony", + "folder_not_found": "Folder nie został znaleziony", + "delete_error": "Błąd podczas usuwania", + "upload_error": "Błąd podczas przesyłania pliku", + "rename_error": "Błąd podczas zmiany nazwy", + "move_error": "Błąd podczas przenoszenia", + "empty_name": "Nazwa nie może być pusta", + "name_exists": "Plik lub folder o tej nazwie już istnieje", + "generic_error": "Wystąpił błąd" + }, + "breadcrumb": { + "home": "Strona główna" + }, + "trash": { + "empty_trash": "Opróżnij kosz", + "empty_state": "Kosz jest pusty", + "original_location": "Pierwotna lokalizacja", + "deleted_date": "Data usunięcia", + "actions": "Akcje", + "restore": "Przywróć", + "delete_permanently": "Usuń trwale", + "empty_confirm": "Czy na pewno chcesz opróżnić kosz? Wszystkie elementy zostaną trwale usunięte." + }, + "auth": { + "login_title": "Zaloguj się", + "username": "Nazwa użytkownika", + "username_placeholder": "Wprowadź nazwę użytkownika", + "password": "Hasło", + "password_placeholder": "Wprowadź hasło", + "login_button": "Zaloguj się", + "no_account": "Nie masz konta?", + "register": "Zarejestruj się", + "admin_setup": "Pierwszy raz?", + "setup": "Konfiguracja administratora", + "register_title": "Utwórz konto", + "email": "E-mail", + "email_placeholder": "Wprowadź adres e-mail", + "confirm_password": "Potwierdź hasło", + "confirm_password_placeholder": "Potwierdź hasło", + "register_button": "Utwórz konto", + "have_account": "Masz już konto?", + "login": "Zaloguj się", + "setup_title": "Konfiguracja początkowa", + "setup_step1": "Administrator", + "setup_step2": "System", + "setup_step3": "Gotowe", + "admin_username": "Nazwa administratora", + "admin_email": "E-mail administratora", + "admin_password": "Hasło administratora", + "create_admin": "Utwórz administratora", + "back_to_login": "Już skonfigurowane?", + "admin_success": "Konto administratora zostało utworzone! Możesz się teraz zalogować.", + "account_success": "Konto utworzone pomyślnie! Możesz się teraz zalogować.", + "passwords_mismatch": "Hasła nie są zgodne", + "admin_create_error": "Błąd podczas tworzenia konta administratora", + "or": "lub", + "sso_login": "Zaloguj się przez SSO", + "sso_login_provider": "Zaloguj się przez {{provider}}" + }, + "storage": { + "title": "Pamięć masowa", + "calculating": "Obliczanie...", + "used": "{{percentage}}% wykorzystane ({{used}} / {{total}})" + }, + "viewer": { + "unsupported_file": "Tego typu pliku nie można wyświetlić.", + "download_file": "Pobierz plik", + "zoom_in": "Przybliż", + "zoom_out": "Oddal", + "zoom_reset": "Resetuj powiększenie" + }, + "language_selector": { + "title": "Witaj!", + "subtitle": "Wybierz język, aby kontynuować", + "continue": "Kontynuuj", + "languages": { + "en": "English", + "es": "Español", + "zh": "中文", + "fa": "فارسی", + "fr": "Français", + "de": "Deutsch", + "pt": "Português", + "ar": "العربية", + "hi": "हिन्दी", + "it": "Italiano", + "ja": "日本語", + "ko": "한국어", + "nl": "Nederlands", + "ru": "Русский" + } + }, + "favorites": { + "empty_state": "Brak ulubionych", + "empty_hint": "Oznacz pliki lub foldery gwiazdką, aby dodać je do ulubionych", + "add": "Dodaj do ulubionych", + "remove": "Usuń z ulubionych", + "added_title": "Dodano do ulubionych", + "added_msg": "dodano do ulubionych", + "removed_title": "Usunięto z ulubionych", + "removed_msg": "usunięto z ulubionych" + }, + "recent": { + "title": "Ostatnie", + "clear": "Wyczyść ostatnie", + "accessed": "Otwarte", + "empty_state": "Brak ostatnich plików", + "empty_hint": "Otwarte pliki pojawią się tutaj" + }, + "notifications": { + "file_renamed": "Zmieniono nazwę pliku", + "file_renamed_to": "Nazwa pliku zmieniona na \"{{name}}\"", + "folder_renamed": "Zmieniono nazwę folderu", + "folder_renamed_to": "Nazwa folderu zmieniona na \"{{name}}\"", + "file_uploaded": "Plik przesłany", + "file_deleted": "Plik przeniesiony do kosza", + "folder_deleted": "Folder przeniesiony do kosza", + "item_deleted_permanently": "Element trwale usunięty", + "trash_emptied": "Kosz został opróżniony", + "title": "Powiadomienia", + "empty": "Brak powiadomień", + "link_created": "Link utworzony", + "share_success": "Link udostępniania utworzony pomyślnie" + }, + "batch": { + "one_selected": "Wybrano 1 element", + "n_selected": "Wybrano {{count}} elementów", + "confirm_delete": "Czy na pewno chcesz przenieść {{count}} elementów do kosza?", + "move_title": "Przenieś {{count}} element(ów)", + "add_favorites": "Dodaj do ulubionych", + "move_copy": "Przenieś lub kopiuj" + }, + "admin": { + "page_title": "Panel administratora", + "back_to_app": "Powrót do OxiCloud", + "loading": "Ładowanie…", + "access_denied": "Dostęp zabroniony", + "access_denied_desc": "Aby uzyskać dostęp do tego panelu, wymagane są uprawnienia administratora.", + "sign_in": "Zaloguj się", + "tab_dashboard": "Panel", + "tab_users": "Użytkownicy", + "tab_oidc": "SSO / OIDC", + "total_users": "Wszyscy użytkownicy", + "active_users": "Aktywni użytkownicy", + "admins": "Administratorzy", + "version": "Wersja", + "storage_overview": "Przegląd pamięci masowej", + "used": "Wykorzystane", + "total_quota": "Łączny przydział", + "usage_pct": "Wykorzystanie %", + "users_over_80": "Użytkownicy >80% przydziału", + "users_over_quota": "Użytkownicy powyżej przydziału", + "system": "System", + "auth_label": "Uwierzytelnianie", + "oidc_label": "OIDC", + "quotas_label": "Przydziały", + "enabled": "Włączone", + "disabled": "Wyłączone", + "active": "Aktywne", + "off": "Wyłączone", + "allow_registration": "Zezwalaj na publiczną samodzielną rejestrację", + "registration_warning": "Publiczna rejestracja jest wyłączona. Tylko administratorzy mogą tworzyć nowych użytkowników.", + "user_management": "Zarządzanie użytkownikami", + "create_user": "Utwórz użytkownika", + "col_user": "Użytkownik", + "col_role": "Rola", + "col_auth": "Uwierzytelnianie", + "col_status": "Status", + "col_storage": "Pamięć masowa", + "col_last_login": "Ostatnie logowanie", + "col_actions": "Akcje", + "loading_users": "Ładowanie użytkowników…", + "failed_load_users": "Nie udało się załadować użytkowników", + "no_users_found": "Nie znaleziono użytkowników", + "showing_users": "Wyświetlanie {{from}}-{{to}} z {{total}}", + "prev": "Poprzednia", + "next": "Następna", + "inactive": "Nieaktywny", + "you_badge": "(ty)", + "local": "Lokalny", + "never": "Nigdy", + "just_now": "Przed chwilą", + "minutes_ago": "{{n}} min temu", + "hours_ago": "{{n}} godz. temu", + "days_ago": "{{n}} dni temu", + "edit_quota_title": "Edytuj przydział", + "reset_password_title": "Resetuj hasło", + "toggle_role_title": "Przełącz rolę", + "deactivate_title": "Dezaktywuj", + "activate_title": "Aktywuj", + "delete_title": "Usuń", + "sso_title": "Single Sign-On (OIDC / SSO)", + "enable_sso": "Włącz uwierzytelnianie SSO", + "provider_name": "Nazwa dostawcy", + "issuer_url": "URL wystawcy", + "issuer_url_hint": "URL wystawcy OpenID Connect Twojego dostawcy tożsamości", + "auto_discover": "Automatyczne wykrywanie", + "discovering": "Wykrywanie…", + "client_id": "ID klienta", + "client_secret": "Sekret klienta", + "client_secret_placeholder": "Pozostaw puste, aby zachować bieżącą wartość", + "secret_configured": "Sekret klienta jest już skonfigurowany", + "callback_url": "URL zwrotny", + "callback_url_hint": "(zarejestruj w swoim IdP)", + "advanced_settings": "Ustawienia zaawansowane", + "scopes": "Zakresy", + "auto_provision": "Automatycznie twórz użytkowników przy pierwszym logowaniu", + "admin_groups": "Grupy administratorów", + "admin_groups_hint": "Lista nazw grup OIDC oddzielonych przecinkami, mapowanych na rolę administratora", + "disable_password": "Wyłącz logowanie hasłem (tylko OIDC)", + "password_warning": "To uniemożliwi WSZYSTKIE logowania hasłem!", + "test_btn": "Testuj", + "save_btn": "Zapisz", + "saving": "Zapisywanie…", + "settings_saved": "Ustawienia zapisane — OIDC jest teraz {{status}}", + "quota_modal_title": "Aktualizuj przydział pamięci masowej", + "quota_user_label": "Użytkownik:", + "new_quota": "Nowy przydział", + "quota_unlimited_hint": "Ustaw 0 dla nieograniczonego", + "cancel": "Anuluj", + "create_user_title": "Utwórz nowego użytkownika", + "username_label": "Nazwa użytkownika", + "username_placeholder": "jankowalski", + "username_hint": "3–32 znaków", + "password_label": "Hasło", + "password_placeholder": "Min. 8 znaków", + "email_label": "E-mail", + "email_optional": "(opcjonalnie)", + "email_placeholder": "uzytkownik@example.com (generowany automatycznie, jeśli puste)", + "role_label": "Rola", + "role_user": "Użytkownik", + "role_admin": "Administrator", + "quota_label": "Przydział", + "creating": "Tworzenie…", + "reset_pw_title": "Resetuj hasło", + "new_password_label": "Nowe hasło", + "resetting": "Resetowanie…", + "reset_btn": "Resetuj", + "confirm_role_change": "Zmienić rolę na {{role}}?", + "confirm_deactivate": "Czy na pewno chcesz dezaktywować tego użytkownika?", + "confirm_activate": "Czy na pewno chcesz aktywować tego użytkownika?", + "confirm_delete_user": "USUNĄĆ użytkownika \"{{name}}\"? Tej akcji nie można cofnąć!", + "confirm_action": "Potwierdź akcję", + "confirm_yes": "Potwierdź", + "confirm_no": "Anuluj", + "error_username_short": "Nazwa użytkownika musi mieć co najmniej 3 znaki", + "error_password_short": "Hasło musi mieć co najmniej 8 znaków", + "error_generic": "Niepowodzenie", + "error_network": "Błąd sieci: {{message}}", + "error_create_user": "Nie udało się utworzyć użytkownika", + "tab_storage": "Pamięć masowa", + "storage_title": "Backend pamięci masowej", + "storage_current_backend": "Aktywny backend", + "storage_total_blobs": "Liczba blobów", + "storage_total_size": "Łączny rozmiar", + "storage_dedup_ratio": "Współczynnik deduplikacji", + "storage_backend": "Typ backendu", + "storage_local": "Lokalny system plików", + "storage_s3": "Kompatybilny z S3", + "storage_provider_preset": "Ustawienia dostawcy", + "storage_preset_custom": "Niestandardowy", + "storage_endpoint_url": "URL endpointu", + "storage_endpoint_hint": "Pozostaw puste dla domyślnego Amazon S3", + "storage_bucket": "Bucket", + "storage_region": "Region", + "storage_access_key": "Access Key ID", + "storage_secret_key": "Secret Access Key", + "storage_secret_configured": "Klucz tajny jest już skonfigurowany", + "storage_key_placeholder": "Pozostaw puste, aby zachować bieżącą wartość", + "storage_path_style": "Wymuś styl ścieżki", + "storage_path_style_hint": "Wymagane dla MinIO i niektórych dostawców kompatybilnych z S3", + "storage_test_connection": "Testuj połączenie", + "storage_test_success": "Połączenie udane", + "storage_test_failure": "Połączenie nieudane", + "storage_save": "Zapisz", + "storage_saved": "Ustawienia pamięci masowej zapisane pomyślnie", + "storage_migration": "Migracja backendu", + "storage_migration_coming_soon": "Migracja backendu będzie dostępna w przyszłej aktualizacji.", + "migration_status_label": "Status:", + "migration_start": "Rozpocznij migrację", + "migration_pause": "Wstrzymaj", + "migration_resume": "Wznów", + "migration_verify": "Sprawdź integralność", + "migration_complete": "Sfinalizuj", + "migration_started": "Migracja rozpoczęta", + "migration_paused_msg": "Migracja wstrzymana", + "migration_resumed_msg": "Migracja wznowiona", + "migration_completed_msg": "Migracja sfinalizowana. Uruchom ponownie serwer, aby użyć nowego backendu.", + "migration_verifying": "Weryfikowanie…", + "migration_verify_passed": "Weryfikacja zaliczona", + "migration_verify_failed": "Weryfikacja nieudana", + "migration_failed_blobs": "nieudane bloby", + "testing": "Testowanie…" + }, + "profile": { + "page_title": "Profil", + "back_to_app": "Powrót do OxiCloud", + "loading": "Ładowanie…", + "not_authenticated": "Nieuwierzytelniony", + "not_authenticated_desc": "Zaloguj się, aby zobaczyć swój profil.", + "sign_in": "Zaloguj się", + "role_admin": "Administrator", + "role_user": "Użytkownik", + "account_details": "Szczegóły konta", + "username": "Nazwa użytkownika", + "email": "E-mail", + "role": "Rola", + "last_login": "Ostatnie logowanie", + "storage": "Pamięć masowa", + "used": "Wykorzystane", + "quota": "Przydział", + "usage": "Wykorzystanie", + "unlimited": "Nieograniczone", + "app_passwords": "Hasła aplikacji", + "app_pw_desc": "Generuj hasła dla klientów WebDAV, CalDAV i CardDAV. Każde hasło jest wyświetlane tylko raz.", + "app_pw_label_placeholder": "Etykieta (np. Thunderbird, macOS)", + "generate": "Wygeneruj", + "generating": "Generowanie…", + "new_password_for": "Nowe hasło dla", + "copy_warning": "Skopiuj to hasło teraz. Nie zobaczysz go ponownie.", + "copy_to_clipboard": "Kopiuj do schowka", + "col_label": "Etykieta", + "col_created": "Utworzone", + "col_last_used": "Ostatnio używane", + "col_status": "Status", + "active": "Aktywne", + "revoked": "Unieważnione", + "revoke_title": "Unieważnij", + "no_app_passwords": "Brak haseł aplikacji.", + "client_sessions": "Sesje klientów", + "client_sessions_desc": "Generowane automatycznie po połączeniu z klientem kompatybilnym z Nextcloud.", + "col_client": "Klient", + "never": "Nigdy", + "just_now": "Przed chwilą", + "minutes_ago": "{{n}} min temu", + "hours_ago": "{{n}} godz. temu", + "days_ago": "{{n}} dni temu", + "change_password": "Zmień hasło", + "current_password": "Bieżące hasło", + "new_password": "Nowe hasło", + "min_8_chars": "Co najmniej 8 znaków", + "confirm_password": "Potwierdź nowe hasło", + "update_password": "Aktualizuj hasło", + "updating": "Aktualizowanie…", + "password_updated": "Hasło zaktualizowane pomyślnie", + "passwords_no_match": "Hasła nie są zgodne", + "password_too_short": "Hasło musi mieć co najmniej 8 znaków", + "password_change_failed": "Nie udało się zmienić hasła", + "error_network": "Błąd sieci: {{message}}", + "error_label_required": "Wprowadź etykietę", + "error_create_pw": "Nie udało się utworzyć hasła aplikacji", + "confirm_revoke": "Unieważnić hasło aplikacji \"{{label}}\"? Klienci używający tego hasła przestaną działać.", + "error_revoke": "Nie udało się unieważnić hasła aplikacji" + }, + "upload": { + "uploading": "Przesyłanie...", + "files": "plików", + "complete": "{{count}} / {{total}} przesłano" + }, + "storage_quota_exceeded": "Przekroczono limit pamięci masowej" +}