feat(protobufs): sync to firmware-current and consume workspace package (#1097)
* feat(protobufs): sync to firmware-current and consume workspace package Sync the vendored .proto sources to firmware-current (v2.7.25+48), regenerate the v2 TS bindings, and consume the workspace @meshtastic/protobufs (workspace:*) in place of the stale JSR 2.7.20 — finishing the monorepo migration (core was already workspace:*). Includes the one required breaking-change fix: admin nodedb_reset changed int32 to bool, so resetNodes() now sends value: true. * build(protobufs): vendor generated bindings for workspace consumers The package is consumed via workspace:* — its exports point at the TS source, which imports ./dist/meshtastic/*_pb.ts — so the generated output must exist at build time. CI builds web/core with no codegen step and the runners have no buf CLI, so the bindings are vendored here (kept gitignored; lint/format skip them). Regenerate with: pnpm --filter @meshtastic/protobufs gen * fix(protobufs): clean script removes the actual generated output dir buf writes bindings to packages/ts/dist, but clean was removing a non-existent root dist — so it never cleaned stale output. Addresses Copilot review feedback. * refactor: move web app packages/web -> apps/web Aligns the web app with the apps/web layout (matching the Vercel web-test Root Directory and the SDK-migration direction). Pure directory move plus root config: pnpm-workspace (adds apps/*), vitest projects, root tsconfig reference, and the pr/release-web/nightly workflows. vercel.json moved with the app. Build + 36 validation tests green. * feat: config fields, module pages, key verification, telemetry capture Incorporates the firmware-current feature work onto the protobuf foundation: new config fields (Display message bubbles; LoRa fem_lna_mode + serial_hal_only; Telemetry air_quality_screen_enabled); 4 new ModuleConfig pages (TrafficManagement, StatusMessage, TAK, RemoteHardware); the manual Key Verification flow (sendKeyVerification + ClientNotificationDialog stages + Verify Key button); live telemetry capture (nodeDB addDeviceMetrics) and admin hardening (toggleMutedNode, graceful PortNum default); plus the sdk-preview ConfigEditor demo and store/config tests. Build + lint + format + 131 tests green. * chore: drop #1062 (unsaved-change-detection) to match upstream revert #1062 was merged to main by accident (per @danditomaso) and is being reverted. Reverse-applied its diff here via 3-way so #1097 stays consistent with where main is headed, while keeping the feature changes layered on the same files (deviceStore/changeRegistry). Build + 131 tests + lint + format green. * fix(nodes): clean up SNR display in node table and map popup SNR is a ratio measured in dB, not dBm (which is absolute power); the node table and map popup both mislabeled it and crammed three values together: '0dBm/50%/50raw'. The trailing '%/raw' pair was the same heuristic ((snr+10)*5) shown twice — once clamped, once not. Render SNR in dB rounded to one decimal, color-coded by a 0-100% signal-quality heuristic (green/yellow/red), with the quality percentage as a muted secondary. Drop the redundant raw value. Adds unit.db; this matches the existing SNRTooltip, which already renders dB.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"page": {
|
||||
"sectionLabel": "Kanały",
|
||||
"channelName": "Kanał: {{channelName}}",
|
||||
"broadcastLabel": "Podstawowy",
|
||||
"channelIndex": "Kan. {{index}}",
|
||||
"import": "Import",
|
||||
"export": "Eksport"
|
||||
},
|
||||
"validation": {
|
||||
"pskInvalid": "Musisz wprowadzić prawidłowy {{bits}} bitowy klucz."
|
||||
},
|
||||
"settings": {
|
||||
"label": "Ustawienia kanału",
|
||||
"description": "Kryptografia, MQTT i inne ustawienia"
|
||||
},
|
||||
"role": {
|
||||
"label": "Rola",
|
||||
"description": "Telemetria urządzenia jest tylko wysyłania przez GŁOWNY. Tylko jeden GŁOWNY jest dozwolony",
|
||||
"options": {
|
||||
"primary": "GŁOWNY",
|
||||
"disabled": "WYŁĄCZONY",
|
||||
"secondary": "DODATKOWY"
|
||||
}
|
||||
},
|
||||
"psk": {
|
||||
"label": "Klucz współdzielony",
|
||||
"description": "Wspierane długości klucza: 256, 128, 8, pusty (0) bitów",
|
||||
"generate": "Wygeneruj"
|
||||
},
|
||||
"name": {
|
||||
"label": "Nazwa",
|
||||
"description": "Unikalna nazwa kanału mniejsza niż 12 bajtów, pusty jako domyślny"
|
||||
},
|
||||
"uplinkEnabled": {
|
||||
"label": "Wysył włączony",
|
||||
"description": "Wysyłaj wiadomości z lokalnej sieci do MQTT"
|
||||
},
|
||||
"downlinkEnabled": {
|
||||
"label": "Odbiór włączony",
|
||||
"description": "Wysyłaj wiadomości z MQTT to lokalnej sieci"
|
||||
},
|
||||
"positionPrecision": {
|
||||
"label": "Lokalizacja",
|
||||
"description": "Precyzja lokalizacji, która jest wysyłana na kanale. Może zostać wyłączona.",
|
||||
"options": {
|
||||
"none": "Nie udostępniaj lokalizacji",
|
||||
"precise": "Precyzyjna lokalizacja",
|
||||
"metric_km23": "W zasięgu 23 kilometrów",
|
||||
"metric_km12": "W zasięgu 12 kilometrów",
|
||||
"metric_km5_8": "W zasięgu 5,8 kilometrów",
|
||||
"metric_km2_9": "W zasięgu 2,9 kilometrów",
|
||||
"metric_km1_5": "W zasięgu 1,5 kilometra",
|
||||
"metric_m700": "W zasięgu 700 metrów",
|
||||
"metric_m350": "W zasięgu 350 metrów",
|
||||
"metric_m200": "W zasięgu 200 metrów",
|
||||
"metric_m90": "W zasięgu 90 metrów",
|
||||
"metric_m50": "W zasięgu 50 metrów",
|
||||
"imperial_mi15": "W zasięgu 15 mil",
|
||||
"imperial_mi7_3": "W zasięgu 7,3 mil",
|
||||
"imperial_mi3_6": "W zasięgu 3,6 mil",
|
||||
"imperial_mi1_8": "W zasięgu 1,8 mil",
|
||||
"imperial_mi0_9": "W zasięgu 0,9 mil",
|
||||
"imperial_mi0_5": "W zasięgu 0,5 mili",
|
||||
"imperial_mi0_2": "W zasięgu 0,2 mil",
|
||||
"imperial_ft600": "W zasięgu 600 stóp",
|
||||
"imperial_ft300": "W zasięgu 300 stóp",
|
||||
"imperial_ft150": "W zasięgu 150 stóp"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"emptyState": "No results found.",
|
||||
"page": {
|
||||
"title": "Command Menu"
|
||||
},
|
||||
"pinGroup": {
|
||||
"label": "Pin command group"
|
||||
},
|
||||
"unpinGroup": {
|
||||
"label": "Unpin command group"
|
||||
},
|
||||
"goto": {
|
||||
"label": "Goto",
|
||||
"command": {
|
||||
"messages": "Wiadomości",
|
||||
"map": "Mapa",
|
||||
"config": "Config",
|
||||
"nodes": "Nodes"
|
||||
}
|
||||
},
|
||||
"manage": {
|
||||
"label": "Manage",
|
||||
"command": {
|
||||
"switchNode": "Switch Node",
|
||||
"connectNewNode": "Connect New Node"
|
||||
}
|
||||
},
|
||||
"contextual": {
|
||||
"label": "Contextual",
|
||||
"command": {
|
||||
"qrCode": "QR Code",
|
||||
"qrGenerator": "Generator",
|
||||
"qrImport": "Import",
|
||||
"scheduleShutdown": "Schedule Shutdown",
|
||||
"scheduleReboot": "Reboot Device",
|
||||
"resetNodeDb": "Reset Node DB",
|
||||
"dfuMode": "Wejdź w tryb DFU",
|
||||
"factoryResetDevice": "Factory Reset Device",
|
||||
"factoryResetConfig": "Factory Reset Config",
|
||||
"disconnect": "Rozłącz"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"label": "Debug",
|
||||
"command": {
|
||||
"reconfigure": "Reconfigure",
|
||||
"clearAllStoredMessages": "Clear All Stored Message",
|
||||
"clearAllStores": "Clear All Local Storage"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
{
|
||||
"button": {
|
||||
"apply": "Zastosuj",
|
||||
"addConnection": "Add Connection",
|
||||
"saveConnection": "Save connection",
|
||||
"backupKey": "Backup Key",
|
||||
"cancel": "Anuluj",
|
||||
"connect": "Połącz",
|
||||
"clearMessages": "Clear Messages",
|
||||
"close": "Zamknij",
|
||||
"confirm": "Confirm",
|
||||
"delete": "Usuń",
|
||||
"dismiss": "Zamknij",
|
||||
"download": "Download",
|
||||
"disconnect": "Rozłącz",
|
||||
"export": "Export",
|
||||
"generate": "Wygeneruj",
|
||||
"regenerate": "Regenerate",
|
||||
"import": "Import",
|
||||
"message": "Wiadomość",
|
||||
"now": "Now",
|
||||
"ok": "OK",
|
||||
"print": "Print",
|
||||
"remove": "Usuń",
|
||||
"requestNewKeys": "Request New Keys",
|
||||
"requestPosition": "Poproś o pozycję",
|
||||
"reset": "Zresetuj",
|
||||
"retry": "Retry",
|
||||
"save": "Zapisz",
|
||||
"setDefault": "Set as default",
|
||||
"unsetDefault": "Unset default",
|
||||
"scanQr": "Scan QR Code",
|
||||
"traceRoute": "Trace Route",
|
||||
"submit": "Submit"
|
||||
},
|
||||
"app": {
|
||||
"title": "Meshtastic",
|
||||
"fullTitle": "Meshtastic Web Client"
|
||||
},
|
||||
"loading": "Loading...",
|
||||
"unit": {
|
||||
"cps": "CPS",
|
||||
"dbm": "dBm",
|
||||
"hertz": "Hz",
|
||||
"hop": {
|
||||
"one": "Hop",
|
||||
"plural": "Hops"
|
||||
},
|
||||
"hopsAway": {
|
||||
"one": "{{count}} hop away",
|
||||
"plural": "{{count}} hops away",
|
||||
"unknown": "Unknown hops away"
|
||||
},
|
||||
"megahertz": "MHz",
|
||||
"kilohertz": "kHz",
|
||||
"raw": "raw",
|
||||
"meter": {
|
||||
"one": "Meter",
|
||||
"plural": "Meters",
|
||||
"suffix": "m"
|
||||
},
|
||||
"kilometer": {
|
||||
"one": "Kilometer",
|
||||
"plural": "Kilometers",
|
||||
"suffix": "km"
|
||||
},
|
||||
"minute": {
|
||||
"one": "Minute",
|
||||
"plural": "Minutes"
|
||||
},
|
||||
"hour": {
|
||||
"one": "Hour",
|
||||
"plural": "Hours"
|
||||
},
|
||||
"millisecond": {
|
||||
"one": "Millisecond",
|
||||
"plural": "Milliseconds",
|
||||
"suffix": "ms"
|
||||
},
|
||||
"second": {
|
||||
"one": "Second",
|
||||
"plural": "Seconds"
|
||||
},
|
||||
"day": {
|
||||
"one": "Day",
|
||||
"plural": "Days",
|
||||
"today": "Today",
|
||||
"yesterday": "Yesterday"
|
||||
},
|
||||
"month": {
|
||||
"one": "Month",
|
||||
"plural": "Months"
|
||||
},
|
||||
"year": {
|
||||
"one": "Year",
|
||||
"plural": "Years"
|
||||
},
|
||||
"snr": "SNR:",
|
||||
"volt": {
|
||||
"one": "Volt",
|
||||
"plural": "Volts",
|
||||
"suffix": "V"
|
||||
},
|
||||
"record": {
|
||||
"one": "Rekordy",
|
||||
"plural": "Rekordy"
|
||||
},
|
||||
"degree": {
|
||||
"one": "Degree",
|
||||
"plural": "Degrees",
|
||||
"suffix": "°"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"0bit": "Pusty",
|
||||
"8bit": "8-bitowy",
|
||||
"128bit": "128-bitowy",
|
||||
"256bit": "256-bitowy"
|
||||
},
|
||||
"unknown": {
|
||||
"longName": "Nieznany",
|
||||
"shortName": "UNK",
|
||||
"notAvailable": "N/A",
|
||||
"num": "??"
|
||||
},
|
||||
"nodeUnknownPrefix": "!",
|
||||
"unset": "UNSET",
|
||||
"fallbackName": "Meshtastic {{last4}}",
|
||||
"node": "Węzeł",
|
||||
"formValidation": {
|
||||
"unsavedChanges": "Niezapisane zmiany",
|
||||
"tooBig": {
|
||||
"string": "Too long, expected less than or equal to {{maximum}} characters.",
|
||||
"number": "Too big, expected a number smaller than or equal to {{maximum}}.",
|
||||
"bytes": "Too big, expected less than or equal to {{params.maximum}} bytes."
|
||||
},
|
||||
"tooSmall": {
|
||||
"string": "Too short, expected more than or equal to {{minimum}} characters.",
|
||||
"number": "Too small, expected a number larger than or equal to {{minimum}}."
|
||||
},
|
||||
"invalidFormat": {
|
||||
"ipv4": "Nieprawidłowy format, oczekiwany adres IPv4.",
|
||||
"key": "Invalid format, expected a Base64 encoded pre-shared key (PSK)."
|
||||
},
|
||||
"invalidType": {
|
||||
"number": "Nieprawidłowy typ, oczekiwana liczba."
|
||||
},
|
||||
"pskLength": {
|
||||
"0bit": "Klucz musi być pusty.",
|
||||
"8bit": "Key is required to be an 8 bit pre-shared key (PSK).",
|
||||
"128bit": "Key is required to be a 128 bit pre-shared key (PSK).",
|
||||
"256bit": "Key is required to be a 256 bit pre-shared key (PSK)."
|
||||
},
|
||||
"required": {
|
||||
"generic": "To pole jest wymagane.",
|
||||
"managed": "Co najmniej jeden klucz administratora jest wymagany, jeśli węzeł jest zarządzany.",
|
||||
"key": "Klucz jest wymagany."
|
||||
},
|
||||
"invalidOverrideFreq": {
|
||||
"number": "Invalid format, expected a value in the range 410-930 MHz or 0 (use default)."
|
||||
}
|
||||
},
|
||||
"yes": "Yes",
|
||||
"no": "No"
|
||||
}
|
||||
@@ -0,0 +1,458 @@
|
||||
{
|
||||
"page": {
|
||||
"title": "Ustawienia",
|
||||
"tabUser": "Użytkownik",
|
||||
"tabChannels": "Kanały",
|
||||
"tabBluetooth": "Bluetooth",
|
||||
"tabDevice": "Urządzenie",
|
||||
"tabDisplay": "Wyświetlacz",
|
||||
"tabLora": "LoRa",
|
||||
"tabNetwork": "Sieć",
|
||||
"tabPosition": "Pozycjonowanie",
|
||||
"tabPower": "Zasilanie",
|
||||
"tabSecurity": "Bezpieczeństwo"
|
||||
},
|
||||
"sidebar": {
|
||||
"label": "Konfiguracja"
|
||||
},
|
||||
"device": {
|
||||
"title": "Ustawienia Urządzenia",
|
||||
"description": "Ustawienia urządzenia",
|
||||
"buttonPin": {
|
||||
"description": "Nadpisanie pinu przycisku",
|
||||
"label": "Pin przycisku"
|
||||
},
|
||||
"buzzerPin": {
|
||||
"description": "Nadpisanie pinu buzzera",
|
||||
"label": "Pin buzzera"
|
||||
},
|
||||
"disableTripleClick": {
|
||||
"description": "Wyłącz potrójne kliknięcie",
|
||||
"label": "Wyłącz potrójne kliknięcie"
|
||||
},
|
||||
"doubleTapAsButtonPress": {
|
||||
"description": "Traktuj podwójne dotknięcie jako naciśnięcie przycisku",
|
||||
"label": "Podwójne dotknięcie jako naciśnięcie przycisku"
|
||||
},
|
||||
"ledHeartbeatDisabled": {
|
||||
"description": "Wyłącz domyślne miganie diody LED",
|
||||
"label": "Pulsowanie diodą LED wyłączone"
|
||||
},
|
||||
"nodeInfoBroadcastInterval": {
|
||||
"description": "Jak często nadawać informacje o węźle",
|
||||
"label": "Interwał transmisji informacji o węźle"
|
||||
},
|
||||
"posixTimezone": {
|
||||
"description": "Strefa czasowa POSIX urządzenia",
|
||||
"label": "Strefa czasowa POSIX"
|
||||
},
|
||||
"rebroadcastMode": {
|
||||
"description": "Jak obsługiwać retransmisję",
|
||||
"label": "Tryb retransmisji"
|
||||
},
|
||||
"role": {
|
||||
"description": "Jaką rolę pełni urządzenie w sieci",
|
||||
"label": "Rola"
|
||||
}
|
||||
},
|
||||
"bluetooth": {
|
||||
"title": "Ustawienia Bluetooth",
|
||||
"description": "Ustawienia modułu Bluetooth",
|
||||
"note": "Uwaga: Niektóre urządzenia (ESP32) nie mogą używać jednocześnie Bluetooth i WiFi.",
|
||||
"enabled": {
|
||||
"description": "Włącz/wyłącz Bluetooth",
|
||||
"label": "Włączony"
|
||||
},
|
||||
"pairingMode": {
|
||||
"description": "Wybór trybu pinu",
|
||||
"label": "Tryb parowania"
|
||||
},
|
||||
"pin": {
|
||||
"description": "Pin do użycia podczas łączenia",
|
||||
"label": "Pin"
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"description": "Ustawienia ekranu urządzenia",
|
||||
"title": "Ustawienia ekranu",
|
||||
"headingBold": {
|
||||
"description": "Pogrubiony tekst nagłówka",
|
||||
"label": "Pogrubiony nagłówek"
|
||||
},
|
||||
"carouselDelay": {
|
||||
"description": "Jak szybko przechodzić przez okna",
|
||||
"label": "Opóźnienie karuzeli"
|
||||
},
|
||||
"compassNorthTop": {
|
||||
"description": "Przypnij północ na górę kompasu",
|
||||
"label": "Północ na górze kompasu"
|
||||
},
|
||||
"displayMode": {
|
||||
"description": "Wariant układu ekranu",
|
||||
"label": "Tryb wyświetlania"
|
||||
},
|
||||
"displayUnits": {
|
||||
"description": "Wyświetl jednostki metryczne lub imperialne",
|
||||
"label": "Jednostki wyświetlania"
|
||||
},
|
||||
"flipScreen": {
|
||||
"description": "Odwróć ekran o 180 stopni",
|
||||
"label": "Odwróć ekran"
|
||||
},
|
||||
"gpsDisplayUnits": {
|
||||
"description": "Format wyświetlania współrzędnych",
|
||||
"label": "Jednostki wyświetlania GPS"
|
||||
},
|
||||
"oledType": {
|
||||
"description": "Typ ekranu OLED podłączonego do urządzenia",
|
||||
"label": "Typ ekranu OLED"
|
||||
},
|
||||
"screenTimeout": {
|
||||
"description": "Wyłącz ekran po tym czasie",
|
||||
"label": "Wygaszenie ekranu"
|
||||
},
|
||||
"twelveHourClock": {
|
||||
"description": "Użyj 12-godzinnego formatu zegara",
|
||||
"label": "12-Godzinny Zegar"
|
||||
},
|
||||
"wakeOnTapOrMotion": {
|
||||
"description": "Obudź urządzenie przy dotknięciu lub ruchu",
|
||||
"label": "Wybudź przy dotknięciu lub ruchu"
|
||||
}
|
||||
},
|
||||
"lora": {
|
||||
"title": "Ustawienia sieci",
|
||||
"description": "Ustawienia sieci LoRa",
|
||||
"bandwidth": {
|
||||
"description": "Szerokość kanału w kHz",
|
||||
"label": "Pasmo"
|
||||
},
|
||||
"boostedRxGain": {
|
||||
"description": "Zwiększone wzmocnienie RX",
|
||||
"label": "Zwiększone wzmocnienie RX"
|
||||
},
|
||||
"codingRate": {
|
||||
"description": "mianownik tempa kodowania",
|
||||
"label": "Szybkość kodowania"
|
||||
},
|
||||
"frequencyOffset": {
|
||||
"description": "Przesunięcie częstotliwości w celu skorygowania błędów kalibracji kryształu",
|
||||
"label": "Przesunięcie częstotliwości"
|
||||
},
|
||||
"frequencySlot": {
|
||||
"description": "Numer kanału częstotliwości LoRa",
|
||||
"label": "Slot częstotliwości"
|
||||
},
|
||||
"hopLimit": {
|
||||
"description": "Maksymalna liczba przeskoków",
|
||||
"label": "Limit przeskoków"
|
||||
},
|
||||
"ignoreMqtt": {
|
||||
"description": "Nie przekazuj wiadomości MQTT przez sieć",
|
||||
"label": "Zignoruj MQTT"
|
||||
},
|
||||
"modemPreset": {
|
||||
"description": "Ustawienie modemu do użycia",
|
||||
"label": "Ustawienie modemu"
|
||||
},
|
||||
"okToMqtt": {
|
||||
"description": "Gdy ustawione na true, ta konfiguracja wskazuje, że użytkownik zatwierdza pakiet do przesłania do MQTT. Jeśli ustawione na false, zdalne węzły są proszone o nieprzekazywanie pakietów do MQTT",
|
||||
"label": "Zgoda na MQTT"
|
||||
},
|
||||
"overrideDutyCycle": {
|
||||
"description": "Nadpisz cykl pracy",
|
||||
"label": "Nadpisz cykl pracy"
|
||||
},
|
||||
"overrideFrequency": {
|
||||
"description": "Nadpisz częstotliwość",
|
||||
"label": "Nadpisz częstotliwość"
|
||||
},
|
||||
"region": {
|
||||
"description": "Ustawia region dla Twojego węzła",
|
||||
"label": "Region"
|
||||
},
|
||||
"spreadingFactor": {
|
||||
"description": "Wskazuje liczbę chirpów na symbol",
|
||||
"label": "Współczynnik rozszerzania"
|
||||
},
|
||||
"transmitEnabled": {
|
||||
"description": "Włącz/Wyłącz nadawanie (TX) z LoRa radio",
|
||||
"label": "Nadawanie włączone"
|
||||
},
|
||||
"transmitPower": {
|
||||
"description": "Maksymalna moc nadawania",
|
||||
"label": "Moc nadawania"
|
||||
},
|
||||
"usePreset": {
|
||||
"description": "Użyj predefiniowanych ustawień modemu",
|
||||
"label": "Użyj predefiniowanych ustawień"
|
||||
},
|
||||
"meshSettings": {
|
||||
"description": "Ustawienia sieci LoRa",
|
||||
"label": "Ustawienia sieci"
|
||||
},
|
||||
"waveformSettings": {
|
||||
"description": "Ustawienia dla LoRa waveform",
|
||||
"label": "Ustawienia przebiegu fali"
|
||||
},
|
||||
"radioSettings": {
|
||||
"label": "Ustawienia radia",
|
||||
"description": "Ustawienia dla radia LoRa"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"title": "Konfiguracja Wi-Fi",
|
||||
"description": "Konfiguracja radia WiFi",
|
||||
"note": "Uwaga: Niektóre urządzenia (ESP32) nie mogą używać jednocześnie Bluetooth i WiFi.",
|
||||
"addressMode": {
|
||||
"description": "Wybór przypisania adresu",
|
||||
"label": "Tryb adresu"
|
||||
},
|
||||
"dns": {
|
||||
"description": "Serwer DNS",
|
||||
"label": "DNS"
|
||||
},
|
||||
"ethernetEnabled": {
|
||||
"description": "Włącz lub wyłącz port Ethernet",
|
||||
"label": "Włączony"
|
||||
},
|
||||
"gateway": {
|
||||
"description": "Brama Domyślna",
|
||||
"label": "Brama domyślna"
|
||||
},
|
||||
"ip": {
|
||||
"description": "Adres IP",
|
||||
"label": "IP"
|
||||
},
|
||||
"psk": {
|
||||
"description": "Hasło do sieci",
|
||||
"label": "PSK"
|
||||
},
|
||||
"ssid": {
|
||||
"description": "Nazwa sieci",
|
||||
"label": "SSID"
|
||||
},
|
||||
"subnet": {
|
||||
"description": "Maska podsieci",
|
||||
"label": "Podsieć"
|
||||
},
|
||||
"wifiEnabled": {
|
||||
"description": "Włącz lub wyłącz radio Wi-Fi",
|
||||
"label": "Włączony"
|
||||
},
|
||||
"meshViaUdp": {
|
||||
"label": "Mesh przez UDP"
|
||||
},
|
||||
"ntpServer": {
|
||||
"label": "Serwer NTP"
|
||||
},
|
||||
"rsyslogServer": {
|
||||
"label": "Serwer rsyslog"
|
||||
},
|
||||
"ethernetConfigSettings": {
|
||||
"description": "Konfiguracja portu Ethernet",
|
||||
"label": "Konfiguracja Ethernet"
|
||||
},
|
||||
"ipConfigSettings": {
|
||||
"description": "Konfiguracja adresu IP",
|
||||
"label": "Konfiguracja IP"
|
||||
},
|
||||
"ntpConfigSettings": {
|
||||
"description": "Konfiguracja NTP",
|
||||
"label": "Konfiguracja NTP"
|
||||
},
|
||||
"rsyslogConfigSettings": {
|
||||
"description": "Konfiguracja Rsyslog",
|
||||
"label": "Konfiguracja Rsyslog"
|
||||
},
|
||||
"udpConfigSettings": {
|
||||
"description": "Konfiguracja UDP przez mesh ",
|
||||
"label": "Ustawienia UDP"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"title": "Ustawienia położenia",
|
||||
"description": "Ustawienia modułu położenia",
|
||||
"broadcastInterval": {
|
||||
"description": "Jak często Twoja pozycja jest wysyłana przez sieć",
|
||||
"label": "Interwał transmisji"
|
||||
},
|
||||
"enablePin": {
|
||||
"description": "Nadpisanie pinu włączającego moduł GPS",
|
||||
"label": "Pin włączający"
|
||||
},
|
||||
"fixedPosition": {
|
||||
"description": "Nie zgłaszaj położenia GPS, tylko ręcznie określoną.",
|
||||
"label": "Położenie stałe"
|
||||
},
|
||||
"gpsMode": {
|
||||
"description": "Skonfiguruj czy urządzenie GPS jest włączone, wyłączone, czy nie jest obecne",
|
||||
"label": "Tryb GPS"
|
||||
},
|
||||
"gpsUpdateInterval": {
|
||||
"description": "Jak często powinna być odczytana pozycja z GPS",
|
||||
"label": "Interwał aktualizacji pozycji GPS"
|
||||
},
|
||||
"positionFlags": {
|
||||
"description": "Opcjonalne pola dołączane podczas składania komunikatów o pozycji. Im więcej pól zostanie wybranych, tym większa wiadomość doprowadzi do dłuższego wykorzystania pasma i większego ryzyka utraty pakietów.",
|
||||
"label": "Flagi położenia"
|
||||
},
|
||||
"receivePin": {
|
||||
"description": "Nadpisanie pinu RX modułu GPS",
|
||||
"label": "Pin odbioru"
|
||||
},
|
||||
"smartPositionEnabled": {
|
||||
"description": "Wyślij pozycję tylko wtedy, gdy nastąpiła znacząca zmiana lokalizacji",
|
||||
"label": "Włącz inteligentną pozycję"
|
||||
},
|
||||
"smartPositionMinDistance": {
|
||||
"description": "Minimalna odległość (w metrach), którą należy pokonać przed wysłaniem aktualizacji pozycji",
|
||||
"label": "Minimalna odległość inteligentnego położenia"
|
||||
},
|
||||
"smartPositionMinInterval": {
|
||||
"description": "Minimalny interwał (w sekundach), który musi upłynąć przed wysłaniem aktualizacji pozycji",
|
||||
"label": "Minimalny interwał inteligentnej pozycji"
|
||||
},
|
||||
"transmitPin": {
|
||||
"description": "Nadpisanie pinu TX modułu GPS",
|
||||
"label": "Pin nadawania"
|
||||
},
|
||||
"intervalsSettings": {
|
||||
"description": "Jak często wysyłać aktualizację pozycji",
|
||||
"label": "Interwały"
|
||||
},
|
||||
"flags": {
|
||||
"placeholder": "Wybierz flagi pozycji...",
|
||||
"altitude": "Wysokość",
|
||||
"altitudeGeoidalSeparation": "Rozdzielenie geoidalne wysokości",
|
||||
"altitudeMsl": "Wysokość jest średnim poziomem morza",
|
||||
"dop": "Rozcieńczanie PDOP precyzji (DOP) używane domyślnie",
|
||||
"hdopVdop": "Jeśli ustawiono DOP, użyj wartości HDOP / VDOP zamiast PDOP",
|
||||
"numSatellites": "Liczba satelitów",
|
||||
"sequenceNumber": "Numer sekwencji",
|
||||
"timestamp": "Znacznik czasu",
|
||||
"unset": "Nieustawiony",
|
||||
"vehicleHeading": "Kurs pojazdu",
|
||||
"vehicleSpeed": "Prędkość pojazdu"
|
||||
}
|
||||
},
|
||||
"power": {
|
||||
"adcMultiplierOverride": {
|
||||
"description": "Używane do poprawiania odczytu napięcia baterii",
|
||||
"label": "Współczynnik nadpisania mnożnika ADC"
|
||||
},
|
||||
"ina219Address": {
|
||||
"description": "Adres monitora baterii INA219",
|
||||
"label": "Adres INA219"
|
||||
},
|
||||
"lightSleepDuration": {
|
||||
"description": "Jak długo urządzenie pozostanie w lekkim uśpieniu",
|
||||
"label": "Czas trwania lekkiego uśpienia"
|
||||
},
|
||||
"minimumWakeTime": {
|
||||
"description": "Minimalny czas, w którym urządzenie pozostanie wybudzone po otrzymaniu pakietu",
|
||||
"label": "Minimalny czas wybudzania"
|
||||
},
|
||||
"noConnectionBluetoothDisabled": {
|
||||
"description": "Jeśli urządzenie nie otrzyma połączenia Bluetooth, po tym czasie radio BLE zostanie wyłączone",
|
||||
"label": "Bluetooth wyłączony przy braku połączeń"
|
||||
},
|
||||
"powerSavingEnabled": {
|
||||
"description": "Wybierz, jeśli zasilane jest z źródła o niskim natężeniu (np. słonecznego), aby zminimalizować zużycie energii w miarę możliwości.",
|
||||
"label": "Włącz tryb oszczędzania energii"
|
||||
},
|
||||
"shutdownOnBatteryDelay": {
|
||||
"description": "Automatycznie zamknij węzeł po tym czasie, gdy jest na baterii, 0 dla bezterminowego",
|
||||
"label": "Opóźnienie wyłączenia na baterii"
|
||||
},
|
||||
"superDeepSleepDuration": {
|
||||
"description": "Jak długo urządzenie pozostanie w bardzo głębokim uśpieniu",
|
||||
"label": "Czas bardzo głębokiego uśpienia"
|
||||
},
|
||||
"powerConfigSettings": {
|
||||
"description": "Ustawienia modułu zasilania",
|
||||
"label": "Konfiguracja zarządzania energią"
|
||||
},
|
||||
"sleepSettings": {
|
||||
"description": "Ustawienia uśpienia modułu zasilania",
|
||||
"label": "Ustawienia uśpienia"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"description": "Ustawienia dla konfiguracji zabezpieczeń",
|
||||
"title": "Ustawienia bezpieczeństwa",
|
||||
"button_backupKey": "Kopia zapasowa klucza",
|
||||
"adminChannelEnabled": {
|
||||
"description": "Zezwalaj na kontrolę urządzenia przez niezabezpieczony kanał admina (stare)",
|
||||
"label": "Zezwalaj na kontrolę admina (stare)"
|
||||
},
|
||||
"enableDebugLogApi": {
|
||||
"description": "Wyjście logowania debugowania na żywo nad serwerem, widok i eksport logów urządzenia poprawionego pozycją przez Bluetooth",
|
||||
"label": "Włącz API logów debugowania"
|
||||
},
|
||||
"managed": {
|
||||
"description": "Jeśli włączone, opcje konfiguracji urządzenia można zmienić zdalnie tylko przez zdalny węzeł administracyjny za pomocą wiadomości administratora. Nie włączaj tej opcji, chyba że co najmniej jeden odpowiedni zdalny węzeł administracyjny został skonfigurowany, a klucz publiczny jest przechowywany w jednym z powyższych pól.",
|
||||
"label": "Zarządzane"
|
||||
},
|
||||
"privateKey": {
|
||||
"description": "Używane do tworzenia klucza współdzielonego ze zdalnym urządzeniem",
|
||||
"label": "Klucz prywatny"
|
||||
},
|
||||
"publicKey": {
|
||||
"description": "Wysyłane do innych węzłów w sieci, aby umożliwić im obliczenie wspólnego tajnego klucza",
|
||||
"label": "Klucz publiczny"
|
||||
},
|
||||
"primaryAdminKey": {
|
||||
"description": "Główny klucz publiczny autoryzowany do wysyłania wiadomości administratora do tego węzła",
|
||||
"label": "Główny klucz administratora"
|
||||
},
|
||||
"secondaryAdminKey": {
|
||||
"description": "Drugorzędny klucz publiczny autoryzowany do wysyłania wiadomości administratora do tego węzła",
|
||||
"label": "Drugorzędny klucz administracyjny"
|
||||
},
|
||||
"serialOutputEnabled": {
|
||||
"description": "Konsola szeregowa przez Stream API",
|
||||
"label": "Wyjście szeregowe włączone"
|
||||
},
|
||||
"tertiaryAdminKey": {
|
||||
"description": "Klucz publiczny trzeciorzędny autoryzowany do wysyłania wiadomości administratora do tego węzła",
|
||||
"label": "Trzeciorzędny klucz administracyjny"
|
||||
},
|
||||
"adminSettings": {
|
||||
"description": "Ustawienia dla administratora",
|
||||
"label": "Ustawienia administracyjne"
|
||||
},
|
||||
"loggingSettings": {
|
||||
"description": "Ustawienia logowania",
|
||||
"label": "Ustawienia logowania"
|
||||
}
|
||||
},
|
||||
"user": {
|
||||
"title": "User Settings",
|
||||
"description": "Configure your device name and identity settings",
|
||||
"longName": {
|
||||
"label": "Długa nazwa",
|
||||
"description": "Your full display name (1-40 characters)",
|
||||
"validation": {
|
||||
"min": "Long name must be at least 1 character",
|
||||
"max": "Long name must be at most 40 characters"
|
||||
}
|
||||
},
|
||||
"shortName": {
|
||||
"label": "Krótka nazwa",
|
||||
"description": "Your abbreviated name (2-4 characters)",
|
||||
"validation": {
|
||||
"min": "Short name must be at least 2 characters",
|
||||
"max": "Short name must be at most 4 characters"
|
||||
}
|
||||
},
|
||||
"isUnmessageable": {
|
||||
"label": "Unmessageable",
|
||||
"description": "Used to identify unmonitored or infrastructure nodes so that messaging is not available to nodes that will never respond."
|
||||
},
|
||||
"isLicensed": {
|
||||
"label": "Licensed amateur radio (HAM)",
|
||||
"description": "Enable if you are a licensed amateur radio operator, enabling this option disables encryption and is not compatible with the default Meshtastic network."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"page": {
|
||||
"title": "Connect to a Meshtastic device",
|
||||
"description": "Add a device connection via HTTP, Bluetooth, or Serial. Your saved connections will be saved in your browser."
|
||||
},
|
||||
"connectionType_ble": "BLE",
|
||||
"connectionType_serial": "Seryjny",
|
||||
"connectionType_network": "Sieć",
|
||||
"deleteConnection": "Delete connection",
|
||||
"areYouSure": "This will remove {{name}}. You canot undo this action.",
|
||||
"moreActions": "More actions",
|
||||
"noConnections": {
|
||||
"title": "No connections yet.",
|
||||
"description": "Create your first connection. It will connect immediately and be saved for later."
|
||||
},
|
||||
"lastConnectedAt": "Last connected: {{date}}",
|
||||
"neverConnected": "Never connected",
|
||||
"toasts": {
|
||||
"connected": "Połączony",
|
||||
"nowConnected": "{{name}} is now connected",
|
||||
"nowDisconnected": "{{name}} are now disconnecte",
|
||||
"disconnected": "Rozłączono",
|
||||
"failed": "Failed to connect",
|
||||
"checkConnetion": "Check your device or settings and try again",
|
||||
"defaultSet": "Default set",
|
||||
"defaultConnection": "Default connection is now {{nameisconnected}}",
|
||||
"deleted": "Deleted",
|
||||
"deletedByName": "{{name}} was removed",
|
||||
"pickConnectionAgain": "Could not connect. You may need to reselect the device/port.",
|
||||
"added": "Connection added",
|
||||
"savedByName": "{{name}} saved.",
|
||||
"savedCantConnect": "The connection was saved but could not connect."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,428 @@
|
||||
{
|
||||
"page": {
|
||||
"title": "Konfiguracja",
|
||||
"tabBluetooth": "Bluetooth",
|
||||
"tabDevice": "Urządzenie",
|
||||
"tabDisplay": "Wyświetlacz",
|
||||
"tabLora": "LoRa",
|
||||
"tabNetwork": "Sieć",
|
||||
"tabPosition": "Pozycjonowanie",
|
||||
"tabPower": "Zasilanie",
|
||||
"tabSecurity": "Bezpieczeństwo"
|
||||
},
|
||||
"sidebar": {
|
||||
"label": "Moduły"
|
||||
},
|
||||
"device": {
|
||||
"title": "Ustawienia Urządzenia",
|
||||
"description": "Settings for the device",
|
||||
"buttonPin": {
|
||||
"description": "Button pin override",
|
||||
"label": "Button Pin"
|
||||
},
|
||||
"buzzerPin": {
|
||||
"description": "Buzzer pin override",
|
||||
"label": "Buzzer Pin"
|
||||
},
|
||||
"disableTripleClick": {
|
||||
"description": "Disable triple click",
|
||||
"label": "Disable Triple Click"
|
||||
},
|
||||
"doubleTapAsButtonPress": {
|
||||
"description": "Treat double tap as button press",
|
||||
"label": "Double Tap as Button Press"
|
||||
},
|
||||
"ledHeartbeatDisabled": {
|
||||
"description": "Disable default blinking LED",
|
||||
"label": "LED Heartbeat Disabled"
|
||||
},
|
||||
"nodeInfoBroadcastInterval": {
|
||||
"description": "How often to broadcast node info",
|
||||
"label": "Node Info Broadcast Interval"
|
||||
},
|
||||
"posixTimezone": {
|
||||
"description": "The POSIX timezone string for the device",
|
||||
"label": "POSIX Timezone"
|
||||
},
|
||||
"rebroadcastMode": {
|
||||
"description": "How to handle rebroadcasting",
|
||||
"label": "Rebroadcast Mode"
|
||||
},
|
||||
"role": {
|
||||
"description": "What role the device performs on the mesh",
|
||||
"label": "Rola"
|
||||
}
|
||||
},
|
||||
"bluetooth": {
|
||||
"title": "Ustawienia Bluetooth",
|
||||
"description": "Settings for the Bluetooth module",
|
||||
"note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
|
||||
"enabled": {
|
||||
"description": "Enable or disable Bluetooth",
|
||||
"label": "Włączony"
|
||||
},
|
||||
"pairingMode": {
|
||||
"description": "Pin selection behaviour.",
|
||||
"label": "Tryb parowania"
|
||||
},
|
||||
"pin": {
|
||||
"description": "Pin to use when pairing",
|
||||
"label": "Pin"
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"description": "Settings for the device display",
|
||||
"title": "Display Settings",
|
||||
"headingBold": {
|
||||
"description": "Bolden the heading text",
|
||||
"label": "Bold Heading"
|
||||
},
|
||||
"carouselDelay": {
|
||||
"description": "How fast to cycle through windows",
|
||||
"label": "Carousel Delay"
|
||||
},
|
||||
"compassNorthTop": {
|
||||
"description": "Fix north to the top of compass",
|
||||
"label": "Compass North Top"
|
||||
},
|
||||
"displayMode": {
|
||||
"description": "Screen layout variant",
|
||||
"label": "Display Mode"
|
||||
},
|
||||
"displayUnits": {
|
||||
"description": "Display metric or imperial units",
|
||||
"label": "Display Units"
|
||||
},
|
||||
"flipScreen": {
|
||||
"description": "Flip display 180 degrees",
|
||||
"label": "Flip Screen"
|
||||
},
|
||||
"gpsDisplayUnits": {
|
||||
"description": "Coordinate display format",
|
||||
"label": "GPS Display Units"
|
||||
},
|
||||
"oledType": {
|
||||
"description": "Type of OLED screen attached to the device",
|
||||
"label": "OLED Type"
|
||||
},
|
||||
"screenTimeout": {
|
||||
"description": "Turn off the display after this long",
|
||||
"label": "Screen Timeout"
|
||||
},
|
||||
"twelveHourClock": {
|
||||
"description": "Use 12-hour clock format",
|
||||
"label": "12-Hour Clock"
|
||||
},
|
||||
"wakeOnTapOrMotion": {
|
||||
"description": "Wake the device on tap or motion",
|
||||
"label": "Wake on Tap or Motion"
|
||||
}
|
||||
},
|
||||
"lora": {
|
||||
"title": "Mesh Settings",
|
||||
"description": "Settings for the LoRa mesh",
|
||||
"bandwidth": {
|
||||
"description": "Channel bandwidth in kHz",
|
||||
"label": "Bandwidth"
|
||||
},
|
||||
"boostedRxGain": {
|
||||
"description": "Boosted RX gain",
|
||||
"label": "Boosted RX Gain"
|
||||
},
|
||||
"codingRate": {
|
||||
"description": "The denominator of the coding rate",
|
||||
"label": "Coding Rate"
|
||||
},
|
||||
"frequencyOffset": {
|
||||
"description": "Frequency offset to correct for crystal calibration errors",
|
||||
"label": "Frequency Offset"
|
||||
},
|
||||
"frequencySlot": {
|
||||
"description": "LoRa frequency channel number",
|
||||
"label": "Frequency Slot"
|
||||
},
|
||||
"hopLimit": {
|
||||
"description": "Maximum number of hops",
|
||||
"label": "Hop Limit"
|
||||
},
|
||||
"ignoreMqtt": {
|
||||
"description": "Don't forward MQTT messages over the mesh",
|
||||
"label": "Ignore MQTT"
|
||||
},
|
||||
"modemPreset": {
|
||||
"description": "Modem preset to use",
|
||||
"label": "Modem Preset"
|
||||
},
|
||||
"okToMqtt": {
|
||||
"description": "When set to true, this configuration indicates that the user approves the packet to be uploaded to MQTT. If set to false, remote nodes are requested not to forward packets to MQTT",
|
||||
"label": "OK to MQTT"
|
||||
},
|
||||
"overrideDutyCycle": {
|
||||
"description": "Override Duty Cycle",
|
||||
"label": "Override Duty Cycle"
|
||||
},
|
||||
"overrideFrequency": {
|
||||
"description": "Override frequency",
|
||||
"label": "Override Frequency"
|
||||
},
|
||||
"region": {
|
||||
"description": "Sets the region for your node",
|
||||
"label": "Region"
|
||||
},
|
||||
"spreadingFactor": {
|
||||
"description": "Indicates the number of chirps per symbol",
|
||||
"label": "Spreading Factor"
|
||||
},
|
||||
"transmitEnabled": {
|
||||
"description": "Enable/Disable transmit (TX) from the LoRa radio",
|
||||
"label": "Transmit Enabled"
|
||||
},
|
||||
"transmitPower": {
|
||||
"description": "Max transmit power",
|
||||
"label": "Transmit Power"
|
||||
},
|
||||
"usePreset": {
|
||||
"description": "Use one of the predefined modem presets",
|
||||
"label": "Use Preset"
|
||||
},
|
||||
"meshSettings": {
|
||||
"description": "Settings for the LoRa mesh",
|
||||
"label": "Mesh Settings"
|
||||
},
|
||||
"waveformSettings": {
|
||||
"description": "Settings for the LoRa waveform",
|
||||
"label": "Waveform Settings"
|
||||
},
|
||||
"radioSettings": {
|
||||
"label": "Ustawienia radia",
|
||||
"description": "Settings for the LoRa radio"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"title": "WiFi Config",
|
||||
"description": "WiFi radio configuration",
|
||||
"note": "Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
|
||||
"addressMode": {
|
||||
"description": "Address assignment selection",
|
||||
"label": "Address Mode"
|
||||
},
|
||||
"dns": {
|
||||
"description": "DNS Server",
|
||||
"label": "DNS"
|
||||
},
|
||||
"ethernetEnabled": {
|
||||
"description": "Enable or disable the Ethernet port",
|
||||
"label": "Włączony"
|
||||
},
|
||||
"gateway": {
|
||||
"description": "Default Gateway",
|
||||
"label": "Brama domyślna"
|
||||
},
|
||||
"ip": {
|
||||
"description": "IP Address",
|
||||
"label": "IP"
|
||||
},
|
||||
"psk": {
|
||||
"description": "Network password",
|
||||
"label": "PSK"
|
||||
},
|
||||
"ssid": {
|
||||
"description": "Network name",
|
||||
"label": "SSID"
|
||||
},
|
||||
"subnet": {
|
||||
"description": "Subnet Mask",
|
||||
"label": "Subnet"
|
||||
},
|
||||
"wifiEnabled": {
|
||||
"description": "Enable or disable the WiFi radio",
|
||||
"label": "Włączony"
|
||||
},
|
||||
"meshViaUdp": {
|
||||
"label": "Mesh via UDP"
|
||||
},
|
||||
"ntpServer": {
|
||||
"label": "NTP Server"
|
||||
},
|
||||
"rsyslogServer": {
|
||||
"label": "Rsyslog Server"
|
||||
},
|
||||
"ethernetConfigSettings": {
|
||||
"description": "Ethernet port configuration",
|
||||
"label": "Ethernet Config"
|
||||
},
|
||||
"ipConfigSettings": {
|
||||
"description": "IP configuration",
|
||||
"label": "IP Config"
|
||||
},
|
||||
"ntpConfigSettings": {
|
||||
"description": "NTP configuration",
|
||||
"label": "NTP Config"
|
||||
},
|
||||
"rsyslogConfigSettings": {
|
||||
"description": "Rsyslog configuration",
|
||||
"label": "Rsyslog Config"
|
||||
},
|
||||
"udpConfigSettings": {
|
||||
"description": "UDP over Mesh configuration",
|
||||
"label": "Ustawienia UDP"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"title": "Position Settings",
|
||||
"description": "Settings for the position module",
|
||||
"broadcastInterval": {
|
||||
"description": "How often your position is sent out over the mesh",
|
||||
"label": "Broadcast Interval"
|
||||
},
|
||||
"enablePin": {
|
||||
"description": "GPS module enable pin override",
|
||||
"label": "Enable Pin"
|
||||
},
|
||||
"fixedPosition": {
|
||||
"description": "Don't report GPS position, but a manually-specified one",
|
||||
"label": "Fixed Position"
|
||||
},
|
||||
"gpsMode": {
|
||||
"description": "Configure whether device GPS is Enabled, Disabled, or Not Present",
|
||||
"label": "GPS Mode"
|
||||
},
|
||||
"gpsUpdateInterval": {
|
||||
"description": "How often a GPS fix should be acquired",
|
||||
"label": "GPS Update Interval"
|
||||
},
|
||||
"positionFlags": {
|
||||
"description": "Optional fields to include when assembling position messages. The more fields are selected, the larger the message will be leading to longer airtime usage and a higher risk of packet loss.",
|
||||
"label": "Position Flags"
|
||||
},
|
||||
"receivePin": {
|
||||
"description": "GPS module RX pin override",
|
||||
"label": "Receive Pin"
|
||||
},
|
||||
"smartPositionEnabled": {
|
||||
"description": "Only send position when there has been a meaningful change in location",
|
||||
"label": "Enable Smart Position"
|
||||
},
|
||||
"smartPositionMinDistance": {
|
||||
"description": "Minimum distance (in meters) that must be traveled before a position update is sent",
|
||||
"label": "Smart Position Minimum Distance"
|
||||
},
|
||||
"smartPositionMinInterval": {
|
||||
"description": "Minimum interval (in seconds) that must pass before a position update is sent",
|
||||
"label": "Smart Position Minimum Interval"
|
||||
},
|
||||
"transmitPin": {
|
||||
"description": "GPS module TX pin override",
|
||||
"label": "Transmit Pin"
|
||||
},
|
||||
"intervalsSettings": {
|
||||
"description": "How often to send position updates",
|
||||
"label": "Intervals"
|
||||
},
|
||||
"flags": {
|
||||
"placeholder": "Select position flags...",
|
||||
"altitude": "Altitude",
|
||||
"altitudeGeoidalSeparation": "Altitude Geoidal Separation",
|
||||
"altitudeMsl": "Altitude is Mean Sea Level",
|
||||
"dop": "Dilution of precision (DOP) PDOP used by default",
|
||||
"hdopVdop": "If DOP is set, use HDOP / VDOP values instead of PDOP",
|
||||
"numSatellites": "Number of satellites",
|
||||
"sequenceNumber": "Sequence number",
|
||||
"timestamp": "Znacznik czasu",
|
||||
"unset": "Nieustawiony",
|
||||
"vehicleHeading": "Vehicle heading",
|
||||
"vehicleSpeed": "Vehicle speed"
|
||||
}
|
||||
},
|
||||
"power": {
|
||||
"adcMultiplierOverride": {
|
||||
"description": "Used for tweaking battery voltage reading",
|
||||
"label": "ADC Multiplier Override ratio"
|
||||
},
|
||||
"ina219Address": {
|
||||
"description": "Address of the INA219 battery monitor",
|
||||
"label": "INA219 Address"
|
||||
},
|
||||
"lightSleepDuration": {
|
||||
"description": "How long the device will be in light sleep for",
|
||||
"label": "Light Sleep Duration"
|
||||
},
|
||||
"minimumWakeTime": {
|
||||
"description": "Minimum amount of time the device will stay awake for after receiving a packet",
|
||||
"label": "Minimum Wake Time"
|
||||
},
|
||||
"noConnectionBluetoothDisabled": {
|
||||
"description": "If the device does not receive a Bluetooth connection, the BLE radio will be disabled after this long",
|
||||
"label": "No Connection Bluetooth Disabled"
|
||||
},
|
||||
"powerSavingEnabled": {
|
||||
"description": "Select if powered from a low-current source (i.e. solar), to minimize power consumption as much as possible.",
|
||||
"label": "Enable power saving mode"
|
||||
},
|
||||
"shutdownOnBatteryDelay": {
|
||||
"description": "Automatically shutdown node after this long when on battery, 0 for indefinite",
|
||||
"label": "Shutdown on battery delay"
|
||||
},
|
||||
"superDeepSleepDuration": {
|
||||
"description": "How long the device will be in super deep sleep for",
|
||||
"label": "Super Deep Sleep Duration"
|
||||
},
|
||||
"powerConfigSettings": {
|
||||
"description": "Settings for the power module",
|
||||
"label": "Konfiguracja zarządzania energią"
|
||||
},
|
||||
"sleepSettings": {
|
||||
"description": "Sleep settings for the power module",
|
||||
"label": "Sleep Settings"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"description": "Settings for the Security configuration",
|
||||
"title": "Security Settings",
|
||||
"button_backupKey": "Backup Key",
|
||||
"adminChannelEnabled": {
|
||||
"description": "Allow incoming device control over the insecure legacy admin channel",
|
||||
"label": "Allow Legacy Admin"
|
||||
},
|
||||
"enableDebugLogApi": {
|
||||
"description": "Output live debug logging over serial, view and export position-redacted device logs over Bluetooth",
|
||||
"label": "Enable Debug Log API"
|
||||
},
|
||||
"managed": {
|
||||
"description": "If enabled, device configuration options are only able to be changed remotely by a Remote Admin node via admin messages. Do not enable this option unless at least one suitable Remote Admin node has been setup, and the public key is stored in one of the fields above.",
|
||||
"label": "Managed"
|
||||
},
|
||||
"privateKey": {
|
||||
"description": "Used to create a shared key with a remote device",
|
||||
"label": "Klucz prywatny"
|
||||
},
|
||||
"publicKey": {
|
||||
"description": "Sent out to other nodes on the mesh to allow them to compute a shared secret key",
|
||||
"label": "Klucz publiczny"
|
||||
},
|
||||
"primaryAdminKey": {
|
||||
"description": "The primary public key authorized to send admin messages to this node",
|
||||
"label": "Primary Admin Key"
|
||||
},
|
||||
"secondaryAdminKey": {
|
||||
"description": "The secondary public key authorized to send admin messages to this node",
|
||||
"label": "Secondary Admin Key"
|
||||
},
|
||||
"serialOutputEnabled": {
|
||||
"description": "Serial Console over the Stream API",
|
||||
"label": "Serial Output Enabled"
|
||||
},
|
||||
"tertiaryAdminKey": {
|
||||
"description": "The tertiary public key authorized to send admin messages to this node",
|
||||
"label": "Tertiary Admin Key"
|
||||
},
|
||||
"adminSettings": {
|
||||
"description": "Settings for Admin",
|
||||
"label": "Admin Settings"
|
||||
},
|
||||
"loggingSettings": {
|
||||
"description": "Settings for Logging",
|
||||
"label": "Logging Settings"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
{
|
||||
"deleteMessages": {
|
||||
"description": "This action will clear all message history. This cannot be undone. Are you sure you want to continue?",
|
||||
"title": "Clear All Messages"
|
||||
},
|
||||
"import": {
|
||||
"description": "The current LoRa configuration will be overridden.",
|
||||
"error": {
|
||||
"invalidUrl": "Invalid Meshtastic URL"
|
||||
},
|
||||
"channelPrefix": "Channel: ",
|
||||
"primary": "Primary ",
|
||||
"doNotImport": "No not import",
|
||||
"channelName": "Nazwa",
|
||||
"channelSlot": "Slot",
|
||||
"channelSetUrl": "Channel Set/QR Code URL",
|
||||
"useLoraConfig": "Import LoRa Config",
|
||||
"presetDescription": "The current LoRa Config will be replaced.",
|
||||
"title": "Import Channel Set"
|
||||
},
|
||||
"locationResponse": {
|
||||
"title": "Location: {{identifier}}",
|
||||
"altitude": "Altitude: ",
|
||||
"coordinates": "Coordinates: ",
|
||||
"noCoordinates": "Brak współrzędnych"
|
||||
},
|
||||
"pkiRegenerateDialog": {
|
||||
"title": "Regenerate Pre-Shared Key?",
|
||||
"description": "Are you sure you want to regenerate the pre-shared key?",
|
||||
"regenerate": "Regenerate"
|
||||
},
|
||||
"addConnection": {
|
||||
"title": "Add connection",
|
||||
"description": "Choose a connection type and fill in the details",
|
||||
"validation": {
|
||||
"requiresWebBluetooth": "Ten typ połączenia wymaga <0>Web Bluetooth</0>. Użyj obsługiwanej przeglądarki, takiej jak Chrome lub Edge.",
|
||||
"requiresWebSerial": "Ten typ połączenia wymaga <0>Web Serial</0>. Użyj obsługiwanej przeglądarki, takiej jak Chrome lub Edge.",
|
||||
"requiresSecureContext": "Ta aplikacja wymaga <0>bezpiecznego kontekstu</0>. Połącz się używając HTTPS lub localhost.",
|
||||
"additionallyRequiresSecureContext": "Dodatkowo, wymaga to <0>bezpiecznego kontekstu</0>. Połącz się używając HTTPS lub localhost."
|
||||
},
|
||||
"bluetoothConnection": {
|
||||
"namePlaceholder": "My Bluetooth Node",
|
||||
"supported": {
|
||||
"title": "Web Bluetooth supported"
|
||||
},
|
||||
"notSupported": {
|
||||
"title": "Web Bluetooth not supported",
|
||||
"description": "Your browser or device does not support Web Bluetooth"
|
||||
},
|
||||
"short": "BT: {{deviceName}}",
|
||||
"long": "Bluetooth Device",
|
||||
"device": "Urządzenie",
|
||||
"selectDevice": "Select device",
|
||||
"selected": "Bluetooth device selected",
|
||||
"notSelected": "No device selected",
|
||||
"helperText": "Uses the Meshtastic Bluetooth service for discovery."
|
||||
},
|
||||
"serialConnection": {
|
||||
"namePlaceholder": "My Serial Node",
|
||||
"helperText": "Selecting a port grants permission so the app can open it to connect.",
|
||||
"supported": {
|
||||
"title": "Web Serial supported"
|
||||
},
|
||||
"notSupported": {
|
||||
"title": "Web Serial not supported",
|
||||
"description": "Your browser or device does not support Web Serial"
|
||||
},
|
||||
"portSelected": {
|
||||
"title": "Serial port selected",
|
||||
"description": "Port permissions granted."
|
||||
},
|
||||
"port": "Port",
|
||||
"selectPort": "Select port",
|
||||
"deviceName": "USB {{vendorId}}:{{productId}}",
|
||||
"notSelected": "No port selected"
|
||||
},
|
||||
"httpConnection": {
|
||||
"namePlaceholder": "My HTTP Node",
|
||||
"inputPlaceholder": "192.168.1.10 or meshtastic.local",
|
||||
"heading": "URL or IP",
|
||||
"useHttps": "Use HTTPS",
|
||||
"invalidUrl": {
|
||||
"title": "Invalid URL",
|
||||
"description": "Please enter a valid HTTP or HTTPS URL."
|
||||
},
|
||||
"connectionTest": {
|
||||
"description": "Test the connetion before saving to verify the device is reachable.",
|
||||
"button": {
|
||||
"loading": "Testing...",
|
||||
"label": "Test connection"
|
||||
},
|
||||
"reachable": "Reachable",
|
||||
"notReachable": "Not reachable",
|
||||
"success": {
|
||||
"title": "Connection test successful",
|
||||
"description": "The device appears to be reachable."
|
||||
},
|
||||
"failure": {
|
||||
"title": "Connection test failed",
|
||||
"description": "Could not reach the device. Check the URL and try again."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"nodeDetails": {
|
||||
"message": "Wiadomość",
|
||||
"requestPosition": "Poproś o pozycję",
|
||||
"traceRoute": "Trace Route",
|
||||
"airTxUtilization": "Air TX utilization",
|
||||
"allRawMetrics": "All Raw Metrics:",
|
||||
"batteryLevel": "Battery level",
|
||||
"channelUtilization": "Channel utilization",
|
||||
"details": "Details:",
|
||||
"deviceMetrics": "Device Metrics:",
|
||||
"hardware": "Hardware: ",
|
||||
"lastHeard": "Last Heard: ",
|
||||
"nodeHexPrefix": "Node Hex: ",
|
||||
"nodeNumber": "Node Number: ",
|
||||
"position": "Position:",
|
||||
"role": "Role: ",
|
||||
"uptime": "Uptime: ",
|
||||
"voltage": "Napięcie",
|
||||
"title": "Node Details for {{identifier}}",
|
||||
"ignoreNode": "Ignore node",
|
||||
"removeNode": "Remove node",
|
||||
"unignoreNode": "Unignore node",
|
||||
"security": "Security:",
|
||||
"publicKey": "Public Key: ",
|
||||
"messageable": "Messageable: ",
|
||||
"KeyManuallyVerifiedTrue": "Public Key has been manually verified",
|
||||
"KeyManuallyVerifiedFalse": "Public Key is not manually verified"
|
||||
},
|
||||
"pkiBackup": {
|
||||
"loseKeysWarning": "If you lose your keys, you will need to reset your device.",
|
||||
"secureBackup": "Its important to backup your public and private keys and store your backup securely!",
|
||||
"footer": "=== END OF KEYS ===",
|
||||
"header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
|
||||
"privateKey": "Private Key:",
|
||||
"publicKey": "Public Key:",
|
||||
"fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
|
||||
"title": "Backup Keys"
|
||||
},
|
||||
"pkiBackupReminder": {
|
||||
"description": "We recommend backing up your key data regularly. Would you like to back up now?",
|
||||
"title": "Backup Reminder",
|
||||
"remindLaterPrefix": "Remind me in",
|
||||
"remindNever": "Never remind me",
|
||||
"backupNow": "Back up now"
|
||||
},
|
||||
"pkiRegenerate": {
|
||||
"description": "Are you sure you want to regenerate key pair?",
|
||||
"title": "Regenerate Key Pair"
|
||||
},
|
||||
"qr": {
|
||||
"addChannels": "Add Channels",
|
||||
"replaceChannels": "Replace Channels",
|
||||
"description": "The current LoRa configuration will also be shared.",
|
||||
"sharableUrl": "Sharable URL",
|
||||
"title": "Generuj Kod QR"
|
||||
},
|
||||
"reboot": {
|
||||
"title": "Reboot device",
|
||||
"description": "Reboot now or schedule a reboot of the connected node. Optionally, you can choose to reboot into OTA (Over-the-Air) mode.",
|
||||
"ota": "Reboot into OTA mode",
|
||||
"enterDelay": "Enter delay",
|
||||
"scheduled": "Reboot has been scheduled",
|
||||
"schedule": "Schedule reboot",
|
||||
"now": "Reboot now",
|
||||
"cancel": "Cancel scheduled reboot"
|
||||
},
|
||||
"refreshKeys": {
|
||||
"description": {
|
||||
"acceptNewKeys": "This will remove the node from device and request new keys.",
|
||||
"keyMismatchReasonSuffix": ". This is due to the remote node's current public key does not match the previously stored key for this node.",
|
||||
"unableToSendDmPrefix": "Your node is unable to send a direct message to node: "
|
||||
},
|
||||
"acceptNewKeys": "Accept New Keys",
|
||||
"title": "Keys Mismatch - {{identifier}}"
|
||||
},
|
||||
"removeNode": {
|
||||
"description": "Are you sure you want to remove this Node?",
|
||||
"title": "Remove Node?"
|
||||
},
|
||||
"shutdown": {
|
||||
"title": "Schedule Shutdown",
|
||||
"description": "Turn off the connected node after x minutes."
|
||||
},
|
||||
"traceRoute": {
|
||||
"routeToDestination": "Route to destination:",
|
||||
"routeBack": "Route back:"
|
||||
},
|
||||
"tracerouteResponse": {
|
||||
"title": "Traceroute: {{identifier}}"
|
||||
},
|
||||
"unsafeRoles": {
|
||||
"confirmUnderstanding": "Yes, I know what I'm doing",
|
||||
"conjunction": " and the blog post about ",
|
||||
"postamble": " and understand the implications of changing the role.",
|
||||
"preamble": "I have read the ",
|
||||
"choosingRightDeviceRole": "Choosing The Right Device Role",
|
||||
"deviceRoleDocumentation": "Device Role Documentation",
|
||||
"title": "Jesteś pewny?"
|
||||
},
|
||||
"managedMode": {
|
||||
"confirmUnderstanding": "Yes, I know what I'm doing",
|
||||
"title": "Jesteś pewny?",
|
||||
"description": "Enabling Managed Mode blocks client applications (including the web client) from writing configurations to a radio. Once enabled, radio configurations can only be changed through Remote Admin messages. This setting is not required for remote node administration."
|
||||
},
|
||||
"clientNotification": {
|
||||
"title": "Client Notification",
|
||||
"TraceRoute can only be sent once every 30 seconds": "TraceRoute can only be sent once every 30 seconds",
|
||||
"Compromised keys were detected and regenerated.": "Compromised keys were detected and regenerated."
|
||||
},
|
||||
"resetNodeDb": {
|
||||
"title": "Reset Node Database",
|
||||
"description": "This will clear all nodes from the connected device's node database and clear all message history in the client. This cannot be undone. Are you sure you want to continue?",
|
||||
"confirm": "Reset Node Database",
|
||||
"failedTitle": "There was an error resetting the Node DB. Please try again."
|
||||
},
|
||||
"clearAllStores": {
|
||||
"title": "Clear All Local Storage",
|
||||
"description": "This will clear all locally stored data, including message history and node databases for all previously connected devices. This will require you to reconnect to your node once complete and cannot be undone. Are you sure you want to continue?",
|
||||
"confirm": "Clear all local storage",
|
||||
"failedTitle": "There was an error clearing local storage. Please try again."
|
||||
},
|
||||
"factoryResetDevice": {
|
||||
"title": "Zresetuj urządzenie do ustawień fabrycznych",
|
||||
"description": "This will factory reset the connected device, erasing all configurations and data on the device as well as all nodes and messages saved in the client. This cannot be undone. Are you sure you want to continue?",
|
||||
"confirm": "Zresetuj urządzenie do ustawień fabrycznych",
|
||||
"failedTitle": "There was an error performing the factory reset. Please try again."
|
||||
},
|
||||
"factoryResetConfig": {
|
||||
"title": "Zresetuj ustawienia do ustawień fabrycznych",
|
||||
"description": "This will factory reset the configuration on the connected device, erasing all configurations on the device. This cannot be undone. Are you sure you want to continue?",
|
||||
"confirm": "Zresetuj ustawienia do ustawień fabrycznych",
|
||||
"failedTitle": "There was an error performing the factory reset. Please try again."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"maplibre": {
|
||||
"GeolocateControl.FindMyLocation": "Find my location",
|
||||
"NavigationControl.ZoomIn": "Zoom in",
|
||||
"NavigationControl.ZoomOut": "Zoom out",
|
||||
"CooperativeGesturesHandler.WindowsHelpText": "Use Ctrl + scroll to zoom the map",
|
||||
"CooperativeGesturesHandler.MacHelpText": "Use ⌘ + scroll to zoom the map",
|
||||
"CooperativeGesturesHandler.MobileHelpText": "Use two fingers to move the map"
|
||||
},
|
||||
"layerTool": {
|
||||
"nodeMarkers": "Show nodes",
|
||||
"directNeighbors": "Show direct connections",
|
||||
"remoteNeighbors": "Show remote connections",
|
||||
"positionPrecision": "Show position precision",
|
||||
"traceroutes": "Show traceroutes",
|
||||
"waypoints": "Show waypoints"
|
||||
},
|
||||
"mapMenu": {
|
||||
"locateAria": "Locate my node",
|
||||
"layersAria": "Change map style"
|
||||
},
|
||||
"waypointDetail": {
|
||||
"edit": "Edytuj",
|
||||
"description": "Description:",
|
||||
"createdBy": "Edited by:",
|
||||
"createdDate": "Created:",
|
||||
"updated": "Updated:",
|
||||
"expires": "Expires:",
|
||||
"distance": "Distance:",
|
||||
"bearing": "Absolute bearing:",
|
||||
"lockedTo": "Locked by:",
|
||||
"latitude": "Latitude:",
|
||||
"longitude": "Longitude:"
|
||||
},
|
||||
"myNode": {
|
||||
"tooltip": "This device"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"page": {
|
||||
"title": "Wiadomości: {{chatName}}",
|
||||
"placeholder": "Wpisz wiadomość"
|
||||
},
|
||||
"emptyState": {
|
||||
"title": "Wybierz czat",
|
||||
"text": "Brak wiadomości."
|
||||
},
|
||||
"selectChatPrompt": {
|
||||
"text": "Wybierz kanał lub węzeł do wysyłania wiadomości."
|
||||
},
|
||||
"sendMessage": {
|
||||
"placeholder": "Wpisz tutaj swoją wiadomość...",
|
||||
"sendButton": "Wyślij"
|
||||
},
|
||||
"actionsMenu": {
|
||||
"addReactionLabel": "Dodaj reakcję",
|
||||
"replyLabel": "Odpowiedz"
|
||||
},
|
||||
"deliveryStatus": {
|
||||
"delivered": {
|
||||
"label": "Wiadomość doręczona",
|
||||
"displayText": "Wiadomość doręczona"
|
||||
},
|
||||
"failed": {
|
||||
"label": "Nie udało się dostarczyć wiadomości",
|
||||
"displayText": "Dostawa nie powiodła się"
|
||||
},
|
||||
"unknown": {
|
||||
"label": "Status wiadomości nieznany",
|
||||
"displayText": "Nieznany stan"
|
||||
},
|
||||
"waiting": {
|
||||
"label": "Wysyłanie wiadomości",
|
||||
"displayText": "Oczekiwanie na dostawę"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,448 @@
|
||||
{
|
||||
"page": {
|
||||
"tabAmbientLighting": "Ambient Lighting",
|
||||
"tabAudio": "Audio",
|
||||
"tabCannedMessage": "Canned",
|
||||
"tabDetectionSensor": "Detection Sensor",
|
||||
"tabExternalNotification": "Ext Notif",
|
||||
"tabMqtt": "MQTT",
|
||||
"tabNeighborInfo": "Neighbor Info",
|
||||
"tabPaxcounter": "Paxcounter",
|
||||
"tabRangeTest": "Test zasięgu",
|
||||
"tabSerial": "Seryjny",
|
||||
"tabStoreAndForward": "S&F",
|
||||
"tabTelemetry": "Telemetria"
|
||||
},
|
||||
"ambientLighting": {
|
||||
"title": "Ambient Lighting Settings",
|
||||
"description": "Settings for the Ambient Lighting module",
|
||||
"ledState": {
|
||||
"label": "LED State",
|
||||
"description": "Sets LED to on or off"
|
||||
},
|
||||
"current": {
|
||||
"label": "Natężenie",
|
||||
"description": "Sets the current for the LED output. Default is 10"
|
||||
},
|
||||
"red": {
|
||||
"label": "Czerwony",
|
||||
"description": "Sets the red LED level. Values are 0-255"
|
||||
},
|
||||
"green": {
|
||||
"label": "Zielony",
|
||||
"description": "Sets the green LED level. Values are 0-255"
|
||||
},
|
||||
"blue": {
|
||||
"label": "Niebieski",
|
||||
"description": "Sets the blue LED level. Values are 0-255"
|
||||
}
|
||||
},
|
||||
"audio": {
|
||||
"title": "Audio Settings",
|
||||
"description": "Settings for the Audio module",
|
||||
"codec2Enabled": {
|
||||
"label": "Codec 2 Enabled",
|
||||
"description": "Enable Codec 2 audio encoding"
|
||||
},
|
||||
"pttPin": {
|
||||
"label": "PTT Pin",
|
||||
"description": "GPIO pin to use for PTT"
|
||||
},
|
||||
"bitrate": {
|
||||
"label": "Bitrate",
|
||||
"description": "Bitrate to use for audio encoding"
|
||||
},
|
||||
"i2sWs": {
|
||||
"label": "i2S WS",
|
||||
"description": "GPIO pin to use for i2S WS"
|
||||
},
|
||||
"i2sSd": {
|
||||
"label": "i2S SD",
|
||||
"description": "GPIO pin to use for i2S SD"
|
||||
},
|
||||
"i2sDin": {
|
||||
"label": "i2S DIN",
|
||||
"description": "GPIO pin to use for i2S DIN"
|
||||
},
|
||||
"i2sSck": {
|
||||
"label": "i2S SCK",
|
||||
"description": "GPIO pin to use for i2S SCK"
|
||||
}
|
||||
},
|
||||
"cannedMessage": {
|
||||
"title": "Canned Message Settings",
|
||||
"description": "Settings for the Canned Message module",
|
||||
"moduleEnabled": {
|
||||
"label": "Module Enabled",
|
||||
"description": "Enable Canned Message"
|
||||
},
|
||||
"rotary1Enabled": {
|
||||
"label": "Rotary Encoder #1 Enabled",
|
||||
"description": "Enable the rotary encoder"
|
||||
},
|
||||
"inputbrokerPinA": {
|
||||
"label": "Encoder Pin A",
|
||||
"description": "GPIO Pin Value (1-39) For encoder port A"
|
||||
},
|
||||
"inputbrokerPinB": {
|
||||
"label": "Encoder Pin B",
|
||||
"description": "GPIO Pin Value (1-39) For encoder port B"
|
||||
},
|
||||
"inputbrokerPinPress": {
|
||||
"label": "Encoder Pin Press",
|
||||
"description": "GPIO Pin Value (1-39) For encoder Press"
|
||||
},
|
||||
"inputbrokerEventCw": {
|
||||
"label": "Clockwise event",
|
||||
"description": "Select input event."
|
||||
},
|
||||
"inputbrokerEventCcw": {
|
||||
"label": "Counter Clockwise event",
|
||||
"description": "Select input event."
|
||||
},
|
||||
"inputbrokerEventPress": {
|
||||
"label": "Press event",
|
||||
"description": "Select input event"
|
||||
},
|
||||
"updown1Enabled": {
|
||||
"label": "Up Down enabled",
|
||||
"description": "Enable the up / down encoder"
|
||||
},
|
||||
"allowInputSource": {
|
||||
"label": "Allow Input Source",
|
||||
"description": "Select from: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
|
||||
},
|
||||
"sendBell": {
|
||||
"label": "Send Bell",
|
||||
"description": "Sends a bell character with each message"
|
||||
}
|
||||
},
|
||||
"detectionSensor": {
|
||||
"title": "Detection Sensor Settings",
|
||||
"description": "Settings for the Detection Sensor module",
|
||||
"enabled": {
|
||||
"label": "Włączony",
|
||||
"description": "Enable or disable Detection Sensor Module"
|
||||
},
|
||||
"minimumBroadcastSecs": {
|
||||
"label": "Minimum Broadcast Seconds",
|
||||
"description": "The interval in seconds of how often we can send a message to the mesh when a state change is detected"
|
||||
},
|
||||
"stateBroadcastSecs": {
|
||||
"label": "State Broadcast Seconds",
|
||||
"description": "The interval in seconds of how often we should send a message to the mesh with the current state regardless of changes"
|
||||
},
|
||||
"sendBell": {
|
||||
"label": "Send Bell",
|
||||
"description": "Send ASCII bell with alert message"
|
||||
},
|
||||
"name": {
|
||||
"label": "Friendly Name",
|
||||
"description": "Used to format the message sent to mesh, max 20 Characters"
|
||||
},
|
||||
"monitorPin": {
|
||||
"label": "Monitor Pin",
|
||||
"description": "The GPIO pin to monitor for state changes"
|
||||
},
|
||||
"detectionTriggerType": {
|
||||
"label": "Detection Triggered Type",
|
||||
"description": "The type of trigger event to be used"
|
||||
},
|
||||
"usePullup": {
|
||||
"label": "Use Pullup",
|
||||
"description": "Whether or not use INPUT_PULLUP mode for GPIO pin"
|
||||
}
|
||||
},
|
||||
"externalNotification": {
|
||||
"title": "External Notification Settings",
|
||||
"description": "Configure the external notification module",
|
||||
"enabled": {
|
||||
"label": "Module Enabled",
|
||||
"description": "Enable External Notification"
|
||||
},
|
||||
"outputMs": {
|
||||
"label": "Output MS",
|
||||
"description": "Output MS"
|
||||
},
|
||||
"output": {
|
||||
"label": "Output",
|
||||
"description": "Output"
|
||||
},
|
||||
"outputVibra": {
|
||||
"label": "Output Vibrate",
|
||||
"description": "Output Vibrate"
|
||||
},
|
||||
"outputBuzzer": {
|
||||
"label": "Output Buzzer",
|
||||
"description": "Output Buzzer"
|
||||
},
|
||||
"active": {
|
||||
"label": "Active",
|
||||
"description": "Active"
|
||||
},
|
||||
"alertMessage": {
|
||||
"label": "Alert Message",
|
||||
"description": "Alert Message"
|
||||
},
|
||||
"alertMessageVibra": {
|
||||
"label": "Alert Message Vibrate",
|
||||
"description": "Alert Message Vibrate"
|
||||
},
|
||||
"alertMessageBuzzer": {
|
||||
"label": "Alert Message Buzzer",
|
||||
"description": "Alert Message Buzzer"
|
||||
},
|
||||
"alertBell": {
|
||||
"label": "Alert Bell",
|
||||
"description": "Should an alert be triggered when receiving an incoming bell?"
|
||||
},
|
||||
"alertBellVibra": {
|
||||
"label": "Alert Bell Vibrate",
|
||||
"description": "Alert Bell Vibrate"
|
||||
},
|
||||
"alertBellBuzzer": {
|
||||
"label": "Alert Bell Buzzer",
|
||||
"description": "Alert Bell Buzzer"
|
||||
},
|
||||
"usePwm": {
|
||||
"label": "Use PWM",
|
||||
"description": "Use PWM"
|
||||
},
|
||||
"nagTimeout": {
|
||||
"label": "Nag Timeout",
|
||||
"description": "Nag Timeout"
|
||||
},
|
||||
"useI2sAsBuzzer": {
|
||||
"label": "Use I²S Pin as Buzzer",
|
||||
"description": "Designate I²S Pin as Buzzer Output"
|
||||
}
|
||||
},
|
||||
"mqtt": {
|
||||
"title": "MQTT Settings",
|
||||
"description": "Settings for the MQTT module",
|
||||
"enabled": {
|
||||
"label": "Włączony",
|
||||
"description": "Enable or disable MQTT"
|
||||
},
|
||||
"address": {
|
||||
"label": "MQTT Server Address",
|
||||
"description": "MQTT server address to use for default/custom servers"
|
||||
},
|
||||
"username": {
|
||||
"label": "MQTT Username",
|
||||
"description": "MQTT username to use for default/custom servers"
|
||||
},
|
||||
"password": {
|
||||
"label": "MQTT Password",
|
||||
"description": "MQTT password to use for default/custom servers"
|
||||
},
|
||||
"encryptionEnabled": {
|
||||
"label": "Encryption Enabled",
|
||||
"description": "Enable or disable MQTT encryption. Note: All messages are sent to the MQTT broker unencrypted if this option is not enabled, even when your uplink channels have encryption keys set. This includes position data."
|
||||
},
|
||||
"jsonEnabled": {
|
||||
"label": "JSON Enabled",
|
||||
"description": "Whether to send/consume JSON packets on MQTT"
|
||||
},
|
||||
"tlsEnabled": {
|
||||
"label": "TLS Enabled",
|
||||
"description": "Enable or disable TLS"
|
||||
},
|
||||
"root": {
|
||||
"label": "Root topic",
|
||||
"description": "MQTT root topic to use for default/custom servers"
|
||||
},
|
||||
"proxyToClientEnabled": {
|
||||
"label": "MQTT Client Proxy Enabled",
|
||||
"description": "Utilizes the network connection to proxy MQTT messages to the client."
|
||||
},
|
||||
"mapReportingEnabled": {
|
||||
"label": "Map Reporting Enabled",
|
||||
"description": "Your node will periodically send an unencrypted map report packet to the configured MQTT server, this includes id, short and long name, approximate location, hardware model, role, firmware version, LoRa region, modem preset and primary channel name."
|
||||
},
|
||||
"mapReportSettings": {
|
||||
"publishIntervalSecs": {
|
||||
"label": "Map Report Publish Interval (s)",
|
||||
"description": "Interval in seconds to publish map reports"
|
||||
},
|
||||
"positionPrecision": {
|
||||
"label": "Approximate Location",
|
||||
"description": "Position shared will be accurate within this distance",
|
||||
"options": {
|
||||
"metric_km23": "Within 23 km",
|
||||
"metric_km12": "Within 12 km",
|
||||
"metric_km5_8": "Within 5.8 km",
|
||||
"metric_km2_9": "Within 2.9 km",
|
||||
"metric_km1_5": "Within 1.5 km",
|
||||
"metric_m700": "Within 700 m",
|
||||
"metric_m350": "Within 350 m",
|
||||
"metric_m200": "Within 200 m",
|
||||
"metric_m90": "Within 90 m",
|
||||
"metric_m50": "Within 50 m",
|
||||
"imperial_mi15": "W zasięgu 15 mil",
|
||||
"imperial_mi7_3": "W zasięgu 7,3 mil",
|
||||
"imperial_mi3_6": "W zasięgu 3,6 mil",
|
||||
"imperial_mi1_8": "W zasięgu 1,8 mil",
|
||||
"imperial_mi0_9": "W zasięgu 0,9 mil",
|
||||
"imperial_mi0_5": "W zasięgu 0,5 mili",
|
||||
"imperial_mi0_2": "W zasięgu 0,2 mil",
|
||||
"imperial_ft600": "W zasięgu 600 stóp",
|
||||
"imperial_ft300": "W zasięgu 300 stóp",
|
||||
"imperial_ft150": "W zasięgu 150 stóp"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"neighborInfo": {
|
||||
"title": "Neighbor Info Settings",
|
||||
"description": "Settings for the Neighbor Info module",
|
||||
"enabled": {
|
||||
"label": "Włączony",
|
||||
"description": "Enable or disable Neighbor Info Module"
|
||||
},
|
||||
"updateInterval": {
|
||||
"label": "Update Interval",
|
||||
"description": "Interval in seconds of how often we should try to send our Neighbor Info to the mesh"
|
||||
}
|
||||
},
|
||||
"paxcounter": {
|
||||
"title": "Paxcounter Settings",
|
||||
"description": "Settings for the Paxcounter module",
|
||||
"enabled": {
|
||||
"label": "Module Enabled",
|
||||
"description": "Enable Paxcounter"
|
||||
},
|
||||
"paxcounterUpdateInterval": {
|
||||
"label": "Update Interval (seconds)",
|
||||
"description": "How long to wait between sending paxcounter packets"
|
||||
},
|
||||
"wifiThreshold": {
|
||||
"label": "WiFi RSSI Threshold",
|
||||
"description": "At what WiFi RSSI level should the counter increase. Defaults to -80."
|
||||
},
|
||||
"bleThreshold": {
|
||||
"label": "BLE RSSI Threshold",
|
||||
"description": "At what BLE RSSI level should the counter increase. Defaults to -80."
|
||||
}
|
||||
},
|
||||
"rangeTest": {
|
||||
"title": "Range Test Settings",
|
||||
"description": "Settings for the Range Test module",
|
||||
"enabled": {
|
||||
"label": "Module Enabled",
|
||||
"description": "Enable Range Test"
|
||||
},
|
||||
"sender": {
|
||||
"label": "Message Interval",
|
||||
"description": "How long to wait between sending test packets"
|
||||
},
|
||||
"save": {
|
||||
"label": "Save CSV to storage",
|
||||
"description": "ESP32 Only"
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"title": "Serial Settings",
|
||||
"description": "Settings for the Serial module",
|
||||
"enabled": {
|
||||
"label": "Module Enabled",
|
||||
"description": "Enable Serial output"
|
||||
},
|
||||
"echo": {
|
||||
"label": "Echo",
|
||||
"description": "Any packets you send will be echoed back to your device"
|
||||
},
|
||||
"rxd": {
|
||||
"label": "Receive Pin",
|
||||
"description": "Set the GPIO pin to the RXD pin you have set up."
|
||||
},
|
||||
"txd": {
|
||||
"label": "Transmit Pin",
|
||||
"description": "Set the GPIO pin to the TXD pin you have set up."
|
||||
},
|
||||
"baud": {
|
||||
"label": "Baud Rate",
|
||||
"description": "The serial baud rate"
|
||||
},
|
||||
"timeout": {
|
||||
"label": "Limit czasu",
|
||||
"description": "Seconds to wait before we consider your packet as 'done'"
|
||||
},
|
||||
"mode": {
|
||||
"label": "Tryb",
|
||||
"description": "Select Mode"
|
||||
},
|
||||
"overrideConsoleSerialPort": {
|
||||
"label": "Override Console Serial Port",
|
||||
"description": "If you have a serial port connected to the console, this will override it."
|
||||
}
|
||||
},
|
||||
"storeForward": {
|
||||
"title": "Store & Forward Settings",
|
||||
"description": "Settings for the Store & Forward module",
|
||||
"enabled": {
|
||||
"label": "Module Enabled",
|
||||
"description": "Enable Store & Forward"
|
||||
},
|
||||
"heartbeat": {
|
||||
"label": "Heartbeat Enabled",
|
||||
"description": "Enable Store & Forward heartbeat"
|
||||
},
|
||||
"records": {
|
||||
"label": "Number of records",
|
||||
"description": "Number of records to store"
|
||||
},
|
||||
"historyReturnMax": {
|
||||
"label": "History return max",
|
||||
"description": "Max number of records to return"
|
||||
},
|
||||
"historyReturnWindow": {
|
||||
"label": "History return window",
|
||||
"description": "Return records from this time window (minutes)"
|
||||
}
|
||||
},
|
||||
"telemetry": {
|
||||
"title": "Telemetry Settings",
|
||||
"description": "Settings for the Telemetry module",
|
||||
"deviceUpdateInterval": {
|
||||
"label": "Device Metrics",
|
||||
"description": "Device metrics update interval (seconds)"
|
||||
},
|
||||
"environmentUpdateInterval": {
|
||||
"label": "Environment metrics update interval (seconds)",
|
||||
"description": ""
|
||||
},
|
||||
"environmentMeasurementEnabled": {
|
||||
"label": "Module Enabled",
|
||||
"description": "Enable the Environment Telemetry"
|
||||
},
|
||||
"environmentScreenEnabled": {
|
||||
"label": "Displayed on Screen",
|
||||
"description": "Show the Telemetry Module on the OLED"
|
||||
},
|
||||
"environmentDisplayFahrenheit": {
|
||||
"label": "Display Fahrenheit",
|
||||
"description": "Display temp in Fahrenheit"
|
||||
},
|
||||
"airQualityEnabled": {
|
||||
"label": "Air Quality Enabled",
|
||||
"description": "Enable the Air Quality Telemetry"
|
||||
},
|
||||
"airQualityInterval": {
|
||||
"label": "Air Quality Update Interval",
|
||||
"description": "How often to send Air Quality data over the mesh"
|
||||
},
|
||||
"powerMeasurementEnabled": {
|
||||
"label": "Power Measurement Enabled",
|
||||
"description": "Enable the Power Measurement Telemetry"
|
||||
},
|
||||
"powerUpdateInterval": {
|
||||
"label": "Power Update Interval",
|
||||
"description": "How often to send Power data over the mesh"
|
||||
},
|
||||
"powerScreenEnabled": {
|
||||
"label": "Power Screen Enabled",
|
||||
"description": "Enable the Power Telemetry Screen"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"nodeDetail": {
|
||||
"publicKeyEnabled": {
|
||||
"label": "Publiczny klucz włączony"
|
||||
},
|
||||
"noPublicKey": {
|
||||
"label": "Brak klucza publicznego"
|
||||
},
|
||||
"directMessage": {
|
||||
"label": "Wiadomość bezpośrednia {{shortName}}"
|
||||
},
|
||||
"favorite": {
|
||||
"label": "Ulubiony",
|
||||
"tooltip": "Dodaj lub usuń ten węzeł z ulubionych"
|
||||
},
|
||||
"notFavorite": {
|
||||
"label": "Nie ulubiony"
|
||||
},
|
||||
"error": {
|
||||
"label": "Błąd",
|
||||
"text": "Wystąpił błąd podczas pobierania danych węzła. Spróbuj ponownie później."
|
||||
},
|
||||
"status": {
|
||||
"heard": "Usłyszano",
|
||||
"mqtt": "MQTT"
|
||||
},
|
||||
"elevation": {
|
||||
"label": "Elewacja"
|
||||
},
|
||||
"channelUtil": {
|
||||
"label": "Użycie kanału"
|
||||
},
|
||||
"airtimeUtil": {
|
||||
"label": "Użycie czasu ant"
|
||||
}
|
||||
},
|
||||
"nodesTable": {
|
||||
"headings": {
|
||||
"longName": "Długa nazwa",
|
||||
"connection": "Połączenie",
|
||||
"lastHeard": "Ostatnio słyszany",
|
||||
"encryption": "Szyfrowanie",
|
||||
"model": "Model",
|
||||
"macAddress": "Adres MAC"
|
||||
},
|
||||
"connectionStatus": {
|
||||
"direct": "Bezpośrednio",
|
||||
"away": "away",
|
||||
"viaMqtt": ", przez MQTT"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"added": "Dodano",
|
||||
"removed": "Usunięto",
|
||||
"ignoreNode": "Ignoruj węzeł",
|
||||
"unignoreNode": "Od-ignoruj węzeł",
|
||||
"requestPosition": "Poproś o pozycję"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
{
|
||||
"navigation": {
|
||||
"title": "Navigation",
|
||||
"messages": "Wiadomości",
|
||||
"map": "Mapa",
|
||||
"settings": "Ustawienia",
|
||||
"channels": "Kanały",
|
||||
"radioConfig": "Radio Config",
|
||||
"deviceConfig": "Konfiguracja urządzenia",
|
||||
"moduleConfig": "Module Config",
|
||||
"manageConnections": "Manage Connections",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"app": {
|
||||
"title": "Meshtastic",
|
||||
"logo": "Meshtastic Logo"
|
||||
},
|
||||
"sidebar": {
|
||||
"collapseToggle": {
|
||||
"button": {
|
||||
"open": "Open sidebar",
|
||||
"close": "Close sidebar"
|
||||
}
|
||||
},
|
||||
"deviceInfo": {
|
||||
"volts": "{{voltage}} volts",
|
||||
"firmware": {
|
||||
"title": "Oprogramowanie",
|
||||
"version": "v{{version}}",
|
||||
"buildDate": "Build date: {{date}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"batteryStatus": {
|
||||
"charging": "{{level}}% charging",
|
||||
"pluggedIn": "Plugged in",
|
||||
"title": "Bateria"
|
||||
},
|
||||
"search": {
|
||||
"nodes": "Search nodes...",
|
||||
"channels": "Search channels...",
|
||||
"commandPalette": "Search commands..."
|
||||
},
|
||||
"toast": {
|
||||
"positionRequestSent": {
|
||||
"title": "Position request sent."
|
||||
},
|
||||
"requestingPosition": {
|
||||
"title": "Requesting position, please wait..."
|
||||
},
|
||||
"sendingTraceroute": {
|
||||
"title": "Sending Traceroute, please wait..."
|
||||
},
|
||||
"tracerouteSent": {
|
||||
"title": "Traceroute sent."
|
||||
},
|
||||
"savedChannel": {
|
||||
"title": "Saved Channel: {{channelName}}"
|
||||
},
|
||||
"messages": {
|
||||
"pkiEncryption": {
|
||||
"title": "Chat is using PKI encryption."
|
||||
},
|
||||
"pskEncryption": {
|
||||
"title": "Chat is using PSK encryption."
|
||||
}
|
||||
},
|
||||
"configSaveError": {
|
||||
"title": "Error Saving Config",
|
||||
"description": "An error occurred while saving the configuration."
|
||||
},
|
||||
"validationError": {
|
||||
"title": "Config Errors Exist",
|
||||
"description": "Please fix the configuration errors before saving."
|
||||
},
|
||||
"saveSuccess": {
|
||||
"title": "Saving Config",
|
||||
"description": "The configuration change {{case}} has been saved."
|
||||
},
|
||||
"saveAllSuccess": {
|
||||
"title": "Saved",
|
||||
"description": "All configuration changes have been saved."
|
||||
},
|
||||
"favoriteNode": {
|
||||
"title": "{{action}} {{nodeName}} {{direction}} favorites.",
|
||||
"action": {
|
||||
"added": "Dodano",
|
||||
"removed": "Usunięto",
|
||||
"to": "to",
|
||||
"from": "from"
|
||||
}
|
||||
},
|
||||
"ignoreNode": {
|
||||
"title": "{{action}} {{nodeName}} {{direction}} ignore list",
|
||||
"action": {
|
||||
"added": "Dodano",
|
||||
"removed": "Usunięto",
|
||||
"to": "to",
|
||||
"from": "from"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"copied": {
|
||||
"label": "Copied!"
|
||||
},
|
||||
"copyToClipboard": {
|
||||
"label": "Copy to clipboard"
|
||||
},
|
||||
"hidePassword": {
|
||||
"label": "Ukryj hasło"
|
||||
},
|
||||
"showPassword": {
|
||||
"label": "Pokaż hasło"
|
||||
},
|
||||
"deliveryStatus": {
|
||||
"delivered": "Delivered",
|
||||
"failed": "Delivery Failed",
|
||||
"waiting": "Czekam. . .",
|
||||
"unknown": "Nieznany"
|
||||
}
|
||||
},
|
||||
"general": {
|
||||
"label": "General"
|
||||
},
|
||||
"hardware": {
|
||||
"label": "Hardware"
|
||||
},
|
||||
"metrics": {
|
||||
"label": "Metrics"
|
||||
},
|
||||
"role": {
|
||||
"label": "Rola"
|
||||
},
|
||||
"filter": {
|
||||
"label": "Filtr"
|
||||
},
|
||||
"advanced": {
|
||||
"label": "Advanced"
|
||||
},
|
||||
"clearInput": {
|
||||
"label": "Clear input"
|
||||
},
|
||||
"resetFilters": {
|
||||
"label": "Reset Filters"
|
||||
},
|
||||
"nodeName": {
|
||||
"label": "Node name/number",
|
||||
"placeholder": "Meshtastic 1234"
|
||||
},
|
||||
"airtimeUtilization": {
|
||||
"label": "Airtime Utilization (%)",
|
||||
"short": "Airtime Util. (%)"
|
||||
},
|
||||
"batteryLevel": {
|
||||
"label": "Battery level (%)",
|
||||
"labelText": "Battery level (%): {{value}}"
|
||||
},
|
||||
"batteryVoltage": {
|
||||
"label": "Battery voltage (V)",
|
||||
"title": "Napięcie"
|
||||
},
|
||||
"channelUtilization": {
|
||||
"label": "Channel Utilization (%)",
|
||||
"short": "Channel Util. (%)"
|
||||
},
|
||||
"hops": {
|
||||
"direct": "Bezpośrednio",
|
||||
"label": "Number of hops",
|
||||
"text": "Number of hops: {{value}}"
|
||||
},
|
||||
"lastHeard": {
|
||||
"label": "Aktywność",
|
||||
"labelText": "Last heard: {{value}}",
|
||||
"nowLabel": "Now"
|
||||
},
|
||||
"snr": {
|
||||
"label": "SNR (db)"
|
||||
},
|
||||
"favorites": {
|
||||
"label": "Favorites"
|
||||
},
|
||||
"hide": {
|
||||
"label": "Hide"
|
||||
},
|
||||
"showOnly": {
|
||||
"label": "Show Only"
|
||||
},
|
||||
"viaMqtt": {
|
||||
"label": "Connected via MQTT"
|
||||
},
|
||||
"hopsUnknown": {
|
||||
"label": "Unknown number of hops"
|
||||
},
|
||||
"showUnheard": {
|
||||
"label": "Never heard"
|
||||
},
|
||||
"language": {
|
||||
"label": "Język",
|
||||
"changeLanguage": "Change Language"
|
||||
},
|
||||
"theme": {
|
||||
"dark": "Ciemny",
|
||||
"light": "Jasny",
|
||||
"system": "Automatic",
|
||||
"changeTheme": "Change Color Scheme"
|
||||
},
|
||||
"errorPage": {
|
||||
"title": "This is a little embarrassing...",
|
||||
"description1": "We are really sorry but an error occurred in the web client that caused it to crash. <br /> This is not supposed to happen, and we are working hard to fix it.",
|
||||
"description2": "The best way to prevent this from happening again to you or anyone else is to report the issue to us.",
|
||||
"reportInstructions": "Please include the following information in your report:",
|
||||
"reportSteps": {
|
||||
"step1": "What you were doing when the error occurred",
|
||||
"step2": "What you expected to happen",
|
||||
"step3": "What actually happened",
|
||||
"step4": "Any other relevant information"
|
||||
},
|
||||
"reportLink": "You can report the issue to our <0>GitHub</0>",
|
||||
"connectionsLink": "Return to the <0>connections</0>",
|
||||
"detailsSummary": "Error Details",
|
||||
"errorMessageLabel": "Error message:",
|
||||
"stackTraceLabel": "Stack trace:",
|
||||
"fallbackError": "{{error}}"
|
||||
},
|
||||
"footer": {
|
||||
"text": "Powered by <0>▲ Vercel</0> | Meshtastic® is a registered trademark of Meshtastic LLC. | <1>Legal Information</1>",
|
||||
"commitSha": "Commit SHA: {{sha}}"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user