mirror of
https://github.com/MarekWo/mc-webui.git
synced 2026-11-03 17:22:20 +01:00
Firmware 1.18 gives contact flag 0x10 a security meaning (the contact may
run any companion CLI command over the mesh, unseen by the app), forwards a
refused remote command as a txt_type 3 DM, and serves the companion CLI over
the app link (CMD_RUN_CLI_COMMAND, fw_ver_code 14).
- Remote CLI permission is visible: red badge on the contact card and in
the DM contact-info window. Console change_flags shows flags in words,
accepts 0x.., reports old/new, warns on grant, restores the in-memory
record when the device refuses, and invalidates the contacts cache.
- txt_type 3 DMs are stored with their type, rendered as "Remote CLI
command - not executed" with the command verbatim, logged at WARNING,
and the notification says so.
- New console command `cli <command>`, gated on fw_ver_code >= 14 and on
the library having run_cli_command (2.3.9+, requirements untouched).
poweroff/shutdown refused; reboot and `set name`/`set path.hash.mode`
routed through the existing commands so caches follow.
- Re-adding a contact the device holds (a rename) starts from the device
record, so its flags and path survive instead of being reset to zero.
- Fix: approving a pending contact raised KeyError('out_path') for every
record not produced by a NEW_CONTACT event (advert-injected entries and
the DB fallback). Records are now completed before add_contact(), and a
device ERROR is reported instead of a false success.
- set_channel refuses a named slot with an all-zero key.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1588 lines
99 KiB
JSON
1588 lines
99 KiB
JSON
{
|
||
"analyzer.add": "Dodaj analizator",
|
||
"analyzer.choose": "Wybierz analizator",
|
||
"analyzer.clear_default_title": "Wyczyść domyślny",
|
||
"analyzer.confirm.delete": "Usunąć analizator \"{name}\"?",
|
||
"analyzer.edit": "Edytuj analizator",
|
||
"analyzer.empty": "Brak skonfigurowanych analizatorów. Kliknij \"Dodaj analizator\", aby dodać.",
|
||
"analyzer.load_failed": "Nie udało się wczytać analizatorów",
|
||
"analyzer.name_ph": "np. Mój analizator",
|
||
"analyzer.name_required": "Nazwa jest wymagana",
|
||
"analyzer.set_default_title": "Ustaw jako domyślny",
|
||
"analyzer.toast.default_error": "Błąd sieci przy zmianie domyślnego analizatora",
|
||
"analyzer.toast.default_failed": "Nie udało się zmienić domyślnego analizatora",
|
||
"analyzer.toast.delete_error": "Błąd sieci przy usuwaniu analizatora",
|
||
"analyzer.toast.delete_failed": "Nie udało się usunąć analizatora",
|
||
"analyzer.toast.none_configured": "Brak skonfigurowanego analizatora. Dodaj go w Ustawienia → Analyzer.",
|
||
"analyzer.toast.save_error": "Błąd sieci przy zapisie analizatora",
|
||
"analyzer.toast.save_failed": "Nie udało się zapisać analizatora",
|
||
"analyzer.toast.update_error": "Błąd sieci przy aktualizacji analizatora",
|
||
"analyzer.toast.update_failed": "Nie udało się zaktualizować analizatora",
|
||
"analyzer.url": "Szablon URL",
|
||
"analyzer.url_hint": "Musi zawierać <code>{packetHash}</code>.",
|
||
"analyzer.url_invalid": "URL musi zaczynać się od http:// lub https://",
|
||
"analyzer.url_placeholder_missing": "URL musi zawierać symbol zastępczy {placeholder}",
|
||
"backup.auto_off": "Automatyczna kopia wyłączona",
|
||
"backup.auto_on": "Automatycznie: codziennie o {time}, przechowywanie {days} dni",
|
||
"backup.create": "Utwórz kopię",
|
||
"backup.created": "Utworzono kopię: {filename}",
|
||
"backup.creating": "Tworzenie...",
|
||
"backup.current_size": "Bieżący rozmiar: …",
|
||
"backup.download_title": "Pobierz",
|
||
"backup.empty": "Brak kopii zapasowych",
|
||
"backup.error": "Kopia zapasowa nie powiodła się",
|
||
"backup.failed": "Kopia zapasowa nie powiodła się: {error}",
|
||
"backup.freed": "zwolniono {size}",
|
||
"backup.freed_none": "brak miejsca do odzyskania",
|
||
"backup.load_failed": "Nie udało się wczytać kopii zapasowych",
|
||
"backup.optimize_error": "Optymalizacja nie powiodła się",
|
||
"backup.optimize_failed": "Optymalizacja nie powiodła się: {error}",
|
||
"backup.optimize_hint": "Odzyskaj miejsce zwolnione przez retencję wiadomości. Uruchamia SQLite <code>VACUUM</code>; odczyty działają, ale zapisy są wstrzymane na kilka sekund.",
|
||
"backup.optimize_now": "Optymalizuj teraz",
|
||
"backup.optimize_stuck": "Optymalizacja trwa już ponad 10 minut — sprawdź logi kontenera",
|
||
"backup.optimize_title": "Optymalizuj bazę danych",
|
||
"backup.optimized": "Zoptymalizowano: {freed} w {seconds}s",
|
||
"backup.optimizing": "Optymalizowanie…",
|
||
"backup.size": "Bieżący rozmiar: {size}",
|
||
"backup.size_unknown": "Rozmiar: nieznany",
|
||
"backup.title": "Kopia zapasowa bazy danych",
|
||
"backup.vacuum_running": "Trwa VACUUM…",
|
||
"backup.vacuum_running_for": "Trwa VACUUM… ({seconds}s)",
|
||
"channels.add_new": "Dodaj nowy kanał",
|
||
"channels.confirm.remove": "Usunąć kanał \"{name}\"?",
|
||
"channels.create_btn": "Utwórz i wygeneruj klucz",
|
||
"channels.create_title": "Utwórz nowy kanał",
|
||
"channels.dropdown.none": "Brak kanałów",
|
||
"channels.fav_title": "Dodaj kanał do ulubionych",
|
||
"channels.join_btn": "Dołącz do kanału",
|
||
"channels.join_existing": "Dołącz do istniejącego",
|
||
"channels.join_title": "Dołącz do istniejącego kanału",
|
||
"channels.key": "Klucz kanału:",
|
||
"channels.key_label": "Klucz kanału (32 znaki hex)",
|
||
"channels.key_optional": "- opcjonalny dla kanałów zaczynających się od #",
|
||
"channels.key_ph": "485af7e164459d280d8818d9c99fb30d (zostaw puste dla kanałów #)",
|
||
"channels.list.empty": "Brak skonfigurowanych kanałów",
|
||
"channels.list.load_error": "Błąd wczytywania kanałów",
|
||
"channels.list.load_failed": "Nie udało się wczytać kanałów",
|
||
"channels.name": "Nazwa kanału",
|
||
"channels.name_hint": "Tylko litery, cyfry, _ i -",
|
||
"channels.name_ph": "np. Malopolska",
|
||
"channels.notify.all": "Każda wiadomość",
|
||
"channels.notify.manage": "Zarządzaj profilami…",
|
||
"channels.notify.no_profiles": "Nie zdefiniowano jeszcze żadnych profili",
|
||
"channels.notify.off": "Wyłączone",
|
||
"channels.notify.profiles_header": "Tylko wiadomości pasujące do profilu",
|
||
"channels.notify.title_all": "Powiadomienia: każda wiadomość — kliknij, aby zmienić",
|
||
"channels.notify.title_off": "Powiadomienia: wyłączone — kliknij, aby zmienić",
|
||
"channels.notify.title_profile": "Powiadomienia: profil {name} — kliknij, aby zmienić",
|
||
"channels.qr_alt": "Kod QR",
|
||
"channels.region_hint": "Tylko repeatery zezwalające na wybrany region będą przekazywać wiadomości z tego kanału.",
|
||
"channels.region_scope_for": "Ustaw zakres regionu dla",
|
||
"channels.scan_qr": "Zeskanuj kod QR",
|
||
"channels.scope_set_title": "Ustaw zasięg regionu",
|
||
"channels.scope_title": "Region: {name} — kliknij, aby zmienić",
|
||
"channels.share_hint": "Udostępnij ten kod QR lub klucz innym, aby mogli dołączyć do tego kanału.",
|
||
"channels.share_name": "Kanał: {name}",
|
||
"channels.share_title": "Udostępnij kanał",
|
||
"channels.toast.already_joined": "Już dołączono do kanału \"{name}\".",
|
||
"channels.toast.copy_failed": "Nie udało się skopiować do schowka",
|
||
"channels.toast.create_error": "Nie udało się utworzyć kanału",
|
||
"channels.toast.create_failed": "Nie udało się utworzyć kanału: {error}",
|
||
"channels.toast.created": "Kanał \"{name}\" utworzony!",
|
||
"channels.toast.exists": "Kanał \"{name}\" już istnieje.",
|
||
"channels.toast.favorite_failed": "Nie udało się zmienić ulubionych",
|
||
"channels.toast.join_error": "Nie udało się dołączyć do kanału",
|
||
"channels.toast.join_failed": "Nie udało się dołączyć do kanału: {error}",
|
||
"channels.toast.joined": "Dołączono do kanału \"{name}\"!",
|
||
"channels.toast.key_copied": "Klucz kanału skopiowany do schowka!",
|
||
"channels.toast.key_invalid": "Nieprawidłowy format klucza. Wymagane 32 znaki szesnastkowe.",
|
||
"channels.toast.key_required": "Klucz kanału jest wymagany dla kanałów nierozpoczynających się od #",
|
||
"channels.toast.notify_failed": "Nie udało się zmienić powiadomień",
|
||
"channels.toast.qr_error": "Nie udało się wygenerować kodu QR",
|
||
"channels.toast.qr_failed": "Nie udało się wygenerować kodu QR: {error}",
|
||
"channels.toast.qr_soon": "Skanowanie kodu QR będzie dostępne wkrótce! Na razie wprowadź dane kanału ręcznie.",
|
||
"channels.toast.remove_error": "Nie udało się usunąć kanału",
|
||
"channels.toast.remove_failed": "Nie udało się usunąć kanału: {error}",
|
||
"channels.toast.removed": "Kanał \"{name}\" usunięty",
|
||
"channels.toast.switched": "Przełączono na kanał: {name}",
|
||
"channels.unfav_title": "Usuń kanał z ulubionych",
|
||
"channels.your": "Twoje kanały",
|
||
"chat.channels": "Kanały",
|
||
"chat.confirm.block": "Zablokować {name}? Wiadomości tego kontaktu będą ukryte w czacie.",
|
||
"chat.confirm.mark_all_read": "Oznaczyć wszystkie wiadomości jako przeczytane?\n\nKanały z nieprzeczytanymi:\n{channels}",
|
||
"chat.confirm.stale_resend": "Ta wiadomość została wysłana {age}. Repeatery pamiętają tylko niedawne pakiety, więc tym razem nic jej nie wygasi — wszyscy na kanale zobaczą ją ponownie jako nową wiadomość. Wysłać mimo to?",
|
||
"chat.copy_route_title": "Dotknij, aby skopiować trasę",
|
||
"chat.edit_title": "Edytuj wiadomość",
|
||
"chat.emoji_title": "Wstaw emoji",
|
||
"chat.empty.no_messages": "Brak wiadomości",
|
||
"chat.empty.no_messages_hint": "Wyślij wiadomość, aby zacząć!",
|
||
"chat.error.load_retry": "Ponowna próba nastąpi automatycznie",
|
||
"chat.error.load_title": "Nie można wczytać wiadomości",
|
||
"chat.fab.hide": "Ukryj przyciski",
|
||
"chat.fab.search_title": "Szukaj w wiadomościach",
|
||
"chat.fab.show": "Pokaż przyciski",
|
||
"chat.filter.clear_title": "Wyczyść",
|
||
"chat.filter.fab_title": "Filtruj wiadomości",
|
||
"chat.filter.me_title": "Filtruj moje wiadomości",
|
||
"chat.filter.no_matches": "Brak wiadomości pasujących do „{query}”",
|
||
"chat.filter.ph": "Filtruj wiadomości...",
|
||
"chat.image_alt": "Obraz",
|
||
"chat.image_preview": "Podgląd obrazu",
|
||
"chat.image_preview_alt": "Podgląd",
|
||
"chat.input_ph": "Napisz wiadomość...",
|
||
"chat.loading_messages": "Wczytywanie wiadomości...",
|
||
"chat.mentions.none": "Nie znaleziono kontaktów",
|
||
"chat.msg.analyzer_title": "Pokaż w analizatorze",
|
||
"chat.msg.block_title": "Zablokuj {name}",
|
||
"chat.msg.echo_title": {
|
||
"one": "Usłyszane przez {count} repeater: {paths}",
|
||
"few": "Usłyszane przez {count} repeatery: {paths}",
|
||
"many": "Usłyszane przez {count} repeaterów: {paths}",
|
||
"other": "Usłyszane przez {count} repeatera: {paths}"
|
||
},
|
||
"chat.msg.ignore_title": "Ignoruj {name}",
|
||
"chat.msg.map_title": "Pokaż na mapie",
|
||
"chat.msg.quote_title": "Cytuj",
|
||
"chat.msg.raw_resend_title": "Wyślij ponownie (rozgłoś ten sam pakiet, aby odebrały go repeatery, które go nie usłyszały)",
|
||
"chat.msg.reply_title": "Odpowiedz",
|
||
"chat.region_none": "Region --",
|
||
"chat.region_set_title": "Kliknij, aby ustawić region dla tego kanału",
|
||
"chat.region_title": "Kliknij, aby zmienić region dla tego kanału",
|
||
"chat.route": "Trasa: {route}",
|
||
"chat.route_analyzer_title": "Pokaż tę trasę na mapie Analizatora ścieżek",
|
||
"chat.route_delivered": "odebrana",
|
||
"chat.route_delivered_title": "Kopia, którą Twoje urządzenie odebrało i odkodowało. Pozostałe kopie dotarły później i zostały odrzucone jako duplikaty",
|
||
"chat.route_direct": "Bezpośrednio",
|
||
"chat.route_hash_bytes": {
|
||
"one": "{count} bajt",
|
||
"few": "{count} bajty",
|
||
"many": "{count} bajtów",
|
||
"other": "{count} bajtu"
|
||
},
|
||
"chat.route_hash_bytes_short": "{count}B",
|
||
"chat.route_hash_title": "Rozmiar hasha na hop w trasie. Dotknij, aby zobaczyć wszystkie trasy, którymi dotarła ta wiadomość",
|
||
"chat.route_hops": "Hopy: {count}",
|
||
"chat.route_multi": "Trasa ({count}): {route}",
|
||
"chat.route_region": "Region: {name}",
|
||
"chat.scroll_bottom_title": "Przewiń na dół",
|
||
"chat.title": "Czat",
|
||
"chat.toast.load_error": "Błąd wczytywania wiadomości: {error}",
|
||
"chat.toast.load_failed": "Nie udało się wczytać wiadomości",
|
||
"chat.toast.load_timeout": "Przekroczono czas wczytywania wiadomości — ponawiam...",
|
||
"chat.toast.refresh_failed": "Odświeżanie nie powiodło się",
|
||
"chat.toast.refreshed": "Wiadomości odświeżone",
|
||
"chat.toast.resend_failed": "Ponowne wysłanie nie powiodło się: {error}",
|
||
"chat.toast.resend_network_error": "Błąd sieci przy ponownym wysłaniu: {error}",
|
||
"chat.toast.resent": "Wysłano ponownie ({bytes} B) — czekam na echa…",
|
||
"chat.toast.send_error": "Nie udało się wysłać wiadomości",
|
||
"chat.toast.send_failed": "Nie udało się wysłać: {error}",
|
||
"chat.toast.sent": "Wiadomość wysłana",
|
||
"chat.unnamed_channel": "Kanał {index}",
|
||
"chat.unread_divider": "Nowe wiadomości",
|
||
"chat.updated": "Aktualizacja: {time}",
|
||
"common.add": "Dodaj",
|
||
"common.apply": "Zastosuj",
|
||
"common.back": "Wstecz",
|
||
"common.cancel": "Anuluj",
|
||
"common.cannot_undo": "Tej operacji nie można cofnąć.",
|
||
"common.close": "Zamknij",
|
||
"common.connected": "Połączono",
|
||
"common.connecting": "Łączenie...",
|
||
"common.copied": "Skopiowano!",
|
||
"common.copy": "Kopiuj",
|
||
"common.copy_failed": "Kopiowanie nie powiodło się",
|
||
"common.copy_route": "Kopiuj trasę",
|
||
"common.days_ago": {
|
||
"one": "{count} dzień temu",
|
||
"few": "{count} dni temu",
|
||
"many": "{count} dni temu",
|
||
"other": "{count} dnia temu"
|
||
},
|
||
"common.days_ago_long": {
|
||
"one": "{count} dzień temu",
|
||
"few": "{count} dni temu",
|
||
"many": "{count} dni temu",
|
||
"other": "{count} dnia temu"
|
||
},
|
||
"common.delete": "Usuń",
|
||
"common.deleting": "Usuwanie...",
|
||
"common.disabled": "Wyłączone",
|
||
"common.disconnected": "Rozłączono",
|
||
"common.edit": "Edytuj",
|
||
"common.enabled": "Włączone",
|
||
"common.error.not_json": "Odpowiedziała nie aplikacja, tylko coś przed nią (HTTP {status}). Odśwież stronę, a jeśli to się powtarza — sprawdź połączenie.",
|
||
"common.error.not_json_auth": "Sesja wygasła — zamiast aplikacji odpowiedziała strona logowania przed nią (HTTP {status}). Odśwież stronę i zaloguj się ponownie.",
|
||
"common.failed_with": "Niepowodzenie: {error}",
|
||
"common.hours_ago": "{count} godz. temu",
|
||
"common.hours_ago_long": {
|
||
"one": "{count} godzinę temu",
|
||
"few": "{count} godziny temu",
|
||
"many": "{count} godzin temu",
|
||
"other": "{count} godziny temu"
|
||
},
|
||
"common.just_now": "przed chwilą",
|
||
"common.load_failed": "Nie udało się wczytać",
|
||
"common.loading": "Ładowanie...",
|
||
"common.minutes_ago": "{count} min temu",
|
||
"common.minutes_ago_long": {
|
||
"one": "{count} minutę temu",
|
||
"few": "{count} minuty temu",
|
||
"many": "{count} minut temu",
|
||
"other": "{count} minuty temu"
|
||
},
|
||
"common.months_ago": {
|
||
"one": "{count} miesiąc temu",
|
||
"few": "{count} miesiące temu",
|
||
"many": "{count} miesięcy temu",
|
||
"other": "{count} miesiąca temu"
|
||
},
|
||
"common.move_down": "Przesuń w dół",
|
||
"common.move_up": "Przesuń w górę",
|
||
"common.name": "Nazwa",
|
||
"common.network_error": "Błąd sieci",
|
||
"common.network_error_detail": "Błąd sieci: {error}",
|
||
"common.never": "Nigdy",
|
||
"common.no": "Nie",
|
||
"common.refresh": "Odśwież",
|
||
"common.remove": "Usuń",
|
||
"common.save": "Zapisz",
|
||
"common.save_failed": "Zapis nie powiódł się",
|
||
"common.saving": "Zapisywanie...",
|
||
"common.settings": "Ustawienia",
|
||
"common.share": "Udostępnij",
|
||
"common.try_again": "Spróbuj ponownie",
|
||
"common.unknown": "Nieznany",
|
||
"common.unknown_error": "Nieznany błąd",
|
||
"common.warning": "Uwaga:",
|
||
"common.years_ago": {
|
||
"one": "{count} rok temu",
|
||
"few": "{count} lata temu",
|
||
"many": "{count} lat temu",
|
||
"other": "{count} roku temu"
|
||
},
|
||
"common.yes": "Tak",
|
||
"common.yesterday": "Wczoraj",
|
||
"console.clear_title": "Wyczyść zapis konsoli",
|
||
"console.connect_failed": "Nie udało się połączyć: {error}",
|
||
"console.error_prefix": "Błąd: {error}",
|
||
"console.help_hint": "Wpisz 'help', aby zobaczyć dostępne polecenia.",
|
||
"console.history_empty": "Brak poleceń w historii",
|
||
"console.history_title": "Historia poleceń",
|
||
"console.input_ph": "Wpisz polecenie...",
|
||
"console.no_output": "(brak wyniku)",
|
||
"console.scroll_bottom_aria": "Przewiń do najnowszych",
|
||
"console.scroll_bottom_title": "Przewiń do najnowszych",
|
||
"console.title": "Konsola",
|
||
"contacts.active_recent": "Aktywny (advert odebrany niedawno)",
|
||
"contacts.add.adding": "Dodawanie kontaktu...",
|
||
"contacts.add.failed": "Nie udało się dodać kontaktu.",
|
||
"contacts.add.key": "Klucz:",
|
||
"contacts.add.key_count": "{n} / 64 znaki",
|
||
"contacts.add.name": "Nazwa:",
|
||
"contacts.add.name_ph": "Nazwa kontaktu",
|
||
"contacts.add.preview": "Podgląd:",
|
||
"contacts.add.pubkey": "Klucz publiczny (64 znaki hex):",
|
||
"contacts.add.pubkey_ph": "np. a1b2c3d4...",
|
||
"contacts.add.qr_invalid_uri": "Kod QR nie zawiera prawidłowego URI meshcore://.",
|
||
"contacts.add.qr_label": "Albo wgraj obraz z kodem QR:",
|
||
"contacts.add.scanned": "Zeskanowano:",
|
||
"contacts.add.start_camera": "Włącz kamerę",
|
||
"contacts.add.stop_camera": "Wyłącz kamerę",
|
||
"contacts.add.success": "Kontakt dodany pomyślnie!",
|
||
"contacts.add.tab_manual": "Ręcznie",
|
||
"contacts.add.title": "Dodaj kontakt",
|
||
"contacts.add.type": "Typ kontaktu:",
|
||
"contacts.add.type_short": "Typ:",
|
||
"contacts.add.uri_hint": "Wklej URI meshcore:// z aplikacji mobilnej MeshCore",
|
||
"contacts.add.uri_label": "MeshCore URI:",
|
||
"contacts.add.uri_ph": "meshcore://contact/add?name=...&public_key=...&type=...",
|
||
"contacts.blocked_by_name": "Zablokowany po nazwie",
|
||
"contacts.btn.approve": "Zatwierdź",
|
||
"contacts.btn.approve_all": "Zatwierdź wszystkie",
|
||
"contacts.btn.block": "Zablokuj",
|
||
"contacts.btn.ignore": "Ignoruj",
|
||
"contacts.btn.ignore_all": "Ignoruj wszystkie",
|
||
"contacts.btn.protect": "Chroń",
|
||
"contacts.btn.protected": "Chroniony",
|
||
"contacts.btn.to_cache": "Do pamięci",
|
||
"contacts.btn.to_cache_title": "Usuń z urządzenia, zachowaj w pamięci",
|
||
"contacts.btn.to_device": "Na urządzenie",
|
||
"contacts.btn.to_device_title": "Dodaj ten kontakt do urządzenia",
|
||
"contacts.btn.unblock": "Odblokuj",
|
||
"contacts.btn.unignore": "Przestań ignorować",
|
||
"contacts.cache_badge": "Pamięć",
|
||
"contacts.cache_badge_title": "Brak na urządzeniu — typ nieznany",
|
||
"contacts.card.add_desc": "Dodaj z URI, kodu QR lub ręcznie",
|
||
"contacts.card.existing_desc": "Zarządzaj wszystkimi zapisanymi kontaktami",
|
||
"contacts.card.pending_desc": "Kontakty oczekujące na ręczne zatwierdzenie",
|
||
"contacts.cleanup.auto_enabled": "Włączone (codziennie o {time} {tz})",
|
||
"contacts.cleanup.completed": "Czyszczenie zakończone: usunięto {count}",
|
||
"contacts.cleanup.completed_failed": ", nieudanych: {count}",
|
||
"contacts.cleanup.confirm": "Usunąć wszystkie kontakty nieaktywne dłużej niż {hours} godz.?",
|
||
"contacts.cleanup.confirm_title": "Potwierdź czyszczenie kontaktów",
|
||
"contacts.cleanup.date_field": "Pole daty:",
|
||
"contacts.cleanup.days": "Dni nieaktywności (0 = pomiń):",
|
||
"contacts.cleanup.days_hint": "Zaznaczone zostaną kontakty nieaktywne dłużej niż tyle dni",
|
||
"contacts.cleanup.delete_btn": "Usuń kontakty",
|
||
"contacts.cleanup.delete_confirm": "Następujące kontakty (<span id=\"cleanupContactCount\">0</span>) zostaną trwale usunięte:",
|
||
"contacts.cleanup.enable": "Włącz automatyczne czyszczenie",
|
||
"contacts.cleanup.enable_hint": "Gdy włączone, kontakty spełniające powyższe kryteria będą usuwane codziennie o wskazanej godzinie",
|
||
"contacts.cleanup.error": "Czyszczenie nie powiodło się",
|
||
"contacts.cleanup.failed": "Czyszczenie nie powiodło się: {error}",
|
||
"contacts.cleanup.last_advert": "Ostatni advert",
|
||
"contacts.cleanup.last_modified": "Ostatnia zmiana",
|
||
"contacts.cleanup.name_filter": "Filtr nazwy (opcjonalnie):",
|
||
"contacts.cleanup.name_filter_ph": "Wpisz fragment nazwy do wyszukania...",
|
||
"contacts.cleanup.network_error": "Błąd sieci podczas czyszczenia",
|
||
"contacts.cleanup.preview": "Podgląd czyszczenia",
|
||
"contacts.cleanup.run_at": "Uruchom o:",
|
||
"contacts.cleanup.status_label": "Status:",
|
||
"contacts.cleanup.title": "Czyszczenie kontaktów",
|
||
"contacts.cleanup.title_hint": "Usuń kontakty według różnych kryteriów",
|
||
"contacts.cleanup.types": "Typy kontaktów:",
|
||
"contacts.cleanup.undo_warning": "Tej operacji nie można cofnąć!",
|
||
"contacts.confirm.block": "Zablokować ten kontakt? Jego wiadomości będą ukryte w czacie.",
|
||
"contacts.confirm.push": "Wysłać \"{name}\" na urządzenie?",
|
||
"contacts.confirm.to_cache": "Przenieść \"{name}\" z urządzenia do pamięci?",
|
||
"contacts.copy_title": "Kliknij, aby skopiować",
|
||
"contacts.delete.confirm": "Usuń kontakt",
|
||
"contacts.delete.question": "Czy na pewno chcesz usunąć ten kontakt?",
|
||
"contacts.delete.title": "Potwierdź usunięcie",
|
||
"contacts.existing.load_failed": "Nie udało się wczytać kontaktów",
|
||
"contacts.existing.loading": "Wczytywanie kontaktów...",
|
||
"contacts.existing.none": "Nie znaleziono kontaktów",
|
||
"contacts.existing.none_hint": "Kontakty pojawią się tutaj po dodaniu",
|
||
"contacts.existing.search_ph": "Szukaj po nazwie lub kluczu publicznym...",
|
||
"contacts.existing.title": "Istniejące kontakty",
|
||
"contacts.filter.advanced": "Filtry zaawansowane",
|
||
"contacts.filter.all_sources": "Wszystkie źródła",
|
||
"contacts.filter.all_types": "Wszystkie typy",
|
||
"contacts.filter.blocked": "Zablokowane",
|
||
"contacts.filter.cache_only": "Tylko w pamięci",
|
||
"contacts.filter.ignored": "Ignorowane",
|
||
"contacts.filter.no_match": "Żaden kontakt nie pasuje do filtrów",
|
||
"contacts.filter.no_match_hint": "Spróbuj zmienić kryteria filtrowania",
|
||
"contacts.filter.on_device": "Na urządzeniu",
|
||
"contacts.hops": {
|
||
"one": "{count} hop",
|
||
"few": "{count} hopy",
|
||
"many": "{count} hopów",
|
||
"other": "{count} hopa"
|
||
},
|
||
"contacts.inactive": "Nieaktywny",
|
||
"contacts.last_advert": "Ostatni advert: {time}",
|
||
"contacts.last_advert_unknown": "Ostatni advert: nieznany",
|
||
"contacts.manage.title": "Ustawienia zarządzania kontaktami",
|
||
"contacts.map.show": "Pokaż:",
|
||
"contacts.map.title": "Mapa",
|
||
"contacts.never_seen": "Nigdy niewidziany",
|
||
"contacts.pending.approve_confirm": "Zamierzasz zatwierdzić <strong id=\"batchApprovalCount\">0</strong> kontaktów:",
|
||
"contacts.pending.approve_note": "Te kontakty zostaną dodane do Twojego urządzenia i będą mogły odbierać i wysyłać wiadomości.",
|
||
"contacts.pending.confirm_approve_title": "Potwierdź zbiorcze zatwierdzenie",
|
||
"contacts.pending.confirm_ignore_title": "Potwierdź zbiorcze zignorowanie",
|
||
"contacts.pending.filter_hint": "Filtruj kontakty po typie lub nazwie, a następnie zatwierdź lub zignoruj je zbiorczo.",
|
||
"contacts.pending.ignore_confirm": "Zamierzasz zignorować <strong id=\"batchIgnoreCount\">0</strong> kontaktów:",
|
||
"contacts.pending.ignore_note": "Ignorowane kontakty nie będą generować nowych oczekujących zgłoszeń. Możesz cofnąć ignorowanie później na stronie Istniejące kontakty.",
|
||
"contacts.pending.load_failed": "Nie udało się wczytać oczekujących kontaktów",
|
||
"contacts.pending.loading": "Wczytywanie oczekujących kontaktów...",
|
||
"contacts.pending.none": "Brak oczekujących zgłoszeń",
|
||
"contacts.pending.none_hint": "Nowe zgłoszenia kontaktów pojawią się tutaj, gdy włączone jest ręczne zatwierdzanie",
|
||
"contacts.pending.title": "Oczekujące kontakty",
|
||
"contacts.progress.approving": "Zatwierdzanie {done}/{total}...",
|
||
"contacts.progress.ignoring": "Ignorowanie {done}/{total}...",
|
||
"contacts.protected_cannot_block": "Nie można zablokować chronionego kontaktu",
|
||
"contacts.protected_cannot_delete": "Nie można usunąć chronionego kontaktu",
|
||
"contacts.protected_cannot_ignore": "Nie można zignorować chronionego kontaktu",
|
||
"contacts.protected_cannot_move": "Nie można przenieść chronionego kontaktu",
|
||
"contacts.protected_title": "Kontakt chroniony",
|
||
"contacts.qr.camera_denied": "Brak dostępu do kamery lub kamera niedostępna. Spróbuj wgrać obraz.",
|
||
"contacts.qr.read_failed": "Nie udało się odczytać kodu QR z obrazu. Upewnij się, że obraz zawiera prawidłowy kod QR.",
|
||
"contacts.recent_activity": "Ostatnia aktywność",
|
||
"contacts.remote_cli_badge": "Zdalne CLI",
|
||
"contacts.remote_cli_badge_title": "Ten kontakt może przez sieć mesh wykonać dowolną komendę CLI na Twoim węźle (restart, ustawienia radia, hasło Wi-Fi), a Ty tych komend nie zobaczysz. Aby odebrać uprawnienie, użyj w konsoli komendy change_flags.",
|
||
"contacts.sort.advert_asc": "Ostatni advert ↑",
|
||
"contacts.sort.advert_desc": "Ostatni advert ↓",
|
||
"contacts.sort.name_asc": "Nazwa A→Z",
|
||
"contacts.sort.name_desc": "Nazwa Z→A",
|
||
"contacts.title": "Zarządzanie kontaktami",
|
||
"contacts.toast.approve_failed": "Nie udało się zatwierdzić: {error}",
|
||
"contacts.toast.approved": "Zatwierdzono: {name}",
|
||
"contacts.toast.bulk_approve_failed": "Nie udało się zatwierdzić kontaktów. Szczegóły w konsoli.",
|
||
"contacts.toast.bulk_approve_partial": "Zatwierdzono {ok}, niepowodzeń: {failed}. Szczegóły w konsoli.",
|
||
"contacts.toast.bulk_approved": {
|
||
"one": "Zatwierdzono {count} kontakt",
|
||
"few": "Zatwierdzono {count} kontakty",
|
||
"many": "Zatwierdzono {count} kontaktów",
|
||
"other": "Zatwierdzono {count} kontaktu"
|
||
},
|
||
"contacts.toast.bulk_ignore_failed": "Nie udało się zignorować kontaktów. Szczegóły w konsoli.",
|
||
"contacts.toast.bulk_ignore_partial": "Zignorowano {ok}, niepowodzeń: {failed}. Szczegóły w konsoli.",
|
||
"contacts.toast.bulk_ignored": {
|
||
"one": "Zignorowano {count} kontakt",
|
||
"few": "Zignorowano {count} kontakty",
|
||
"many": "Zignorowano {count} kontaktów",
|
||
"other": "Zignorowano {count} kontaktu"
|
||
},
|
||
"contacts.toast.cleanup_failed": "Czyszczenie nie powiodło się: {error}",
|
||
"contacts.toast.copy_failed": "Nie udało się skopiować do schowka",
|
||
"contacts.toast.delete_failed": "Nie udało się usunąć: {error}",
|
||
"contacts.toast.deleted": "Usunięto: {name}",
|
||
"contacts.toast.key_copied": "Klucz skopiowany do schowka",
|
||
"contacts.toast.move_failed": "Nie udało się przenieść kontaktu",
|
||
"contacts.toast.need_days": "Ustaw „Dni nieaktywności” > 0 przed włączeniem automatycznego czyszczenia",
|
||
"contacts.toast.need_type": "Wybierz co najmniej jeden typ kontaktu",
|
||
"contacts.toast.need_type_enable": "Wybierz co najmniej jeden typ kontaktu przed włączeniem automatycznego czyszczenia",
|
||
"contacts.toast.no_match": "Żaden kontakt nie pasuje do wybranych kryteriów",
|
||
"contacts.toast.none_to_approve": "Brak kontaktów do zatwierdzenia",
|
||
"contacts.toast.none_to_ignore": "Brak kontaktów do zignorowania",
|
||
"contacts.toast.preview_failed": "Podgląd nie powiódł się: {error}",
|
||
"contacts.toast.preview_network_error": "Błąd sieci podczas podglądu",
|
||
"contacts.toast.protect_failed": "Nie udało się zmienić ochrony: {error}",
|
||
"contacts.toast.pubkey_copied": "Klucz publiczny skopiowany do schowka",
|
||
"contacts.toast.push_failed": "Nie udało się wysłać kontaktu",
|
||
"contacts.toast.pushed": "{name} wysłany na urządzenie",
|
||
"contacts.toast.settings_load_error": "Błąd wczytywania ustawień",
|
||
"contacts.toast.settings_network_error": "Błąd sieci przy zapisie ustawień",
|
||
"contacts.toast.settings_save_failed": "Nie udało się zapisać ustawień: {error}",
|
||
"contacts.toast.to_cache": "{name} przeniesiony do pamięci",
|
||
"coord.confirm": "Zatwierdź",
|
||
"coord.hint": "Kliknij na mapie, aby wybrać współrzędne",
|
||
"coord.title": "Wybierz współrzędne",
|
||
"demo.badge": "Demo",
|
||
"demo.blocked_toast": "Ta instancja działa w trybie demo — akcja jest niedostępna.",
|
||
"demo.console_notice": "Tryb demo: konsola odpowiada na polecenia tylko do odczytu, takie jak <code>infos</code>, <code>stats</code>, <code>contacts</code> i <code>get</code>. Polecenia zmieniające urządzenie są odrzucane.",
|
||
"demo.lock_btn": "Zablokuj ponownie",
|
||
"demo.locked_title": "Wyłączone w trybie demo",
|
||
"demo.settings_notice": "To jest publiczna instancja demonstracyjna, więc ustawienia zmieniające radio, zapisane dane lub ten serwer są tylko do odczytu. Cała reszta — przeglądanie, wysyłanie wiadomości, motywy — działa normalnie.",
|
||
"demo.unlock_bad": "Ten kod nie został zaakceptowany.",
|
||
"demo.unlock_btn": "Odblokuj",
|
||
"demo.unlock_hint": "Jeśli administrujesz tą instancją, podaj kod odblokowujący, aby przywrócić pełny dostęp na tym urządzeniu.",
|
||
"demo.unlock_label": "Dostęp operatora",
|
||
"demo.unlock_ph": "Kod odblokowujący",
|
||
"demo.unlocked_state": "Odblokowane — masz pełny dostęp na tym urządzeniu.",
|
||
"device.cmd.exec_failed": "Nie udało się wykonać: {command}",
|
||
"device.cmd.failed": "Polecenie nie powiodło się: {error}",
|
||
"device.cmd.sent": "Wysłano: {command}",
|
||
"device.info.bw": "Bandwidth",
|
||
"device.info.copy_title": "Kopiuj do schowka",
|
||
"device.info.cr": "Coding Rate",
|
||
"device.info.freq": "Częstotliwość",
|
||
"device.info.load_failed": "Nie udało się wczytać informacji o urządzeniu",
|
||
"device.info.loc_sharing": "Udostępnianie lokalizacji",
|
||
"device.info.location": "Lokalizacja",
|
||
"device.info.location_none": "Niedostępna",
|
||
"device.info.manual_add": "Ręczne dodawanie kontaktów",
|
||
"device.info.multi_acks": "Multi Acks",
|
||
"device.info.name": "Nazwa",
|
||
"device.info.none": "Brak informacji o urządzeniu",
|
||
"device.info.pubkey": "Klucz publiczny",
|
||
"device.info.sf": "Spreading Factor",
|
||
"device.info.tx_power": "Moc TX",
|
||
"device.info.type": "Typ",
|
||
"device.info.type_unknown": "Nieznany ({code})",
|
||
"device.reboot.btn": "Restart",
|
||
"device.reboot.confirm": "Zrestartować urządzenie?\n\nNa kilka sekund zniknie z sieci mesh. Wiadomości wysłane do Ciebie w tym czasie mogą przepaść. Aplikacja połączy się ponownie sama.",
|
||
"device.reboot.failed": "Restart nie powiódł się",
|
||
"device.reboot.hint": "Restartuje urządzenie. Będzie niedostępne przez kilka sekund.",
|
||
"device.reboot.sent": "Polecenie restartu wysłane — urządzenie się restartuje",
|
||
"device.share.copy_uri": "Kopiuj URI",
|
||
"device.share.hint": "Udostępnij ten kod QR lub URI, aby inni mogli dodać Twoje urządzenie jako kontakt.",
|
||
"device.share.unavailable": "Informacje o urządzeniu niedostępne",
|
||
"device.share.uri": "URI kontaktu:",
|
||
"device.share_hint": "Kliknij, aby wygenerować kod udostępniania",
|
||
"device.stats.battery": "Bateria",
|
||
"device.stats.channel_msgs": "Wiadomości kanałowe",
|
||
"device.stats.contacts_db": "Kontakty (DB)",
|
||
"device.stats.database": "Baza danych",
|
||
"device.stats.db_size": "Rozmiar bazy",
|
||
"device.stats.direct_msgs": "Wiadomości prywatne",
|
||
"device.stats.errors": "Błędy",
|
||
"device.stats.load_failed": "Nie udało się wczytać statystyk",
|
||
"device.stats.none": "Brak statystyk",
|
||
"device.stats.packets_rx": "Pakiety RX",
|
||
"device.stats.packets_tx": "Pakiety TX",
|
||
"device.stats.queue": "Kolejka",
|
||
"device.stats.rx_air": "Czas antenowy RX",
|
||
"device.stats.tx_air": "Czas antenowy TX",
|
||
"device.stats.uptime": "Czas pracy",
|
||
"device.stats_hint": "Kliknij, aby wczytać statystyki",
|
||
"device.tab.info": "Informacje",
|
||
"device.tab.share": "Udostępnij",
|
||
"device.tab.stats": "Statystyki",
|
||
"device.title": "Urządzenie",
|
||
"diag.confirm.delete": "Usunąć ten zrzut?",
|
||
"diag.confirm.upload": "Wysłać ten zrzut do skonfigurowanej usługi udostępniania? Zawiera treść wiadomości odebranych w czasie nagrywania.",
|
||
"diag.counters": "<strong>{elapsed}</strong> z {total} · zdarzeń: {events} · {size}",
|
||
"diag.download": "Pobierz",
|
||
"diag.dropped": "(pominięto zdarzeń: {n})",
|
||
"diag.load_failed": "Nie udało się wczytać stanu diagnostyki",
|
||
"diag.minutes": "{n} min",
|
||
"diag.no_captures": "Brak zrzutów.",
|
||
"diag.toast.delete_failed": "Nie udało się usunąć zrzutu",
|
||
"diag.toast.no_token": "Najpierw zapisz token wysyłki",
|
||
"diag.toast.settings_failed": "Nie udało się zapisać ustawień wysyłki",
|
||
"diag.toast.settings_saved": "Zapisano ustawienia wysyłki",
|
||
"diag.toast.start_failed": "Nie udało się rozpocząć nagrywania",
|
||
"diag.toast.started": "Rozpoczęto nagrywanie",
|
||
"diag.toast.stop_failed": "Nie udało się zatrzymać nagrywania",
|
||
"diag.toast.stopped": "Zatrzymano nagrywanie — zrzut czeka na liście poniżej",
|
||
"diag.toast.upload_failed": "Wysyłka nie powiodła się",
|
||
"diag.toast.uploaded": "Zrzut wysłany — link znajdziesz poniżej",
|
||
"diag.token_missing": "Brak zapisanego tokenu. Poproś o niego opiekuna projektu, gdy poprosi Cię o zrzut.",
|
||
"diag.token_set": "Token jest zapisany. Zostaw pole puste, aby go nie zmieniać.",
|
||
"diag.upload": "Wyślij do opiekuna",
|
||
"dm.attempt": "Próba {n}/{max}",
|
||
"dm.auto_retry": "Auto ponawianie",
|
||
"dm.auto_retry_title": "Auto ponawianie: wyślij DM ponownie, jeśli nie przyjdzie ACK",
|
||
"dm.clear_selection_title": "Wyczyść wybór",
|
||
"dm.contact_info": "Informacje o kontakcie",
|
||
"dm.contact_info_title": "Informacje o kontakcie",
|
||
"dm.copy_pubkey_title": "Kliknij, aby skopiować pełny klucz publiczny",
|
||
"dm.delivery_unknown": "Nieznany status dostarczenia — brak ACK. Wiadomość mogła jednak zostać dostarczona.",
|
||
"dm.dropdown.contacts": "Kontakty",
|
||
"dm.dropdown.no_contacts": "Brak dostępnych kontaktów",
|
||
"dm.dropdown.no_matches": "Brak wyników",
|
||
"dm.dropdown.recent": "Ostatnie rozmowy",
|
||
"dm.empty.no_messages_hint": "Wyślij wiadomość, aby rozpocząć rozmowę",
|
||
"dm.empty.select": "Wybierz rozmowę",
|
||
"dm.empty.select_hint": "Wybierz z listy lub rozpocznij nową rozmowę z wiadomości kanałowych",
|
||
"dm.import_device_path_title": "Zaimportuj ścieżkę urządzenia do skonfigurowanych ścieżek",
|
||
"dm.keep_path": "Zachowaj ścieżkę",
|
||
"dm.keep_path_title": "Zachowaj ścieżkę: nie przywracaj automatycznie trybu FLOOD po nieudanych próbach",
|
||
"dm.load_messages_error": "Błąd wczytywania wiadomości",
|
||
"dm.msg_input_ph": "Wiadomość do {name}...",
|
||
"dm.no_contact_info": "Brak informacji o kontakcie.",
|
||
"dm.remote_cli_label": "Zdalna komenda CLI — niewykonana",
|
||
"dm.remote_cli_notify": "Zdalna komenda CLI (niewykonana): {cmd}",
|
||
"dm.remote_cli_title": "Ten kontakt próbował wykonać komendę w CLI Twojego węzła. Węzeł jej nie wykonał, bo kontakt nie ma uprawnienia do zdalnego CLI.",
|
||
"dm.select_chat_ph": "Wybierz rozmowę...",
|
||
"dm.sidebar.search_ph": "Szukaj kontaktów...",
|
||
"dm.status.delivered": "Dostarczono",
|
||
"dm.status.failed": "Dostarczenie nieudane — wyczerpano wszystkie próby",
|
||
"dm.status.sending": "Wysyłanie...",
|
||
"dm.title": "Wiadomości prywatne",
|
||
"dm.toast.auto_retry_off": "Auto ponawianie wyłączone",
|
||
"dm.toast.auto_retry_on": "Auto ponawianie włączone",
|
||
"dm.toast.device_path_imported": "Zaimportowano ścieżkę urządzenia",
|
||
"dm.toast.import_failed": "Import nieudany",
|
||
"dm.toast.keep_path_off": "Zachowywanie ścieżki wyłączone",
|
||
"dm.toast.keep_path_on": "Zachowywanie ścieżki włączone",
|
||
"logs.clear_title": "Wyczyść widok",
|
||
"logs.entries": {
|
||
"one": "{count} wpis",
|
||
"few": "{count} wpisy",
|
||
"many": "{count} wpisów",
|
||
"other": "{count} wpisu"
|
||
},
|
||
"logs.entries_filtered": {
|
||
"one": "{shown} / {count} wpis",
|
||
"few": "{shown} / {count} wpisy",
|
||
"many": "{shown} / {count} wpisów",
|
||
"other": "{shown} / {count} wpisu"
|
||
},
|
||
"logs.filter.all_levels": "Wszystkie poziomy",
|
||
"logs.filter.all_modules": "Wszystkie moduły",
|
||
"logs.filter.reset_title": "Wyczyść filtry",
|
||
"logs.filter.search_ph": "Szukaj...",
|
||
"logs.load_failed": "Nie udało się wczytać dziennika",
|
||
"logs.loading": "Ładowanie dziennika...",
|
||
"logs.pause_title": "Wstrzymaj/Wznów",
|
||
"logs.title": "Dziennik systemowy",
|
||
"map.all_contacts": "Wszystkie kontakty",
|
||
"map.cache": "Pamięć",
|
||
"map.cached_label": "{type} (z pamięci)",
|
||
"map.own_device": "Własne urządzenie",
|
||
"map.this_device": "To urządzenie",
|
||
"menu.advert": "Wyślij advert",
|
||
"menu.advert_desc": "Ogłoś obecność (normalnie)",
|
||
"menu.advert_title": "Wyślij pojedynczy advert (zalecane przy normalnej pracy)",
|
||
"menu.archive_option": "{date} ({count} wiad.)",
|
||
"menu.backup": "Kopia zapasowa",
|
||
"menu.backup_desc": "Kopia i przywracanie bazy danych",
|
||
"menu.channels": "Zarządzaj kanałami",
|
||
"menu.check_updates_title": "Sprawdź aktualizacje",
|
||
"menu.confirm.flood_advert": "Flood advert zużywa dużo czasu antenowego i powinien być używany wyłącznie do odbudowy sieci.\n\nCzy na pewno chcesz kontynuować?",
|
||
"menu.console_desc": "Bezpośrednie komendy meshcli",
|
||
"menu.contacts_desc": "Zarządzaj znanymi kontaktami",
|
||
"menu.device_info": "Informacje o urządzeniu",
|
||
"menu.dm_desc": "Rozmowy prywatne",
|
||
"menu.exact_build_title": "Dokładny build",
|
||
"menu.filter": "Filtruj wiadomości",
|
||
"menu.filter_desc": "Filtruj bieżący czat",
|
||
"menu.flood_advert": "Flood advert",
|
||
"menu.flood_advert_desc": "Tylko do odbudowy sieci!",
|
||
"menu.flood_advert_title": "Flood advert — używaj oszczędnie! Duże zużycie czasu antenowego.",
|
||
"menu.history": "Historia wiadomości",
|
||
"menu.logs_desc": "Logi aplikacji w czasie rzeczywistym",
|
||
"menu.map": "Mapa",
|
||
"menu.map_desc": "Wszystkie kontakty z GPS",
|
||
"menu.map_title": "Pokaż na mapie wszystkie kontakty z GPS",
|
||
"menu.pa_desc": "Analiza ścieżek routingu",
|
||
"menu.refresh_desc": "Wczytaj wiadomości ponownie z serwera",
|
||
"menu.refresh_title": "Wczytaj wiadomości ponownie z serwera",
|
||
"menu.repeaters_desc": "Administracja repeaterami",
|
||
"menu.search": "Szukaj w wiadomościach",
|
||
"menu.search_desc": "Przeszukaj wszystkie wiadomości",
|
||
"menu.section.network": "Sieć",
|
||
"menu.section.system": "System",
|
||
"menu.section.tools": "Narzędzia",
|
||
"menu.select_date_title": "Wybierz datę",
|
||
"menu.settings_desc": "Ustawienia aplikacji",
|
||
"menu.title": "Menu",
|
||
"menu.today_live": "Dziś (na żywo)",
|
||
"meta.language_english_name": "Polish",
|
||
"meta.language_name": "Polski",
|
||
"meta.translator": "mc-webui",
|
||
"nav.ble_title": "Bluetooth Low Energy",
|
||
"nav.mark_all_read_title": "Oznacz wszystko jako przeczytane",
|
||
"nav.select_channel_title": "Wybierz kanał",
|
||
"nav.tcp_title": "Połączenie TCP",
|
||
"notify.channels": {
|
||
"one": "{count} kanał",
|
||
"few": "{count} kanały",
|
||
"many": "{count} kanałów",
|
||
"other": "{count} kanału"
|
||
},
|
||
"notify.dms": {
|
||
"one": "{count} wiadomość prywatna",
|
||
"few": "{count} wiadomości prywatne",
|
||
"many": "{count} wiadomości prywatnych",
|
||
"other": "{count} wiadomości prywatnej"
|
||
},
|
||
"notify.new": "Nowe: {parts}",
|
||
"notify.pending": {
|
||
"one": "{count} oczekujący kontakt",
|
||
"few": "{count} oczekujące kontakty",
|
||
"many": "{count} oczekujących kontaktów",
|
||
"other": "{count} oczekującego kontaktu"
|
||
},
|
||
"notify.title_count": "{name} ({count})",
|
||
"observer.add_broker": "Dodaj brokera",
|
||
"observer.confirm.delete": "Usunąć brokera \"{name}\"?",
|
||
"observer.counters": "przechwycone pakiety: <strong>{seen}</strong>, opublikowane: <strong>{published}</strong>",
|
||
"observer.edit_broker": "Edytuj brokera",
|
||
"observer.empty": "Brak skonfigurowanych brokerów. Kliknij \"Dodaj brokera\", aby dodać.",
|
||
"observer.host": "Host",
|
||
"observer.host_required": "Host jest wymagany",
|
||
"observer.iata_invalid": "Kod lokalizacji musi być pusty albo mieć dokładnie 3 litery",
|
||
"observer.load_failed": "Nie udało się wczytać statusu obserwatora",
|
||
"observer.name_ph": "np. Mój serwer MQTT",
|
||
"observer.name_required": "Nazwa jest wymagana",
|
||
"observer.off": "Obserwator jest <strong>wyłączony</strong>.",
|
||
"observer.password": "Hasło",
|
||
"observer.password_hint": "Zostaw hasło puste, aby zachować bieżące.",
|
||
"observer.port": "Port",
|
||
"observer.port_invalid": "Port musi być z zakresu 1-65535",
|
||
"observer.ports_hint": "Typowe porty: 1883 (bez szyfrowania), 8883 (TLS).",
|
||
"observer.state.connected": "połączony",
|
||
"observer.state.error": "błąd",
|
||
"observer.state.offline": "offline",
|
||
"observer.state.running": "działa",
|
||
"observer.state.waiting": "czeka",
|
||
"observer.toast.delete_error": "Błąd sieci przy usuwaniu brokera",
|
||
"observer.toast.delete_failed": "Nie udało się usunąć brokera",
|
||
"observer.toast.save_error": "Błąd sieci przy zapisie brokera",
|
||
"observer.toast.save_failed": "Nie udało się zapisać brokera",
|
||
"observer.toast.settings_error": "Błąd sieci przy zapisie ustawień obserwatora",
|
||
"observer.toast.settings_failed": "Nie udało się zapisać ustawień obserwatora",
|
||
"observer.toast.update_error": "Błąd sieci przy aktualizacji brokera",
|
||
"observer.toast.update_failed": "Nie udało się zaktualizować brokera",
|
||
"observer.use_tls": "Użyj TLS",
|
||
"observer.username": "Nazwa użytkownika",
|
||
"observer.verify_tls": "Weryfikuj certyfikat TLS",
|
||
"pa.ambiguous": "niejednoznaczne ({count})",
|
||
"pa.any_hb": "Dowolne HB",
|
||
"pa.any_hops": "Dowolne hopy",
|
||
"pa.byte_2_3": "2/3 bajty",
|
||
"pa.candidates": {
|
||
"one": "{count} kandydat",
|
||
"few": "{count} kandydaci",
|
||
"many": "{count} kandydatów",
|
||
"other": "{count} kandydata"
|
||
},
|
||
"pa.clear": "Wyczyść",
|
||
"pa.clear_filters_title": "Wyczyść filtry",
|
||
"pa.col.avgsnr": "Śr. SNR (ostatni hop)",
|
||
"pa.col.avgsnr_title": "Średni SNR echa, liczony tylko gdy ten hash jest ostatnim hopem — SNR mierzymy na naszym odbiorniku dla ostatniego hopa",
|
||
"pa.col.channel": "Kanał",
|
||
"pa.col.contact": "Kontakt",
|
||
"pa.col.echoes": "Echa",
|
||
"pa.col.echoes_seg_title": "Echa, których ścieżka zawiera ten segment (w dowolnym miejscu)",
|
||
"pa.col.hash": "Hash",
|
||
"pa.col.hb": "HB",
|
||
"pa.col.hb_title": "Rozmiar hasha ścieżki w bajtach na hop (z ech z trasą)",
|
||
"pa.col.hops": "Hopy",
|
||
"pa.col.lasthop": "Jako ostatni hop",
|
||
"pa.col.lasthop_title": "Echa, w których ten hash jest ostatnim hopem (usłyszane bezpośrednio przez nas)",
|
||
"pa.col.message": "Wiadomość",
|
||
"pa.col.message_plural": "Wiadomości",
|
||
"pa.col.msgs_hash_title": "Odrębne wiadomości przekazane przez ten hash",
|
||
"pa.col.msgs_seg_title": "Odrębne wiadomości, których ścieżka zawiera ten segment",
|
||
"pa.col.pathend": "Jako koniec ścieżki",
|
||
"pa.col.pathend_title": "Echa, w których ten segment kończy ścieżkę — trasa, którą wiadomość do nas dotarła",
|
||
"pa.col.relayed": "Przekazane",
|
||
"pa.col.relayed_title": "Echa, których ścieżka zawiera ten hash (w dowolnym miejscu)",
|
||
"pa.col.repeater": "Repeater",
|
||
"pa.col.route": "Trasa",
|
||
"pa.col.sender": "Nadawca",
|
||
"pa.col.time": "Czas",
|
||
"pa.content_ph": "Treść wiadomości",
|
||
"pa.content_title": "Filtruj po treści wiadomości",
|
||
"pa.copy_hash_title": "Kopiuj hash repeatera {hash}",
|
||
"pa.copy_route_title": "Kliknij, aby skopiować trasę",
|
||
"pa.copy_title": "Kliknij, aby skopiować",
|
||
"pa.counter.filtered": "{shown} z {total} wiadomości",
|
||
"pa.counter.messages": {
|
||
"one": "{count} wiadomość",
|
||
"few": "{count} wiadomości",
|
||
"many": "{count} wiadomości",
|
||
"other": "{count} wiadomości"
|
||
},
|
||
"pa.counter.repeaters": {
|
||
"one": "{count} repeater",
|
||
"few": "{count} repeatery",
|
||
"many": "{count} repeaterów",
|
||
"other": "{count} repeatera"
|
||
},
|
||
"pa.counter.routed": {
|
||
"one": "{count} wiadomość z trasą",
|
||
"few": "{count} wiadomości z trasą",
|
||
"many": "{count} wiadomości z trasą",
|
||
"other": "{count} wiadomości z trasą"
|
||
},
|
||
"pa.counter.segments": {
|
||
"one": "{count} segment",
|
||
"few": "{count} segmenty",
|
||
"many": "{count} segmentów",
|
||
"other": "{count} segmentu"
|
||
},
|
||
"pa.direct_flood": "Bezpośrednio (flood, 0 hopów)",
|
||
"pa.empty_filtered": "Żadna wiadomość nie pasuje do bieżących filtrów.",
|
||
"pa.empty_no_echoes": "Brak ech z trasą w bieżącym wyborze.",
|
||
"pa.empty_range": "Brak wiadomości w wybranym zakresie czasu.",
|
||
"pa.filter_by_segment_title": "Filtruj wiadomości po tym segmencie",
|
||
"pa.filter_by_title": "Filtruj wiadomości według {token}",
|
||
"pa.filters": "Filtry",
|
||
"pa.filters_toggle_title": "Pokaż/ukryj filtry",
|
||
"pa.hb_filter_title": "Filtruj po rozmiarze hasha ścieżki (bajtów na hop, dowolne echo z trasą)",
|
||
"pa.hops_4plus": "4+ hopów",
|
||
"pa.hops_filter_title": "Filtruj po liczbie hopów (dowolne echo)",
|
||
"pa.last_days": {
|
||
"one": "Ostatni {count} dzień",
|
||
"few": "Ostatnie {count} dni",
|
||
"many": "Ostatnie {count} dni",
|
||
"other": "Ostatnie {count} dnia"
|
||
},
|
||
"pa.loading": "Wczytywanie wiadomości…",
|
||
"pa.map.alt_path": "Ścieżka alternatywna",
|
||
"pa.map.candidate": "Kandydat na hop {n}: <code>{token}</code>",
|
||
"pa.map.clear_title": "Wyczyść narysowaną ścieżkę",
|
||
"pa.map.exit_fullscreen": "Zamknij pełny ekran",
|
||
"pa.map.fullscreen": "Powiększ mapę na pełny ekran",
|
||
"pa.map.hint": "Kliknij wiadomość, a potem echo, aby narysować jej ścieżkę.",
|
||
"pa.map.hop": "Hop {n}: <code>{token}</code>",
|
||
"pa.map.no_routed": "Żadna wiadomość z echami z trasą nie pasuje do bieżących filtrów.",
|
||
"pa.map.origin": "Źródło (nadawca)",
|
||
"pa.me": "Ja",
|
||
"pa.n_byte": {
|
||
"one": "{count} bajt",
|
||
"few": "{count} bajty",
|
||
"many": "{count} bajtów",
|
||
"other": "{count} bajta"
|
||
},
|
||
"pa.n_hops": {
|
||
"one": "{count} hop",
|
||
"few": "{count} hopy",
|
||
"many": "{count} hopów",
|
||
"other": "{count} hopa"
|
||
},
|
||
"pa.no_path_data": "brak danych o ścieżce",
|
||
"pa.no_paths_min_hops": "Brak ścieżek o co najmniej {count} hopach w bieżącym wyborze.",
|
||
"pa.packet_hash": "Hash pakietu",
|
||
"pa.reload_title": "Odśwież",
|
||
"pa.repeater_hash": "Hash repeatera",
|
||
"pa.reset_picks": "Resetuj wybory",
|
||
"pa.reset_picks_title": "Wyczyść wszystkie ręczne przypisania repeaterów na tej ścieżce",
|
||
"pa.seglen_title": "Liczba kolejnych hopów w liczonym segmencie",
|
||
"pa.segment_length": "Długość segmentu:",
|
||
"pa.sender_own": "{name} (własna)",
|
||
"pa.sender_ph": "Nadawca",
|
||
"pa.sender_title": "Filtruj po nazwie nadawcy",
|
||
"pa.show_on_map_title": "Pokaż tę ścieżkę na mapie",
|
||
"pa.time_range": "Zakres czasu:",
|
||
"pa.title": "Analizator ścieżek",
|
||
"pa.toast.copied": "Skopiowano do schowka: {what}",
|
||
"pa.toast.copy_failed": "Nie udało się skopiować: {what}",
|
||
"pa.toast.load_failed": "Nie udało się wczytać wiadomości: {error}",
|
||
"pa.toast.msg_gone": "Tej wiadomości nie ma już w danych analizatora (maks. 7 dni).",
|
||
"pa.toast.no_echoes": "Ta wiadomość nie ma ech z trasą do narysowania.",
|
||
"pa.toggle_all_repeaters": "Wszystkie repeatery",
|
||
"pa.toggle_alt_paths": "Ścieżki alternatywne",
|
||
"pa.token_ph": "Repeater (3B lub nazwa)",
|
||
"pa.token_title": "Dopasuj repeater w dowolnym miejscu ścieżki: prefiks hasha (hex) lub nazwa kontaktu. Połącz znakiem '>', aby wskazać kolejność, np. AFE6>6E9A",
|
||
"pa.undo_pick_title": "Cofnij to ręczne przypisanie",
|
||
"pa.unknown_position": "— nieznany / brak pozycji",
|
||
"pa.use_contact_title": "Użyj tego kontaktu dla hopa",
|
||
"pa.view.map": "Mapa",
|
||
"pa.view.map_title": "Widok mapy",
|
||
"pa.view.messages": "Wiadomości",
|
||
"pa.view.messages_title": "Lista wiadomości",
|
||
"pa.view.repeaters": "Repeatery",
|
||
"pa.view.repeaters_title": "Statystyki per repeater",
|
||
"pa.view.routes": "Trasy",
|
||
"pa.view.routes_title": "Statystyki segmentów tras",
|
||
"pa.view_aria": "Widok",
|
||
"quote.full": "Pełny cytat",
|
||
"quote.max_bytes": "Maks. bajtów:",
|
||
"quote.title": "Zacytuj wiadomość",
|
||
"quote.truncated": "Skrócony",
|
||
"repeaters.add": "Dodaj repeater",
|
||
"repeaters.add_loading": "Wczytywanie kontaktów z urządzenia...",
|
||
"repeaters.add_modal_title": "Dodaj repeater",
|
||
"repeaters.add_none_found": "Nie znaleziono repeaterów na urządzeniu.",
|
||
"repeaters.add_search_ph": "Szukaj repeaterów na urządzeniu...",
|
||
"repeaters.added_badge": "Dodany",
|
||
"repeaters.addpath.by_id": "ID",
|
||
"repeaters.addpath.by_name": "Nazwa",
|
||
"repeaters.addpath.hash_1b": "1B (maks. 64)",
|
||
"repeaters.addpath.hash_2b": "2B (maks. 32)",
|
||
"repeaters.addpath.hash_3b": "3B (maks. 21)",
|
||
"repeaters.addpath.hash_size": "Rozmiar hasha",
|
||
"repeaters.addpath.label": "Etykieta (opcjonalnie)",
|
||
"repeaters.addpath.label_ph": "np. przez Mountain RPT",
|
||
"repeaters.addpath.path_hex": "Ścieżka (hex)",
|
||
"repeaters.addpath.path_hex_ph": "np. 5e,e7 lub 5e34,e761",
|
||
"repeaters.addpath.pick_list_title": "Wybierz repeater z listy",
|
||
"repeaters.addpath.pick_map_title": "Wybierz repeater z mapy",
|
||
"repeaters.addpath.search_id_ph": "Szukaj po pierwszych {chars} znakach hex...",
|
||
"repeaters.addpath.search_ph": "Szukaj po nazwie...",
|
||
"repeaters.addpath.title": "Dodaj ścieżkę",
|
||
"repeaters.confirm.clear_paths": "Usunąć wszystkie skonfigurowane ścieżki?\n\nSpowoduje to usunięcie wszystkich ścieżek z bazy danych. Ścieżka na urządzeniu nie zostanie zmieniona.",
|
||
"repeaters.confirm.reset_flood": "Przywrócić na urządzeniu tryb FLOOD?\n\nZmienia to tylko ścieżkę na urządzeniu. Twoje skonfigurowane ścieżki zostaną zachowane.",
|
||
"repeaters.confirm.set_direct": "Ustawić na urządzeniu ścieżkę Direct?\n\nWiadomości będą wysyłane wprost do węzła, bez repeatera po drodze. Zmienia to tylko ścieżkę na urządzeniu — twoje skonfigurowane ścieżki zostaną zachowane.",
|
||
"repeaters.count": {
|
||
"one": "{count} repeater",
|
||
"few": "{count} repeatery",
|
||
"many": "{count} repeaterów",
|
||
"other": "{count} repeatera"
|
||
},
|
||
"repeaters.empty": "Brak repeaterów.",
|
||
"repeaters.empty_hint": "Użyj <strong>Dodaj repeater</strong>, aby wybrać repeatery zapisane na Twoim urządzeniu.",
|
||
"repeaters.empty_note": "Zarządzać można tylko repeaterami zapisanymi w kontaktach urządzenia.",
|
||
"repeaters.load_failed": "Nie udało się wczytać repeaterów",
|
||
"repeaters.map.cached": "Z pamięci",
|
||
"repeaters.map.hint": "Kliknij repeater na mapie",
|
||
"repeaters.map.last_seen": "Ostatnio widziany: {time}",
|
||
"repeaters.map.title": "Wybierz repeater z mapy",
|
||
"repeaters.on_device_count": {
|
||
"one": "{count} repeater na urządzeniu",
|
||
"few": "{count} repeatery na urządzeniu",
|
||
"many": "{count} repeaterów na urządzeniu",
|
||
"other": "{count} repeatera na urządzeniu"
|
||
},
|
||
"repeaters.password.change_title": "Zmień hasło",
|
||
"repeaters.password.input_ph": "Hasło repeatera",
|
||
"repeaters.password.login_btn": "Zaloguj",
|
||
"repeaters.password.login_info": "Podaj hasło repeatera, aby się zalogować.",
|
||
"repeaters.password.login_title": "Logowanie",
|
||
"repeaters.password.remember": "Zapamiętaj hasło (przechowywane w bazie aplikacji)",
|
||
"repeaters.password.retry_hint": "Sprawdź hasło i spróbuj ponownie.",
|
||
"repeaters.password.set_info": "Hasło jest przechowywane w bazie aplikacji i służy do logowania się do tego repeatera bez ponownego pytania.",
|
||
"repeaters.password.set_title": "Ustaw hasło",
|
||
"repeaters.password.toggle_title": "Pokaż/ukryj hasło",
|
||
"repeaters.paths.add_title": "Dodaj ścieżkę",
|
||
"repeaters.paths.apply_title": "Ustaw jako ścieżkę urządzenia",
|
||
"repeaters.paths.clear": "Wyczyść ścieżki",
|
||
"repeaters.paths.clear_title": "Usuń z bazy wszystkie skonfigurowane ścieżki",
|
||
"repeaters.paths.configured": "Skonfigurowane ścieżki",
|
||
"repeaters.paths.device_path": "Ścieżka urządzenia:",
|
||
"repeaters.paths.is_primary_title": "Ścieżka główna",
|
||
"repeaters.paths.load_failed": "Nie udało się wczytać ścieżek",
|
||
"repeaters.paths.none": "Brak skonfigurowanych ścieżek. Użyj +, aby dodać.",
|
||
"repeaters.paths.reset_flood": "Przywróć FLOOD",
|
||
"repeaters.paths.reset_flood_title": "Przywróć na urządzeniu tryb FLOOD",
|
||
"repeaters.paths.set_direct": "Ustaw Direct",
|
||
"repeaters.paths.set_direct_title": "Ustaw na urządzeniu ścieżkę Direct (bez repeaterów)",
|
||
"repeaters.paths.set_primary_title": "Ustaw jako główną",
|
||
"repeaters.paths.title": "Ścieżki",
|
||
"repeaters.picker.none": "Nie znaleziono repeaterów",
|
||
"repeaters.picker.shared_prefix": {
|
||
"one": "{count} repeater ma ten prefiks",
|
||
"few": "{count} repeatery mają ten prefiks",
|
||
"many": "{count} repeaterów ma ten prefiks",
|
||
"other": "{count} repeatera ma ten prefiks"
|
||
},
|
||
"repeaters.refresh_title": "Odśwież listę",
|
||
"repeaters.remove.note": "Zapisane hasło zostanie usunięte. Kontakt na urządzeniu pozostanie bez zmian.",
|
||
"repeaters.remove.question": "Usunąć <strong>{name}</strong> z Moich repeaterów?",
|
||
"repeaters.remove.title": "Usuń repeater",
|
||
"repeaters.row.last_login": "ostatnie logowanie: {role}",
|
||
"repeaters.row.logging_in": "Logowanie… (na ścieżkach flood może potrwać do 60 s)",
|
||
"repeaters.row.not_on_device": "Niezapisany na urządzeniu",
|
||
"repeaters.row.remove_title": "Usuń z listy",
|
||
"repeaters.row.set_path_title": "Ustaw ścieżkę",
|
||
"repeaters.term": "repeater",
|
||
"repeaters.title": "Moje repeatery",
|
||
"repeaters.toast.add_failed": "Nie udało się dodać repeatera",
|
||
"repeaters.toast.added": "Dodano {name}",
|
||
"repeaters.toast.adjacent_dupes": {
|
||
"one": "Sąsiadujący powtórzony hop: {hops}",
|
||
"few": "Sąsiadujące powtórzone hopy: {hops}",
|
||
"many": "Sąsiadujące powtórzone hopy: {hops}",
|
||
"other": "Sąsiadujące powtórzone hopy: {hops}"
|
||
},
|
||
"repeaters.toast.ambiguous_prefix": {
|
||
"one": "⚠ Niejednoznaczny prefiks: {hops}. Rozważ większy rozmiar hasha.",
|
||
"few": "⚠ Niejednoznaczne prefiksy: {hops}. Rozważ większy rozmiar hasha.",
|
||
"many": "⚠ Niejednoznaczne prefiksy: {hops}. Rozważ większy rozmiar hasha.",
|
||
"other": "⚠ Niejednoznaczne prefiksy: {hops}. Rozważ większy rozmiar hasha."
|
||
},
|
||
"repeaters.toast.clear_failed": "Czyszczenie nie powiodło się",
|
||
"repeaters.toast.contacts_load_failed": "Nie udało się wczytać kontaktów z urządzenia",
|
||
"repeaters.toast.dupes": {
|
||
"one": "Powtórzony hop: {hops}",
|
||
"few": "Powtórzone hopy: {hops}",
|
||
"many": "Powtórzone hopy: {hops}",
|
||
"other": "Powtórzone hopy: {hops}"
|
||
},
|
||
"repeaters.toast.hop_adjacent_self": "{hop} nie może sąsiadować sam ze sobą",
|
||
"repeaters.toast.hop_already_used": "{hop} jest już w ścieżce",
|
||
"repeaters.toast.logged_in": "Zalogowano do {name} jako {role}",
|
||
"repeaters.toast.login_failed": "Logowanie nie powiodło się",
|
||
"repeaters.toast.login_in_progress": "Inne logowanie jest już w toku",
|
||
"repeaters.toast.not_on_device": "Ten repeater nie jest zapisany na urządzeniu — nie można nim zarządzać",
|
||
"repeaters.toast.password_empty": "Hasło nie może być puste",
|
||
"repeaters.toast.password_save_failed": "Nie udało się zapisać hasła",
|
||
"repeaters.toast.password_saved": "Hasło zapisane",
|
||
"repeaters.toast.path_add_failed": "Nie udało się dodać ścieżki",
|
||
"repeaters.toast.path_added": "Ścieżka dodana",
|
||
"repeaters.toast.path_duplicate": "Ta ścieżka jest już na liście",
|
||
"repeaters.toast.path_hex_required": "Ścieżka hex jest wymagana",
|
||
"repeaters.toast.path_set_failed": "Nie udało się ustawić ścieżki urządzenia",
|
||
"repeaters.toast.path_updated": "Ścieżka urządzenia zaktualizowana",
|
||
"repeaters.toast.paths_cleared": {
|
||
"one": "Wyczyszczono {count} ścieżkę",
|
||
"few": "Wyczyszczono {count} ścieżki",
|
||
"many": "Wyczyszczono {count} ścieżek",
|
||
"other": "Wyczyszczono {count} ścieżki"
|
||
},
|
||
"repeaters.toast.remove_failed": "Nie udało się usunąć repeatera",
|
||
"repeaters.toast.removed": "Repeater usunięty z listy",
|
||
"repeaters.toast.reset_failed": "Przywracanie nie powiodło się",
|
||
"repeaters.toast.reset_flood_done": "Przywrócono na urządzeniu tryb FLOOD",
|
||
"repeaters.toast.set_direct_done": "Ustawiono na urządzeniu ścieżkę Direct",
|
||
"repeaters.toast.set_direct_failed": "Nie udało się ustawić ścieżki Direct",
|
||
"rptmgmt.act.clock_sync": "Synchronizuj zegar",
|
||
"rptmgmt.act.clock_sync_desc": "Ustaw zegar repeatera według bieżącego czasu serwera. Firmware nie pozwala cofnąć zegara.",
|
||
"rptmgmt.act.flood": "Wyślij flood advert",
|
||
"rptmgmt.act.flood_desc": "Niezalecane — advert jest rozsyłany trybem flood po całej sieci (duże obciążenie).",
|
||
"rptmgmt.act.poweroff": "Wyłącz repeater",
|
||
"rptmgmt.act.poweroff_btn": "Wyłącz",
|
||
"rptmgmt.act.poweroff_desc": "Wyłącza repeater. Nie da się go włączyć zdalnie przez sieć mesh — ktoś musi pojechać na miejsce. Wymaga firmware v1.17 lub nowszego.",
|
||
"rptmgmt.act.reboot": "Restart repeatera",
|
||
"rptmgmt.act.reboot_btn": "Restart",
|
||
"rptmgmt.act.reboot_desc": "Repeater znika z sieci mesh na kilka sekund, gdy się restartuje.",
|
||
"rptmgmt.act.send": "Wyślij",
|
||
"rptmgmt.act.sync": "Synchronizuj",
|
||
"rptmgmt.act.zerohop": "Wyślij advert zero-hop",
|
||
"rptmgmt.act.zerohop_desc": "Ogłoś ten repeater wyłącznie bezpośrednim sąsiadom.",
|
||
"rptmgmt.action_failed": "Akcja nie powiodła się",
|
||
"rptmgmt.admin_required": "Wymagane logowanie administratora",
|
||
"rptmgmt.ago_dh": "{d}d {h}h temu",
|
||
"rptmgmt.ago_hm": "{h}h {m}m temu",
|
||
"rptmgmt.ago_ms": "{m}m {s}s temu",
|
||
"rptmgmt.ago_s": "{s}s temu",
|
||
"rptmgmt.back_title": "Powrót do Moich repeaterów",
|
||
"rptmgmt.back_to_list": "Powrót do listy",
|
||
"rptmgmt.back_tools_title": "Powrót do narzędzi",
|
||
"rptmgmt.cli.empty_reply": "(pusta odpowiedź)",
|
||
"rptmgmt.cli.input_ph": "Wpisz polecenie (np. get name)",
|
||
"rptmgmt.cli.intro": "Polecenia trafiają do {name}. Jedno polecenie naraz — odpowiedzi wędrują przez sieć mesh.",
|
||
"rptmgmt.cli.the_repeater": "repeatera",
|
||
"rptmgmt.cli.waiting": "Czekam na odpowiedź…",
|
||
"rptmgmt.command_failed": "Polecenie nie powiodło się",
|
||
"rptmgmt.confirm.radio": "Zmienić parametry radia na {params}?\n\nBłędne wartości mogą sprawić, że repeater stanie się nieosiągalny w sieci mesh. Zmiana działa po restarcie.",
|
||
"rptmgmt.confirm.reboot": "Zrestartować {name}?\n\nRepeater zniknie z sieci mesh na kilka sekund. Firmware nie odpowiada na to polecenie.",
|
||
"rptmgmt.copy_pubkey_title": "Kopiuj pełny klucz publiczny",
|
||
"rptmgmt.danger_zone": "Strefa ryzyka",
|
||
"rptmgmt.done": "Gotowe",
|
||
"rptmgmt.erase_fs_note": "Kasowanie systemu plików nie jest dostępne przez sieć mesh — firmware przyjmuje je wyłącznie na konsoli szeregowej USB (użyj flashera MeshCore).",
|
||
"rptmgmt.error_generic": "Coś poszło nie tak.",
|
||
"rptmgmt.failed": "Niepowodzenie",
|
||
"rptmgmt.invalid_pubkey": "Nieprawidłowy klucz publiczny repeatera w adresie URL.",
|
||
"rptmgmt.load_failed": "Nie udało się wczytać repeatera",
|
||
"rptmgmt.loc.hint": "Kliknij mapę, aby ustawić lokalizację repeatera.",
|
||
"rptmgmt.loc.title": "Wybierz lokalizację",
|
||
"rptmgmt.loc.use": "Użyj tej lokalizacji",
|
||
"rptmgmt.login.empty_password": "Hasło nie może być puste",
|
||
"rptmgmt.login.failed": "Logowanie nie powiodło się",
|
||
"rptmgmt.login.logged_in": "Zalogowano jako {role}",
|
||
"rptmgmt.login.modal_title": "Zaloguj się — {name}",
|
||
"rptmgmt.login.progress": "Logowanie do {name}… (na ścieżkach flood może potrwać do 60 s)",
|
||
"rptmgmt.login.prompt": "Podaj hasło repeatera, aby się zalogować.",
|
||
"rptmgmt.login.repeater_fallback": "repeatera",
|
||
"rptmgmt.login.retry_hint": "Sprawdź hasło i spróbuj ponownie.",
|
||
"rptmgmt.login.waiting": "Czekam na hasło…",
|
||
"rptmgmt.login_request_failed": "Żądanie logowania nie powiodło się",
|
||
"rptmgmt.logout": "Wyloguj",
|
||
"rptmgmt.logout_failed": "Wylogowanie nie powiodło się",
|
||
"rptmgmt.logout_title": "Wyloguj się z tego repeatera",
|
||
"rptmgmt.managed_repeater": "zarządzany repeater",
|
||
"rptmgmt.neigh.confirm_remove_all": "Usunąć wszystkich sąsiadów z {name}?\n\nLista jest przechowywana na repeaterze. Sąsiedzi pojawią się ponownie, gdy zostaną znowu usłyszani.",
|
||
"rptmgmt.neigh.count": {
|
||
"one": "{count} sąsiad",
|
||
"few": "{count} sąsiadów",
|
||
"many": "{count} sąsiadów",
|
||
"other": "{count} sąsiada"
|
||
},
|
||
"rptmgmt.neigh.discover": "Wykryj sąsiadów",
|
||
"rptmgmt.neigh.discover_sending": "Wysyłanie żądania wykrywania…",
|
||
"rptmgmt.neigh.discover_sent": "Żądanie wykrywania wysłane. Pobliskie repeatery mogą odpowiadać nawet do 60 sekund — odśwież listę, aby zobaczyć nowych sąsiadów.",
|
||
"rptmgmt.neigh.heard": "Słyszany",
|
||
"rptmgmt.neigh.heard_at": "Usłyszany: {time}",
|
||
"rptmgmt.neigh.list": "Lista",
|
||
"rptmgmt.neigh.loading": "Pobieranie sąsiadów z repeatera…",
|
||
"rptmgmt.neigh.loading_hint": "Długie listy są pobierane stronami i może to chwilę potrwać.",
|
||
"rptmgmt.neigh.map": "Mapa",
|
||
"rptmgmt.neigh.menu_title": "Akcje sąsiadów",
|
||
"rptmgmt.neigh.position": "Pozycja",
|
||
"rptmgmt.neigh.position_title": "Pozycja znana",
|
||
"rptmgmt.neigh.pubkey": "Klucz publiczny",
|
||
"rptmgmt.neigh.refresh_title": "Odśwież sąsiadów",
|
||
"rptmgmt.neigh.remove_all": "Usuń wszystkich sąsiadów",
|
||
"rptmgmt.neigh.remove_btn": "Usuń z listy",
|
||
"rptmgmt.neigh.remove_note": "Lista jest przechowywana na repeaterze — usunięty sąsiad wróci, gdy zostanie znowu usłyszany.",
|
||
"rptmgmt.neigh.removed_all": "Lista sąsiadów wyczyszczona.",
|
||
"rptmgmt.neigh.removed_one": "{name} usunięty z listy sąsiadów.",
|
||
"rptmgmt.neigh.removing": "Usuwanie…",
|
||
"rptmgmt.neigh.repeater": "Repeater",
|
||
"rptmgmt.neigh.row_hint": "Wybierz sąsiada, aby zobaczyć szczegóły.",
|
||
"rptmgmt.neigh.showing": "(pokazano {count})",
|
||
"rptmgmt.neighbours_failed": "Nie udało się pobrać sąsiadów",
|
||
"rptmgmt.neighbours_none": "Nie zgłoszono jeszcze żadnych sąsiadów.",
|
||
"rptmgmt.neighbours_none_hint": "Sąsiedzi są poznawani z advertów repeaterów zero-hop.",
|
||
"rptmgmt.no_result": "Brak wyniku",
|
||
"rptmgmt.not_on_device": "Ten repeater nie jest zapisany na urządzeniu — nie można nim zarządzać.",
|
||
"rptmgmt.poweroff.no_name": "Ten repeater nie ma zapisanej nazwy, więc nie można potwierdzić wyłączenia.",
|
||
"rptmgmt.poweroff.prompt": "Wpisz nazwę repeatera ({name}), aby potwierdzić:",
|
||
"rptmgmt.poweroff.title": "Wyłącz repeater",
|
||
"rptmgmt.poweroff.warning": "Tej operacji nie da się cofnąć przez sieć mesh. Repeater pozostanie wyłączony, dopóki ktoś nie włączy go fizycznie.",
|
||
"rptmgmt.pubkey_copied": "Klucz publiczny skopiowany",
|
||
"rptmgmt.read_failed": "Nie udało się odczytać",
|
||
"rptmgmt.reboot_required": "wymagany restart",
|
||
"rptmgmt.reg.action_failed": "Polecenie regionu nie powiodło się",
|
||
"rptmgmt.reg.action_ok": "Gotowe",
|
||
"rptmgmt.reg.add": "Dodaj region",
|
||
"rptmgmt.reg.added": "Region {name} został dodany",
|
||
"rptmgmt.reg.added_under": "Region {name} został dodany wewnątrz {parent}",
|
||
"rptmgmt.reg.allow_flood": "Zezwól na flood",
|
||
"rptmgmt.reg.confirm_leave": "Masz zmiany regionów, które nie zostały jeszcze zapisane na repeaterze.\n\nDziałają już teraz, ale zostaną utracone po jego restarcie. Wyjść bez zapisywania?",
|
||
"rptmgmt.reg.confirm_remove": "Usunąć region {name} z tego repeatera?\n\nRegionu, który ma pod sobą zagnieżdżone regiony, nie można usunąć.",
|
||
"rptmgmt.reg.default_current": "Ten repeater nadaje obecnie własne pakiety flood w zakresie {name}.",
|
||
"rptmgmt.reg.default_current_none": "Ten repeater nadaje obecnie własne pakiety flood bez zakresu.",
|
||
"rptmgmt.reg.default_help": "Region, którym ten repeater oznacza wysyłane przez siebie pakiety flood. Przekażą je dalej tylko repeatery, które zezwalają na ten region. Zapisywane na repeaterze od razu — nie wymaga przycisku Zapisz.",
|
||
"rptmgmt.reg.default_none": "— brak (bez zakresu) —",
|
||
"rptmgmt.reg.default_pick_first": "Najpierw wybierz domyślny zakres albo odśwież, aby odczytać obecny.",
|
||
"rptmgmt.reg.default_saved": "Domyślny zakres zaktualizowany",
|
||
"rptmgmt.reg.default_title": "Domyślny zakres",
|
||
"rptmgmt.reg.default_unknown": "— nie udało się odczytać —",
|
||
"rptmgmt.reg.default_unread": "Nie udało się odczytać domyślnego zakresu: {error}",
|
||
"rptmgmt.reg.deny_flood": "Zablokuj flood",
|
||
"rptmgmt.reg.dirty_note": "Niezapisane zmiany. Już działają, ale repeater zapomni o nich po restarcie — użyj Zapisz, aby je zachować.",
|
||
"rptmgmt.reg.err_char": "Ten znak jest niedozwolony w nazwie regionu.",
|
||
"rptmgmt.reg.err_empty": "Podaj nazwę regionu.",
|
||
"rptmgmt.reg.err_long": "Nazwa zbyt długa (maks. {max} znaków).",
|
||
"rptmgmt.reg.flood_allowed": "Flood dozwolony",
|
||
"rptmgmt.reg.flood_denied": "Flood zablokowany",
|
||
"rptmgmt.reg.home": "macierzysty",
|
||
"rptmgmt.reg.intro": "Które pakiety z zakresem regionu ten repeater przekazuje dalej. Region ustawiony na Flood dozwolony jest powtarzany, a ustawiony na Flood zablokowany — odrzucany. Zmiany działają od razu, ale do czasu zapisania istnieją tylko w pamięci.",
|
||
"rptmgmt.reg.menu_title": "Akcje regionu",
|
||
"rptmgmt.reg.move": "Przenieś do innego regionu",
|
||
"rptmgmt.reg.move_confirm": "Przenieś",
|
||
"rptmgmt.reg.move_help": "Wybierz region, wewnątrz którego ma się znaleźć, albo najwyższy poziom. Zagnieżdżone w nim regiony przenoszą się razem z nim i zachowują swój układ.",
|
||
"rptmgmt.reg.move_label": "Przenieś {name} do",
|
||
"rptmgmt.reg.moved": "Region {name} został przeniesiony do {parent}",
|
||
"rptmgmt.reg.moved_flood_lost": "Region {name} został przeniesiony, ale nie udało się przywrócić ustawienia Flood zablokowany i obecnie zezwala na flood. Ustaw je ponownie.",
|
||
"rptmgmt.reg.moved_root": "Region {name} został przeniesiony na najwyższy poziom",
|
||
"rptmgmt.reg.name_help": "Dozwolone są litery, cyfry oraz - $ #; bez spacji. Maks. 30 znaków.",
|
||
"rptmgmt.reg.name_placeholder": "Nazwa regionu, np. pl",
|
||
"rptmgmt.reg.none": "Ten repeater nie ma skonfigurowanych regionów.",
|
||
"rptmgmt.reg.parent": "Wewnątrz",
|
||
"rptmgmt.reg.parent_help": "Zagnieźdź nowy region wewnątrz istniejącego albo zostaw go na najwyższym poziomie.",
|
||
"rptmgmt.reg.parent_root": "— najwyższy poziom —",
|
||
"rptmgmt.reg.read_failed": "Nie udało się odczytać regionów",
|
||
"rptmgmt.reg.reading": "Odczyt regionów z repeatera…",
|
||
"rptmgmt.reg.refresh_title": "Odczytaj listę regionów z repeatera ponownie",
|
||
"rptmgmt.reg.remove": "Usuń region",
|
||
"rptmgmt.reg.row_desc": "Dla których regionów ten repeater przekazuje flood",
|
||
"rptmgmt.reg.save": "Zapisz",
|
||
"rptmgmt.reg.save_failed": "Nie udało się zapisać regionów",
|
||
"rptmgmt.reg.save_title": "Zapisz listę regionów na repeaterze, aby przetrwała restart",
|
||
"rptmgmt.reg.saved": "Regiony zapisane na repeaterze",
|
||
"rptmgmt.reg.set_home": "Ustaw jako region macierzysty",
|
||
"rptmgmt.reg.title": "Regiony",
|
||
"rptmgmt.reg.truncated": "Repeater wysłał więcej regionów, niż mieści się w jednej odpowiedzi, więc ta lista może być niepełna. Użyj CLI (`region list allowed`), aby zobaczyć resztę.",
|
||
"rptmgmt.reg.wildcard": "Pakiety bez zakresu regionu",
|
||
"rptmgmt.request_failed": "Żądanie nie powiodło się",
|
||
"rptmgmt.set.advanced": "Zaawansowane",
|
||
"rptmgmt.set.advert": "Advert",
|
||
"rptmgmt.set.advert_interval": "Lokalny interwał advert (minuty)",
|
||
"rptmgmt.set.advert_interval_help": "Firmware przyjmuje 60–240 minut lub 0, aby wyłączyć.",
|
||
"rptmgmt.set.agc_reset": "Interwał resetu AGC",
|
||
"rptmgmt.set.agc_reset_help": "Wielokrotność 4; 0 wyłącza okresowe resety AGC.",
|
||
"rptmgmt.set.allow_read_only": "Zezwól na dostęp gościa (tylko odczyt)",
|
||
"rptmgmt.set.allow_read_only_help": "Pozwala zalogować się hasłem gościa w trybie tylko do odczytu: taki użytkownik widzi status i ustawienia, ale nic nie zmieni.",
|
||
"rptmgmt.set.apply_count": "Zastosuj ({count})",
|
||
"rptmgmt.set.basic": "Podstawowe",
|
||
"rptmgmt.set.cad": "Wykrywanie aktywności kanału (CAD)",
|
||
"rptmgmt.set.cad_help": "Radio sprawdza przed nadawaniem, czy kanał jest zajęty, i wstrzymuje transmisję, jeśli tak. Działa niezależnie od progu zakłóceń. Wymaga firmware v1.17 lub nowszego.",
|
||
"rptmgmt.set.direct_txdelay": "Współczynnik opóźnienia TX direct (0–2)",
|
||
"rptmgmt.set.direct_txdelay_help": "To samo losowe opóźnienie, ale dla pakietów przekazywanych znaną ścieżką direct zamiast floodem. Zwykle niższe niż przy floodzie, bo pakiet direct dotyczy tylko repeaterów na tej jednej trasie.",
|
||
"rptmgmt.set.dutycycle": "Duty cycle (%)",
|
||
"rptmgmt.set.dutycycle_help": "Największy udział czasu, jaki repeater może poświęcić na nadawanie, w procentach. 100 oznacza brak ograniczenia; niższe wartości sprawiają, że obciążony repeater wstrzymuje pakiety. To ustawienie zastąpiło dawny współczynnik czasu antenowego (af).",
|
||
"rptmgmt.set.features": "Funkcje",
|
||
"rptmgmt.set.flood_advert_interval": "Interwał flood advert (godziny)",
|
||
"rptmgmt.set.flood_advert_interval_help": "Jak często repeater rozsyła floodem swój advert po całej sieci, w godzinach. Firmware przyjmuje 3–168 albo 0, aby wyłączyć adverty flood. Każdy taki advert dociera do całej sieci, więc krótki interwał kosztuje czas antenowy wszystkich.",
|
||
"rptmgmt.set.flood_max": "Maks. liczba hopów flood",
|
||
"rptmgmt.set.flood_max_advert": "Maks. liczba hopów flood (adverty)",
|
||
"rptmgmt.set.flood_max_advert_help": "Limit hopów stosowany wyłącznie do adverta rozsyłanego trybem flood. Domyślnie 8.",
|
||
"rptmgmt.set.flood_max_help": "Limit hopów dla każdego pakietu flood przekazywanego przez repeater: pakiet, który przeszedł już tyle hopów, jest odrzucany zamiast przekazany. Domyślnie 64. Dwa węższe limity poniżej działają dodatkowo.",
|
||
"rptmgmt.set.flood_max_unscoped": "Maks. liczba hopów flood (bez zakresu)",
|
||
"rptmgmt.set.flood_max_unscoped_help": "Limit hopów dla pakietów flood bez przypisanego zakresu regionu. Domyślnie 64.",
|
||
"rptmgmt.set.guest_password": "Hasło gościa",
|
||
"rptmgmt.set.guest_password_help": "Hasło do logowania gościa w trybie tylko do odczytu.",
|
||
"rptmgmt.set.int_thresh": "Próg zakłóceń",
|
||
"rptmgmt.set.int_thresh_help": "Próg zakłóceń w dB ponad zmierzonym poziomem szumów: dopóki repeater słyszy coś silniejszego, uznaje kanał za zajęty i czeka z nadawaniem. 0 wyłącza tę kontrolę. Działa niezależnie od CAD.",
|
||
"rptmgmt.set.intro": "Nic nie jest odczytywane z repeatera, dopóki o to nie poprosisz — każde pole to jedna podróż przez sieć mesh. Użyj przycisku obok pola, aby odczytać to pole, albo Odczytaj wszystkie pola dla całej sekcji. Wartości pokazane bez świeżego odczytu pochodzą z poprzedniego odczytu.",
|
||
"rptmgmt.set.lat": "Szerokość geogr.",
|
||
"rptmgmt.set.lat_help": "Szerokość geograficzna w stopniach dziesiętnych, rozgłaszana w advertach repeatera i używana do umieszczenia go na mapach. Przycisk Wybierz z mapy wypełnia to pole kliknięciem w mapę.",
|
||
"rptmgmt.set.load_errors": {
|
||
"one": "Nie udało się wczytać {count} pola — Odśwież ponawia całą sekcję.",
|
||
"few": "Nie udało się wczytać {count} pól — Odśwież ponawia całą sekcję.",
|
||
"many": "Nie udało się wczytać {count} pól — Odśwież ponawia całą sekcję.",
|
||
"other": "Nie udało się wczytać {count} pola — Odśwież ponawia całą sekcję."
|
||
},
|
||
"rptmgmt.set.location": "Lokalizacja",
|
||
"rptmgmt.set.lon": "Długość geogr.",
|
||
"rptmgmt.set.lon_help": "Długość geograficzna w stopniach dziesiętnych, rozgłaszana w advertach repeatera i używana do umieszczenia go na mapach. Przycisk Wybierz z mapy wypełnia to pole kliknięciem w mapę.",
|
||
"rptmgmt.set.loop_detect": "Wykrywanie pętli",
|
||
"rptmgmt.set.loop_detect_help": "Odrzuca pakiety flood, które wracają do tego węzła w kółko — tak z tego miejsca wygląda pętla routingu między sąsiednimi repeaterami. Ostrzejsze poziomy wyłapują pętlę szybciej, ale też szybciej odrzucą prawidłowy pakiet, który po prostu przebył długą drogę.",
|
||
"rptmgmt.set.map_pick": "Wybierz z mapy",
|
||
"rptmgmt.set.map_pick_title": "Najpierw odczytaj szerokość i długość, potem wskaż punkt",
|
||
"rptmgmt.set.multi_acks": "Wysyłaj wiele ACK",
|
||
"rptmgmt.set.multi_acks_help": "Ile potwierdzeń (ACK) repeater odsyła za dostarczony pakiet. 0 wysyła jedno, 1 wysyła je dwukrotnie — częściej dochodzi, ale kosztem dodatkowego czasu antenowego.",
|
||
"rptmgmt.set.name": "Nazwa repeatera",
|
||
"rptmgmt.set.name_help": "Nazwa, którą repeater rozgłasza w sieci mesh i pod którą widnieje na listach kontaktów. Firmware odrzuca nietypowe znaki. Inni zobaczą nową nazwę, gdy repeater wyśle kolejny advert.",
|
||
"rptmgmt.set.network": "Kondycja sieci",
|
||
"rptmgmt.set.operator": "Informacje o operatorze",
|
||
"rptmgmt.set.owner_info": "Dane właściciela",
|
||
"rptmgmt.set.owner_info_help": "Dowolny tekst z danymi operatora / kontaktem, widoczny dla klientów. Można użyć wielu linii.",
|
||
"rptmgmt.set.password": "Hasło administratora",
|
||
"rptmgmt.set.password_help": "Tylko do zapisu — bieżące hasło nigdy nie jest pokazywane. Zmiana nie wylogowuje aktywnych sesji.",
|
||
"rptmgmt.set.path_hash_mode": "Tryb hasha ścieżki (0–2)",
|
||
"rptmgmt.set.path_hash_mode_help": "Liczba bajtów na hop w ścieżkach routingu budowanych przez ten repeater. 0 = 1 bajt (najkrótsze ścieżki, najwięcej kolizji prefiksów), 1 = 2 bajty, 2 = 3 bajty (najdłuższe, najmniej kolizji).",
|
||
"rptmgmt.set.pw_unchanged_ph": "(bez zmian)",
|
||
"rptmgmt.set.radio": "Radio",
|
||
"rptmgmt.set.radio_note": "Częstotliwość, bandwidth, SF i CR działają po restarcie. Moc TX działa natychmiast.",
|
||
"rptmgmt.set.radio_params": "Parametry radia",
|
||
"rptmgmt.set.radio_params_help": "Częstotliwość w MHz, pasmo w kHz, współczynnik rozpraszania (SF) i kodowania (CR). Muszą dokładnie odpowiadać reszcie sieci, inaczej repeater stanie się dla niej niewidoczny — także dla Ciebie. Limity firmware: 150–2500 MHz, 7–500 kHz, SF 5–12, CR 5–8. Działa po restarcie.",
|
||
"rptmgmt.set.read_all": "Odczytaj wszystkie pola",
|
||
"rptmgmt.set.read_field_title": "Odczytaj to pole z repeatera",
|
||
"rptmgmt.set.reading": "Odczyt z repeatera… (jedna podróż przez sieć na pole)",
|
||
"rptmgmt.set.reboot_note": "Część zmian działa dopiero po restarcie — użyj Akcje → Restart.",
|
||
"rptmgmt.set.repeat": "Przekazuj pakiety",
|
||
"rptmgmt.set.repeat_help": "Główny przełącznik przekazywania. Wyłączony sprawia, że węzeł w ogóle przestaje przekazywać cudze pakiety — nadal wysyła własne adverty i nadal odpowiada na komendy administracyjne, po prostu przestaje być repeaterem.",
|
||
"rptmgmt.set.rxdelay": "Baza opóźnienia RX (0–20)",
|
||
"rptmgmt.set.rxdelay_help": "Rozsuwa w czasie przekazywanie pakietów flood według jakości odbioru — węzeł, który odebrał pakiet dobrze, przekazuje go wcześniej, a ten na granicy zasięgu czeka i pomija przekazanie, jeśli lepiej ustawiony repeater zdążył pierwszy. 0 wyłącza tę funkcję i jest domyślną wartością firmware.",
|
||
"rptmgmt.set.rxgain": "Wzmocnienie RX (boosted gain)",
|
||
"rptmgmt.set.rxgain_help": "Podbite wzmocnienie LNA przy odbiorze: nieco większa czułość kosztem trochę wyższego poboru prądu. Nie ma go każdy układ radiowy — węzły bez tej funkcji zgłaszają pole jako nieobsługiwane.",
|
||
"rptmgmt.set.stale_field_title": "Z ostatniego odczytu — może być nieaktualne",
|
||
"rptmgmt.set.stale_note": "Powyższe wartości odczytano {when} i mogą już nie odpowiadać temu, co ma repeater. Odczytaj pole ponownie, aby zobaczyć jego aktualną wartość.",
|
||
"rptmgmt.set.tx": "Moc TX (dBm)",
|
||
"rptmgmt.set.tx_help": "Moc nadawania w dBm. Użyteczny zakres zależy od płytki i od limitów mocy obowiązujących w miejscu, gdzie stoi repeater. Działa natychmiast.",
|
||
"rptmgmt.set.txdelay": "Współczynnik opóźnienia TX (0–2)",
|
||
"rptmgmt.set.txdelay_help": "Losowe opóźnienie przed przekazaniem pakietu flood, jako wielokrotność czasu antenowego tego pakietu. Rozsuwa w czasie sąsiednie repeatery, żeby nie odpowiadały w tej samej chwili i nie kolidowały. 0 przekazuje natychmiast.",
|
||
"rptmgmt.settings_apply_failed": "Nie udało się zastosować ustawień",
|
||
"rptmgmt.settings_read_failed": "Nie udało się odczytać ustawień",
|
||
"rptmgmt.status.battery": "Bateria",
|
||
"rptmgmt.status.clock": "Zegar",
|
||
"rptmgmt.status.clock_fetch": "pobierz",
|
||
"rptmgmt.status.duplicates": "Duplikaty",
|
||
"rptmgmt.status.events": "Zdarzenia debug / błędów",
|
||
"rptmgmt.status.last_rssi": "Ostatni RSSI",
|
||
"rptmgmt.status.last_snr": "Ostatni SNR",
|
||
"rptmgmt.status.loading": "Pobieranie statusu z repeatera…",
|
||
"rptmgmt.status.noise": "Poziom szumów",
|
||
"rptmgmt.status.packets": "Statystyki pakietów",
|
||
"rptmgmt.status.queue": "Długość kolejki",
|
||
"rptmgmt.status.radio": "Statystyki radia",
|
||
"rptmgmt.status.received": "Odebrane",
|
||
"rptmgmt.status.refresh_title": "Odśwież status",
|
||
"rptmgmt.status.rx_airtime": "Czas antenowy RX",
|
||
"rptmgmt.status.rx_errors": "Błędy RX",
|
||
"rptmgmt.status.sent": "Wysłane",
|
||
"rptmgmt.status.system": "Informacje systemowe",
|
||
"rptmgmt.status.tx_airtime": "Czas antenowy TX",
|
||
"rptmgmt.status.uptime": "Czas pracy",
|
||
"rptmgmt.status.utilization": "Wykorzystanie kanału",
|
||
"rptmgmt.status_failed": "Nie udało się pobrać statusu",
|
||
"rptmgmt.tel.channel": "Kanał {n}",
|
||
"rptmgmt.tel.device_suffix": "urządzenie",
|
||
"rptmgmt.tel.loading": "Pobieranie telemetrii z repeatera…",
|
||
"rptmgmt.tel.loading_hint": "Ścieżki wielohopowe mogą zająć nawet minutę.",
|
||
"rptmgmt.tel.mcu_temp": "Temperatura MCU",
|
||
"rptmgmt.tel.refresh_title": "Odśwież telemetrię",
|
||
"rptmgmt.telemetry_failed": "Nie udało się pobrać telemetrii",
|
||
"rptmgmt.telemetry_none": "Brak danych telemetrycznych.",
|
||
"rptmgmt.this_repeater": "Ten repeater",
|
||
"rptmgmt.title": "Zarządzanie repeaterem",
|
||
"rptmgmt.toast.admin_required": "To narzędzie wymaga logowania jako administrator",
|
||
"rptmgmt.toast.applied": "Ustawienia zastosowane",
|
||
"rptmgmt.toast.applied_reboot": "Zastosowano — część zmian wymaga restartu",
|
||
"rptmgmt.toast.apply_failed_count": {
|
||
"one": "{count} ustawienia nie udało się zastosować",
|
||
"few": "{count} ustawień nie udało się zastosować",
|
||
"many": "{count} ustawień nie udało się zastosować",
|
||
"other": "{count} ustawienia nie udało się zastosować"
|
||
},
|
||
"rptmgmt.toast.apply_partial_unsupported": {
|
||
"one": "Zastosowano — {count} ustawienie nie jest obsługiwane przez ten repeater",
|
||
"few": "Zastosowano — {count} ustawienia nie są obsługiwane przez ten repeater",
|
||
"many": "Zastosowano — {count} ustawień nie jest obsługiwanych przez ten repeater",
|
||
"other": "Zastosowano — {count} ustawienia nie są obsługiwane przez ten repeater"
|
||
},
|
||
"rptmgmt.toast.apply_unsupported_count": {
|
||
"one": "{count} ustawienie nie jest obsługiwane przez ten repeater — nic nie zostało zastosowane",
|
||
"few": "{count} ustawienia nie są obsługiwane przez ten repeater — nic nie zostało zastosowane",
|
||
"many": "{count} ustawień nie jest obsługiwanych przez ten repeater — nic nie zostało zastosowane",
|
||
"other": "{count} ustawienia nie są obsługiwane przez ten repeater — nic nie zostało zastosowane"
|
||
},
|
||
"rptmgmt.toast.field_empty": "„{field}” nie może być puste",
|
||
"rptmgmt.toast.password_synced": "Zapisane hasło zaktualizowane na nowe",
|
||
"rptmgmt.tool_coming": "Narzędzie <strong>{tool}</strong> pojawi się na późniejszym etapie.",
|
||
"rptmgmt.tools.actions": "Akcje",
|
||
"rptmgmt.tools.actions_desc": "Advert, synchronizacja zegara, restart, wyłączenie",
|
||
"rptmgmt.tools.cli": "CLI",
|
||
"rptmgmt.tools.cli_desc": "Wysyłaj polecenia tekstowe do repeatera",
|
||
"rptmgmt.tools.neighbors": "Sąsiedzi",
|
||
"rptmgmt.tools.neighbors_desc": "Słyszane repeatery zero-hop",
|
||
"rptmgmt.tools.settings": "Ustawienia",
|
||
"rptmgmt.tools.settings_desc": "Konfiguruj parametry repeatera",
|
||
"rptmgmt.tools.status": "Status",
|
||
"rptmgmt.tools.status_desc": "Bateria, radio i statystyki pakietów",
|
||
"rptmgmt.tools.telemetry": "Telemetria",
|
||
"rptmgmt.tools.telemetry_desc": "Kanały czujników (Cayenne LPP)",
|
||
"rptmgmt.tools_heading": "Narzędzia zarządzania",
|
||
"rptmgmt.unsupported": "nieobsługiwane",
|
||
"rptmgmt.unsupported_hint": "Firmware lub sprzęt tego repeatera nie ma tego ustawienia.",
|
||
"rptmgmt.updated_ago": "Zaktualizowano {time} temu",
|
||
"rptmgmt.updated_just_now": "Zaktualizowano przed chwilą",
|
||
"search.count": {
|
||
"one": "{count} wynik",
|
||
"few": "{count} wyniki",
|
||
"many": "{count} wyników",
|
||
"other": "{count} wyniku"
|
||
},
|
||
"search.dm_received": "(odebrana)",
|
||
"search.dm_sent": "(wysłana)",
|
||
"search.empty": "Szukaj we wszystkich wiadomościach kanałowych i prywatnych",
|
||
"search.failed": "Wyszukiwanie nie powiodło się. Spróbuj ponownie.",
|
||
"search.fts5_ref": "Pełna dokumentacja składni FTS5",
|
||
"search.help_title": "Pomoc do składni wyszukiwania",
|
||
"search.min_chars": "Wpisz co najmniej 2 znaki, aby wyszukać",
|
||
"search.no_results": "Brak wyników dla „{query}”",
|
||
"search.ph": "Szukaj we wszystkich wiadomościach...",
|
||
"search.searching": "Wyszukiwanie...",
|
||
"search.special_chars": "Znaki specjalne (<code>. , - :</code>) należy ująć w cudzysłów.",
|
||
"search.tip_and": "wiadomości zawierające oba słowa",
|
||
"search.tip_not": "hello, ale bez world",
|
||
"search.tip_or": "dowolne z tych słów",
|
||
"search.tip_phrase": "dokładna fraza",
|
||
"search.tip_prefix": "dopasowanie przedrostka (hello, hellas...)",
|
||
"search.tips": "Wskazówki wyszukiwania:",
|
||
"settings.analyzer.intro": "Dodaj usługi MeshCore Analyzer do wyboru po kliknięciu <i class=\"bi bi-clipboard-data\"></i> pod wiadomością z czatu grupowego. URL musi zawierać znacznik <code>{packetHash}</code> — jest zastępowany hashem pakietu wiadomości.",
|
||
"settings.analyzer.services": "Usługi analizatorów",
|
||
"settings.analyzer.tip": "Wskazówka: oznacz gwiazdką jeden analizator, aby używać go bez pytania. Usuń gwiazdkę, aby pytać przy każdym kliknięciu. Wyłączone analizatory zostają na liście, ale są ukryte w oknie wyboru.",
|
||
"settings.appear.btn_size": "Rozmiar przycisku (px)",
|
||
"settings.appear.item": "Pozycja",
|
||
"settings.appear.language": "Język",
|
||
"settings.appear.language_hint": "Dotyczy tej przeglądarki i staje się domyślnym ustawieniem serwera dla pozostałych. Dodaj własny, wrzucając katalog tłumaczeń do folderu translations — zobacz <code>docs/translations.md</code>.",
|
||
"settings.appear.place_fab": "Szybki dostęp",
|
||
"settings.appear.place_menu": "Menu główne",
|
||
"settings.appear.placement": "Umieszczenie",
|
||
"settings.appear.placement_aria": "Umieszczenie: {item}",
|
||
"settings.appear.position": "Położenie",
|
||
"settings.appear.quick_access": "Przyciski szybkiego dostępu",
|
||
"settings.appear.reload_title": "Przeskanuj ponownie folder tłumaczeń",
|
||
"settings.appear.reset_default": "Przywróć domyślne",
|
||
"settings.appear.show_fab": "Pokaż przyciski szybkiego dostępu",
|
||
"settings.appear.show_fab_hint": "Domyślnie wyłączone. Gdy wyłączone, wszystkie pozycje pojawiają się w menu głównym.",
|
||
"settings.appear.spacing": "Odstęp (px)",
|
||
"settings.appear.theme": "Motyw",
|
||
"settings.appear.theme_dark": "Ciemny",
|
||
"settings.appear.theme_dark_desc": "Łagodny dla oczu, głęboki granat",
|
||
"settings.appear.theme_light": "Jasny",
|
||
"settings.appear.theme_light_desc": "Klasyczny jasny interfejs",
|
||
"settings.appear.toast.reload_failed": "Nie udało się przeładować tłumaczeń",
|
||
"settings.appear.toast.reloaded": "Przeładowano tłumaczenia: {names}",
|
||
"settings.chat.autoclose": "Zamknij automatycznie po (s)",
|
||
"settings.chat.autoclose_help": "Ile sekund do automatycznego zamknięcia popupu trasy",
|
||
"settings.chat.no_autoclose": "Nie zamykaj automatycznie",
|
||
"settings.chat.no_autoclose_help": "Popup pozostaje otwarty, dopóki nie dotkniesz poza nim",
|
||
"settings.chat.quote": "Cytowanie",
|
||
"settings.chat.quote_len": "Długość cytatu (bajty)",
|
||
"settings.chat.quote_len_help": "Domyślna maks. liczba bajtów UTF-8 dla skróconych cytatów",
|
||
"settings.chat.route_popup": "Popup trasy",
|
||
"settings.chat.route_popup_desc": "Popup pokazywany po dotknięciu linii Trasa pod wiadomością. Dotyczy także DM-ów.",
|
||
"settings.contacts.auto_ignore": "Automatycznie dodawaj nowe kontakty do \"Ignorowanych\"",
|
||
"settings.contacts.auto_ignore_help": "Każdy nowy advert jest automatycznie oznaczany jako ignorowany — bez powiadomień, bez plakietki. Kontakty nadal pojawiają się w Istniejących kontaktach (pamięć) i można je przenieść przyciskiem \"Na urządzenie\". Wymaga włączonego zatwierdzania ręcznego.",
|
||
"settings.contacts.manual_approval": "Zatwierdzanie ręczne włączone",
|
||
"settings.contacts.manual_approval_help": "Gdy włączone, nowe kontakty muszą zostać ręcznie zatwierdzone, zanim będą mogły komunikować się z Twoim węzłem",
|
||
"settings.contacts.suppress_notifs": "Wycisz powiadomienia o nowych advertach",
|
||
"settings.contacts.suppress_notifs_help": "Ukryj plakietkę nad Zarządzaniem kontaktami oraz powiadomienie przeglądarki, gdy pojawiają się nowe oczekujące kontakty. Sama lista oczekujących kontaktów nadal je pokazuje. Wymaga włączonego zatwierdzania ręcznego.",
|
||
"settings.device.bw": "Bandwidth (kHz)",
|
||
"settings.device.confirm.radio": "Zmiana ustawień radia rozłączy urządzenie z siecią mesh. Kontynuować?",
|
||
"settings.device.cr": "Coding Rate",
|
||
"settings.device.freq": "Częstotliwość (MHz)",
|
||
"settings.device.hash_1b": "1 bajt (domyślnie)",
|
||
"settings.device.hash_2b": "2 bajty",
|
||
"settings.device.hash_3b": "3 bajty",
|
||
"settings.device.load_preset": "Wczytaj preset...",
|
||
"settings.device.name_ph": "Nazwa urządzenia",
|
||
"settings.device.path_hash_mode": "Tryb hasha ścieżki",
|
||
"settings.device.path_hash_mode_help": "Bajtów na hop w ścieżkach routingu. 1B = najkrótsza ścieżka, więcej kolizji; 3B = najdłuższa, najmniej kolizji.",
|
||
"settings.device.public_info": "Informacje publiczne",
|
||
"settings.device.radio": "Ustawienia radia",
|
||
"settings.device.sf": "Spreading Factor",
|
||
"settings.device.share_pos": "Udostępniaj pozycję w advert",
|
||
"settings.device.share_pos_help": "Dołącz współrzędne GPS do advertu urządzenia",
|
||
"settings.device.toast.cr_invalid": "Coding Rate musi być z zakresu 5-8",
|
||
"settings.device.toast.freq_invalid": "Nieprawidłowa częstotliwość",
|
||
"settings.device.toast.info_save_failed": "Nie udało się zapisać informacji publicznych",
|
||
"settings.device.toast.info_saved": "Informacje publiczne zapisane",
|
||
"settings.device.toast.name_empty": "Nazwa urządzenia nie może być pusta",
|
||
"settings.device.toast.radio_save_failed": "Nie udało się zapisać ustawień radia",
|
||
"settings.device.toast.radio_saved": "Ustawienia radia zapisane",
|
||
"settings.device.toast.sf_invalid": "Spreading Factor musi być z zakresu 5-12",
|
||
"settings.device.toast.tx_invalid": "Moc TX musi być z zakresu 0-30 dBm",
|
||
"settings.device.tx_power": "Moc TX (dBm)",
|
||
"settings.diag.captures": "Zapisane zrzuty",
|
||
"settings.diag.debug_logs": "Zapisuj szczegółowe logi",
|
||
"settings.diag.debug_logs_hint": "Na czas nagrywania podnosi poziom logów do DEBUG. Zostaw włączone — większość tego, czego potrzebuje analiza, zapisuje się dopiero na tym poziomie.",
|
||
"settings.diag.duration": "Czas nagrania",
|
||
"settings.diag.indicator": "Nagrywanie",
|
||
"settings.diag.indicator_title": "Trwa zrzut diagnostyczny. Zatrzymasz go w Ustawieniach → Diagnostyka.",
|
||
"settings.diag.intro": "Zapisuje do pliku to, co aplikacja odbiera z radia, abyś mógł wysłać go opiekunowi projektu. Przydaje się, gdy coś nie działa, a zrzut ekranu nie pokazuje dlaczego — brak plakietki z repeaterami, wiadomości, które nie docierają.",
|
||
"settings.diag.note": "Notatka",
|
||
"settings.diag.note_ph": "np. brak plakietki repeaterów na #general",
|
||
"settings.diag.privacy": "Zrzut zawiera <strong>treść wszystkich wiadomości odebranych w czasie nagrywania</strong>, a także nazwy i klucze publiczne kontaktów. Wyślij go tylko komuś, komu ufasz.",
|
||
"settings.diag.recording": "Nagrywanie…",
|
||
"settings.diag.reproduce_hint": "Teraz odtwórz problem — wyślij wiadomość, która się psuje, a potem wróć tutaj i zatrzymaj nagrywanie.",
|
||
"settings.diag.sharing": "Wysyłka",
|
||
"settings.diag.sharing_hint": "Opcjonalne. Z tokenem od opiekuna projektu zrzut można wysłać prosto stąd; bez niego pobierz plik i wyślij go samodzielnie.",
|
||
"settings.diag.start": "Rozpocznij nagrywanie",
|
||
"settings.diag.stop": "Zatrzymaj i zapisz",
|
||
"settings.diag.upload_token": "Token wysyłki",
|
||
"settings.diag.upload_token_ph": "wklej otrzymany token",
|
||
"settings.diag.upload_url": "Adres wysyłki",
|
||
"settings.iface.breakpoint": "Próg szerokości paska bocznego (px)",
|
||
"settings.iface.breakpoint_help": "Domyślnie: 992. Zakres: 600-2000.",
|
||
"settings.iface.breakpoint_reset_title": "Przywróć domyślną (992)",
|
||
"settings.iface.layout": "Układ",
|
||
"settings.iface.layout_desc": "Szerokość okna, powyżej której lista kanałów/kontaktów pokazuje się jako pasek boczny. Poniżej zwija się do listy rozwijanej na górze ekranu. Zapisywane dla każdego urządzenia (przeglądarki).",
|
||
"settings.iface.pos_bottom_left": "Lewy dolny",
|
||
"settings.iface.pos_bottom_right": "Prawy dolny",
|
||
"settings.iface.pos_center": "Na środku",
|
||
"settings.iface.pos_top_left": "Lewy górny",
|
||
"settings.iface.pos_top_right": "Prawy górny",
|
||
"settings.iface.position": "Pozycja na ekranie",
|
||
"settings.iface.toast.autoclose_invalid": "Nieprawidłowy czas automatycznego zamknięcia",
|
||
"settings.iface.toast_autoclose_help": "Ile sekund do automatycznego zamknięcia powiadomienia",
|
||
"settings.iface.toast_desc": "Steruje małymi powiadomieniami po akcjach (np. \"Advert wysłany\", błędy).",
|
||
"settings.iface.toast_no_autoclose_help": "Powiadomienia pozostają, dopóki nie zamkniesz ich przyciskiem",
|
||
"settings.msg.direct_header": "Gdy ścieżka jest znana (DIRECT)",
|
||
"settings.msg.direct_interval_help": "Ile sekund czekać między próbami direct",
|
||
"settings.msg.direct_retries": "Próby direct",
|
||
"settings.msg.direct_retries_help": "Próby znaną ścieżką przed przełączeniem na flood",
|
||
"settings.msg.flood_header": "Gdy brak ścieżki (FLOOD)",
|
||
"settings.msg.flood_interval_help": "Ile sekund czekać między próbami flood",
|
||
"settings.msg.flood_retries": "Próby flood",
|
||
"settings.msg.flood_retries_help": "Próby flood po wyczerpaniu prób direct (gdy brak skonfigurowanych ścieżek)",
|
||
"settings.msg.grace": "Okres karencji (s)",
|
||
"settings.msg.grace_help": "Czekaj na spóźnione ACK po wyczerpaniu wszystkich prób",
|
||
"settings.msg.interval": "Interwał (s)",
|
||
"settings.msg.intro": "Ponowienia liczone są po pierwszym wysłaniu, np. 3 ponowienia = 4 próby łącznie.",
|
||
"settings.msg.max_retries": "Maks. prób",
|
||
"settings.msg.max_retries_help": "Próby flood (używane także po rotacji ścieżki)",
|
||
"settings.msg.other": "Inne",
|
||
"settings.notif.blocked": "Zablokowane",
|
||
"settings.notif.desc": "Powiadomienia przeglądarki pojawiają się, gdy aplikacja jest ukryta lub w tle.",
|
||
"settings.notif.profiles.add": "Dodaj profil",
|
||
"settings.notif.profiles.add_rule": "Dodaj regułę",
|
||
"settings.notif.profiles.confirm.delete": "Usunąć profil „{name}”?",
|
||
"settings.notif.profiles.confirm.delete_in_use": "Usunąć profil „{name}”? Kanały, które go używają ({count}), wrócą do powiadamiania o każdej wiadomości.",
|
||
"settings.notif.profiles.desc": "Profil zawęża to, co na kanale liczy się jako nowość: tylko wiadomości pasujące do jego reguł podbijają licznik nieprzeczytanych i wywołują powiadomienie. Przypisuje się go do kanału dzwoneczkiem w Zarządzaniu kanałami. Wiadomości bezpośrednie powiadamiają zawsze.",
|
||
"settings.notif.profiles.edit": "Edytuj profil",
|
||
"settings.notif.profiles.empty": "Brak profili. Kliknij „Dodaj profil”, aby utworzyć.",
|
||
"settings.notif.profiles.in_use": {
|
||
"one": "{count} kanał",
|
||
"few": "{count} kanały",
|
||
"many": "{count} kanałów",
|
||
"other": "{count} kanału"
|
||
},
|
||
"settings.notif.profiles.load_failed": "Nie udało się wczytać profili",
|
||
"settings.notif.profiles.match_all": "pasują wszystkie reguły",
|
||
"settings.notif.profiles.match_any": "pasuje dowolna reguła",
|
||
"settings.notif.profiles.match_label": "Powiadamiaj, gdy",
|
||
"settings.notif.profiles.name_ph": "np. Wzmianki i webui",
|
||
"settings.notif.profiles.name_required": "Nazwa jest wymagana",
|
||
"settings.notif.profiles.rule.mention": "Wspomina mnie",
|
||
"settings.notif.profiles.rule.mention_hint": "szuka „{name}”",
|
||
"settings.notif.profiles.rule.no_name": "nazwa urządzenia nieznana — nie dopasuje nic, dopóki urządzenie jej nie zgłosi",
|
||
"settings.notif.profiles.rule.sender": "Nazwa nadawcy zawiera",
|
||
"settings.notif.profiles.rule.text": "Wiadomość zawiera",
|
||
"settings.notif.profiles.rule.value_ph": "tekst lub część wyrazu",
|
||
"settings.notif.profiles.rule_value_required": "Każda reguła tekstowa wymaga tekstu",
|
||
"settings.notif.profiles.rules": "Reguły",
|
||
"settings.notif.profiles.rules_hint": "Reguły tekstowe dopasowują wyraz lub dowolną jego część.",
|
||
"settings.notif.profiles.rules_required": "Dodaj co najmniej jedną regułę",
|
||
"settings.notif.profiles.summary.all": "wszystkie: {rules}",
|
||
"settings.notif.profiles.summary.any": "dowolna z: {rules}",
|
||
"settings.notif.profiles.summary.mention": "wspomina mnie",
|
||
"settings.notif.profiles.summary.sender": "od „{value}”",
|
||
"settings.notif.profiles.summary.text": "zawiera „{value}”",
|
||
"settings.notif.profiles.tip": "Dopasowanie ignoruje wielkość liter i znaki diakrytyczne, więc <code>krakow</code> znajdzie też <em>Kraków</em>. Wzmianka to nazwa Twojego urządzenia w dowolnym miejscu wiadomości — zarówno jako <code>@[nazwa]</code>, jak i zwykłym tekstem.",
|
||
"settings.notif.profiles.title": "Profile powiadomień",
|
||
"settings.notif.profiles.toast.delete_failed": "Nie udało się usunąć profilu",
|
||
"settings.notif.profiles.toast.save_error": "Błąd zapisu profilu",
|
||
"settings.notif.profiles.toast.save_failed": "Nie udało się zapisać profilu",
|
||
"settings.notif.toast.blocked_help": "Powiadomienia są zablokowane. Zmień ustawienia przeglądarki: Ustawienia → Ustawienia witryn → Powiadomienia",
|
||
"settings.notif.toast.denied": "Powiadomienia zablokowane. Zmień ustawienia przeglądarki, aby je włączyć.",
|
||
"settings.notif.toast.disabled": "Powiadomienia wyłączone",
|
||
"settings.notif.toast.enabled": "Powiadomienia włączone",
|
||
"settings.notif.toast.error": "Błąd włączania powiadomień",
|
||
"settings.notif.toast.unsupported": "Powiadomienia nie są obsługiwane w tej przeglądarce",
|
||
"settings.notif.unavailable": "Niedostępne",
|
||
"settings.notif.works_hidden": "Działa, gdy aplikacja jest ukryta",
|
||
"settings.observer.advert_interval": "Interwał flood advert (h)",
|
||
"settings.observer.advert_interval_ph": "0 = wył.",
|
||
"settings.observer.brokers": "Brokery MQTT",
|
||
"settings.observer.enable": "Włącz observera",
|
||
"settings.observer.hint": "Trzyliterowy kod lokalizacji jest używany w tematach MQTT; zostaw pusty, aby użyć płaskich tematów <code>meshcore/packets</code>. Interwał advert równy 0 wyłącza zaplanowane flood adverty.",
|
||
"settings.observer.iata": "Kod lokalizacji (IATA)",
|
||
"settings.observer.iata_ph": "np. KRK",
|
||
"settings.observer.intro": "Publikuj każdy pakiet mesh usłyszany przez to urządzenie do brokerów MQTT, w formacie <code>meshcore-packet-capture</code> (tematy <code>meshcore/IATA/PUBKEY/packets</code>). Zgodne z analizatorami pakietów w stylu letsmesh.",
|
||
"settings.regions.confirm.delete": "Usunąć region \"{name}\"?\nKanały używające tego regionu wrócą do braku zasięgu.",
|
||
"settings.regions.delete_title": "Usuń region",
|
||
"settings.regions.empty": "Brak zdefiniowanych regionów. Dodaj poniżej.",
|
||
"settings.regions.intro": "Tylko repeatery zezwalające na dany region będą przekazywać oznaczone nim wiadomości. Standardowe nazwy regionów znajdziesz na <a href=\"https://regions.meshcore.nz/\" target=\"_blank\" rel=\"noopener\">regions.meshcore.nz</a>.",
|
||
"settings.regions.is_default": "domyślny",
|
||
"settings.regions.load_failed": "Nie udało się wczytać regionów",
|
||
"settings.regions.name_ph": "Nazwa regionu (np. pl, pl-ma)",
|
||
"settings.regions.none_row": "Brak — użyj domyślnego z firmware",
|
||
"settings.regions.picker_empty": "Nie zdefiniowano jeszcze żadnego regionu.",
|
||
"settings.regions.picker_manage": "Zarządzaj regionami",
|
||
"settings.regions.registry": "Rejestr regionów",
|
||
"settings.regions.tip": "Wskazówka: wybierz domyślny region przyciskiem radiowym albo wybierz <em>Brak</em>, aby wrócić do domyślnego ustawienia firmware. Wybrany region jest też wysyłany do firmware, więc użyje go każdy nieoznaczony kanał.",
|
||
"settings.regions.toast.add_error": "Błąd sieci przy dodawaniu regionu",
|
||
"settings.regions.toast.add_failed": "Nie udało się dodać regionu",
|
||
"settings.regions.toast.clear_error": "Błąd sieci przy czyszczeniu domyślnego regionu",
|
||
"settings.regions.toast.clear_failed": "Nie udało się wyczyścić domyślnego regionu",
|
||
"settings.regions.toast.default_error": "Błąd sieci przy ustawianiu domyślnego regionu",
|
||
"settings.regions.toast.default_failed": "Nie udało się ustawić domyślnego regionu",
|
||
"settings.regions.toast.delete_error": "Błąd sieci przy usuwaniu regionu",
|
||
"settings.regions.toast.delete_failed": "Nie udało się usunąć regionu",
|
||
"settings.regions.toast.name_invalid": "Nieprawidłowa nazwa regionu. Dozwolone: litery, cyfry, - $ # (maks. 30 bajtów, bez spacji).",
|
||
"settings.regions.toast.scope_error": "Błąd sieci przy zapisie zasięgu regionu",
|
||
"settings.regions.toast.scope_failed": "Nie udało się zapisać zasięgu regionu",
|
||
"settings.reset_defaults": "Przywróć domyślne",
|
||
"settings.tab.analyzer": "Analizator",
|
||
"settings.tab.appearance": "Wygląd",
|
||
"settings.tab.chat": "Czat grupowy",
|
||
"settings.tab.contacts": "Kontakty",
|
||
"settings.tab.diagnostics": "Diagnostyka",
|
||
"settings.tab.interface": "Interfejs",
|
||
"settings.tab.messages": "Wiadomości",
|
||
"settings.tab.notifications": "Powiadomienia",
|
||
"settings.tab.observer": "Observer",
|
||
"settings.tab.regions": "Regiony",
|
||
"settings.toast.invalid_value": "Nieprawidłowa wartość dla: {field}",
|
||
"settings.toast.save_failed": "Nie udało się zapisać ustawień",
|
||
"settings.toast.saved": "Ustawienia zapisane",
|
||
"settings.toast.setting_network_error": "Błąd sieci przy zapisie ustawienia",
|
||
"settings.toast.setting_save_failed": "Nie udało się zapisać ustawienia",
|
||
"share.btn_title": "Udostępnij kontakt, kanał lub lokalizację",
|
||
"share.card.add_channel": "Dodaj kanał",
|
||
"share.card.add_contact": "Dodaj kontakt",
|
||
"share.card.channel_conflict": "Nazwa zajęta przez inny klucz",
|
||
"share.card.channel_joined": "Już dodany",
|
||
"share.card.copy_coords": "Kopiuj współrzędne",
|
||
"share.card.from_you": "{distance} · {bearing} od Ciebie",
|
||
"share.card.hashtag_channel": "Kanał hashtagowy",
|
||
"share.card.in_cache": "W pamięci podręcznej",
|
||
"share.card.in_contacts": "Już w kontaktach",
|
||
"share.card.open_apple": "Apple Maps",
|
||
"share.card.open_google": "Google Maps",
|
||
"share.card.open_in_map": "Udostępniona lokalizacja",
|
||
"share.card.open_osm": "OpenStreetMap",
|
||
"share.card.private_channel": "Kanał prywatny",
|
||
"share.card.push_to_device": "Zapisz w urządzeniu",
|
||
"share.card.region": "Region: {name}",
|
||
"share.card.update_name": "Zmień nazwę na {name}",
|
||
"share.card.view_on_map": "Pokaż na mapie",
|
||
"share.card.you_shared_channel": "Udostępniony kanał",
|
||
"share.card.you_shared_contact": "Udostępniony kontakt",
|
||
"share.menu.channel": "Udostępnij kanał",
|
||
"share.menu.contact": "Udostępnij kontakt",
|
||
"share.menu.location": "Udostępnij lokalizację",
|
||
"share.pick.channel_title": "Udostępnij kanał",
|
||
"share.pick.contact_title": "Udostępnij kontakt",
|
||
"share.pick.empty": "Nie ma tu jeszcze czego udostępnić",
|
||
"share.pick.location_title": "Udostępnij lokalizację",
|
||
"share.pick.map_hint": "Albo dotknij mapy, aby wybrać dowolny punkt",
|
||
"share.pick.me": "Ja",
|
||
"share.pick.my_position": "Pozycja mojego urządzenia",
|
||
"share.pick.no_position": "To urządzenie nie ma ustawionej pozycji. Dodaj ją w Ustawieniach albo wybierz punkt na mapie poniżej.",
|
||
"share.pick.search_ph": "Szukaj kontaktów...",
|
||
"share.pick.truncated": "Pokazano {shown} z {total} — wpisz, aby zawęzić",
|
||
"share.preview.label": "Zostanie wysłane jako:",
|
||
"share.toast.action_failed": "Nie udało się wykonać akcji",
|
||
"share.toast.channel_unshareable": "Ten kanał nie ma klucza do udostępnienia",
|
||
"share.toast.contact_added": "Kontakt {name} dodany do pamięci podręcznej",
|
||
"share.toast.contact_pushed": "{name} zapisany w urządzeniu",
|
||
"share.toast.contact_updated": "Nazwa kontaktu zmieniona na {name}",
|
||
"share.toast.map_unavailable": "Mapa jest tu niedostępna",
|
||
"share.toast.over_budget": "Wiadomość ma teraz {bytes} z {max} bajtów i nie zostanie wysłana",
|
||
"share.toast.scope_applied": "Region {name} przypisany do tego kanału",
|
||
"share.toast.scope_unknown": "Region \"{name}\" nie jest tu skonfigurowany — dodaj go w Ustawieniach, aby zgadzać się z nadawcą",
|
||
"share.toast.too_long": "To nie zmieści się w jednej wiadomości ({bytes} z {max} bajtów)",
|
||
"share.type.1": "Companion",
|
||
"share.type.2": "Repeater",
|
||
"share.type.3": "Room Server",
|
||
"share.type.4": "Sensor",
|
||
"update.checking": "Sprawdzanie aktualizacji...",
|
||
"update.done": "Zaktualizowano do {version}",
|
||
"update.link_available": "Dostępna aktualizacja",
|
||
"update.link_available_title": "Dostępna aktualizacja: {version}",
|
||
"update.link_now": "Aktualizuj teraz",
|
||
"update.link_now_title": "Kliknij, aby zaktualizować",
|
||
"update.network_error": "Błąd sieci podczas aktualizacji",
|
||
"update.new_version": "Dostępna nowa wersja: {version}",
|
||
"update.no_new_commit": "Jesteś już na najnowszym commicie - nie było czego pobrać.",
|
||
"update.no_new_image": "Zmiana jest już na GitHubie, ale jej obraz Dockera wciąż się buduje. Spróbuj ponownie za kilka minut.",
|
||
"update.now": "Aktualizuj teraz",
|
||
"update.rebuilding": "Przebudowa kontenerów... ({attempt}/{max})",
|
||
"update.reload": "Przeładuj stronę",
|
||
"update.start_failed": "Nie udało się rozpocząć aktualizacji",
|
||
"update.starting": "Rozpoczynanie aktualizacji...",
|
||
"update.timed_out": "Przekroczono czas aktualizacji. Sprawdź serwer ręcznie.",
|
||
"update.title": "Aktualizacja mc-webui",
|
||
"update.toast.available": "Dostępna aktualizacja: {version}",
|
||
"update.toast.check_error": "Błąd sieci przy sprawdzaniu aktualizacji",
|
||
"update.toast.check_failed": "Nie udało się sprawdzić aktualizacji",
|
||
"update.toast.latest": "Masz najnowszą wersję",
|
||
"update.updating": "Aktualizowanie...",
|
||
"update.waiting": "Aktualizacja rozpoczęta. Czekam na restart serwera...",
|
||
"update.whats_new": "Co nowego?"
|
||
}
|