diff --git a/src/Filee.App/Assets/i18n/pl.json b/src/Filee.App/Assets/i18n/pl.json new file mode 100644 index 00000000..ec2d5a7e --- /dev/null +++ b/src/Filee.App/Assets/i18n/pl.json @@ -0,0 +1,715 @@ +{ + "app.name": "Filee", + "app.tagline": "Przeciągnij, upuść, gotowe.", + + "nav.home": "Start", + "nav.general": "Ogólne", + "nav.triggers": "Skróty", + "nav.toolbar": "Pasek-pierścień", + "nav.presets": "Ustawienia wstępne", + "nav.watch": "Obserwowane foldery", + "nav.theme": "Motyw", + "nav.engines": "Silniki", + "nav.about": "O programie", + + "tray.open": "Otwórz Filee", + "tray.pause": "Wstrzymaj skróty", + "tray.resume": "Wznów skróty", + "tray.quit": "Zakończ", + "tray.update": "Aktualizuj do {0}", + "tray.tooltip": "Filee: przytrzymaj {0} i przeciągnij pliki", + "close.title": "Zostawić Filee uruchomione?", + "close.text": "W zasobniku pasek-pierścień i obserwowane foldery dalej działają.\nMożesz to później zmienić w Ustawienia → Ogólne.", + "close.tray": "Zostaw w zasobniku", + "close.quit": "Zakończ", + "close.dont_ask": "Nie pytaj ponownie", + + "home.title": "Start", + "home.drop_title": "Upuść pliki tutaj", + "home.drop_hint": "Albo przytrzymaj {0}, przeciągając pliki w Eksploratorze. Pasek-pierścień otworzy się przy kursorze.", + "home.drop_hint_macos": "Albo przytrzymaj {0}, przeciągając pliki w Finderze. Pasek-pierścień otworzy się przy kursorze.", + "home.drop_hint_linux": "Albo przytrzymaj {0}, przeciągając pliki w menedżerze plików. Pasek-pierścień otworzy się przy kursorze.", + "home.accessibility_needed": "Aby otwierać pierścień przeciąganiem z ⌥ Option, zezwól Filee w Dostępności.\nZadziała od razu po włączeniu.", + "home.elevated": "Filee działa jako administrator, więc Eksplorator nie może upuszczać na nie plików ani używać jego menu.\nSkrót też nie odczyta zaznaczenia w Eksploratorze.\nUruchom Filee ponownie bez uprawnień administratora, aby to naprawić.", + "home.elevated_restart": "Uruchom ponownie bez uprawnień administratora", + "home.elevated_restart_failed": "Filee nie mogło uruchomić się ponownie.\nZamknij Filee z zasobnika i uruchom je jeszcze raz.", + "elevation.notice_title": "Filee działa jako administrator", + "elevation.notice_text": "W tym trybie Eksplorator nie może upuszczać plików na Filee ani używać jego menu.\nUruchom je ponownie bez uprawnień administratora.", + "startup.elevated_other": "Inne Filee działa jako administrator.\nEksplorator nie może przekazać mu plików.\nZamknij Filee z zasobnika i uruchom je jeszcze raz.", + "startup.no_answer": "Filee działa, ale nie odpowiada.\nJeśli działa jako administrator, zamknij je z zasobnika i uruchom jeszcze raz.", + "home.recent": "Ostatnie konwersje", + "home.recent_empty": "Tu pojawią się przekonwertowane pliki.", + "home.open_folder": "Otwórz folder", + "home.clear_history": "Wyczyść", + "home.files": "Pliki: {0}", + "home.failed_files": "Błędy: {0}", + + "donut.center_drag": "Przenieś pliki tutaj", + "donut.files_same": "{0} × {1}", + "donut.files_mixed": "Pliki: {0}", + "donut.drop_to": "Upuść → {0}", + "donut.pick_in_group": "Przesuń na zewnątrz, by wybrać", + "donut.group_empty": "W tej grupie nie ma już ustawień. Edytuj ją w Ustawienia → Pasek-pierścień", + "donut.click_to": "Kliknij → {0}", + "donut.cancel": "Upuść tu, by anulować", + "donut.close_hint": "Esc zamyka", + "donut.edit": "Edytuj ustawienie", + "donut.empty": "Przeciągnij tu ustawienia", + "donut.same_format": "Ten sam format", + "donut.group_caption": "Grupa: {0}", + + "toast.converting": "{0} → {1}", + "toast.done": "Gotowe", + "toast.done_errors": "Nieudane: {0} z {1}", + "toast.failed": "Konwersja nieudana", + "toast.cancelled": "Anulowano", + "toast.skipped": "Pominięto (plik istnieje)", + "toast.open_folder": "Pokaż", + "toast.cancel": "Anuluj", + + "error.unsupported_source": "Ten typ pliku nie jest obsługiwany", + "format_request.request": "Poproś o ten format", + "format_request.notice_title": "Filee nie potrafi jeszcze konwertować plików {0}", + "format_request.notice_text": "Napisz, jakiego formatu potrzebujesz.\nNa podstawie próśb wybieramy kolejne obsługiwane formaty.\nPlików zaszyfrowanych lub chronionych przed kopiowaniem (DRM) nie da się konwertować, niezależnie od formatu.", + "error.no_route": "Żaden silnik nie wykona tej konwersji", + "error.cannot_turn": "Obracanie i odbicie działają tylko na obrazach", + "error.too_many_frames": "Za dużo klatek do zapisania jako obrazy, zwiększ „Co N-ta klatka”", + "error.not_enough_space": "Za mało wolnego miejsca na dysku na obrazy", + "error.rhwp_timeout": "rhwp nie zdążył przetworzyć tego długiego dokumentu", + "error.rhwp_timeout_calibre": "rhwp nie zdążył przetworzyć tego długiego dokumentu. Dla e-booka przenieś Calibre nad HWPX writer w Ustawienia → Silniki, a Calibre zrobi PDF znacznie szybciej", + "error.conversion_failed": "Silnik zgłosił błąd", + "notice.pdf_not_smaller": "Nie udało się zmniejszyć pliku, więc skopiowano go bez zmian", + + "engine.reason.not_installed": "Nie zainstalowano", + "engine.reason.error": "Błąd podczas sprawdzania", + "engine.reason.unsupported_platform": "Niedostępne na tej platformie", + "engine.reason.needs_package": "Wymaga {0}. Zainstaluj w Ustawienia → Silniki", + "engine.magick.description": "JPG, PNG, WEBP, AVIF, HEIC, TIFF, GIF, APNG, PSD, RAW z aparatów i inne.\nJakość, rozmiar i DPI zgodnie z ustawieniem.", + "engine.pdfium.description": "Renderuje strony PDF do PNG, JPG i TIFF (także wielostronicowy TIFF i GIF) w rozdzielczości z ustawienia.", + "engine.pdfsharp.description": "Tworzy PDF z obrazów oraz łączy, dzieli i wycina zakresy stron z plików PDF.", + "engine.rhwp.description": "Renderuje HWP/HWPX do PDF i konwertuje HWP ↔ HWPX.\nRysuje też dokumenty, które trafiają do PDF przez HWPX (DOCX, XLSX, PPTX, e-booki…).", + "engine.unhwp.description": "Wyodrębnia tekst, Markdown i HTML z HWP i HWPX.", + "engine.markdown.description": "Markdown → HTML i zwykły tekst.", + "engine.spreadsheet.description": "XLSX, XLS, ODS, CSV i TSV między sobą (XLS tylko do odczytu).\nJeden CSV na arkusz.", + "engine.ooxml.description": "Pliki z makrami i szablony (DOCM, XLSM, PPTM, DOTX…) ↔ DOCX, XLSX, PPTX.\nMakra są usuwane.", + "engine.hwpx-writer.description": "Zapisuje HWPX z Worda, Excela, PowerPointa, PDF, HTML, e-booków i Markdown.\nPierwszy krok zamiany dokumentów na PDF bez Office.", + "engine.docx-writer.description": "Zapisuje dokumenty Word (DOCX) z PDF, HWP/HWPX, Markdown, HTML, arkuszy, slajdów i e-booków.", + "engine.pdf-text.description": "Wyodrębnia tekst z PDF w kolejności czytania, także ze stron dwukolumnowych (bez OCR skanów).", + "engine.pdf-slides.description": "Zamienia PDF na slajdy PowerPoint: każda strona staje się obrazem na osobnym slajdzie (wygląda jak PDF, bez edycji), a tekst strony trafia do notatek prelegenta.", + "engine.email.description": "E-maile (EML, Outlook MSG) do HTML i tekstu z nadawcą, odbiorcami i datą, razem z obrazami; załączniki do ZIP.\nMSG do EML.", + "engine.data.description": "JSON, JSON Lines, YAML, TOML, XML i CSV między sobą.\nKontakty vCard do CSV i z powrotem.\nKomentarze są pomijane. CSV przechowuje tylko tabele.", + "engine.vector.description": "SVG i SVGZ do wektorowego PDF, obrazów i DXF; obrazy wektoryzowane do SVG; pliki Illustratora zapisane z zawartością PDF.", + "engine.icns.description": "Ikony aplikacji macOS (ICNS) z obrazów i do obrazów.", + "engine.font.description": "Czcionki: TTF, OTF, WOFF, WOFF2 i EOT między sobą.", + "engine.cad.description": "Rysunki AutoCAD: DWG ↔ DXF, oba także do PDF, SVG i PNG.", + "engine.model3d.description": "Modele 3D: GLB, glTF, STL, OBJ, 3MF i PLY między sobą oraz podgląd PNG.", + "engine.archive.description": "Rozpakowuje ZIP, 7Z, RAR, TAR, ISO i inne, pakuje do ZIP, 7Z lub TAR.GZ (7-Zip).", + "engine.ebook.description": "EPUB, MOBI, AZW3, FB2 i komiksy (CBZ, CBR) do PDF, EPUB, DOCX i tekstu.\nTakże dokumenty do EPUB, EPUB do KEPUB dla Kobo i PDF do CBZ.", + "engine.subtitle.description": "Napisy: SRT, ASS/SSA, WebVTT, SAMI (SMI), LRC, TTML, MicroDVD i SCC między sobą, zapisywane w UTF-8.\nKoreańskie pliki SMI i SRT w CP949 / EUC-KR są odczytywane poprawnie.", + "engine.ffmpeg.description": "Wideo i audio: MP4, MOV, MKV, WEBM, MP3, M4A, WAV, FLAC i inne.\nWyodrębnia też dźwięk i napisy, tworzy animacje GIF i APNG oraz zapisuje obrazy jako HEIC.", + "engine.pandoc.description": "Markdown i HTML ↔ ODT i RTF, DOCX → Markdown\nreStructuredText, LaTeX, Org, AsciiDoc, Typst, MediaWiki, DocBook, Jupyter i inne ↔ Markdown, HTML, DOCX i ODT\nMarkdown i Org → slajdy PPTX", + "engine.ghostscript.description": "EPS, PostScript i starsze pliki Illustratora do PDF i obrazów; PDF do EPS i PS.", + "engine.calibre.description": "Rzadkie formaty e-booków (LIT, LRF, CHM, PDB, RB…) i zapis dla Kindle (MOBI, AZW3).\nUmieszczony nad HWPX writer tworzy też PDF-y e-booków (znacznie szybciej przy długich książkach).", + "engine.libreoffice.description": "Odczytuje starsze i rzadsze formaty: DOC, PPT, Pages, Keynote, Numbers, WordPerfect, ClarisWorks, Publisher, Visio…\nZapisuje też jako DOC, XLS, PPT, ODT, ODP, szablony OpenDocument i EMF.", + + "profile.images": "Obrazy", + "profile.pdf": "PDF", + "profile.office": "Dokumenty", + "profile.spreadsheets": "Arkusze", + "profile.presentations": "Prezentacje", + "profile.hwp": "HWP / HWPX", + "profile.text": "Tekst i Markdown", + "profile.ebooks": "E-booki", + "profile.video": "Wideo", + "profile.audio": "Audio", + "profile.subtitles": "Napisy", + "profile.vector": "Grafika wektorowa", + "profile.archives": "Archiwa", + "profile.cad": "Rysunki CAD", + "profile.fonts": "Czcionki", + "profile.data": "Dane", + "profile.models": "Modele 3D", + "profile.mixed": "Różne pliki", + + "preset.half_size": "Połowa rozmiaru", + "preset.grayscale": "Skala szarości", + "preset.remove_background": "Usuń tło", + "preset.group_rotate": "Obróć", + "preset.rotate_left": "Obróć w lewo", + "preset.rotate_left.short": "W lewo", + "preset.rotate_right": "Obróć w prawo", + "preset.rotate_right.short": "W prawo", + "preset.rotate_180": "Obróć o 180°", + "preset.rotate_180.short": "180°", + "preset.group_flip": "Odbij", + "preset.flip_horizontal": "Odbij w poziomie", + "preset.flip_horizontal.short": "Poziomo", + "preset.flip_vertical": "Odbij w pionie", + "preset.flip_vertical.short": "Pionowo", + "preset.merge_pdf": "Połącz PDF", + "preset.split_pdf": "Podziel PDF", + "preset.compress_pdf": "Kompresuj PDF", + "preset.long_image": "Długi obraz", + "preset.pdf_slides": "PPTX (slajdy)", + "preset.extract": "Rozpakuj", + "preset.zip_all": "Jeden ZIP", + "preset.extract_subtitles": "Wyodrębnij napisy", + "preset.trace_svg": "Wektoryzuj do SVG", + "preset.trace_line_art": "Rysunek do SVG", + "preset.extract_frames_png": "Wyodrębnij klatki (PNG)", + "preset.extract_frames_jpg": "Wyodrębnij klatki (JPG)", + + "format.folder": "Folder", + "format.category.Image": "Obraz", + "format.category.Pdf": "PDF", + "format.category.Document": "Dokument", + "format.category.Spreadsheet": "Arkusz", + "format.category.Presentation": "Prezentacja", + "format.category.Hwp": "HWP", + "format.category.Text": "Tekst", + "format.category.Video": "Wideo", + "format.category.Audio": "Audio", + "format.category.Ebook": "E-book", + "format.category.Archive": "Archiwum", + "format.category.Vector": "Wektor", + "format.category.Cad": "CAD", + "format.category.Font": "Czcionka", + "format.category.Subtitle": "Napisy", + "format.category.Data": "Dane", + "format.category.Model3D": "Model 3D", + + "general.title": "Ogólne", + "general.language": "Język", + "general.language_auto": "Domyślny systemu", + "general.start_with_system": "Uruchamiaj Filee po zalogowaniu", + "general.context_menu": "Pokazuj „Konwertuj w Filee” w menu kontekstowym Eksploratora", + "general.context_menu_label": "Konwertuj w Filee", + "general.context_menu_macos": "Pokazuj „Konwertuj w Filee” po kliknięciu plików prawym przyciskiem w Finderze", + "general.context_menu_linux": "Dodaj „Konwertuj w Filee” do menedżera plików", + "general.integration_macos": "Finder pokazuje to w menu prawego przycisku (w Szybkich czynnościach lub Usługach, gdy menu jest długie).\nTrzymaj Filee w Aplikacjach.", + "general.integration_linux": "Dodaje akcje plików do Thunara, Nautilusa, Nemo i Dolphina.\nAby zmienić skrót w Thunarze, najpierw zamknij Thunara, a potem otwórz go ponownie.", + "general.integration_failed": "Nie udało się zastosować integracji z systemem: {0}", + "general.modern_menu_hint": "W Windows 11 ta pozycja jest w „Pokaż więcej opcji”.\nMoże też trafić do głównego menu (Windows raz poprosi o uprawnienia administratora).", + "general.modern_menu_on": "„Konwertuj w Filee” jest w głównym menu Windows 11.", + "general.modern_menu_outdated": "Pozycja w głównym menu należy do starszej lub przeniesionej kopii Filee.\nDodaj ją ponownie, aby ją zaktualizować.", + "general.modern_menu_add": "Dodaj do głównego menu", + "general.modern_menu_remove": "Usuń z głównego menu", + "general.modern_menu_busy": "Czekam na Windows…", + "general.modern_menu_cancelled": "Anulowano. Pozycja zostaje w „Pokaż więcej opcji”.", + "general.modern_menu_failed": "Windows nie dodał pozycji: {0}", + "general.modern_menu_remove_failed": "Windows nie usunął pozycji: {0}", + "general.default_output": "Domyślne miejsce zapisu", + "general.default_output_hint": "Ustawienia z „Domyślne miejsce zapisu” zapisują tutaj.\nUstawienie z własnym miejscem je zachowuje.", + "general.keep_dates": "Zachowuj oryginalne daty plików przy każdej konwersji", + "general.keep_dates_hint": "Przekonwertowane pliki zachowują daty utworzenia i modyfikacji oryginału, w każdym ustawieniu.\nWyłączone: robią to tylko ustawienia z „Zachowaj oryginalne daty plików”.", + "general.check_updates": "Automatycznie sprawdzaj aktualizacje", + "general.close_action": "Po zamknięciu okna", + "general.close.Ask": "Pytaj za każdym razem", + "general.close.Tray": "Zostaw Filee w zasobniku", + "general.close.Quit": "Zakończ Filee", + "general.history": "Historia konwersji", + "general.no_history": "Nie zapisuj historii ostatnich konwersji", + "general.clear_history": "Wyczyść historię", + "general.history_count": "Konwersje w historii: {0}", + "general.history_cleared": "Historia wyczyszczona.", + "general.check_now": "Sprawdź teraz", + "general.update_available": "Dostępna jest wersja {0}", + "general.update_none": "Masz najnowszą wersję ({0})", + "update.sidebar": "Aktualizuj do {0}", + "update.notice_title": "Dostępne jest Filee {0}", + "update.notice_text": "Naciśnij Aktualizuj, a Filee pobierze i zainstaluje nową wersję. Ustawienia zostaną zachowane.", + "update.download": "Pobierz", + "update.later": "Później", + "update.install": "Aktualizuj", + "update.notice_text_portable": "To wersja przenośna.\nPobierz nowy plik zip i rozpakuj go do tego folderu. Ustawienia zostaną zachowane.", + "update.downloading": "Pobieranie aktualizacji… {0}%", + "update.installing_short": "Instalowanie…", + "update.installing": "Instalator działa. Filee uruchomi się ponownie po zakończeniu.", + "update.failed": "Nie udało się zaktualizować automatycznie. Pobierz nową wersję z filee.sh.", + "update.failed_alert": "Nie udało się pobrać aktualizacji.\nNaciśnij OK, aby otworzyć filee.sh i pobrać tam nową wersję.", + "update.cancelled": "Aktualizacja anulowana. Naciśnij Aktualizuj ponownie, aby ją zainstalować.", + "update.level.Required": "Wymagana aktualizacja", + "update.level.Recommended": "Zalecana aktualizacja", + "update.level.Optional": "Opcjonalna aktualizacja", + "update.level_hint.Required": "Naprawia problemy dotyczące Twoich plików. Zaktualizuj.", + "update.level_hint.Recommended": "Naprawia błędy.", + "update.level_hint.Optional": "Nowe funkcje. Zaktualizuj, kiedy chcesz.", + "update.pill.Required": "Wymagana", + "update.pill.Optional": "Opcjonalna", + "update.more_changes": "… i jeszcze {0}", + "general.data_folder": "Folder ustawień", + "general.open_data_folder": "Otwórz", + "general.library": "Ustawienia wstępne i paski", + "general.export": "Eksportuj…", + "general.import": "Importuj…", + "general.reset_library": "Przywróć domyślne", + "general.reset_confirm": "Zastąpić wszystkie ustawienia wstępne i profile pasków domyślnymi?", + "general.imported": "Zaimportowano elementów: {0}", + + "triggers.title": "Skróty", + "triggers.description": "Wybierz, jak otwiera się pasek-pierścień. Możesz dodać dowolnie wiele gestów.", + "triggers.macos_permissions": "Zezwól Filee w Ustawienia systemowe > Prywatność i ochrona > Dostępność.\nFinder poprosi też o uprawnienie Automatyzacji przy pierwszym użyciu skrótu zaznaczenia.", + "triggers.linux_x11": "Gesty przeciągania działają w X11.\nPrzy włączonej integracji z menedżerem plików pierwszy skrót klawiszowy uruchamia akcję Filee w Thunarze (po zmianie otwórz Thunara ponownie).\nGesty przytrzymania i skróty w innych menedżerach plików są niedostępne. Użyj menu Filee lub strefy upuszczania.", + "triggers.linux_wayland": "Gesty podążające za kursorem są niedostępne w Waylandzie.\nUżyj sesji X11 albo konwertuj przez menu menedżera plików i strefę upuszczania.\nThunar może używać pierwszego skrótu klawiszowego po ponownym uruchomieniu.", + "triggers.open_accessibility": "Otwórz ustawienia Dostępności", + "triggers.retry_hook": "Ponów gesty", + "triggers.hook_running": "Globalne wykrywanie wejścia działa.", + "triggers.hook_stopped": "Globalne wykrywanie wejścia jest zatrzymane.\nAkcje menedżera plików i strefa upuszczania są nadal dostępne.", + "triggers.hook_failed": "Globalne wykrywanie wejścia nie powiodło się: {0}", + "triggers.hook_linux_backend": "Gesty nie uruchomiły się, bo biblioteki wejścia X11 się nie załadowały.\nUżyj sesji X11 i zainstaluj libxtst6 oraz libxt6 (Ubuntu/Debian: sudo apt install libxtst6 libxt6), potem ponów.\nAkcje menedżera plików i strefa upuszczania są nadal dostępne.", + "triggers.add": "Dodaj gest", + "triggers.remove": "Usuń", + "triggers.enabled": "Wł.", + "triggers.kind": "Gest", + "triggers.kind.Drag": "Modyfikator + przeciąganie plików", + "triggers.kind.Hold": "Modyfikator + naciśnij i przytrzymaj", + "triggers.kind.KeyChord": "Skrót klawiszowy (zaznaczone pliki)", + "triggers.modifiers": "Klawisze modyfikujące", + "triggers.button": "Przycisk myszy", + "triggers.button.None": "Brak", + "triggers.button.Left": "Lewy", + "triggers.button.Right": "Prawy", + "triggers.button.Middle": "Środkowy", + "triggers.button.X1": "Wstecz (X1)", + "triggers.button.X2": "Dalej (X2)", + "triggers.key": "Klawisz", + "triggers.record": "Nagraj", + "triggers.recording": "Naciśnij kombinację klawiszy…", + "triggers.clear": "Wyczyść", + "triggers.threshold": "Odległość przeciągania", + "triggers.threshold_system": "Domyślna systemu", + "triggers.hold_ms": "Czas przytrzymania", + "triggers.scope": "Aktywne w", + "triggers.scope.FileManager": "Menedżery plików i pulpit", + "triggers.scope.FileManager_macos": "Finder i pulpit", + "triggers.scope.FileManager_linux": "Menedżer plików i pulpit", + "triggers.scope.Anywhere": "Wszędzie", + "triggers.excluded": "Nigdy nie uruchamiaj w tych aplikacjach", + "triggers.excluded_hint": "Wpisz nazwę aplikacji i naciśnij Enter, np. photoshop", + "triggers.excluded_pick": "Wybierz uruchomioną aplikację", + "triggers.excluded_none_running": "Żadna inna aplikacja nie ma otwartego okna.", + "triggers.excluded_note": "Gesty i skróty nic nie robią, gdy wskaźnik jest nad tymi aplikacjami.", + "triggers.paused": "Skróty są wstrzymane", + + "toolbar.title": "Pasek-pierścień", + "toolbar.step_profile": "1. Wybierz profil", + "toolbar.step_arrange": "2. Ułóż ustawienia", + "toolbar.add_profile": "Nowy profil", + "toolbar.profile_new": "Nowy profil", + "toolbar.delete_profile": "Usuń profil", + "toolbar.name": "Nazwa", + "toolbar.extensions": "Używany dla tych rozszerzeń", + "toolbar.extensions_hint": "Dodaj rozszerzenie, np. jpg", + "toolbar.available": "Dostępne ustawienia", + "toolbar.hint_add": "Przeciągnij element na pierścień, by go dodać", + "toolbar.hint_remove": "Przeciągnij wycinek tutaj, by go usunąć", + "toolbar.hint_reorder": "Przeciągaj wycinki na siebie, by zmienić kolejność", + "toolbar.hint_edit": "Kliknij wycinek prawym przyciskiem lub użyj ✎, by edytować", + "toolbar.max_reached": "Pierścień mieści do {0} ustawień", + "toolbar.appearance": "Wygląd", + "toolbar.size": "Rozmiar", + "toolbar.hole": "Otwór", + "toolbar.opacity": "Krycie", + "toolbar.new_preset": "Nowe ustawienie", + "toolbar.new_group": "Nowa grupa", + "group.editor_title": "Grupa", + "group.hint": "Grupa to jeden wycinek pierścienia dla kilku ustawień: zatrzymaj się na nim lub przesuń na zewnątrz, a rozłożą się wokół.", + "group.members": "Ustawienia ({0} / {1})", + "group.empty": "Brak ustawień. Dodaj je poniżej.", + "group.add": "Dodaj", + "group.add_placeholder": "Wybierz ustawienie", + "group.full": "Grupa mieści do {0} ustawień.", + "group.move_up": "W górę", + "group.move_down": "W dół", + "group.remove": "Usuń z grupy", + "group.delete": "Usuń grupę", + "group.delete_confirm": "Usunąć grupę „{0}”? Jej ustawienia zostaną.", + "toolbar.ext_none": "Brak rozszerzeń. Ten profil będzie używany dopiero po ich dodaniu.", + "toolbar.ext_invalid": "„{0}” to nie jest rozszerzenie pliku (np. jpg lub tar.gz).", + "toolbar.ext_duplicate": "{0} jest już na liście.", + "toolbar.ext_also_in": "Także w „{0}”", + "toolbar.ext_in_profile": "w {0}", + "toolbar.ext_claimed_first": "{0}: także w „{1}”, który jest wcześniej na liście, więc te pliki nadal otwierają „{1}”.", + "toolbar.ext_claimed_later": "{0}: także w „{1}”.\nTen profil jest wcześniej na liście, więc te pliki otwierają teraz ten profil.", + "toolbar.ext_unknown": "{0}: Filee nie zna tego typu pliku.\nMożesz go zostawić, ale tych plików nie da się przekonwertować.", + "toolbar.ext_unknown_tip": "Nieznany typ pliku", + "toolbar.mixed_toggle": "Używaj dla mieszanych zaznaczeń (pliki różnych typów)", + "toolbar.mixed_locked": "Filee potrzebuje co najmniej jednego profilu dla mieszanych zaznaczeń, więc ten zostaje.", + "toolbar.mixed_badge": "Dla mieszanych zaznaczeń", + "toolbar.mixed_title": "Pokaż ten pasek, gdy każdy zaznaczony plik jest jednym z:", + "toolbar.mixed_expand": "Pokaż rozszerzenia", + "toolbar.mixed_other_group": "Inne rozszerzenia", + "toolbar.mixed_catch_all": "Nic nie zaznaczono: używany dla każdej mieszanki plików, której nie bierze inny profil.", + "toolbar.mixed_shadowed": "Nic nie zaznaczono, więc „{0}”, wcześniej na liście, bierze każdą mieszankę.\nZaznacz rozszerzenia, by używać tego profilu.", + "toolbar.mixed_covered": "„{0}” jest pierwszy i dopuszcza każde zaznaczone tu rozszerzenie, więc ten profil nigdy nie jest używany.", + "toolbar.mixed_others": "Inne mieszanki plików otwierają „{0}”.", + "toolbar.mixed_others_self": "Nie został żaden mieszany profil bez zaznaczeń, więc ten jest używany także dla każdej innej mieszanki.", + "tags.remove": "Usuń", + + "presets.title": "Ustawienia wstępne", + "presets.add": "Nowe", + "presets.duplicate": "Duplikuj", + "presets.delete": "Usuń", + "presets.save": "Zapisz", + "presets.revert": "Cofnij", + "presets.name": "Nazwa", + "presets.target": "Konwertuj do", + "presets.same_as_source": "Ten sam format co źródło", + "presets.group.image": "Obraz", + "presets.quality": "Jakość", + "presets.resize": "Zmień rozmiar", + "presets.resize.None": "Oryginalny rozmiar", + "presets.resize.Percent": "Skaluj procentowo", + "presets.resize.LongEdge": "Ogranicz dłuższy bok", + "presets.resize.Width": "Ustaw szerokość", + "presets.rotation": "Obróć", + "presets.rotation.None": "Nie obracaj", + "presets.rotation.Right90": "W prawo 90°", + "presets.rotation.Left90": "W lewo 90°", + "presets.rotation.Rotate180": "180°", + "presets.flip": "Odbij", + "presets.flip.None": "Nie odbijaj", + "presets.flip.Horizontal": "Lewo ↔ prawo", + "presets.flip.Vertical": "Góra ↔ dół", + "presets.percent": "Procent", + "presets.long_edge": "Dłuższy bok (px)", + "presets.width": "Szerokość (px)", + "presets.dpi": "DPI", + "presets.dpi_keep": "Zachowaj", + "presets.keep_metadata": "Zachowaj metadane (EXIF)", + "presets.keep_color_profile": "Zachowaj profil kolorów (ICC)", + "presets.keep_color_profile_hint": "Dostępne, gdy metadane są usuwane.\nBez niego zdjęcia o szerokiej gamie (Display P3 z telefonów) mogą wyglądać na wyblakłe.", + "presets.grayscale": "Skala szarości", + "presets.remove_background": "Usuń tło", + "presets.remove_background_hint": "Robi jednolite tło przezroczystym: papier za podpisem lub pieczątką, tło logo.\nKolor przy krawędzi liczy się jako tło, więc zostaw trochę papieru wokół grafiki.\nJPG nie ma przezroczystości i dostaje kolor poniżej. Nie do zdjęć ludzi.", + "presets.background_tolerance": "Tolerancja tła", + "presets.background_tolerance_hint": "Wyżej usuwa więcej, np. cieniowany papier lub smugi. Za wysoko wyszczupla jasne linie.\nAby zachować jasne wypełnienie wewnątrz konturu, włącz „Zachowaj zamknięte obszary”.", + "presets.keep_enclosed_background": "Zachowaj zamknięte obszary", + "presets.keep_enclosed_background_hint": "Usuwa tylko tło stykające się z krawędzią, więc biel wewnątrz logo zostaje.\nWyłącz dla pisma odręcznego (zostawiłoby papier wewnątrz liter jak „o”).", + "presets.background": "Tło dla przezroczystości", + "presets.tiff_compression": "Kompresja TIFF", + "presets.webp_lossless": "Bezstratny WEBP", + "presets.multipage_tiff": "Umieść wszystkie pliki w jednym wielostronicowym TIFF", + "presets.multipage_tiff_hint": "Każdy obraz i każda strona PDF lub TIFF staje się stroną, po kolei.\nJeden PDF wystarczy do wielostronicowego TIFF.", + "presets.save_every_frame": "Zapisz każdą klatkę wideo", + "presets.save_every_frame_hint": "Wideo staje się folderem z obrazem każdej klatki zamiast jednej klatki.\nDługie wideo daje wiele plików.", + "presets.frame_interval": "Co N-ta klatka", + "presets.frame_estimate": "Minuta wideo w 30 kl./s daje {0} obrazów, najwyżej {1} na wideo.", + "presets.ico_sizes": "Rozmiary ikon", + "presets.group.pdf": "PDF", + "presets.merge": "Połącz wszystkie pliki w jeden PDF", + "presets.page_size": "Rozmiar strony", + "presets.page_size.FitImage": "Dopasuj do obrazu", + "presets.page_size.A4": "A4", + "presets.page_size.Letter": "Letter", + "presets.margin": "Margines (mm)", + "presets.render_dpi": "DPI renderowania (PDF → obraz)", + "presets.page_range": "Strony", + "presets.page_range_hint": "Wszystkie strony lub np. 1-3, 5", + "presets.split": "Jeden plik na stronę", + "presets.pdf_compression": "Kompresja", + "presets.pdf_compression.None": "Bez kompresji", + "presets.pdf_compression.Screen": "Najmniejszy (obrazy w 72 dpi)", + "presets.pdf_compression.Ebook": "Zrównoważony (obrazy w 150 dpi)", + "presets.pdf_compression.Print": "Wysoka jakość (obrazy w 300 dpi)", + "presets.pdf_compression_hint": "Obrazy są pomniejszane i zapisywane jako JPEG.\nTekst, czcionki i rysunki pozostają bez zmian.\nJeśli wynik nie jest mniejszy, zostaje oryginał.", + "presets.pdf_ghostscript": "Spróbuj też Ghostscript (jeśli jest zainstalowany)", + "presets.pdf_ghostscript_hint": "Często daje mniejszy plik, ale zapisuje cały plik od nowa.\nZostaje najmniejszy wynik.", + "presets.pdf_keep_metadata": "Zachowaj metadane stron i obrazów (XMP)", + "presets.combine_pages_hint": "Układa wszystkie strony jedna pod drugą w jednym obrazie.\nBardzo długie wyniki są skalowane do limitu formatu (JPG 65 500 px, WebP 16 383 px).", + "presets.combine_pages": "Złóż strony w jeden wysoki obraz (przy konwersji PDF)", + "presets.trim_page_margins": "Wytnij puste miejsce nad i pod każdą stroną", + "presets.split_tall_image": "Za wysoki dla formatu: podziel na kilka obrazów", + "presets.split_tall_image_hint": "Wyłączone: długi obraz jest zmniejszany do limitu formatu (JPG 65 500 px, WebP 16 383 px).\nWłączone: zachowuje rozmiar i jest dzielony między stronami na kilka plików (nazwa_1, nazwa_2, …).", + "presets.group.document": "Dokumenty", + "presets.pdfa": "PDF/A (archiwalny)", + "presets.target_folder": "Folder (rozpakuj archiwa)", + "presets.group.media": "Wideo i audio", + "presets.media_quality": "Jakość", + "presets.media_quality_hint": "Gdy nowy format może przyjąć kodeki bez zmian (MOV z iPhone’a → MP4), wideo jest tylko przepakowywane.\nBez utraty jakości, z zachowaniem HDR, w kilka sekund.\nMała zawsze koduje ponownie, by zmniejszyć plik.", + "presets.media_quality.High": "Wysoka (większe pliki)", + "presets.media_quality.Balanced": "Zrównoważona", + "presets.media_quality.Small": "Mała (do udostępniania)", + "presets.max_height": "Maksymalna wysokość", + "presets.max_height.original": "Oryginalna", + "presets.audio_bitrate": "Bitrate audio", + "presets.audio_bitrate.auto": "Automatyczny", + "presets.remove_audio": "Usuń dźwięk", + "presets.audio_channels": "Kanały", + "presets.audio_channels.0": "Jak w źródle", + "presets.audio_channels.1": "Mono", + "presets.audio_channels.2": "Stereo", + "presets.sample_rate": "Częstotliwość próbkowania", + "presets.sample_rate.source": "Jak w źródle", + "presets.wav_format": "Głębia bitowa", + "presets.wav_format.Pcm16": "16-bit", + "presets.wav_format.Pcm8": "8-bit", + "presets.wav_format.Pcm24": "24-bit", + "presets.wav_format.Pcm32": "32-bit", + "presets.wav_format.Float32": "32-bit float", + "presets.video_codec": "Kodek wideo", + "presets.video_codec_hint": "H.264 odtwarza się wszędzie.\nPliki HEVC są mniej więcej o połowę mniejsze i działają na większości telefonów, telewizorów i nowszych komputerów.\nAV1 jest jeszcze mniejszy, ale wolno się koduje i wymaga nowego urządzenia.\nWideo już w wybranym kodeku jest tylko przepakowywane.", + "presets.video_codec.h264": "H.264 (działa wszędzie)", + "presets.video_codec.vp9": "VP9", + "presets.video_codec.hevc": "HEVC / H.265 (mniejszy)", + "presets.video_codec.av1": "AV1 (najmniejszy, wolny)", + "presets.hardware_encoding": "Użyj akceleracji sprzętowej (karta graficzna)", + "presets.hardware_encoding_hint": "Koduje H.264 i HEVC na karcie graficznej.\nZnacznie szybciej i przy mniejszym zużyciu energii.\nNieco niższa jakość przy tym samym rozmiarze pliku.\nBez obsługiwanej karty wideo jest kodowane jak zwykle.", + "presets.audio_codec": "Kodek audio", + "presets.audio_codec.aac": "AAC", + "presets.audio_codec.alac": "ALAC (bezstratny)", + "presets.group.archive": "Archiwum", + "presets.archive_level": "Kompresja", + "presets.archive_level.Store": "Brak (tylko zapis)", + "presets.archive_level.Fast": "Szybka", + "presets.archive_level.Normal": "Normalna", + "presets.archive_level.Maximum": "Maksymalna (wolniej)", + "presets.combine": "Umieść wszystkie pliki w jednym archiwum", + "presets.extract_note": "Każde archiwum jest rozpakowywane do własnego folderu. Miejsce ustawisz w sekcji Wynik.", + "presets.group.trace": "Wektoryzacja", + "presets.trace_note": "Używane, gdy obraz (PNG, JPG, …) jest zamieniany na kształty wektorowe.", + "presets.trace_mode": "Tryb", + "presets.trace_mode.Color": "Kolor", + "presets.trace_mode.BlackAndWhite": "Czarno-biały (rysunek)", + "presets.trace_colors": "Kolory", + "presets.trace_detail": "Szczegóły", + "presets.trace_detail_hint": "Niskie wygładzają kontury i pomijają drobinki.\nWysokie wiernie śledzą piksele i zachowują drobne detale.", + "presets.group.output": "Wynik", + "presets.location": "Zapisz w", + "presets.location.Default": "Domyślne miejsce zapisu (Ustawienia > Ogólne)", + "presets.location.SameFolder": "Ten sam folder co źródło", + "presets.location.Subfolder": "Podfolder", + "presets.location.CustomFolder": "Stały folder", + "presets.subfolder": "Nazwa podfolderu", + "presets.custom_folder": "Folder", + "presets.browse": "Przeglądaj…", + "presets.pattern": "Nazwa pliku", + "presets.pattern_hint": "{name} {ext} {preset} {date} {time} {index}", + "presets.keep_dates": "Zachowaj oryginalne daty plików", + "presets.keep_dates_hint": "Przekonwertowane pliki dostają daty utworzenia i modyfikacji oryginału, więc zdjęcia nadal sortują się według daty.", + "presets.conflict": "Jeśli plik istnieje", + "presets.conflict.Rename": "Dodaj numer", + "presets.conflict.Overwrite": "Zastąp", + "presets.conflict.Skip": "Pomiń", + "presets.editor_title": "Edytuj ustawienie", + "presets.delete_confirm": "Usunąć „{0}”? Zostanie też usunięte z każdego paska i grupy.", + "presets.name_required": "Podaj nazwę", + "presets.select": "Wybierz ustawienie, aby je edytować", + + "theme.title": "Motyw", + "theme.mode": "Wygląd", + "theme.mode.System": "Systemowy", + "theme.mode.Light": "Jasny", + "theme.mode.Dark": "Ciemny", + "theme.accent": "Kolor akcentu", + "theme.custom_color": "Własny", + "theme.corner_radius": "Zaokrąglenie", + "theme.reduce_motion": "Ogranicz animacje", + "theme.reduce_motion_hint": "Zalecane na starszych komputerach. Wyłącza przejścia i odbijanie pierścienia.", + "theme.preview": "Podgląd", + + "engines.title": "Silniki konwersji", + "engines.description": "Filee wybiera najlepszy dostępny silnik dla każdej konwersji.\nGdy kilka potrafi to samo, wygrywa wyższy.", + "engines.available": "Gotowy", + "engines.unavailable": "Niedostępny", + "engines.move_up": "W górę", + "engines.move_down": "W dół", + "engines.recheck": "Sprawdź ponownie", + "engines.conversions": "Konwersje: {0}", + "engines.optional_title": "Silniki opcjonalne", + "engines.optional_description": "Duże silniki są pobierane tylko wtedy, gdy ich chcesz.\nZostają przy aktualizacji Filee i są usuwane przy odinstalowaniu.", + "engines.all_title": "Wszystkie silniki", + "engines.update": "Aktualizuj", + "engines.state.update_available": "Nowa wersja {0}", + "engines.update_notice_title": "Zainstalowane silniki mają nową wersję", + "engines.settings": "Ustawienia", + "engines.all_description": "Przeciągnij kartę (lub użyj strzałek), by zmienić kolejność.", + "engines.lo_title": "Gdy LibreOffice jest zainstalowany", + "engines.lo_description": "LibreOffice może przejąć konwersje, które wykonuje wierniej.\nBez LibreOffice te przełączniki nic nie zmieniają.", + "engines.lo_slides": "Używaj LibreOffice dla prezentacji → PDF", + "engines.lo_slides_hint": "Tła slajdów i położenie kształtów wychodzą jak w PowerPoincie.\nWyłączone: wbudowana ścieżka, która może gubić tła lub przesuwać kształty.", + "engines.lo_documents": "Używaj LibreOffice dla dokumentów Word → PDF", + "engines.lo_documents_hint": "Układ jak w Wordzie, łącznie z zasadami interpunkcji chińskiej i japońskiej.\nWyłączone: wbudowana ścieżka.", + "engines.lo_sheets": "Używaj LibreOffice dla arkuszy → PDF", + "engines.lo_sheets_hint": "Drukowane jak w Excelu, z obszarem wydruku, ustawieniami strony i podziałami stron.\nWyłączone: wbudowana ścieżka dopasowuje każdy arkusz do szerokości strony (podziały stron zachowane).", + "engines.lo_hwp": "Używaj LibreOffice dla HWP·HWPX → PDF", + "engines.lo_hwp_hint": "Domyślnie wyłączone: rhwp zwykle wygląda bardziej jak 한글.\nWłącz, by porównać, gdy rhwp źle odda dokument (nakładający się tekst, przesunięte tabele).", + "engines.package.libreoffice.name": "LibreOffice (starsze i rzadkie formaty)", + "engines.package.libreoffice.description": "Potrzebny dla starych lub nietypowych formatów: DOC·PPT, prezentacje OpenDocument, WordPerfect, ClarisWorks·MacWrite, Apple Pages·Numbers·Keynote, Publisher·Visio i inne.\nZapisuje też jako DOC·XLS·PPT·ODT·ODP·EMF i daje wierniejsze prezentacje → PDF.\nWord, Excel, PowerPoint, PDF i HWP konwertują się bez niego.", + "engines.package.pandoc.name": "Pandoc (Markdown, LaTeX, Org i inne)", + "engines.package.pandoc.description": "Dodaje Markdown i HTML ↔ ODT i RTF, DOCX → Markdown oraz LaTeX, Org, AsciiDoc, Typst, Jupyter i inne języki znaczników.\nTworzy też slajdy PPTX z Markdown.\nMarkdown i HTML → PDF, DOCX i HWPX działają bez niego.", + "engines.package.ghostscript.name": "Ghostscript (EPS i PostScript)", + "engines.package.ghostscript.description": "EPS, PS i starsze pliki Illustratora → PDF i obrazy, PDF lub SVG → EPS/PS.\nSVG i pliki AI zgodne z PDF konwertują się bez niego.", + "engines.package.ffmpeg.name": "FFmpeg (wideo i audio)", + "engines.package.ffmpeg.description": "Dodaje konwersję wideo i audio, wideo → GIF lub klatka, dźwięk z wideo i GIF → MP4.\nPotrzebny tylko do wideo i audio.", + "engines.package.calibre.name": "Calibre (Kindle i rzadkie formaty e-booków)", + "engines.package.calibre.description": "Zapisuje MOBI i AZW3 dla Kindle i konwertuje rzadkie formaty e-booków (LIT, LRF, PDB, CHM…).\nEPUB, MOBI, AZW3, FB2 i komiksy są odczytywane bez niego.", + "engines.package.size": "Pobieranie {0} · {1} na dysku", + "engines.package.system_required": "Użyj kopii zainstalowanej na tym komputerze.", + "engines.guidance.macos": "Zainstaluj {0} dla tego Maca, potem wybierz „Użyj mojej kopii…” i wskaż jego program lub folder .app.", + "engines.guidance.macos.ffmpeg": "Zainstaluj przez Homebrew (brew install ffmpeg), potem wybierz „Sprawdź ponownie”.\nAlbo wybierz „Użyj mojej kopii…” i wskaż folder bin.", + "engines.guidance.macos.ghostscript": "Zainstaluj przez Homebrew (brew install ghostscript), potem wybierz „Sprawdź ponownie”.\nAlbo wybierz „Użyj mojej kopii…” i wskaż folder bin.", + "engines.guidance.linux": "Zainstaluj {0} menedżerem pakietów swojej dystrybucji, potem wybierz „Użyj mojej kopii…” i wskaż folder programu.", + "engines.guidance.linux.libreoffice": "Zainstaluj menedżerem pakietów (Ubuntu/Debian: sudo apt install libreoffice), potem wybierz „Sprawdź ponownie”.\nOtwieranie HWP wymaga też Javy i rozszerzenia H2Orestart.", + "engines.guidance.linux.ghostscript": "Zainstaluj menedżerem pakietów (Ubuntu/Debian: sudo apt install ghostscript), potem wybierz „Sprawdź ponownie”.", + "engines.guidance.windows": "Filee nie ma do pobrania {0} dla tego komputera.\nWybierz „Użyj mojej kopii…” i wskaż zainstalowaną kopię.", + "engines.use_own_app_folder": "Wybierz folder zawierający {0}.app", + "engines.progress_detail": "{0} z {1} · {2}/s · {3}", + "engines.eta.estimating": "szacowanie pozostałego czasu…", + "engines.eta.seconds": "zostało {0} s", + "engines.eta.minutes": "zostało {0} min", + "engines.install": "Zainstaluj", + "engines.cancel": "Anuluj", + "engines.remove": "Usuń", + "engines.remove_confirm": "Usunąć {0}? Możesz pobrać go później ponownie.", + "engines.state.own_copy": "Twoja kopia", + "engines.state.system_copy": "Znaleziono na tym komputerze", + "engines.update_recommended": "Zalecana aktualizacja: ta kopia to {0}, Filee jest testowane z {1}.\nWiększość konwersji nadal działa.", + "engines.use_own": "Użyj mojej kopii…", + "engines.use_own_hint": "Masz go już? Wskaż jego program, a Filee użyje go zamiast pobierać własny.", + "engines.use_own_title": "Wybierz program {0}", + "engines.use_own_missing": "W tym folderze brakuje czegoś, czego Filee potrzebuje: {0}.", + "engines.stop_own": "Przestań używać", + "engines.remove_failed": "Silnik jest w użyciu. Spróbuj ponownie po zakończeniu trwających konwersji.", + "engines.state.not_installed": "Nie zainstalowano", + "engines.state.queued": "Oczekiwanie…", + "engines.state.downloading": "Pobieranie {0}%", + "engines.state.unpacking": "Instalowanie…", + "engines.state.installed": "Zainstalowano", + "engines.state.failed": "Błąd: {0}", + + "about.title": "O programie", + "about.updates": "Aktualizacje", + "common.search": "Szukaj", + "common.retry": "Ponów", + "about.version": "Wersja {0}", + "about.license": "Filee to wolne oprogramowanie na licencji MIT.", + "about.notices": "Informacje o komponentach zewnętrznych", + "about.github": "Repozytorium GitHub", + "about.support_title": "Pomóż Filee się rozwijać", + "about.support_text": "Filee jest darmowe i otwartoźródłowe.\nGwiazdka na GitHubie, zgłoszenie błędu, pomysł czy sponsoring – wszystko pomaga.", + "about.sponsor": "Wesprzyj", + "sponsor.title": "Wesprzyj Filee", + "sponsor.lead": "Filee jest darmowe i takie zostanie. Jeśli chcesz wesprzeć rozwój, wybierz wygodny dla siebie sposób.", + "sponsor.note.github": "Co miesiąc lub jednorazowo, kartą przez GitHub", + "sponsor.note.fairy": "Koreańskie karty i szybkie płatności", + "sponsor.note.patreon": "Miesięczne członkostwo", + "sponsor.note.kofi": "Jednorazowa kawa, bez konta", + "sponsor.note.paypal": "Dowolna kwota przez PayPal", + "sponsor.thanks": "Dziękujemy naszym sponsorom", + "sponsor.star": "⭐ na GitHubie nic nie kosztuje i pomaga innym znaleźć Filee.", + "feedback.notice_title": "Czy Filee Ci pomaga?", + "feedback.notice_text": "Gwiazdka na GitHubie pomaga innym znaleźć Filee.\nProblemy i pomysły też są mile widziane.", + "feedback.star": "Gwiazdka na GitHubie", + "feedback.issue": "Zgłoś problem lub pomysł", + + "common.ok": "OK", + "common.cancel": "Anuluj", + "common.save": "Zapisz", + "common.close": "Zamknij", + "common.delete": "Usuń", + "common.yes": "Tak", + "common.no": "Nie", + + "setup.title": "Wybierz silniki konwersji", + "setup.description": "Obrazy, PDF, dokumenty Office, HWP, e-booki, archiwa, czcionki, CAD i modele 3D już się konwertują.\nPobieraj silniki tylko dla wideo i audio lub rzadkich formatów.", + "setup.note": "Silniki możesz w każdej chwili zainstalować lub usunąć w Ustawienia → Silniki.", + "setup.install": "Zainstaluj wybrane", + "setup.later": "Później", + "setup.background": "Kontynuuj w tle", + "setup.done": "Gotowe", + "setup.selection": "Pobieranie: {0}", + "setup.nothing_selected": "Nic nie wybrano", + "watch.title": "Obserwowane foldery", + "watch.description": "Pliki trafiające do tych folderów są konwertowane, gdy Filee działa.\nPobierane i kopiowane pliki czekają na zakończenie.", + "watch.add": "Dodaj folder", + "watch.empty": "Brak obserwowanych folderów.", + "watch.enabled": "Wł.", + "watch.remove": "Usuń", + "watch.folder": "Folder do obserwowania", + "watch.folder_placeholder": "Wybierz folder", + "watch.preset": "Konwertuj ustawieniem", + "watch.originals": "Po konwersji", + "watch.originals_keep": "Zostaw oryginał na miejscu", + "watch.originals_move": "Przenieś oryginał do „originals”", + "watch.originals_hint": "Przenoszenie oryginałów sprawia, że folder działa jak skrzynka odbiorcza, a pliki czekające w nim przy starcie Filee też są konwertowane.", + "watch.output": "Zapisuj przekonwertowane pliki w", + "watch.output_placeholder": "„converted” w obserwowanym folderze", + "watch.subfolders": "Uwzględnij podfoldery", + "watch.options": "Więcej opcji (opcjonalnie)", + "watch.include": "Pliki do konwersji", + "watch.include_placeholder": "Wpisz rozszerzenie lub nazwę, potem Enter (np. heic, scan_*)", + "watch.include_hint": "Zostaw puste, by konwertować każdy plik.\n· heic → pliki kończące się na .heic\n· scan → pliki z „scan” w nazwie\n· * oznacza dowolny tekst, ? jeden znak (np. scan_*.jpg)", + "watch.name": "Nazwa bazowa", + "watch.name_placeholder": "Jak w ustawieniu: {0}", + "watch.name_hint": "Przyciski dodają części nazwy. Zostaw puste, by użyć nazwy z ustawienia.", + "watch.rename": "Nazwy przekonwertowanych plików", + "watch.rename_find": "Znajdź, np. IMG_(\\d+)", + "watch.rename_replace": "Zamień na, np. Zdjecie_$1", + "watch.name_summary": "Nazwa: {0}", + "watch.name_summary_preset": "Nazwa: {0} (jak w ustawieniu)", + "watch.token.name": "Oryginalna nazwa", + "watch.token.ext": "Oryginalne rozszerzenie", + "watch.token.date": "Data", + "watch.token.time": "Godzina", + "watch.token.index": "Numer", + "watch.token.preset": "Nazwa ustawienia", + "watch.kind.Replace": "Zamień tekst", + "watch.kind.Remove": "Usuń tekst", + "watch.kind.Prefix": "Dodaj na początku", + "watch.kind.Suffix": "Dodaj na końcu", + "watch.kind.SpacesToUnderscores": "Spacje na _", + "watch.kind.RemoveCopyNumber": "Usuń numer kopii jak (2)", + "watch.kind.RemoveBrackets": "Usuń tekst w nawiasach", + "watch.kind.RemoveLeadingNumber": "Usuń numer na początku", + "watch.kind.RemoveSymbols": "Usuń symbole", + "watch.kind.Lowercase": "wszystko małymi", + "watch.kind.Uppercase": "WSZYSTKO WIELKIMI", + "watch.kind.Regex": "Zaawansowane: wyrażenie regularne", + "watch.ph.find": "Tekst do znalezienia, np. IMG_", + "watch.ph.replace": "Zamień na, np. Zdjecie_", + "watch.ph.remove": "Tekst do usunięcia, np. _kopia", + "watch.ph.prefix": "Tekst do dodania, np. 2026_", + "watch.ph.suffix": "Tekst do dodania, np. _final", + "watch.advanced": "Zaawansowane", + "watch.recipe.camera_to_photo": "Zmień IMG_ na Photo_", + "watch.recipe.lowercase": "Wszystko małymi", + "watch.rename_edit": "Edytuj reguły nazw", + "watch.rename_title": "Nazwy przekonwertowanych plików", + "watch.rename_intro": "Ustaw nazwę bazową, a w razie potrzeby zmień jej części regułami.\nPodgląd pokazuje nazwę, jaką dostanie każdy plik.", + "watch.rename_steps": "Zmiany (stosowane od góry do dołu)", + "watch.rename_no_steps": "Brak zmian. Wybierz jedną po lewej lub dodaj, jeśli potrzebujesz.", + "watch.step_up": "W górę (wykonaj wcześniej)", + "watch.rename_try": "Wypróbuj nazwę", + "watch.rename_try_placeholder": "Wpisz nazwę pliku, np. IMG_0412.jpg", + "watch.include_matches": "Pasujące pliki w folderze: {0}", + "watch.add_step": "Dodaj regułę", + "watch.remove_step": "Usuń tę regułę", + "watch.recipes": "Częste zamiany", + "watch.recipes_hint": "Kliknij dwukrotnie (lub naciśnij +), by dodać jako regułę, potem możesz ją zmienić.", + "watch.recipe_add": "Dodaj jako regułę", + "watch.recipe_removes": "(usunięte)", + "watch.recipe.drop_camera_prefix": "Usuń IMG_", + "watch.recipe.spaces": "Spacje na podkreślenia", + "watch.recipe.copy_number": "Usuń numer kopii jak (2)", + "watch.recipe.brackets": "Usuń tekst w nawiasach", + "watch.recipe.leading_number": "Usuń numer na początku", + "watch.recipe.date_dashes": "Dodaj myślniki w datach", + "watch.recipe.symbols": "Usuń symbole", + "watch.recipe.prefix": "Dodaj tekst na początku", + "watch.recipe.suffix": "Dodaj tekst na końcu", + "watch.invalid_regex": "Nieprawidłowe wyrażenie regularne: {0}", + "watch.preview": "Podgląd", + "watch.results": "Ostatnie wyniki", + "watch.results_ok": "Przekonwertowane pliki: {0}, bez błędów", + "watch.results_failed": "Przekonwertowane pliki: {0} · nieudane: {1}", + "watch.sample_file": "zdjecie.jpg", + "watch.preview_keep": "Oryginał zostaje na miejscu", + "watch.preview_move": "Oryginał trafia do „originals”", + "watch.status_off": "Wył.", + "watch.status_no_folder": "Wybierz folder, aby zacząć", + "watch.status_watching": "Obserwuję", + "watch.status_starting": "Uruchamianie…", + "watch.status_error": "Nie można obserwować tego folderu: {0}", + "watch.cli_hint": "Także w wierszu poleceń: filee watch --to " +} diff --git a/src/Filee.App/Services/LocalizationService.cs b/src/Filee.App/Services/LocalizationService.cs index 9d1dbf83..f2bf03cc 100644 --- a/src/Filee.App/Services/LocalizationService.cs +++ b/src/Filee.App/Services/LocalizationService.cs @@ -21,6 +21,7 @@ public sealed class LocalizationService : ILocalizer ("en", "English"), ("ko", "한국어"), ("zh-CN", "简体中文"), + ("pl", "Polski"), ]; private readonly ResourceDictionary _resources = new(); @@ -97,6 +98,8 @@ public static string Resolve(string setting) return "ko"; if (ui.StartsWith("zh", StringComparison.OrdinalIgnoreCase)) return "zh-CN"; + if (ui.StartsWith("pl", StringComparison.OrdinalIgnoreCase)) + return "pl"; return "en"; } diff --git a/tests/Filee.App.Tests/LocalizationTests.cs b/tests/Filee.App.Tests/LocalizationTests.cs index efef6284..e27a85f7 100644 --- a/tests/Filee.App.Tests/LocalizationTests.cs +++ b/tests/Filee.App.Tests/LocalizationTests.cs @@ -20,7 +20,7 @@ private static string I18nDirectory private static Dictionary Load(string code) => JsonSerializer.Deserialize>(File.ReadAllText(Path.Combine(I18nDirectory, code + ".json")))!; - public static TheoryData Languages => new() { "ko", "zh-CN" }; + public static TheoryData Languages => new() { "ko", "zh-CN", "pl" }; [Theory] [MemberData(nameof(Languages))] diff --git a/tests/Filee.App.Tests/RenderTests.cs b/tests/Filee.App.Tests/RenderTests.cs index 4c1c5419..d284a6f3 100644 --- a/tests/Filee.App.Tests/RenderTests.cs +++ b/tests/Filee.App.Tests/RenderTests.cs @@ -26,6 +26,7 @@ public class RenderTests { "home", "en" }, { "general", "en" }, { "triggers", "en" }, { "toolbar", "en" }, { "presets", "en" }, { "theme", "en" }, { "engines", "en" }, { "about", "en" }, { "toolbar", "ko" }, { "home", "ko" }, { "presets", "zh-CN" }, { "toolbar", "zh-CN" }, { "home", "zh-CN" }, + { "toolbar", "pl" }, { "presets", "pl" }, { "home", "pl" }, }; [AvaloniaTheory]