meshcore-open/lib/l10n/app_pl.arb

1986 lines
77 KiB
Text
Raw Permalink Normal View History

{
"channels_channelDeleteFailed": "Nie udało się usunąć kanału \"{name}\"",
"@channels_channelDeleteFailed": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@@locale": "pl",
"appTitle": "MeshCore Open",
"nav_contacts": "Kontakty",
"nav_channels": "Kanały",
"nav_map": "Mapa",
"common_cancel": "Anuluj",
"common_connect": "Połącz",
"common_unknownDevice": "Nieznane urządzenie",
"common_save": "Zapisz",
"common_delete": "Usuń",
"common_close": "Zamknij",
"common_edit": "Edytuj",
"common_add": "Dodaj",
"common_settings": "Ustawienia",
"common_disconnect": "Odłącz",
"common_connected": "Połączono",
"common_disconnected": "Odłączony",
"common_create": "Utwórz",
"common_continue": "Kontynuuj",
"common_share": "Udostępnij",
"common_copy": "Kopiuj",
"common_retry": "Ponów",
"common_hide": "Ukryj",
"common_remove": "Usuń",
"common_enable": "Włącz",
"common_disable": "Wyłącz",
"common_reboot": "Uruchom ponownie",
"common_loading": "Ładowanie...",
"common_notAvailable": "—",
"common_voltageValue": "{volts} V",
"@common_voltageValue": {
"placeholders": {
"volts": {
"type": "String"
}
}
},
"common_percentValue": "{percent}%",
"@common_percentValue": {
"placeholders": {
"percent": {
"type": "int"
}
}
},
"scanner_title": "MeshCore Open",
"scanner_scanning": "Skanowanie urządzeń...",
"scanner_connecting": "Łączenie...",
"scanner_disconnecting": "Odłączanie...",
"scanner_notConnected": "Nie połączono",
"scanner_connectedTo": "Połączono z {deviceName}",
"@scanner_connectedTo": {
"placeholders": {
"deviceName": {
"type": "String"
}
}
},
"scanner_searchingDevices": "Wyszukiwanie urządzeń MeshCore...",
"scanner_tapToScan": "Naciśnij Skan, aby znaleźć urządzenia MeshCore",
"scanner_connectionFailed": "Połączenie nieudane: {error}",
"@scanner_connectionFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"scanner_stop": "Zatrzymaj",
"scanner_scan": "Przeskanuj",
"device_quickSwitch": "Szybka zmiana",
"device_meshcore": "MeshCore",
"settings_title": "Ustawienia",
"settings_deviceInfo": "Informacje o urządzeniu",
"settings_appSettings": "Ustawienia aplikacji",
"settings_appSettingsSubtitle": "Powiadomienia, wiadomości i preferencje mapy",
"settings_nodeSettings": "Ustawienia węzła",
"settings_nodeName": "Nazwa węzła",
"settings_nodeNameNotSet": "Nie ustawione",
"settings_nodeNameHint": "Wprowadź nazwę węzła",
"settings_nodeNameUpdated": "Nazwa zaktualizowana",
"settings_radioSettings": "Ustawienia radia",
"settings_radioSettingsSubtitle": "Częstotliwość, moc, współczynnik rozpraszania",
"settings_radioSettingsUpdated": "Ustawienia radia zostały zaktualizowane",
"settings_location": "Lokalizacja",
"settings_locationSubtitle": "Koordynaty GPS",
"settings_locationUpdated": "Lokalizacja zaktualizowana",
"settings_locationBothRequired": "Wprowadź zarówno szerokość, jak i długość geograficzną.",
"settings_locationInvalid": "Nieprawidłowa szerokość geograficzna lub długość geograficzna.",
"settings_latitude": "Szerokość",
"settings_longitude": "Długość",
"settings_privacyMode": "Tryb prywatności",
"settings_privacyModeSubtitle": "Ukryj imię/lokalizację w rozgłoszeniach",
"settings_privacyModeToggle": "Włącz tryb prywatności, aby ukryć swoje imię i lokalizację w rozgłoszeniach.",
"settings_privacyModeEnabled": "Tryb prywatności włączony",
"settings_privacyModeDisabled": "Tryb prywatności wyłączony",
"settings_actions": "Działania",
"settings_sendAdvertisement": "Wyślij rozgłoszenie",
"settings_sendAdvertisementSubtitle": "Nadaj obecność teraz",
"settings_advertisementSent": "Rozgłoszenie wysłane",
"settings_syncTime": "Synchronizacja czasu",
"settings_syncTimeSubtitle": "Ustaw zegar urządzenia na czas telefonu.",
"settings_timeSynchronized": "Czas zsynchronizowany",
"settings_refreshContacts": "Odśwież Kontakty",
"settings_refreshContactsSubtitle": "Odśwież listę kontaktów z urządzenia",
"settings_rebootDevice": "Zrestartuj Urządzenie",
"settings_rebootDeviceSubtitle": "Zrestartuj urządzenie MeshCore",
"settings_rebootDeviceConfirm": "Czy na pewno chcesz zrestartować urządzenie? Będziesz odłączony.",
"settings_debug": "Debug",
"settings_bleDebugLog": "Dziennik debugowania BLE",
"settings_bleDebugLogSubtitle": "Polecenia BLE, odpowiedzi i surowe dane",
"settings_appDebugLog": "Dziennik debugowania aplikacji",
"settings_appDebugLogSubtitle": "Komunikaty debugowania aplikacji",
"settings_about": "O aplikacji",
"settings_aboutVersion": "MeshCore Open v{version}",
"@settings_aboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settings_aboutLegalese": "Projekt MeshCore Open Source 2026",
2026-03-16 15:36:57 +01:00
"settings_aboutDescription": "Otwartoźródłowy klient Flutter dla urządzeń MeshCore LoRa do sieci mesh.",
"settings_infoName": "Nazwa",
"settings_infoId": "ID",
"settings_infoStatus": "Status",
"settings_infoBattery": "Bateria",
"settings_infoPublicKey": "Klucz Publiczny",
"settings_infoContactsCount": "Liczba kontaktów",
"settings_infoChannelCount": "Liczba kanałów",
"settings_presets": "Presety",
"settings_frequency": "Częstotliwość (MHz)",
"settings_frequencyHelper": "300,0 - 2500,0",
"settings_frequencyInvalid": "Nieprawidłowa częstotliwość (300-2500 MHz)",
"settings_bandwidth": "Przepustowość",
"settings_spreadingFactor": "Współczynnik rozpraszania",
"settings_codingRate": "Współczynnik kodowania",
"settings_txPower": "Moc TX (dBm)",
"settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Nieprawidłowa moc TX (0-22 dBm)",
"settings_error": "Błąd: {message}",
"@settings_error": {
"placeholders": {
"message": {
"type": "String"
}
}
},
"appSettings_title": "Ustawienia aplikacji",
"appSettings_appearance": "Wygląd",
"appSettings_theme": "Motyw",
"appSettings_themeSystem": "Domyślne ustawienia systemu",
"appSettings_themeLight": "Jasne",
"appSettings_themeDark": "Ciemny",
"appSettings_language": "Język",
"appSettings_languageSystem": "Domyślny systemu",
"appSettings_languageEn": "English",
"appSettings_languageFr": "Français",
"appSettings_languageEs": "Español",
"appSettings_languageDe": "Deutsch",
"appSettings_languagePl": "Polski",
"appSettings_languageSl": "Slovenščina",
"appSettings_languagePt": "Português",
"appSettings_languageIt": "Italiano",
"appSettings_languageZh": "中文",
"appSettings_languageSv": "Svenska",
"appSettings_languageNl": "Nederlands",
"appSettings_languageSk": "Slovenčina",
"appSettings_languageBg": "Български",
"appSettings_notifications": "Powiadomienia",
"appSettings_enableNotifications": "Włącz Powiadomienia",
"appSettings_enableNotificationsSubtitle": "Otrzymuj powiadomienia o wiadomościach i rozgłoszeniach.",
"appSettings_notificationPermissionDenied": "Odmowa zezwolenia na powiadomienia",
"appSettings_notificationsEnabled": "Powiadomienia włączone",
"appSettings_notificationsDisabled": "Powiadomienia wyłączone",
"appSettings_messageNotifications": "Powiadomienia o wiadomościach",
"appSettings_messageNotificationsSubtitle": "Pokaż powiadomienie przy otrzymywaniu nowych wiadomości",
"appSettings_channelMessageNotifications": "Powiadomienia o Wiadomościach na Kanałach",
"appSettings_channelMessageNotificationsSubtitle": "Pokaż powiadomienie przy odbieraniu wiadomości z kanału",
"appSettings_advertisementNotifications": "Powiadomienia o rozgłoszeniach",
"appSettings_advertisementNotificationsSubtitle": "Wyświetl powiadomienie, gdy zostaną wykryte nowe węzły.",
"appSettings_messaging": "Wiadomości",
"appSettings_clearPathOnMaxRetry": "Wyczyść ścieżkę po maks. liczbie prób",
"appSettings_clearPathOnMaxRetrySubtitle": "Resetuj ścieżkę kontaktu po 5 nieudanych próbach wysłania",
"appSettings_pathsWillBeCleared": "Ścieżka zostanie wyczyszczona po 5 nieudanych próbach.",
"appSettings_pathsWillNotBeCleared": "Ścieżka nie zostanie automatycznie wyczyszczona.",
"appSettings_autoRouteRotation": "Automatyczna rotacja trasy",
"appSettings_autoRouteRotationSubtitle": "Przełączaj się między najlepszymi ścieżkami a trybem zalewowym.",
"appSettings_autoRouteRotationEnabled": "Automatyczne obracanie tras włączone",
"appSettings_autoRouteRotationDisabled": "Automatyczne obracanie tras wyłączone",
"appSettings_battery": "Bateria",
"appSettings_batteryChemistry": "Chemia Baterii",
"appSettings_batteryChemistryPerDevice": "Ustaw dla urządzenia ({deviceName})",
"@appSettings_batteryChemistryPerDevice": {
"placeholders": {
"deviceName": {
"type": "String"
}
}
},
"appSettings_batteryChemistryConnectFirst": "Połącz się z urządzeniem, aby wybrać",
"appSettings_batteryNmc": "18650 NMC (3,0-4,2V)",
"appSettings_batteryLifepo4": "LiFePO4 (2,6-3,65 V)",
"appSettings_batteryLipo": "LiPo (3,0-4,2V)",
"appSettings_mapDisplay": "Wyświetlanie mapy",
2026-03-23 18:47:18 +01:00
"appSettings_showRepeaters": "Pokaż przekaźniki",
"appSettings_showRepeatersSubtitle": "Wyświetl węzły przekaźników na mapie",
"appSettings_showChatNodes": "Pokaż Węzły Rozmowy",
"appSettings_showChatNodesSubtitle": "Wyświetl węzły czatu na mapie",
"appSettings_showOtherNodes": "Pokaż inne węzły",
"appSettings_showOtherNodesSubtitle": "Wyświetl inne typy węzłów na mapie",
"appSettings_timeFilter": "Filtrowanie Czasu",
"appSettings_timeFilterShowAll": "Pokaż wszystkie węzły",
"appSettings_timeFilterShowLast": "Pokaż węzły z ostatnich {hours} godzin",
"@appSettings_timeFilterShowLast": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
2026-03-16 15:36:57 +01:00
"appSettings_mapTimeFilter": "Filtr czasu mapy",
"appSettings_showNodesDiscoveredWithin": "Pokaż węzły odkryte w:",
"appSettings_allTime": "Cały czas",
"appSettings_lastHour": "Ostatnia godzina",
"appSettings_last6Hours": "Ostatnie 6 godzin",
"appSettings_last24Hours": "Ostatnie 24 godziny",
"appSettings_lastWeek": "Ostatni tydzień",
"appSettings_offlineMapCache": "Pamięć podręczna map offline",
2026-03-16 15:36:57 +01:00
"appSettings_noAreaSelected": "Nie wybrano żadnego obszaru.",
"appSettings_areaSelectedZoom": "Wybrany obszar (skala {minZoom}-{maxZoom})",
"@appSettings_areaSelectedZoom": {
"placeholders": {
"minZoom": {
"type": "int"
},
"maxZoom": {
"type": "int"
}
}
},
"appSettings_debugCard": "Debug",
"appSettings_appDebugLogging": "Logowanie Debugowania Aplikacji",
2026-03-16 15:36:57 +01:00
"appSettings_appDebugLoggingSubtitle": "Rejestruj komunikaty debugowania aplikacji w celu diagnozowania problemów.",
"appSettings_appDebugLoggingEnabled": "Logowanie debugowania aplikacji włączone",
"appSettings_appDebugLoggingDisabled": "Logowanie debugowania aplikacji wyłączone.",
"contacts_title": "Kontakty",
"contacts_noContacts": "Brak jeszcze kontaktów.",
"contacts_contactsWillAppear": "Kontakty będą wyświetlane, gdy urządzenia nadają rozgłoszenia.",
2026-03-19 10:03:16 +01:00
"contacts_searchContacts": "Wyszukaj {number}{str} {number, plural, one{kontakt} few{kontakty} many{kontaktów} other{kontaktu}}...",
2026-03-19 09:56:00 +01:00
"@contacts_searchContacts": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"contacts_noUnreadContacts": "Brak nieprzeczytanych kontaktów",
"contacts_noContactsFound": "Brak znalezionych kontaktów ani grup.",
"contacts_deleteContact": "Usuń Kontakt",
2026-03-16 15:36:57 +01:00
"contacts_removeConfirm": "Usunąć {contactName} z kontaktów?",
"@contacts_removeConfirm": {
"placeholders": {
"contactName": {
"type": "String"
}
}
},
2026-03-23 18:47:18 +01:00
"contacts_manageRepeater": "Zarządzaj przekaźnikiem",
"contacts_roomLogin": "Logowanie do pokoju",
"contacts_openChat": "Otwórz czat",
"contacts_editGroup": "Edytuj Grupę",
"contacts_deleteGroup": "Usuń Grupę",
"contacts_deleteGroupConfirm": "Usuń \"{groupName}\"?",
"@contacts_deleteGroupConfirm": {
"placeholders": {
"groupName": {
"type": "String"
}
}
},
"contacts_newGroup": "Nowa Grupa",
"contacts_groupName": "Nazwa grupy",
"contacts_groupNameRequired": "Nazwa grupy jest wymagana",
2026-03-15 00:34:09 +01:00
"contacts_groupNameReserved": "Ta nazwa grupy jest zastrzeżona",
"contacts_groupAlreadyExists": "Grupa \"{name}\" już istnieje",
"@contacts_groupAlreadyExists": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"contacts_filterContacts": "Filtruj kontakty...",
"contacts_noContactsMatchFilter": "Brak pasujących kontaktów do Twojego filtra",
"contacts_noMembers": "Brak członków",
"contacts_lastSeenNow": "niedawno",
"contacts_lastSeenMinsAgo": "~ {minutes} min",
"@contacts_lastSeenMinsAgo": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"contacts_lastSeenHourAgo": "~ 1 godz.",
"contacts_lastSeenHoursAgo": "~ {hours} godz.",
"@contacts_lastSeenHoursAgo": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"contacts_lastSeenDayAgo": "~ 1 dzień",
"contacts_lastSeenDaysAgo": "~ {days} dni",
"@contacts_lastSeenDaysAgo": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"channels_title": "Kanały",
"channels_noChannelsConfigured": "Brak skonfigurowanych kanałów",
"channels_addPublicChannel": "Dodaj kanał publiczny",
"channels_searchChannels": "Wyszukaj kanały...",
"channels_noChannelsFound": "Brak znalezionych kanałów",
"channels_channelIndex": "Kanał {index}",
"@channels_channelIndex": {
"placeholders": {
"index": {
"type": "int"
}
}
},
2026-03-16 15:36:57 +01:00
"channels_hashtagChannel": "Kanał hashtagów",
"channels_public": "Publiczny",
"channels_private": "Prywatny",
"channels_publicChannel": "Kanał publiczny",
"channels_privateChannel": "Prywatny kanał",
"channels_editChannel": "Edytuj kanał",
"channels_muteChannel": "Wycisz kanał",
"channels_unmuteChannel": "Wyłącz wyciszenie kanału",
"channels_deleteChannel": "Usuń kanał",
"channels_deleteChannelConfirm": "Usuń \"{name}\"? Nie można tego cofnąć.",
"@channels_deleteChannelConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_channelDeleted": "Kanał \"{name}\" usunięto",
"@channels_channelDeleted": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_addChannel": "Dodaj Kanał",
"channels_channelIndexLabel": "Indeks kanału",
"channels_channelName": "Nazwa kanału",
"channels_usePublicChannel": "Użyj kanału publicznego",
"channels_standardPublicPsk": "Standardowy publiczny PSK",
"channels_pskHex": "PSK (Hex)",
"channels_generateRandomPsk": "Wygeneruj losowy klucz PSK",
"channels_enterChannelName": "Proszę podać nazwę kanału.",
2026-03-16 15:36:57 +01:00
"channels_pskMustBe32Hex": "PSK musi składać się z 32 znaków szesnastkowych.",
"channels_channelAdded": "Kanał \"{name}\" dodany",
"@channels_channelAdded": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_editChannelTitle": "Edytuj Kanał {index}",
"@channels_editChannelTitle": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channels_smazCompression": "Kompresja SMAZ",
"channels_channelUpdated": "Kanał \"{name}\" został zaktualizowany",
"@channels_channelUpdated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_publicChannelAdded": "Kanał publiczny dodany",
"channels_sortBy": "Sortuj po",
"channels_sortManual": "Ręczna",
"channels_sortAZ": "A-Z",
"channels_sortLatestMessages": "Najnowsze wiadomości",
"channels_sortUnread": "Nieprzeczytane",
"chat_noMessages": "Brak jeszcze wiadomości",
"chat_sendMessageToStart": "Wyślij wiadomość, aby rozpocząć.",
"chat_originalMessageNotFound": "Błąd: Nie znaleziono oryginalnego komunikatu",
"chat_replyingTo": "Odpowiadanie na {name}",
"@chat_replyingTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"chat_replyTo": "Odpowiedz do {name}",
"@chat_replyTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"chat_location": "Lokalizacja",
"chat_sendMessageTo": "Wyślij wiadomość do {contactName}",
"@chat_sendMessageTo": {
"placeholders": {
"contactName": {
"type": "String"
}
}
},
"chat_typeMessage": "Wpisz wiadomość...",
"chat_messageTooLong": "Wiadomość jest za długa (maksymalnie {maxBytes} bajtów).",
"@chat_messageTooLong": {
"placeholders": {
"maxBytes": {
"type": "int"
}
}
},
"chat_messageCopied": "Wiadomość skopiowana",
"chat_messageDeleted": "Wiadomość usunięta",
"chat_retryingMessage": "Ponawianie wiadomości",
"chat_retryCount": "Próba {current}/{max}",
"@chat_retryCount": {
"placeholders": {
"current": {
"type": "int"
},
"max": {
"type": "int"
}
}
},
"chat_sendGif": "Wyślij GIF",
"chat_reply": "Odpowiedz",
"chat_addReaction": "Dodaj Reakcję",
"chat_me": "Ja",
"emojiCategorySmileys": "Emoji",
"emojiCategoryGestures": "Gesty",
"emojiCategoryHearts": "Serca",
"emojiCategoryObjects": "Obiekty",
"gifPicker_title": "Wybierz GIF",
"gifPicker_searchHint": "Wyszukaj GIF-y...",
"gifPicker_poweredBy": "Zasilane przez GIPHY",
"gifPicker_noGifsFound": "Nie znaleziono GIF-ów",
"gifPicker_failedLoad": "Nie udało się załadować GIF-ów",
"gifPicker_failedSearch": "Nie udało się znaleźć GIF-ów",
"gifPicker_noInternet": "Brak połączenia internetowego",
"debugLog_appTitle": "Log Wykonywania Aplikacji",
"debugLog_bleTitle": "Log błędów BLE",
"debugLog_copyLog": "Kopiuj log",
"debugLog_clearLog": "Wyczyść dziennik",
"debugLog_copied": "Skopiowano dziennik debugowania",
"debugLog_bleCopied": "Skopiowany log BLE",
"debugLog_noEntries": "Nie ma jeszcze żadnych logów debugowania.",
"debugLog_enableInSettings": "Włącz logowanie debugowania aplikacji w ustawieniach",
"debugLog_frames": "Ramki",
"debugLog_rawLogRx": "Surowy log RX",
2026-03-16 15:36:57 +01:00
"debugLog_noBleActivity": "Brak aktywności BLE.",
"debugFrame_length": "Długość ramy: {count} bajtów",
"@debugFrame_length": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"debugFrame_command": "Polecenie: 0x{value}",
"@debugFrame_command": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"debugFrame_textMessageHeader": "Wiadomość tekstowa:",
"debugFrame_destinationPubKey": "- Docelowy klucz publiczny: {pubKey}",
"@debugFrame_destinationPubKey": {
"placeholders": {
"pubKey": {
"type": "String"
}
}
},
2026-03-16 15:36:57 +01:00
"debugFrame_timestamp": "- Znacznik czasu: {timestamp}",
"@debugFrame_timestamp": {
"placeholders": {
"timestamp": {
"type": "int"
}
}
},
"debugFrame_flags": "- Flagi: 0x{value}",
"@debugFrame_flags": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"debugFrame_textType": "- Typ tekstu: {type} ({label})",
"@debugFrame_textType": {
"placeholders": {
"type": {
"type": "int"
},
"label": {
"type": "String"
}
}
},
"debugFrame_textTypeCli": "CLI",
"debugFrame_textTypePlain": "Zwykły",
"debugFrame_text": "- Tekst: \"{text}\"",
"@debugFrame_text": {
"placeholders": {
"text": {
"type": "String"
}
}
},
"debugFrame_hexDump": "Zrzut hex:",
"chat_pathManagement": "Zarządzanie ścieżkami",
"chat_routingMode": "Tryb routingu",
"chat_autoUseSavedPath": "Automatyczne (użyj zapisanej ścieżki)",
"chat_forceFloodMode": "Wymuś tryb zalewowy",
"chat_recentAckPaths": "Ostatnie ścieżki ACK (naciśnij, aby użyć):",
"chat_pathHistoryFull": "Historia ścieżek jest pełna. Usuń wpisy, aby dodać nowe.",
"chat_hopSingular": "skok",
"chat_hopPlural": "skoki",
"chat_hopsCount": "{count} {count, plural, one{skok} few{skoki} many{skoków} other{skoków}}",
"@chat_hopsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"chat_successes": "Sukcesy",
"chat_removePath": "Usuń ścieżkę",
2026-03-16 15:36:57 +01:00
"chat_noPathHistoryYet": "Brak historii ścieżek.\nWyślij wiadomość, aby odkryć ścieżki.",
"chat_pathActions": "Działania ścieżki:",
"chat_setCustomPath": "Ustaw ścieżkę niestandardową",
"chat_setCustomPathSubtitle": "Ręcznie określ trasę.",
"chat_clearPath": "Wyczyść Ścieżkę",
"chat_clearPathSubtitle": "Wymuś ponowne wyznaczenie trasy przy następnym wysłaniu",
"chat_pathCleared": "Ścieżka wyczyszczona. Następna wiadomość odnajdzie trasę.",
"chat_floodModeSubtitle": "Użyj przełącznika routingu w pasku narzędzi.",
2026-03-16 15:36:57 +01:00
"chat_floodModeEnabled": "Tryb zalewowy włączony. Przełącz z powrotem ikoną routingu w pasku aplikacji.",
"chat_fullPath": "Pełna ścieżka",
"chat_pathDetailsNotAvailable": "Szczegóły ścieżki jeszcze niedostępne. Spróbuj wysłać wiadomość, aby odświeżyć.",
"chat_pathSetHops": "Ścieżka ustawiona: {hopCount} {hopCount, plural, =1{hop} other{hops}} - {status}",
"@chat_pathSetHops": {
"placeholders": {
"hopCount": {
"type": "int"
},
"status": {
"type": "String"
}
}
},
"chat_pathSavedLocally": "Zapisano lokalnie. Połącz się, aby zsynchronizować.",
"chat_pathDeviceConfirmed": "Urządzenie potwierdzone.",
"chat_pathDeviceNotConfirmed": "Urządzenie nie zostało jeszcze potwierdzone.",
"chat_type": "Typ",
"chat_path": "Ścieżka",
"chat_publicKey": "Klucz Publiczny",
"chat_compressOutgoingMessages": "Kompresuj wychodzące wiadomości",
"chat_floodForced": "Zalew (wymuszony)",
"chat_directForced": "Bezpośrednio (wymuszono)",
"chat_hopsForced": "{count} skoków (wymuszonych)",
"@chat_hopsForced": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"chat_floodAuto": "Zalew (automatyczny)",
"chat_direct": "Bezpośrednio",
"chat_poiShared": "Wspólny POI",
"chat_unread": "Nieprzeczytane: {count}",
"@chat_unread": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"chat_openLink": "Otworzyć link?",
"chat_openLinkConfirmation": "Czy chcesz otworzyć ten link w przeglądarce?",
"chat_open": "Otwórz",
"chat_couldNotOpenLink": "Nie można otworzyć linku: {url}",
"@chat_couldNotOpenLink": {
"placeholders": {
"url": {
"type": "String"
}
}
},
"chat_invalidLink": "Nieprawidłowy format linku",
"map_title": "Mapa węzłów",
"map_noNodesWithLocation": "Brak węzłów z danymi lokalizacyjnymi",
"map_nodesNeedGps": "Węzły muszą udostępniać swoje współrzędne GPS,\naby pojawić się na mapie.",
"map_nodesCount": "Węzły: {count}",
"@map_nodesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"map_pinsCount": "Pinezki: {count}",
"@map_pinsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"map_chat": "Rozmowa",
2026-03-23 18:47:18 +01:00
"map_repeater": "Przekaźnik",
"map_room": "Pokój",
"map_sensor": "Czujnik",
"map_pinDm": "Pinezka (DM)",
"map_pinPrivate": "Pinezka (prywatna)",
"map_pinPublic": "Pinezka (publiczna)",
"map_lastSeen": "Ostatni raz widziany",
"map_disconnectConfirm": "Czy na pewno chcesz się odłączyć od tego urządzenia?",
"map_from": "Od",
"map_source": "Źródło",
"map_flags": "Flagi",
"map_shareMarkerHere": "Udostępnij znacznik tutaj",
"map_pinLabel": "Etykieta pinezki",
"map_label": "Etykieta",
"map_pointOfInterest": "Punkt zainteresowań",
"map_sendToContact": "Wyślij do kontaktu",
"map_sendToChannel": "Wyślij do kanału",
"map_noChannelsAvailable": "Brak dostępnych kanałów",
"map_publicLocationShare": "Udostępnij lokalizację publicznie",
"map_publicLocationShareConfirm": "Zamierzasz udostępnić lokalizację w {channelLabel}. Ten kanał jest publiczny i każdy z PSK może go zobaczyć.",
"@map_publicLocationShareConfirm": {
"placeholders": {
"channelLabel": {
"type": "String"
}
}
},
"map_connectToShareMarkers": "Połącz się z urządzeniem, aby udostępniać znaczniki.",
"map_filterNodes": "Filtruj Węzły",
"map_nodeTypes": "Typy węzłów",
"map_chatNodes": "Węzły czatu",
2026-03-23 18:47:18 +01:00
"map_repeaters": "Przekaźniki",
"map_otherNodes": "Inne węzły",
"map_keyPrefix": "Prefiks klucza",
"map_filterByKeyPrefix": "Filtruj po prefiksie klucza",
"map_publicKeyPrefix": "Prefiks klucza publicznego",
"map_markers": "Znaczniki",
"map_showSharedMarkers": "Pokaż udostępnione znaczniki.",
2026-02-18 19:03:17 +01:00
"map_lastSeenTime": "Ostatni raz widziany",
"map_sharedPin": "Udostępniona pinezka",
"map_joinRoom": "Dołącz do pokoju",
2026-03-23 18:47:18 +01:00
"map_manageRepeater": "Zarządzaj przekaźnikiem",
2026-03-16 15:36:57 +01:00
"mapCache_title": "Pamięć podręczna map offline",
"mapCache_selectAreaFirst": "Najpierw wybierz obszar do zapisania w pamięci podręcznej.",
"mapCache_noTilesToDownload": "Brak kafelków do pobrania dla tego obszaru.",
"mapCache_downloadTilesTitle": "Pobierz kafelki",
"mapCache_downloadTilesPrompt": "Pobrać {count} kafelków do użytku offline?",
"@mapCache_downloadTilesPrompt": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_downloadAction": "Pobierz",
2026-03-16 15:36:57 +01:00
"mapCache_cachedTiles": "Zapisano w pamięci podręcznej {count} kafelków",
"@mapCache_cachedTiles": {
"placeholders": {
"count": {
"type": "int"
}
}
},
2026-03-16 15:36:57 +01:00
"mapCache_cachedTilesWithFailed": "Zapisano w pamięci podręcznej {downloaded} kafelków ({failed} nieudanych)",
"@mapCache_cachedTilesWithFailed": {
"placeholders": {
"downloaded": {
"type": "int"
},
"failed": {
"type": "int"
}
}
},
"mapCache_clearOfflineCacheTitle": "Wyczyść pamięć podręczną offline",
2026-03-16 15:36:57 +01:00
"mapCache_clearOfflineCachePrompt": "Usunąć wszystkie zapisane kafelki mapy?",
"mapCache_offlineCacheCleared": "Wyczyszczono pamięć podręczną offline",
"mapCache_noAreaSelected": "Nie wybrano żadnego obszaru.",
"mapCache_cacheArea": "Obszar pamięci podręcznej",
"mapCache_useCurrentView": "Użyj aktualnego widoku",
2026-03-16 15:36:57 +01:00
"mapCache_zoomRange": "Zakres przybliżenia",
"mapCache_estimatedTiles": "Szacowana liczba kafelków: {count}",
"@mapCache_estimatedTiles": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_downloadedTiles": "Pobrano {completed} / {total}",
"@mapCache_downloadedTiles": {
"placeholders": {
"completed": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
2026-02-18 19:03:17 +01:00
"mapCache_downloadTilesButton": "Pobierz kafelki",
"mapCache_clearCacheButton": "Wyczyść pamięć podręczną",
"mapCache_failedDownloads": "Nieudane pobrania: {count}",
"@mapCache_failedDownloads": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_boundsLabel": "N {north}, S {south}, E {east}, W {west}",
"@mapCache_boundsLabel": {
"placeholders": {
"north": {
"type": "String"
},
"south": {
"type": "String"
},
"east": {
"type": "String"
},
"west": {
"type": "String"
}
}
},
"time_justNow": "Właśnie teraz",
"time_minutesAgo": "{minutes} minut temu",
"@time_minutesAgo": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"time_hoursAgo": "{hours}h temu",
"@time_hoursAgo": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"time_daysAgo": "{days} dni temu",
"@time_daysAgo": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"time_hour": "godzina",
"time_hours": "godziny",
"time_day": "dzień",
"time_days": "dni",
"time_week": "tydzień",
"time_weeks": "tygodnie",
"time_month": "miesiąc",
"time_months": "miesiące",
"time_minutes": "minuty",
"time_allTime": "Cały czas",
"dialog_disconnect": "Odłącz",
"dialog_disconnectConfirm": "Czy na pewno chcesz się odłączyć od tego urządzenia?",
2026-03-23 18:47:18 +01:00
"login_repeaterLogin": "Logowanie do przekaźnika",
"login_roomLogin": "Logowanie do pokoju",
"login_password": "Hasło",
"login_enterPassword": "Wprowadź hasło",
"login_savePassword": "Zapisz hasło",
"login_savePasswordSubtitle": "Hasło będzie bezpiecznie przechowywane na tym urządzeniu.",
2026-03-23 18:47:18 +01:00
"login_repeaterDescription": "Wprowadź hasło do przekaźnika, aby uzyskać dostęp do ustawień i stanu.",
"login_roomDescription": "Wprowadź hasło do pokoju, aby uzyskać dostęp do ustawień i statusu.",
"login_routing": "Trasowanie",
"login_routingMode": "Tryb routingu",
"login_autoUseSavedPath": "Automatycznie (użyj zapisanej ścieżki)",
"login_forceFloodMode": "Wymuś tryb zalewowy",
"login_managePaths": "Zarządzaj Ścieżkami",
"login_login": "Zaloguj się",
"login_attempt": "Próba {current}/{max}",
"@login_attempt": {
"placeholders": {
"current": {
"type": "int"
},
"max": {
"type": "int"
}
}
},
"login_failed": "Zalogowanie się nie powiodło: {error}",
"@login_failed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
2026-03-23 18:47:18 +01:00
"login_failedMessage": "Logowanie nie powiodło się. Hasło jest nieprawidłowe albo przekaźnik jest nieosiągalny.",
"common_reload": "Odśwież",
"common_clear": "Wyczyść",
"path_currentPath": "Aktualna ścieżka: {path}",
"@path_currentPath": {
"placeholders": {
"path": {
"type": "String"
}
}
},
"path_usingHopsPath": "Użyj ścieżki {count} {count, plural, one{skok} few{skoki} many{skoków} other{skoków}}.",
"@path_usingHopsPath": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"path_enterCustomPath": "Wprowadź własną ścieżkę",
"path_currentPathLabel": "Aktualna ścieżka",
"path_hexPrefixInstructions": "Wprowadź 2-znakowe prefiksy szesnastkowe dla każdego skoku, oddzielone przecinkami.",
"path_hexPrefixExample": "A1,F2,3C (każdy węzeł używa pierwszego bajtu swojego klucza publicznego)",
"path_labelHexPrefixes": "Ścieżka (prefiksy hex)",
"path_helperMaxHops": "Maksymalnie 64 skoki. Każdy prefiks ma 2 znaki szesnastkowe (1 bajt).",
"path_selectFromContacts": "Albo wybierz z kontaktów:",
2026-03-23 18:47:18 +01:00
"path_noRepeatersFound": "Nie znaleziono przekaźników ani serwerów pokoi.",
"path_customPathsRequire": "Dostosowane ścieżki wymagają pośrednich skoków, które mogą przekazywać wiadomości.",
"path_invalidHexPrefixes": "Nieprawidłowe prefiksy szesnastkowe: {prefixes}",
"@path_invalidHexPrefixes": {
"placeholders": {
"prefixes": {
"type": "String"
}
}
},
"path_tooLong": "Ścieżka jest zbyt długa. Dozwolonych skoków wynosi 64.",
"path_setPath": "Ustaw Ścieżkę",
2026-03-23 18:47:18 +01:00
"repeater_management": "Zarządzanie przekaźnikami",
"repeater_managementTools": "Narzędzia Zarządzania",
"repeater_status": "Status",
2026-03-23 18:47:18 +01:00
"repeater_statusSubtitle": "Wyświetl status przekaźnika, statystyki i sąsiadów.",
"repeater_telemetry": "Telemetria",
"repeater_telemetrySubtitle": "Wyświetl dane telemetryczne z czujników i statystyki systemu",
"repeater_cli": "CLI",
2026-03-23 18:47:18 +01:00
"repeater_cliSubtitle": "Wyślij polecenia do przekaźnika",
"repeater_settings": "Ustawienia",
2026-03-23 18:47:18 +01:00
"repeater_settingsSubtitle": "Skonfiguruj parametry przekaźnika",
"repeater_statusTitle": "Status przekaźnika",
"repeater_routingMode": "Tryb routingu",
"repeater_autoUseSavedPath": "Automatycznie (użyj zapisanej ścieżki)",
"repeater_forceFloodMode": "Wymuś tryb zalewowy",
"repeater_pathManagement": "Zarządzanie ścieżkami",
"repeater_refresh": "Odśwież",
"repeater_statusRequestTimeout": "Przekroczono czas oczekiwania na status.",
"repeater_errorLoadingStatus": "Błąd podczas ładowania statusu: {error}",
"@repeater_errorLoadingStatus": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_systemInformation": "Informacje o systemie",
"repeater_battery": "Bateria",
"repeater_clockAtLogin": "Godzina (przy logowaniu)",
"repeater_uptime": "Czas pracy",
"repeater_queueLength": "Długość kolejki",
"repeater_debugFlags": "Opcje debugowania",
"repeater_radioStatistics": "Statystyki Radia",
"repeater_lastRssi": "Ostatni RSSI",
"repeater_lastSnr": "Ostatnie SNR",
"repeater_noiseFloor": "Poziom Szumów",
"repeater_txAirtime": "Czas nadawania TX",
"repeater_rxAirtime": "Czas odbioru RX",
"repeater_packetStatistics": "Statystyki pakietów",
"repeater_sent": "Wysłane",
"repeater_received": "Otrzymano",
"repeater_duplicates": "Powtórzenia",
"repeater_daysHoursMinsSecs": "{days} dni {hours}h {minutes}m {seconds}s",
"@repeater_daysHoursMinsSecs": {
"placeholders": {
"days": {
"type": "int"
},
"hours": {
"type": "int"
},
"minutes": {
"type": "int"
},
"seconds": {
"type": "int"
}
}
},
"repeater_packetTxTotal": "Razem: {total}, Zalew: {flood}, Bezpośrednio: {direct}",
"@repeater_packetTxTotal": {
"placeholders": {
"total": {
"type": "int"
},
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_packetRxTotal": "Razem: {total}, Zalew: {flood}, Bezpośrednio: {direct}",
"@repeater_packetRxTotal": {
"placeholders": {
"total": {
"type": "int"
},
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_duplicatesFloodDirect": "Zalew: {flood}, Bezpośrednie: {direct}",
"@repeater_duplicatesFloodDirect": {
"placeholders": {
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_duplicatesTotal": "Razem: {total}",
"@repeater_duplicatesTotal": {
"placeholders": {
"total": {
"type": "int"
}
}
},
2026-03-23 18:47:18 +01:00
"repeater_settingsTitle": "Ustawienia przekaźnika",
"repeater_basicSettings": "Podstawowe Ustawienia",
2026-03-23 18:47:18 +01:00
"repeater_repeaterName": "Nazwa przekaźnika",
"repeater_repeaterNameHelper": "Wyświetl nazwę tego przekaźnika",
"repeater_adminPassword": "Hasło Administracyjne",
"repeater_adminPasswordHelper": "Hasło z pełnym dostępem",
"repeater_guestPassword": "Hasło gościa",
"repeater_guestPasswordHelper": "Hasło tylko do odczytu",
"repeater_radioSettings": "Ustawienia radia",
"repeater_frequencyMhz": "Częstotliwość (MHz)",
"repeater_frequencyHelper": "300-2500 MHz",
"repeater_txPower": "Moc TX",
"repeater_txPowerHelper": "1-30 dBm",
"repeater_bandwidth": "Przepustowość",
"repeater_spreadingFactor": "Współczynnik rozpraszania",
"repeater_codingRate": "Współczynnik kodowania",
"repeater_locationSettings": "Ustawienia Lokalizacji",
"repeater_latitude": "Szerokość",
"repeater_latitudeHelper": "Stopnie dziesiętne (np. 37.7749)",
"repeater_longitude": "Długość",
"repeater_longitudeHelper": "Stopnie dziesiętne (np. -122,4194)",
"repeater_features": "Funkcje",
"repeater_packetForwarding": "Przekierowanie pakietów",
2026-03-23 18:47:18 +01:00
"repeater_packetForwardingSubtitle": "Włącz przekaźnik, aby przekazywać pakiety.",
"repeater_guestAccess": "Dostęp dla gości",
"repeater_guestAccessSubtitle": "Umożliw dostęp tylko do odczytu dla gości.",
"repeater_privacyMode": "Tryb prywatności",
"repeater_privacyModeSubtitle": "Ukryj imię/lokalizację w rozgłoszeniach",
"repeater_advertisementSettings": "Ustawienia rozgłoszeń",
"repeater_localAdvertInterval": "Interwał rozgłoszenia lokalnego",
"repeater_localAdvertIntervalMinutes": "{minutes} minut",
"@repeater_localAdvertIntervalMinutes": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"repeater_floodAdvertInterval": "Interwał rozgłoszenia zalewowego",
"repeater_floodAdvertIntervalHours": "{hours} godzin",
"@repeater_floodAdvertIntervalHours": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
2026-02-18 19:03:17 +01:00
"repeater_encryptedAdvertInterval": "Interwał Zaszyfrowanego Rozgłoszenia",
"repeater_dangerZone": "Strefa Zagrożeń",
2026-03-23 18:47:18 +01:00
"repeater_rebootRepeater": "Zrestartuj Przekaźnik",
"repeater_rebootRepeaterSubtitle": "Zrestartuj przekaźnik.",
"repeater_rebootRepeaterConfirm": "Czy na pewno chcesz zrestartować ten przekaźnik?",
"repeater_regenerateIdentityKey": "Wygeneruj klucz tożsamości",
"repeater_regenerateIdentityKeySubtitle": "Wygeneruj nową parę kluczy publicznych/prywatnych",
2026-03-23 18:47:18 +01:00
"repeater_regenerateIdentityKeyConfirm": "Zostanie wygenerowana nowa tożsamość dla przekaźnika. Kontynuować?",
"repeater_eraseFileSystem": "Wyczyść System Plików",
2026-03-23 18:47:18 +01:00
"repeater_eraseFileSystemSubtitle": "Sformatuj system plików przekaźnika",
"repeater_eraseFileSystemConfirm": "OSTRZEŻENIE: To spowoduje usunięcie wszystkich danych z przekaźnika. Nie da się tego cofnąć!",
"repeater_eraseSerialOnly": "Usunięcie jest dostępne tylko przez konsolę szeregową.",
"repeater_commandSent": "Polecenie wysłane: {command}",
"@repeater_commandSent": {
"placeholders": {
"command": {
"type": "String"
}
}
},
"repeater_errorSendingCommand": "Błąd podczas wysyłania polecenia: {error}",
"@repeater_errorSendingCommand": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_confirm": "Potwierdź",
"repeater_settingsSaved": "Ustawienia zostały pomyślnie zapisane.",
"repeater_errorSavingSettings": "Błąd zapisu ustawień: {error}",
"@repeater_errorSavingSettings": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_refreshBasicSettings": "Odśwież Podstawowe Ustawienia",
"repeater_refreshRadioSettings": "Odśwież ustawienia radia",
"repeater_refreshTxPower": "Odśwież moc TX",
"repeater_refreshLocationSettings": "Odśwież Ustawienia Lokalizacji",
"repeater_refreshPacketForwarding": "Odśwież trasowanie pakietów",
"repeater_refreshGuestAccess": "Odśwież dostęp gościa",
"repeater_refreshPrivacyMode": "Odśwież Tryb Prywatności",
"repeater_refreshAdvertisementSettings": "Odśwież ustawienia rozgłoszeń",
"repeater_refreshed": "{label} odświeżone",
"@repeater_refreshed": {
"placeholders": {
"label": {
"type": "String"
}
}
},
"repeater_errorRefreshing": "Błąd podczas odświeżania {label}",
"@repeater_errorRefreshing": {
"placeholders": {
"label": {
"type": "String"
}
}
},
2026-03-23 18:47:18 +01:00
"repeater_cliTitle": "Przekaźnik CLI",
"repeater_debugNextCommand": "Debug Następną Komendę",
"repeater_commandHelp": "Pomoc",
"repeater_clearHistory": "Wyczyść historię",
"repeater_noCommandsSent": "Nie wysłano jeszcze żadnych poleceń",
"repeater_typeCommandOrUseQuick": "Wprowadź polecenie poniżej lub użyj szybkich poleceń",
"repeater_enterCommandHint": "Wprowadź polecenie...",
"repeater_previousCommand": "Poprzednia komenda",
"repeater_nextCommand": "Następna komenda",
"repeater_enterCommandFirst": "Wprowadź najpierw polecenie",
"repeater_cliCommandFrameTitle": "Ramka polecenia CLI",
"repeater_cliCommandError": "Błąd: {error}",
"@repeater_cliCommandError": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_cliQuickGetName": "Pobierz nazwę",
"repeater_cliQuickGetRadio": "Pobierz radio",
"repeater_cliQuickGetTx": "Pobierz TX",
"repeater_cliQuickNeighbors": "Sąsiedzi",
"repeater_cliQuickVersion": "Wersja",
"repeater_cliQuickAdvertise": "Rozgłoś",
"repeater_cliQuickClock": "Godzina",
2026-02-18 19:03:17 +01:00
"repeater_cliHelpAdvert": "Wysyła pakiet rozgłoszeniowy",
"repeater_cliHelpReboot": "Zresetuj urządzenie. (Uwaga, może pojawić się 'Timeout', co jest normalne)",
"repeater_cliHelpClock": "Wyświetla aktualny czas zgodnie z zegarem urządzenia.",
"repeater_cliHelpPassword": "Ustawia nowe hasło administratora dla urządzenia.",
"repeater_cliHelpVersion": "Wyświetla wersję urządzenia i datę budowy oprogramowania.",
"repeater_cliHelpClearStats": "Resetuje różne wskaźniki statystyk do zera.",
"repeater_cliHelpSetAf": "Ustawia czynnik czasu powietrznego.",
"repeater_cliHelpSetTx": "Ustawia moc transmisji LoRa w dBm. (zrestartuj, aby zastosować)",
2026-03-23 18:47:18 +01:00
"repeater_cliHelpSetRepeat": "Włącza lub wyłącza rolę przekaźnika dla tego węzła.",
"repeater_cliHelpSetAllowReadOnly": "(Serwer pokoju) Jeśli 'włączone', to logowanie z pustym hasłem będzie dozwolone, ale nie można publikować w pokoju (tylko czytać).",
"repeater_cliHelpSetFloodMax": "Ustawia maksymalną liczbę skoków pakietu zalewowego (jeśli >= max, pakiet nie jest przekierowywany)",
"repeater_cliHelpSetIntThresh": "Ustawia Próg Interferencji (w dB). Domyślnie wynosi 14. Ustaw na 0, aby wyłączyć wykrywanie zakłóceń kanału.",
"repeater_cliHelpSetAgcResetInterval": "Ustawia interwał do zresetowania automatycznego wzmocnienia (AGC). Ustaw na 0, aby wyłączyć.",
"repeater_cliHelpSetMultiAcks": "Włącza lub wyłącza funkcję 'podwójnych potwierdzeń'.",
2026-02-18 19:03:17 +01:00
"repeater_cliHelpSetAdvertInterval": "Ustawia interwał timera w minutach do wysyłania pakietu rozgłoszenia lokalnego (bezpośredniego). Ustaw na 0, aby wyłączyć.",
"repeater_cliHelpSetFloodAdvertInterval": "Ustawia interwał timera w godzinach do wysłania pakietu rozgłoszeniowego typu \"flood\". Ustaw na 0, aby wyłączyć.",
2026-03-23 18:47:18 +01:00
"repeater_cliHelpSetGuestPassword": "Ustawia/aktualizuje hasło gościa. (dla przekaźników loginy gości mogą wysyłać żądanie \"Get Stats\")",
"repeater_cliHelpSetName": "Ustawia nazwę rozgłoszenia.",
"repeater_cliHelpSetLat": "Ustawia współrzędną geograficzną (w stopniach dziesiętnych) mapy rozgłoszeń.",
"repeater_cliHelpSetLon": "Ustawia współrzędną długościową mapy rozgłoszeń. (stopnie dziesiętne)",
"repeater_cliHelpSetRadio": "Ustawia nowe parametry radia i zapisuje je w preferencjach. Wymaga polecenia \"reboot\" do zastosowania.",
"repeater_cliHelpSetRxDelay": "Ustawienia (eksperymentalne) bazowe (muszą być > 1, aby działać) do stosowania lekkiego opóźnienia dla odebranych pakietów, w oparciu o siłę sygnału/wynik. Ustaw na 0, aby wyłączyć.",
"repeater_cliHelpSetTxDelay": "Ustawia czynnik mnożony przez czas utrzymania w trybie zalewowym dla pakietu oraz z wykorzystaniem losowego systemu slotów, aby opóźnić jego przesyłanie (zmniejszając prawdopodobieństwo kolizji).",
"repeater_cliHelpSetDirectTxDelay": "Taki sam jak txdelay, ale dla stosowania losowej opóźnienia przy przekazywaniu pakietów w trybie bezpośrednim.",
"repeater_cliHelpSetBridgeEnabled": "Włącz/Wyłącz mostek.",
"repeater_cliHelpSetBridgeDelay": "Ustaw czas opóźnienia przed ponownym wysyłaniem pakietów.",
"repeater_cliHelpSetBridgeSource": "Wybierz, czy most będzie ponownie transmitował otrzymywane pakiety, czy też wysyłane.",
"repeater_cliHelpSetBridgeBaud": "Ustaw prędkość transmisji magistrali szeregowej dla mostów rs232.",
"repeater_cliHelpSetBridgeSecret": "Ustaw sekret dla mostów ESPNOW.",
"repeater_cliHelpSetAdcMultiplier": "Ustawia niestandardowy współczynnik do korekty zgłaszanego napięcia baterii (obsługa tylko na wybranych płytach).",
"repeater_cliHelpTempRadio": "Ustawia tymczasowe parametry radia na podany czas trwania w minutach, a następnie powraca do oryginalnych parametrów radia. (nie zapisuje zmian w preferencjach).",
"repeater_cliHelpSetPerm": "Modyfikuje ACL. Usuwa dopasowaną wpis (z prefiksem pubkey), jeśli \"permissions\" wynosi zero. Dodaje nowy wpis, jeśli pubkey-hex ma pełną długość i nie znajduje się obecnie w ACL. Aktualizuje wpis, dopasowując prefiks pubkey. Bit uprawnień zależy od roli firmware, ale dolne 2 bity to: 0 (Gość), 1 (tylko odczyt), 2 (odczyt i zapis), 3 (administrator).",
"repeater_cliHelpGetBridgeType": "Pobiera typ mostka: brak, rs232, espnow",
"repeater_cliHelpLogStart": "Rozpoczyna się logowanie pakietów do systemu plików.",
"repeater_cliHelpLogStop": "Zatrzymuje logowanie pakietów do systemu plików.",
"repeater_cliHelpLogErase": "Usuwa logi pakietów z systemu plików.",
2026-03-23 23:11:51 +01:00
"repeater_cliHelpNeighbors": "Wyświetla listę innych węzłów przekaźnikowych usłyszanych przez rozgłoszenia zero-hop. Każda linia to: id-prefix-hex:timestamp:snr-times-4",
"repeater_cliHelpNeighborRemove": "Usuwa pierwszy pasujący wpis (z prefiksem pubkey (hex)) z listy sąsiadów.",
"repeater_cliHelpRegion": "(tylko port szeregowy) Wyświetla wszystkie zdefiniowane regiony i aktualne uprawnienia do zalewu.",
"repeater_cliHelpRegionLoad": "UWAGA: to jest specjalne wywołanie wielokomendowe. Każda następna komenda jest nazwą regionu (wcięta spacjami, aby wskazywać hierarchię nadrzędną, z minimum jedną spacją). Zakończona wysłaniem pustej linii/komendy.",
"repeater_cliHelpRegionGet": "Wyszukuje region o podanej nazwie prefiksu (lub \"\" dla zakresu globalnego). Odpowiada \"-> region-name (parent-name) 'F'\"",
"repeater_cliHelpRegionPut": "Dodaje lub aktualizuje definicję regionu z podaną nazwą.",
"repeater_cliHelpRegionRemove": "Usuwa definicję regionu o podanej nazwie. (musi się dokładnie zgadzać i nie może mieć podregionów).",
"repeater_cliHelpRegionAllowf": "Ustawia uprawnienia 'F' (zalewowe) dla podanego regionu. ('' dla zakresu globalnego/starszego)",
"repeater_cliHelpRegionDenyf": "Usuwa uprawnienie 'F' (zalewowe) dla podanej strefy. (ZALECANE: na tym etapie NIE zaleca się używania tego na globalnym/starszym zakresie!!).",
"repeater_cliHelpRegionHome": "Odpowiada z aktualnej 'home' region. (Uwaga: nie zostało jeszcze zastosowane, zarezerwowane na przyszłość).",
"repeater_cliHelpRegionHomeSet": "Ustawia region 'domowe'.",
"repeater_cliHelpRegionSave": "Zapisuje listę/mapę regionów do pamięci.",
"repeater_cliHelpGps": "Wyświetla status GPS. Jeśli GPS jest wyłączony, odpowiada tylko \"off\", jeśli jest włączony, odpowiada z \"on\", \"status\", \"fix\", liczbą satelitów.",
"repeater_cliHelpGpsOnOff": "Włącza/wyłącza nawigację GPS.",
"repeater_cliHelpGpsSync": "Synchronizuje czas węzła z zegarem GPS.",
"repeater_cliHelpGpsSetLoc": "Ustawia pozycję węzła na współrzędne GPS i zapisuje preferencje.",
"repeater_cliHelpGpsAdvert": "Udostępnia konfigurację rozgłoszeń lokalizacji węzła:\n- brak: nie uwzględniaj lokalizacji w rozgłoszeniach\n- udostępnia: udostępnia lokalizację GPS (z SensorManager)\n- ustawienia: rozgłaszaj lokalizację przechowywaną w ustawieniach",
"repeater_cliHelpGpsAdvertSet": "Ustawia konfigurację rozgłoszeń lokalizacji.",
"repeater_commandsListTitle": "Lista poleceń",
"repeater_commandsListNote": "UWAGA: dla różnych poleceń \"set ...\" istnieje również polecenie \"get ...\".",
"repeater_general": "Ogólne",
"repeater_settingsCategory": "Ustawienia",
"repeater_bridge": "Most",
"repeater_logging": "Rejestrowanie",
2026-03-23 18:47:18 +01:00
"repeater_neighborsRepeaterOnly": "Sąsiedzi (tylko przekaźnik)",
"repeater_regionManagementRepeaterOnly": "Zarządzanie Regionem (tylko Przekaźnik)",
"repeater_regionNote": "Wprowadzono komendy regionalne w celu zarządzania definicjami i uprawnieniami regionów.",
"repeater_gpsManagement": "Zarządzanie GPS",
"repeater_gpsNote": "Polecenie GPS zostało wprowadzone w celu zarządzania tematami związanymi z lokalizacją.",
"telemetry_receivedData": "Odebrane dane telemetrii",
"telemetry_requestTimeout": "Przekroczono czas oczekiwania na telemetrię.",
"telemetry_errorLoading": "Błąd podczas ładowania telemetrii: {error}",
"@telemetry_errorLoading": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"telemetry_noData": "Brak dostępnych danych telemetrycznych.",
"telemetry_channelTitle": "Kanał {channel}",
"@telemetry_channelTitle": {
"placeholders": {
"channel": {
"type": "int"
}
}
},
"telemetry_batteryLabel": "Bateria",
"telemetry_voltageLabel": "Napięcie",
"telemetry_mcuTemperatureLabel": "Temperatura MCU",
"telemetry_temperatureLabel": "Temperatura",
"telemetry_currentLabel": "Prąd",
"telemetry_batteryValue": "{percent}% / {volts}V",
"@telemetry_batteryValue": {
"placeholders": {
"percent": {
"type": "int"
},
"volts": {
"type": "String"
}
}
},
"telemetry_voltageValue": "{volts}V",
"@telemetry_voltageValue": {
"placeholders": {
"volts": {
"type": "String"
}
}
},
"telemetry_currentValue": "{amps}A",
"@telemetry_currentValue": {
"placeholders": {
"amps": {
"type": "String"
}
}
},
"telemetry_temperatureValue": "{celsius}°C / {fahrenheit}°F",
"@telemetry_temperatureValue": {
"placeholders": {
"celsius": {
"type": "String"
},
"fahrenheit": {
"type": "String"
}
}
},
"channelPath_title": "Ścieżka pakietu",
"channelPath_viewMap": "Wyświetl mapę",
"channelPath_otherObservedPaths": "Inne zaobserwowane ścieżki",
2026-03-23 18:47:18 +01:00
"channelPath_repeaterHops": "Skoki przekaźników",
"channelPath_noHopDetails": "Szczegóły dotyczące tego pakietu nie zostały podane.",
"channelPath_messageDetails": "Szczegóły wiadomości",
"channelPath_senderLabel": "Nadawca",
"channelPath_timeLabel": "Czas",
"channelPath_repeatsLabel": "Powtórzenia",
"channelPath_pathLabel": "Ścieżka {index}",
"channelPath_observedLabel": "Obserwowane",
"channelPath_observedPathTitle": "Obserwowana ścieżka {index} • {hops}",
"@channelPath_observedPathTitle": {
"placeholders": {
"index": {
"type": "int"
},
"hops": {
"type": "String"
}
}
},
"channelPath_noLocationData": "Brak danych lokalizacyjnych",
"channelPath_timeWithDate": "{day}/{month} {time}",
"@channelPath_timeWithDate": {
"placeholders": {
"day": {
"type": "int"
},
"month": {
"type": "int"
},
"time": {
"type": "String"
}
}
},
"channelPath_timeOnly": "{time}",
"@channelPath_timeOnly": {
"placeholders": {
"time": {
"type": "String"
}
}
},
"channelPath_unknownPath": "Nieznane",
"channelPath_floodPath": "Zalew",
"channelPath_directPath": "Bezpośrednio",
"channelPath_observedZeroOf": "0 z {total} skoków",
"@channelPath_observedZeroOf": {
"placeholders": {
"total": {
"type": "int"
}
}
},
"channelPath_observedSomeOf": "{observed} z {total} skoków",
"@channelPath_observedSomeOf": {
"placeholders": {
"observed": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"channelPath_mapTitle": "Mapa ścieżek",
2026-03-23 18:47:18 +01:00
"channelPath_noRepeaterLocations": "Brak dostępnych lokalizacji przekaźników dla tej ścieżki.",
"channelPath_primaryPath": "Ścieżka {index} (Główna)",
"@channelPath_primaryPath": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"@channelPath_pathLabel": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channelPath_pathLabelTitle": "Ścieżka",
"channelPath_observedPathHeader": "Obserwowana ścieżka",
"channelPath_selectedPathLabel": "{label} • {prefixes}",
"@channelPath_selectedPathLabel": {
"placeholders": {
"label": {
"type": "String"
},
"prefixes": {
"type": "String"
}
}
},
"channelPath_noHopDetailsAvailable": "Brak dostępnych szczegółów hopa dla tego pakietu.",
2026-03-23 18:47:18 +01:00
"channelPath_unknownRepeater": "Nieznany Przekaźnik",
"listFilter_tooltip": "Filtruj i sortuj",
"listFilter_sortBy": "Sortuj po",
"listFilter_latestMessages": "Najnowsze wiadomości",
"listFilter_heardRecently": "Słyszano niedawno",
"listFilter_az": "A-Z",
"listFilter_filters": "Filtry",
"listFilter_all": "Wszystko",
"listFilter_users": "Użytkownicy",
2026-03-23 18:47:18 +01:00
"listFilter_repeaters": "Przekaźniki",
"listFilter_roomServers": "Serwery pokoju",
"listFilter_unreadOnly": "Tylko nieprzeczytane",
"listFilter_newGroup": "Nowa grupa",
"@neighbors_errorLoading": {
"placeholders": {
"error": {
"type": "String"
}
}
},
Add a signal readout for the nearest repeater. With improvements to app bar and other UI polish. (#200) * Refactor Cayenne LPP parsing with error handling and logging - Added error handling and logging to the Cayenne LPP parsing methods to manage malformed data gracefully. - Improved the structure of the parsing logic for better readability and maintainability. - Updated the Contact model to include error handling during frame parsing. - Refactored Channels, Contacts, Map, and Neighbours screens to utilize a new AppBarTitle widget for consistent app bar design. - Enhanced the BatteryIndicator widget to display SNR information for direct repeaters. - Introduced SNRUi class for better management of SNR icon and text representation. - Improved error handling in PathTraceMap and Neighbours screens to log errors appropriately. * Fix trace route bytes generation logic in Contact model * Ignore advertisements from self in MeshCoreConnector * Refactor PathTraceData to use List<double> for snrData and adjust data mapping in PathTraceMapScreen * Add SNRIndicator to AppBar and refactor BatteryIndicator layout * Enhance path management dialog to display direct repeaters with color coding based on signal strength * Remove unused import from SNR indicator widget * Update lib/models/contact.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/connector/meshcore_connector.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/connector/meshcore_connector.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/screens/path_trace_map.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/widgets/battery_indicator.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/helpers/cayenne_lpp.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Refactor packet handling to skip only the RSSI byte for improved reliability * Add SNR indicator localization and update UI references for nearby repeaters * Handle loading state and error parsing in PathTraceMapScreen; update SNR indicator dialog content layout * Throw an exception for unsupported LPP types in CayenneLpp class * Refactor AppBarTitle widget to remove unused style parameter; update related screens to reflect changes Improve SNR handling by adding validation for spreading factor range in snrUiFromSNR function Update contact handling in MeshCoreConnector to fix variable naming and improve readability Stop parsing unsupported LPP types in CayenneLpp to avoid misalignment * Sort direct repeaters by last updated time and SNR; limit to top three for improved path management dialog * Prevent notifications for chat and sensor adverts without a valid path * Implement ranking system for direct repeaters based on SNR and recency; update related UI components to reflect changes * Refactor localization keys for "neighbors" terminology across multiple languages - Updated localization keys from "neighbours" to "neighbors" in the following files: - app_localizations_bg.dart - app_localizations_de.dart - app_localizations_en.dart - app_localizations_es.dart - app_localizations_fr.dart - app_localizations_it.dart - app_localizations_nl.dart - app_localizations_pl.dart - app_localizations_pt.dart - app_localizations_ru.dart - app_localizations_sk.dart - app_localizations_sl.dart - app_localizations_sv.dart - app_localizations_uk.dart - app_localizations_zh.dart - Updated corresponding ARB files to reflect the changes in keys. - Renamed the NeighboursScreen to NeighborsScreen in the chat and repeater hub screens for consistency. * Adjust ranking calculation for direct repeaters by adding offset to SNR for improved accuracy * Fix typo in variable name for second direct repeater in path management dialog * Refactor ranking calculation for direct repeaters and update path handling in channel message screens * Refactor path handling in ChannelMessagePathScreen to improve logic for outgoing messages and channel messages * Fix AppBarTitle horizontal overflow with long titles (#187) * Initial plan * Wrap title Column in Expanded to prevent horizontal overflow in AppBarTitle Co-authored-by: wel97459 <12990640+wel97459@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: wel97459 <12990640+wel97459@users.noreply.github.com> * Refactor AppBarTitle widget to simplify Text widget initialization * Add "Show All Paths" feature to chat path management - Implemented localization for "Show All Paths" in multiple languages (DE, EN, ES, FR, IT, NL, PL, PT, RU, SK, SL, SV, UK, ZH). - Updated path management dialog to include a toggle for showing all paths. - Refactored path history display logic to conditionally show paths based on the toggle state. - Cleaned up unused print statements and improved code readability in path tracing and chat screens. * Refactor FeatureToggleRow visibility in chat and path management dialogs based on repeaters list * Remove unused import of 'dart:ffi' in path_trace_map.dart * Refactor repeater management logic and update UI state handling in chat and path management dialogs * Refactor RX data handling and improve repeater management logic in chat and path management dialogs --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: wel97459 <12990640+wel97459@users.noreply.github.com>
2026-02-20 20:27:38 -08:00
"repeater_neighbors": "Sąsiedzi",
"repeater_neighborsSubtitle": "Wyświetl sąsiedztwo zerowych hopów.",
"neighbors_receivedData": "Otrzymano dane sąsiedztwa",
"neighbors_requestTimedOut": "Sąsiedzi proszą o wyłączenie timingu.",
"neighbors_errorLoading": "Błąd podczas ładowania sąsiadów: {error}",
2026-03-23 23:11:51 +01:00
"neighbors_repeatersNeighbors": "Sąsiedzi przekaźników",
"neighbors_noData": "Brak danych dotyczących sąsiadów.",
"channels_joinPrivateChannelDesc": "Ręcznie wprowadź klucz tajny.",
"channels_createPrivateChannel": "Utwórz Prywatny Kanał",
"channels_createPrivateChannelDesc": "Zabezpieczone kluczem szyfrowym.",
"channels_joinPrivateChannel": "Dołącz do Prywatnego Kanału",
"channels_joinPublicChannel": "Dołącz do kanału publicznego.",
"channels_joinPublicChannelDesc": "Każdy może dołączyć do tego kanału.",
"channels_joinHashtagChannel": "Dołącz do kanału oznaczanego hashtagiem",
"channels_joinHashtagChannelDesc": "Każdy może dołączyć do kanałów z hashtagami.",
"channels_scanQrCode": "Skanuj kod QR",
"channels_scanQrCodeComingSoon": "Wkrótce",
"channels_enterHashtag": "Wprowadź hashtag",
"channels_hashtagHint": "np. #zespół",
"@neighbors_unknownContact": {
"placeholders": {
"pubkey": {
"type": "String"
}
}
},
"@neighbors_heardAgo": {
"placeholders": {
"time": {
"type": "String"
}
}
},
"neighbors_heardAgo": "Usłyszano: {time} temu",
2026-01-19 19:09:03 -07:00
"neighbors_unknownContact": "Nieznana {pubkey}",
2026-01-18 01:05:46 -08:00
"settings_locationGPSEnable": "Włącz GPS",
"settings_locationGPSEnableSubtitle": "Włącza automatyczne aktualizowanie pozycji za pomocą GPS.",
"settings_locationIntervalSec": "Interwał dla GPS (Sekundy)",
"settings_locationIntervalInvalid": "Interwał musi wynosić co najmniej 60 sekund i mniej niż 86400 sekund.",
2026-01-18 21:21:33 -08:00
"contacts_manageRoom": "Zarządzaj Serwerem Pokoju",
"room_management": "Zarządzanie Serwerem Pokoju",
"@community_joinConfirmation": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_created": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_joined": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_qrInstructions": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_alreadyMemberMessage": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_deleteConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_deleted": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_forCommunity": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"community_createDesc": "Utwórz nową społeczność i udostępnij za pomocą kodu QR.",
"community_title": "Społeczność",
"community_create": "Utwórz Społeczność",
"common_ok": "OK",
"community_join": "Dołącz",
"community_joinTitle": "Dołącz do społeczności",
"community_joinConfirmation": "Czy chcesz dołączyć do społeczności \"{name}\"?",
"community_scanQr": "Skanuj QR kod społeczności",
"community_scanInstructions": "Skieruj kamerę w kierunku kodu QR społeczności.",
"community_showQr": "Pokaż kod QR",
"community_publicChannel": "Społeczność Publiczna",
"community_hashtagChannel": "Hashtag Społeczności",
"community_name": "Nazwa Społeczności",
"community_enterName": "Wprowadź nazwę społeczności",
"community_created": "Społeczność \"{name}\" została utworzona",
"community_joined": "Dołączył do społeczności \"{name}\"",
"community_qrTitle": "Dziel się Społecznością",
"community_qrInstructions": "Skanuj ten kod QR, aby dołączyć {name}",
"community_hashtagPrivacyHint": "Kanały hashtagowe społeczności są dostępne tylko dla członków społeczności",
"community_invalidQrCode": "Nieprawidłowy kod QR społeczności.",
"community_alreadyMember": "Już jesteś członkiem.",
"community_alreadyMemberMessage": "Jesteś już członkiem \"{name}\".",
"community_addPublicChannel": "Dodaj Kanał Publiczny Społeczności",
"community_addPublicChannelHint": "Automatycznie dodaj kanał publiczny dla tej społeczności.",
"community_noCommunities": "Nie dołączono jeszcze żadnych społeczności.",
"community_scanOrCreate": "Skanuj kod QR lub utwórz społeczność, aby zacząć.",
"community_manageCommunities": "Zarządzaj Grupami",
"community_delete": "Opuszczenie Społeczności",
"community_deleteConfirm": "Opuścić \"{name}\"?",
"community_deleteChannelsWarning": "Spowoduje to również usunięcie {count} kanału/kanałów i ich wiadomości.",
"@community_deleteChannelsWarning": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"community_deleted": "Opuszczono społeczność \"{name}\"",
"community_addHashtagChannel": "Dodaj hashtag społeczności",
"community_addHashtagChannelDesc": "Dodaj kanał z hashtagiem dla tej społeczności",
"community_selectCommunity": "Wybierz społeczność",
"community_regularHashtag": "Hashtag regular",
"community_regularHashtagDesc": "Publiczny hashtag (każdy może dołączyć)",
"community_communityHashtag": "Hashtag Społeczności",
"community_communityHashtagDesc": "Dostępne tylko dla członków społeczności",
"community_forCommunity": "Dla {name}",
"@community_regenerateSecretConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_secretRegenerated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_secretUpdated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_scanToUpdateSecret": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"community_regenerate": "Zregeneruj",
"community_secretRegenerated": "Hasło ponownie wygenerowane dla \"{name}\"",
"community_regenerateSecret": "Zregeneruj sekret",
"community_regenerateSecretConfirm": "Regeneruj tajny klucz dla \"{name}\"? Wszyscy członkowie będą musieli zeskanować nowy kod QR, aby kontynuować komunikację.",
"community_scanToUpdateSecret": "Skanuj nowy kod QR, aby zaktualizować sekret dla \"{name}\"",
"community_secretUpdated": "Hasło zaktualizowane dla \"{name}\"",
"community_updateSecret": "Zaktualizuj tajny klucz",
"@contacts_pathTraceTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"pathTrace_you": "Ty",
"pathTrace_failed": "Śledzenie ścieżki nie powiodło się.",
"pathTrace_notAvailable": "Ścieżka śledzenia niedostępna.",
"contacts_pathTrace": "Śledzenie Ścieżek",
"contacts_ping": "Pingować",
2026-03-23 18:47:18 +01:00
"contacts_repeaterPathTrace": "Śledzenie ścieżki do przekaźnika",
"contacts_roomPathTrace": "Śledzenie ścieżki do serwera pokojowego",
"contacts_roomPing": "Pinguj serwer pokoju",
"pathTrace_refreshTooltip": "Odśwież ścieżkę.",
2026-03-23 18:47:18 +01:00
"contacts_repeaterPing": "Ping przekaźnika",
"contacts_pathTraceTo": "Śledź trasę do {name}",
2026-01-31 22:19:01 -08:00
"contacts_chatTraceRoute": "Śledź trasę promienia",
"appSettings_languageRu": "Rosyjski",
"appSettings_languageUk": "Ukraińska",
2026-02-22 11:27:06 -08:00
"appSettings_enableMessageTracing": "Włącz śledzenie wiadomości",
"appSettings_enableMessageTracingSubtitle": "Pokaż szczegółowe metadane trasowania i czasu dla wiadomości",
2026-01-31 22:19:01 -08:00
"contacts_contactImportFailed": "Kontakt nie został zaimportowany.",
"contacts_zeroHopAdvert": "Rozgłoszenie zero-hop",
"contacts_floodAdvert": "Rozgłoszenie zalewowe",
"contacts_copyAdvertToClipboard": "Kopiuj rozgłoszenie do schowka",
2026-01-31 22:19:01 -08:00
"contacts_clipboardEmpty": "Schowek jest pusty.",
"contacts_invalidAdvertFormat": "Nieprawidłowe dane kontaktowe",
"contacts_addContactFromClipboard": "Dodaj kontakt z schowka",
"contacts_contactImported": "Kontakt został zaimportowany.",
"contacts_zeroHopContactAdvertSent": "Wysłano kontakt przez rozgłoszenie.",
"contacts_contactAdvertCopied": "Rozgłoszenie skopiowano do schowka.",
"contacts_contactAdvertCopyFailed": "Kopiowanie rozgłoszenia do schowka nie powiodło się.",
"contacts_ShareContactZeroHop": "Udostępnij kontakt przez rozgłoszenie",
2026-01-31 22:19:01 -08:00
"contacts_ShareContact": "Kopiuj kontakt do schowka",
"contacts_zeroHopContactAdvertFailed": "Nie udało się wysłać kontaktu.",
Notification rate limiting (#110) * Add notification rate limiting with privacy-safe debug logging - Add batching system to prevent notification storms (3s rate limit, 5s batch window) - Queue rapid notifications and show batch summaries - Debug logs show device names for adverts, sender/channel for messages (no content leaks) - Remove unused _maxBatchSize constant Context: Added after getting notification-flooded while evaluating RF flood management. The irony. * Update notification_service.dart I made a mistake and removed this * Add l10n support for notification strings Addresses PR #110 review feedback to use the translations system: - Add notification strings to app_en.arb (plurals for batch summary) - Update NotificationService to use lookupAppLocalizations() - Wire locale from MaterialApp to NotificationService - Regenerate localization files New strings added (English only, translations needed): - notification_activityTitle: "MeshCore Activity" - notification_messagesCount: "{count} message(s)" - notification_channelMessagesCount: "{count} channel message(s)" - notification_newNodesCount: "{count} new node(s)" - notification_newTypeDiscovered: "New {type} discovered" - notification_receivedNewMessage: "Received new message" * Add notification string translations for all supported languages Translated notification_activityTitle, notification_messagesCount, notification_channelMessagesCount, notification_newNodesCount, notification_newTypeDiscovered, and notification_receivedNewMessage to: bg, de, es, fr, it, nl, pl, pt, ru, sk, sl, sv, uk, zh Includes proper ICU plural forms for Slavic languages (few/many/other) and Slovenian dual form. * Apply dart format to notification_service.dart --------- Co-authored-by: Winston Lowe <wel97459@gmail.com>
2026-02-08 19:42:15 -07:00
"notification_activityTitle": "Aktywność MeshCore",
"notification_messagesCount": "{count} {count, plural, =1{wiadomość} few{wiadomości} many{wiadomości} other{wiadomości}}",
2026-03-19 09:56:00 +01:00
"@notification_messagesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
Notification rate limiting (#110) * Add notification rate limiting with privacy-safe debug logging - Add batching system to prevent notification storms (3s rate limit, 5s batch window) - Queue rapid notifications and show batch summaries - Debug logs show device names for adverts, sender/channel for messages (no content leaks) - Remove unused _maxBatchSize constant Context: Added after getting notification-flooded while evaluating RF flood management. The irony. * Update notification_service.dart I made a mistake and removed this * Add l10n support for notification strings Addresses PR #110 review feedback to use the translations system: - Add notification strings to app_en.arb (plurals for batch summary) - Update NotificationService to use lookupAppLocalizations() - Wire locale from MaterialApp to NotificationService - Regenerate localization files New strings added (English only, translations needed): - notification_activityTitle: "MeshCore Activity" - notification_messagesCount: "{count} message(s)" - notification_channelMessagesCount: "{count} channel message(s)" - notification_newNodesCount: "{count} new node(s)" - notification_newTypeDiscovered: "New {type} discovered" - notification_receivedNewMessage: "Received new message" * Add notification string translations for all supported languages Translated notification_activityTitle, notification_messagesCount, notification_channelMessagesCount, notification_newNodesCount, notification_newTypeDiscovered, and notification_receivedNewMessage to: bg, de, es, fr, it, nl, pl, pt, ru, sk, sl, sv, uk, zh Includes proper ICU plural forms for Slavic languages (few/many/other) and Slovenian dual form. * Apply dart format to notification_service.dart --------- Co-authored-by: Winston Lowe <wel97459@gmail.com>
2026-02-08 19:42:15 -07:00
"notification_channelMessagesCount": "{count} {count, plural, =1{wiadomość kanału} few{wiadomości kanału} many{wiadomości kanału} other{wiadomości kanału}}",
2026-03-19 09:56:00 +01:00
"@notification_channelMessagesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
Notification rate limiting (#110) * Add notification rate limiting with privacy-safe debug logging - Add batching system to prevent notification storms (3s rate limit, 5s batch window) - Queue rapid notifications and show batch summaries - Debug logs show device names for adverts, sender/channel for messages (no content leaks) - Remove unused _maxBatchSize constant Context: Added after getting notification-flooded while evaluating RF flood management. The irony. * Update notification_service.dart I made a mistake and removed this * Add l10n support for notification strings Addresses PR #110 review feedback to use the translations system: - Add notification strings to app_en.arb (plurals for batch summary) - Update NotificationService to use lookupAppLocalizations() - Wire locale from MaterialApp to NotificationService - Regenerate localization files New strings added (English only, translations needed): - notification_activityTitle: "MeshCore Activity" - notification_messagesCount: "{count} message(s)" - notification_channelMessagesCount: "{count} channel message(s)" - notification_newNodesCount: "{count} new node(s)" - notification_newTypeDiscovered: "New {type} discovered" - notification_receivedNewMessage: "Received new message" * Add notification string translations for all supported languages Translated notification_activityTitle, notification_messagesCount, notification_channelMessagesCount, notification_newNodesCount, notification_newTypeDiscovered, and notification_receivedNewMessage to: bg, de, es, fr, it, nl, pl, pt, ru, sk, sl, sv, uk, zh Includes proper ICU plural forms for Slavic languages (few/many/other) and Slovenian dual form. * Apply dart format to notification_service.dart --------- Co-authored-by: Winston Lowe <wel97459@gmail.com>
2026-02-08 19:42:15 -07:00
"notification_newNodesCount": "{count} {count, plural, =1{nowy węzeł} few{nowe węzły} many{nowych węzłów} other{nowych węzłów}}",
2026-03-19 09:56:00 +01:00
"@notification_newNodesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
Notification rate limiting (#110) * Add notification rate limiting with privacy-safe debug logging - Add batching system to prevent notification storms (3s rate limit, 5s batch window) - Queue rapid notifications and show batch summaries - Debug logs show device names for adverts, sender/channel for messages (no content leaks) - Remove unused _maxBatchSize constant Context: Added after getting notification-flooded while evaluating RF flood management. The irony. * Update notification_service.dart I made a mistake and removed this * Add l10n support for notification strings Addresses PR #110 review feedback to use the translations system: - Add notification strings to app_en.arb (plurals for batch summary) - Update NotificationService to use lookupAppLocalizations() - Wire locale from MaterialApp to NotificationService - Regenerate localization files New strings added (English only, translations needed): - notification_activityTitle: "MeshCore Activity" - notification_messagesCount: "{count} message(s)" - notification_channelMessagesCount: "{count} channel message(s)" - notification_newNodesCount: "{count} new node(s)" - notification_newTypeDiscovered: "New {type} discovered" - notification_receivedNewMessage: "Received new message" * Add notification string translations for all supported languages Translated notification_activityTitle, notification_messagesCount, notification_channelMessagesCount, notification_newNodesCount, notification_newTypeDiscovered, and notification_receivedNewMessage to: bg, de, es, fr, it, nl, pl, pt, ru, sk, sl, sv, uk, zh Includes proper ICU plural forms for Slavic languages (few/many/other) and Slovenian dual form. * Apply dart format to notification_service.dart --------- Co-authored-by: Winston Lowe <wel97459@gmail.com>
2026-02-08 19:42:15 -07:00
"notification_newTypeDiscovered": "Nowy {contactType} wykryty",
2026-03-19 09:56:00 +01:00
"@notification_newTypeDiscovered": {
"placeholders": {
"contactType": {
"type": "String"
}
}
},
Notification rate limiting (#110) * Add notification rate limiting with privacy-safe debug logging - Add batching system to prevent notification storms (3s rate limit, 5s batch window) - Queue rapid notifications and show batch summaries - Debug logs show device names for adverts, sender/channel for messages (no content leaks) - Remove unused _maxBatchSize constant Context: Added after getting notification-flooded while evaluating RF flood management. The irony. * Update notification_service.dart I made a mistake and removed this * Add l10n support for notification strings Addresses PR #110 review feedback to use the translations system: - Add notification strings to app_en.arb (plurals for batch summary) - Update NotificationService to use lookupAppLocalizations() - Wire locale from MaterialApp to NotificationService - Regenerate localization files New strings added (English only, translations needed): - notification_activityTitle: "MeshCore Activity" - notification_messagesCount: "{count} message(s)" - notification_channelMessagesCount: "{count} channel message(s)" - notification_newNodesCount: "{count} new node(s)" - notification_newTypeDiscovered: "New {type} discovered" - notification_receivedNewMessage: "Received new message" * Add notification string translations for all supported languages Translated notification_activityTitle, notification_messagesCount, notification_channelMessagesCount, notification_newNodesCount, notification_newTypeDiscovered, and notification_receivedNewMessage to: bg, de, es, fr, it, nl, pl, pt, ru, sk, sl, sv, uk, zh Includes proper ICU plural forms for Slavic languages (few/many/other) and Slovenian dual form. * Apply dart format to notification_service.dart --------- Co-authored-by: Winston Lowe <wel97459@gmail.com>
2026-02-08 19:42:15 -07:00
"notification_receivedNewMessage": "Otrzymano nową wiadomość",
"settings_gpxExportContacts": "Eksportuj towarzyszy do GPX",
2026-03-23 18:47:18 +01:00
"settings_gpxExportRepeaters": "Eksportuj przekaźniki / serwer pokojowy do GPX",
"settings_gpxExportRepeatersSubtitle": "Eksportuje przekaźniki / roomserver z lokalizacją do pliku GPX.",
"settings_gpxExportSuccess": "Pomyślnie wyeksportowano plik GPX.",
"settings_gpxExportNotAvailable": "Nie obsługiwane na Twoim urządzeniu/systemie operacyjnym",
"settings_gpxExportError": "Wystąpił błąd podczas eksportowania.",
2026-03-23 18:47:18 +01:00
"settings_gpxExportRepeatersRoom": "Lokalizacje przekaźników i serwerów pokojowych",
"settings_gpxExportContactsSubtitle": "Eksportuje towarzyszy z lokalizacją do pliku GPX.",
"settings_gpxExportAll": "Eksportuj wszystkie kontakty do GPX",
"settings_gpxExportAllSubtitle": "Eksportuje wszystkie kontakty z lokalizacją do pliku GPX.",
"settings_gpxExportAllContacts": "Wszystkie lokalizacje kontaktów",
"settings_gpxExportNoContacts": "Brak kontaktów do wyeksportowania.",
"settings_gpxExportChat": "Lokalizacje towarzyszy",
"settings_gpxExportShareText": "Dane mapy wyeksportowane z meshcore-open",
2026-02-08 17:13:18 -08:00
"settings_gpxExportShareSubject": "Eksport danych mapy GPX meshcore-open",
"pathTrace_someHopsNoLocation": "Jeden lub więcej z chmieli nie ma określonej lokalizacji!",
"map_pathTraceCancelled": "Śledzenie ścieżki anulowano.",
"map_runTrace": "Uruchom ślad ścieżki",
"pathTrace_clearTooltip": "Wyczyść ścieżkę",
"map_removeLast": "Usuń ostatni",
"map_tapToAdd": "Kliknij na węzły, aby dodać je do ścieżki.",
"scanner_bluetoothOffMessage": "Prosimy włączyć Bluetooth, aby przeskanować urządzenia.",
2026-02-22 07:40:40 -08:00
"scanner_chromeRequired": "Wymagana przeglądarka Chrome",
"scanner_chromeRequiredMessage": "Ta aplikacja internetowa wymaga przeglądarki Google Chrome lub opartej na Chromium do obsługi Bluetooth.",
"scanner_bluetoothOff": "Bluetooth jest wyłączony",
"scanner_enableBluetooth": "Włącz Bluetooth",
Add a signal readout for the nearest repeater. With improvements to app bar and other UI polish. (#200) * Refactor Cayenne LPP parsing with error handling and logging - Added error handling and logging to the Cayenne LPP parsing methods to manage malformed data gracefully. - Improved the structure of the parsing logic for better readability and maintainability. - Updated the Contact model to include error handling during frame parsing. - Refactored Channels, Contacts, Map, and Neighbours screens to utilize a new AppBarTitle widget for consistent app bar design. - Enhanced the BatteryIndicator widget to display SNR information for direct repeaters. - Introduced SNRUi class for better management of SNR icon and text representation. - Improved error handling in PathTraceMap and Neighbours screens to log errors appropriately. * Fix trace route bytes generation logic in Contact model * Ignore advertisements from self in MeshCoreConnector * Refactor PathTraceData to use List<double> for snrData and adjust data mapping in PathTraceMapScreen * Add SNRIndicator to AppBar and refactor BatteryIndicator layout * Enhance path management dialog to display direct repeaters with color coding based on signal strength * Remove unused import from SNR indicator widget * Update lib/models/contact.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/connector/meshcore_connector.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/connector/meshcore_connector.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/screens/path_trace_map.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/widgets/battery_indicator.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/helpers/cayenne_lpp.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Refactor packet handling to skip only the RSSI byte for improved reliability * Add SNR indicator localization and update UI references for nearby repeaters * Handle loading state and error parsing in PathTraceMapScreen; update SNR indicator dialog content layout * Throw an exception for unsupported LPP types in CayenneLpp class * Refactor AppBarTitle widget to remove unused style parameter; update related screens to reflect changes Improve SNR handling by adding validation for spreading factor range in snrUiFromSNR function Update contact handling in MeshCoreConnector to fix variable naming and improve readability Stop parsing unsupported LPP types in CayenneLpp to avoid misalignment * Sort direct repeaters by last updated time and SNR; limit to top three for improved path management dialog * Prevent notifications for chat and sensor adverts without a valid path * Implement ranking system for direct repeaters based on SNR and recency; update related UI components to reflect changes * Refactor localization keys for "neighbors" terminology across multiple languages - Updated localization keys from "neighbours" to "neighbors" in the following files: - app_localizations_bg.dart - app_localizations_de.dart - app_localizations_en.dart - app_localizations_es.dart - app_localizations_fr.dart - app_localizations_it.dart - app_localizations_nl.dart - app_localizations_pl.dart - app_localizations_pt.dart - app_localizations_ru.dart - app_localizations_sk.dart - app_localizations_sl.dart - app_localizations_sv.dart - app_localizations_uk.dart - app_localizations_zh.dart - Updated corresponding ARB files to reflect the changes in keys. - Renamed the NeighboursScreen to NeighborsScreen in the chat and repeater hub screens for consistency. * Adjust ranking calculation for direct repeaters by adding offset to SNR for improved accuracy * Fix typo in variable name for second direct repeater in path management dialog * Refactor ranking calculation for direct repeaters and update path handling in channel message screens * Refactor path handling in ChannelMessagePathScreen to improve logic for outgoing messages and channel messages * Fix AppBarTitle horizontal overflow with long titles (#187) * Initial plan * Wrap title Column in Expanded to prevent horizontal overflow in AppBarTitle Co-authored-by: wel97459 <12990640+wel97459@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: wel97459 <12990640+wel97459@users.noreply.github.com> * Refactor AppBarTitle widget to simplify Text widget initialization * Add "Show All Paths" feature to chat path management - Implemented localization for "Show All Paths" in multiple languages (DE, EN, ES, FR, IT, NL, PL, PT, RU, SK, SL, SV, UK, ZH). - Updated path management dialog to include a toggle for showing all paths. - Refactored path history display logic to conditionally show paths based on the toggle state. - Cleaned up unused print statements and improved code readability in path tracing and chat screens. * Refactor FeatureToggleRow visibility in chat and path management dialogs based on repeaters list * Remove unused import of 'dart:ffi' in path_trace_map.dart * Refactor repeater management logic and update UI state handling in chat and path management dialogs * Refactor RX data handling and improve repeater management logic in chat and path management dialogs --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: wel97459 <12990640+wel97459@users.noreply.github.com>
2026-02-20 20:27:38 -08:00
"snrIndicator_lastSeen": "Ostatnio widziany",
"snrIndicator_nearByRepeaters": "Nadajniki w pobliżu",
"chat_ShowAllPaths": "Pokaż wszystkie ścieżki",
"settings_clientRepeatSubtitle": "Pozwól temu urządzeniu powtarzać pakiety danych dla innych urządzeń.",
"settings_clientRepeat": "Powtórzenie: Niezależne od sieci",
"settings_clientRepeatFreqWarning": "Powtórka poza siecią wymaga częstotliwości 433, 869 lub 918 MHz.",
"settings_aboutOpenMeteoAttribution": "Dane wysokościowe LOS: Open-Meteo (CC BY 4.0)",
"appSettings_unitsTitle": "Jednostki",
"appSettings_unitsMetric": "Metryczne (m / km)",
"appSettings_unitsImperial": "Imperialne (ft / mi)",
"map_lineOfSight": "Linia wzroku",
"map_losScreenTitle": "Linia wzroku",
"losSelectStartEnd": "Wybierz węzły początkowe i końcowe dla LOS.",
"losRunFailed": "Sprawdzenie pola widzenia nie powiodło się: {error}",
"@losRunFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"losClearAllPoints": "Wyczyść wszystkie punkty",
"losRunToViewElevationProfile": "Uruchom LOS, aby wyświetlić profil wysokości",
"losMenuTitle": "Menu LOS",
"losMenuSubtitle": "Stuknij węzły lub naciśnij i przytrzymaj mapę, aby uzyskać niestandardowe punkty",
"losShowDisplayNodes": "Pokaż węzły wyświetlające",
"losCustomPoints": "Punkty niestandardowe",
"losCustomPointLabel": "Niestandardowe {index}",
"@losCustomPointLabel": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"losPointA": "Punkt A",
"losPointB": "Punkt B",
"losAntennaA": "Antena A: {value} {unit}",
"@losAntennaA": {
"placeholders": {
"value": {
"type": "String"
},
"unit": {
"type": "String"
}
}
},
"losAntennaB": "Antena B: {value} {unit}",
"@losAntennaB": {
"placeholders": {
"value": {
"type": "String"
},
"unit": {
"type": "String"
}
}
},
"losRun": "Uruchom LOS-a",
"losNoElevationData": "Brak danych o wysokości",
"losProfileClear": "{distance} {distanceUnit}, czysty LOS, minimalny prześwit {clearance} {heightUnit}",
"@losProfileClear": {
"placeholders": {
"distance": {
"type": "String"
},
"distanceUnit": {
"type": "String"
},
"clearance": {
"type": "String"
},
"heightUnit": {
"type": "String"
}
}
},
"losProfileBlocked": "{distance} {distanceUnit}, zablokowane przez {obstruction} {heightUnit}",
"@losProfileBlocked": {
"placeholders": {
"distance": {
"type": "String"
},
"distanceUnit": {
"type": "String"
},
"obstruction": {
"type": "String"
},
"heightUnit": {
"type": "String"
}
}
},
"losStatusChecking": "LOS: sprawdzam...",
"losStatusNoData": "LOS: brak danych",
"losStatusSummary": "LOS: {clear}/{total} jasne, {blocked} zablokowane, {unknown} nieznane",
"@losStatusSummary": {
"placeholders": {
"clear": {
"type": "int"
},
"total": {
"type": "int"
},
"blocked": {
"type": "int"
},
"unknown": {
"type": "int"
}
}
},
"losErrorElevationUnavailable": "Dane dotyczące wysokości są niedostępne dla jednej lub większej liczby próbek.",
"losErrorInvalidInput": "Nieprawidłowe dane punktów/wysokości do obliczenia LOS.",
"losRenameCustomPoint": "Zmień nazwę punktu niestandardowego",
"losPointName": "Nazwa punktu",
"losShowPanelTooltip": "Pokaż panel LOS",
"losHidePanelTooltip": "Ukryj panel LOS",
"losElevationAttribution": "Dane dotyczące wysokości: Open-Meteo (CC BY 4.0)",
"losLegendRadioHorizon": "Horyzont radiowy",
"losLegendLosBeam": "Linia widoczności",
"losLegendTerrain": "Teren",
"losFrequencyLabel": "Częstotliwość",
"losFrequencyInfoTooltip": "Zobacz szczegóły obliczenia",
"losFrequencyDialogTitle": "Obliczanie horyzontu radiowego",
2026-02-23 19:29:36 -05:00
"losFrequencyDialogDescription": "Zaczynając od k={baselineK} przy {baselineFreq} MHz, obliczenia korygują współczynnik k dla bieżącego pasma {frequencyMHz} MHz, które definiuje zakrzywiony limit horyzontu radiowego.",
"@losFrequencyDialogDescription": {
"description": "Explain how the calculation uses the baseline frequency and derived k-factor.",
"placeholders": {
2026-02-23 18:55:43 -05:00
"baselineK": {
"type": "double"
},
"baselineFreq": {
"type": "double"
},
"frequencyMHz": {
"type": "double"
},
"kFactor": {
"type": "double"
}
}
},
"listFilter_removeFromFavorites": "Usuń z ulubionych",
"listFilter_addToFavorites": "Dodaj do ulubionych",
"listFilter_favorites": "Ulubione",
"@contacts_searchFavorites": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"@contacts_searchUsers": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"@contacts_searchRepeaters": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"@contacts_searchRoomServers": {
"placeholders": {
"number": {
"type": "int"
},
"str": {
"type": "String"
}
}
},
"contacts_unread": "Nieprzeczytane",
"contacts_searchContactsNoNumber": "Wyszukaj kontakty...",
"contacts_searchFavorites": "Wyszukaj {number}{str} ulubione...",
"contacts_searchRoomServers": "Wyszukaj {number}{str} serwerów Room...",
"contacts_searchUsers": "Wyszukaj {number}{str} Użytkowników...",
2026-03-23 18:47:18 +01:00
"contacts_searchRepeaters": "Wyszukaj {number}{str} przekaźników...",
"contactsSettings_title": "Ustawienia kontaktów",
"settings_contactSettingsSubtitle": "Ustawienia dotyczące sposobu dodawania kontaktów",
"contactsSettings_autoAddUsersSubtitle": "Pozwól towarzyszowi automatycznie dodawać znalezione użytkowników.",
2026-03-23 18:47:18 +01:00
"contactsSettings_autoAddRepeatersTitle": "Automatyczne dodawanie przekaźników",
"contactsSettings_autoAddRepeatersSubtitle": "Zezwól towarzyszowi na automatyczne dodawanie odkrytych przekaźników.",
"contactsSettings_autoAddRoomServersTitle": "Automatycznie dodaj serwery pokojowe",
"contactsSettings_autoAddUsersTitle": "Automatycznie dodaj użytkowników",
2026-02-18 20:02:20 +01:00
"settings_contactSettings": "Ustawienia kontaktów",
"contactsSettings_otherTitle": "Inne ustawienia związane z kontaktami",
"contactsSettings_autoAddTitle": "Automatyczne odnajdywanie",
"contactsSettings_autoAddRoomServersSubtitle": "Zezwól towarzyszowi na automatyczne dodawanie znalezionych serwerów pokojowych.",
"contactsSettings_autoAddSensorsTitle": "Automatycznie dodaj czujniki",
"discoveredContacts_searchHint": "Wyszukaj odkryte kontakty",
"discoveredContacts_contactAdded": "Kontakt dodany",
"discoveredContacts_addContact": "Dodaj kontakt",
"discoveredContacts_copyContact": "Kopiuj kontakt do schowka",
"contactsSettings_overwriteOldestTitle": "Nadpisz najstarszy",
"discoveredContacts_Title": "Odkryte Kontakty",
"contactsSettings_autoAddSensorsSubtitle": "Zezwól towarzyszowi na automatyczne dodawanie wykrytych czujników.",
"discoveredContacts_noMatching": "Brak pasujących kontaktów",
"discoveredContacts_deleteContact": "Usuń kontakt",
"contactsSettings_overwriteOldestSubtitle": "Gdy lista kontaktów jest pełna, najstarszy nieulubiony kontakt zostanie zastąpiony.",
"common_deleteAll": "Usuń wszystko",
"discoveredContacts_deleteContactAllContent": "Czy na pewno chcesz usunąć wszystkie znalezione kontakty?",
"discoveredContacts_deleteContactAll": "Usuń wszystkie odkryte kontakty",
2026-02-18 20:02:20 +01:00
"map_guessedLocation": "Przypuszczalna lokalizacja",
"map_showGuessedLocations": "Pokaż przypuszczalne lokalizacje węzłów",
2026-03-16 15:36:57 +01:00
"usbScreenSubtitle": "Wybierz wykryte urządzenie szeregowe i połącz się bezpośrednio ze swoim węzłem MeshCore.",
2026-03-07 01:16:04 -05:00
"usbScreenTitle": "Połącz przez USB",
"connectionChoiceUsbLabel": "USB",
"connectionChoiceBluetoothLabel": "Bluetooth",
"usbScreenStatus": "Wybierz urządzenie USB",
"usbScreenNote": "Port szeregowy USB jest aktywny na urządzeniach z systemem Android i platformach stacjonarnych, które go obsługują.",
"usbScreenEmptyState": "Nie znaleziono żadnych urządzeń USB. Podłącz jedno i zaktualizuj.",
"usbErrorPermissionDenied": "Zostało odrzucone żądanie dostępu przez USB.",
"usbErrorDeviceMissing": "Wybór urządzenia USB już nie jest dostępny.",
"usbErrorInvalidPort": "Wybierz prawidłowe urządzenie USB.",
"usbErrorBusy": "Kolejne żądanie połączenia przez USB jest już w trakcie realizacji.",
"usbErrorNotConnected": "Brak podłączonego urządzenia USB.",
"usbErrorOpenFailed": "Nie udało się otworzyć wybranego urządzenia USB.",
"usbErrorConnectFailed": "Nie udało się połączyć z wybranym urządzeniem USB.",
"usbErrorUnsupported": "Port szeregowy USB nie jest obsługiwany na tym urządzeniu.",
"usbErrorAlreadyActive": "Połączenie USB jest już aktywne.",
"usbErrorNoDeviceSelected": "Nie został wybrany żaden urządzenie USB.",
"usbErrorPortClosed": "Połączenie USB nie jest aktywne.",
"usbFallbackDeviceName": "Urządzenie do komunikacji przez sieć (seria)",
"@usbConnectionFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"usbStatus_searching": "Wyszukiwanie urządzeń USB...",
"usbStatus_connecting": "Połączenie z urządzeniem USB...",
"usbStatus_notConnected": "Wybierz urządzenie USB",
"usbConnectionFailed": "Błąd połączenia USB: {error}",
"usbErrorConnectTimedOut": "Połączenie nie zostało nawiązane. Upewnij się, że urządzenie posiada oprogramowanie \"USB Companion\".",
"@tcpStatus_connectingTo": {
"placeholders": {
"endpoint": {
"type": "String"
}
}
},
"@tcpConnectionFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"connectionChoiceTcpLabel": "TCP",
"tcpHostHint": "192.168.40.10",
"tcpScreenTitle": "Połącz się za pomocą protokołu TCP",
"tcpHostLabel": "Adres IP",
"tcpPortLabel": "Port",
"tcpPortHint": "5000",
"tcpStatus_notConnected": "Wprowadź adres URL i połącz",
"tcpStatus_connectingTo": "Połączenie z {endpoint}...",
"tcpErrorHostRequired": "Wymagana jest adresa IP.",
"tcpErrorPortInvalid": "Numer portu musi mieścić się w zakresie od 1 do 65535.",
2026-03-16 15:36:57 +01:00
"tcpErrorUnsupported": "Transport TCP nie jest obsługiwany na tej platformie.",
"tcpErrorTimedOut": "Połączenie TCP zakończyło się bez powodzenia.",
2026-03-12 23:22:30 -07:00
"tcpConnectionFailed": "Błąd połączenia TCP: {error}",
2026-02-18 20:02:20 +01:00
"map_showDiscoveryContacts": "Pokaż odkryte kontakty",
"map_setAsMyLocation": "Ustaw jako moją lokalizację",
"@path_routeWeight": {
"placeholders": {
"weight": {
"type": "String"
},
"max": {
"type": "String"
}
}
},
"settings_allowByContact": "Zezwalaj według flag kontaktowych",
"settings_allowAll": "Zezwalaj na wszystko",
"settings_telemetryLocationMode": "Tryb położenia telemetrycznego",
"settings_telemetryEnvironmentMode": "Tryb środowiska telemetrycznego",
"settings_advertLocation": "Lokalizacja reklamowa",
"settings_advertLocationSubtitle": "Uwzględnij lokalizację w ogłoszeniu",
"settings_denyAll": "Odmów wszystkim",
"settings_privacySubtitle": "Kontroluj jakie informacje są udostępniane.",
"settings_privacy": "Ustawienia prywatności",
"settings_privacySettingsDescription": "Wybierz jakie informacje urządzenie udostępni innym.",
"contact_info": "Informacje kontaktowe",
"settings_telemetryBaseMode": "Tryb podstawowy telemetrii",
"contact_teleBase": "Baza telemetryczna",
"contact_teleLoc": "Lokalizacja telemetryczna",
"contact_teleLocSubtitle": "Zezwalaj na udostępnianie danych lokalizacji",
"contact_teleEnv": "Środowisko telemetryczne",
"contact_teleEnvSubtitle": "Zezwalaj na udostępnianie danych czujników środowiskowych",
"contact_telemetry": "Telemetryka",
"contact_clearChat": "Wyczyść czat",
"contact_settings": "Ustawienia kontaktowe",
"contact_lastSeen": "Ostatnio widziany",
"contact_teleBaseSubtitle": "Pozwól na udostępnianie poziomu naładowania baterii i podstawowych danych telemetrycznych",
"@settings_multiAck": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"appSettings_initialRouteWeight": "Początkowa waga trasy",
"appSettings_maxRouteWeight": "Maksymalny dopuszczalny ciężar pojazdu",
"appSettings_initialRouteWeightSubtitle": "Początkowa waga dla nowych, odkrytych ścieżek",
"appSettings_maxRouteWeightSubtitle": "Maksymalna waga, jaką ścieżka może zgromadzić dzięki udanym dostawom.",
"appSettings_routeWeightSuccessIncrement": "Wzrost wagi sukcesu",
"appSettings_routeWeightSuccessIncrementSubtitle": "Waga dodana do ścieżki po pomyślnym dostarczeniu",
"appSettings_routeWeightFailureDecrement": "Zmniejszenie wagi kary",
"appSettings_routeWeightFailureDecrementSubtitle": "Waga usunięta z trasy po nieudanej dostawie",
"appSettings_maxMessageRetries": "Maksymalna liczba prób wysłania wiadomości",
"appSettings_maxMessageRetriesSubtitle": "Liczba prób ponownego wysłania wiadomości przed oznaczaniem jej jako nieudanej",
"path_routeWeight": "{weight}/{max}",
"settings_telemetryModeUpdated": "Tryb telemetryczny zaktualizowany",
"settings_multiAck": "Wiele potwierdzeń: {value}",
"map_showOverlaps": "Nakładające się klucze powtarzalne",
"map_runTraceWithReturnPath": "Wróć z powrotem tą samą ścieżką"
2026-02-23 19:29:36 -05:00
}