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:
Ben Meadors
2026-06-15 13:23:28 -05:00
committed by GitHub
parent 7a8529b841
commit bbe9a0d5cd
695 changed files with 27038 additions and 786 deletions
@@ -0,0 +1,71 @@
{
"page": {
"sectionLabel": "Kanaler",
"channelName": "Kanal: {channelName}",
"broadcastLabel": "Primär",
"channelIndex": "# {{index}}",
"import": "Importera",
"export": "Exportera"
},
"validation": {
"pskInvalid": "Ange en giltig {{bits}}-bitars PSK."
},
"settings": {
"label": "Kanalinställningar",
"description": "Krypto, MQTT & diverse inställningar"
},
"role": {
"label": "Roll",
"description": "Enhetens telemetri skickas över PRIMÄR. Endast en PRIMÄR kanal tillåts",
"options": {
"primary": "PRIMÄR",
"disabled": "INAKTIVERAD",
"secondary": "SEKUNDÄR"
}
},
"psk": {
"label": "Delad nyckel (PSK)",
"description": "PSK-längder som stöds: 256-bit, 128-bit, 8-bit eller tom (0-bit)",
"generate": "Generera"
},
"name": {
"label": "Namn",
"description": "Ett unikt namn för kanalen, <12 bytes. Lämna tomt för standardnamn"
},
"uplinkEnabled": {
"label": "Upplänk aktiverad",
"description": "Skicka meddelanden från det lokala nätet till MQTT"
},
"downlinkEnabled": {
"label": "Nedlänk aktiverad",
"description": "Skicka meddelanden från MQTT till det lokala nätet"
},
"positionPrecision": {
"label": "Plats",
"description": "Platsprecisionen som kan delas med kanalen. Kan inaktiveras.",
"options": {
"none": "Dela inte plats",
"precise": "Exakt plats",
"metric_km23": "Inom 23 kilometer",
"metric_km12": "Inom 12 kilometer",
"metric_km5_8": "Inom 5,8 kilometer",
"metric_km2_9": "Inom 2,9 kilometer",
"metric_km1_5": "Inom 1,5 kilometer",
"metric_m700": "Inom 700 meter",
"metric_m350": "Inom 350 meter",
"metric_m200": "Inom 200 meter",
"metric_m90": "Inom 90 meter",
"metric_m50": "Inom 50 meter",
"imperial_mi15": "Inom 15 engelska mil",
"imperial_mi7_3": "Inom 7,3 engelska mil",
"imperial_mi3_6": "Inom 3,6 engelska mil",
"imperial_mi1_8": "Inom 1,8 engelska mil",
"imperial_mi0_9": "Inom 0,9 engelska mil",
"imperial_mi0_5": "Inom 0,5 engelska mil",
"imperial_mi0_2": "Inom 0,2 engelska mil",
"imperial_ft600": "Inom 600 fot",
"imperial_ft300": "Inom 300 fot",
"imperial_ft150": "Inom 150 fot"
}
}
}
@@ -0,0 +1,51 @@
{
"emptyState": "Inga resultat hittades.",
"page": {
"title": "Snabbmeny"
},
"pinGroup": {
"label": "Lägg till grupp i favoriter"
},
"unpinGroup": {
"label": "Ta bort grupp från favoriter"
},
"goto": {
"label": "Gå till",
"command": {
"messages": "Meddelanden",
"map": "Karta",
"config": "Inställningar",
"nodes": "Noder"
}
},
"manage": {
"label": "Hantera",
"command": {
"switchNode": "Byt nod",
"connectNewNode": "Anslut ny nod"
}
},
"contextual": {
"label": "Kontextuell",
"command": {
"qrCode": "QR-kod",
"qrGenerator": "Generator",
"qrImport": "Import",
"scheduleShutdown": "Schemalägg avstängning",
"scheduleReboot": "Starta om enhet",
"resetNodeDb": "Töm noddatabasen",
"dfuMode": "Starta DFU-läge",
"factoryResetDevice": "Fabriksåterställ enhet",
"factoryResetConfig": "Fabriksåterställ konfigurationen",
"disconnect": "Koppla från"
}
},
"debug": {
"label": "Felsökning",
"command": {
"reconfigure": "Konfigurera om",
"clearAllStoredMessages": "Radera alla sparade meddelanden",
"clearAllStores": "Töm all lokal lagring"
}
}
}
@@ -0,0 +1,165 @@
{
"button": {
"apply": "Verkställ",
"addConnection": "Lägg till anslutning",
"saveConnection": "Spara anslutning",
"backupKey": "Säkerhetskopiera nyckel",
"cancel": "Avbryt",
"connect": "Anslut",
"clearMessages": "Ta bort meddelanden",
"close": "Stäng",
"confirm": "Bekräfta",
"delete": "Radera",
"dismiss": "Stäng",
"download": "Ladda ner",
"disconnect": "Koppla från",
"export": "Exportera",
"generate": "Generera",
"regenerate": "Förnya",
"import": "Importera",
"message": "Meddelande",
"now": "Nu",
"ok": "Okej",
"print": "Skriv ut",
"remove": "Ta bort",
"requestNewKeys": "Begär nya nycklar",
"requestPosition": "Begär position",
"reset": "Nollställ",
"retry": "Försök igen",
"save": "Spara",
"setDefault": "Sätt som standard",
"unsetDefault": "Ta bort som standard",
"scanQr": "Skanna QR-kod",
"traceRoute": "Spåra rutt",
"submit": "Spara"
},
"app": {
"title": "Meshtastic",
"fullTitle": "Meshtastic webbklient"
},
"loading": "Laddar...",
"unit": {
"cps": "CPS",
"dbm": "dBm",
"hertz": "Hz",
"hop": {
"one": "hopp",
"plural": "hopp"
},
"hopsAway": {
"one": "{{count}} hopp bort",
"plural": "{{count}} hopp bort",
"unknown": "Okänt antal hopp bort"
},
"megahertz": "MHz",
"kilohertz": "kHz",
"raw": "raw",
"meter": {
"one": "Meter",
"plural": "Meter",
"suffix": "m"
},
"kilometer": {
"one": "kilometer",
"plural": "kilometer",
"suffix": "km"
},
"minute": {
"one": "minut",
"plural": "minuter"
},
"hour": {
"one": "Timme",
"plural": "Timmar"
},
"millisecond": {
"one": "millisekund",
"plural": "millisekunder",
"suffix": "ms"
},
"second": {
"one": "sekund",
"plural": "sekunder"
},
"day": {
"one": "Dag",
"plural": "Dagar",
"today": "Idag",
"yesterday": "Igår"
},
"month": {
"one": "Månad",
"plural": "Månader"
},
"year": {
"one": "År",
"plural": "År"
},
"snr": "SNR",
"volt": {
"one": "Volt",
"plural": "Volt",
"suffix": "V"
},
"record": {
"one": "Post",
"plural": "Poster"
},
"degree": {
"one": "grad",
"plural": "grader",
"suffix": "°"
}
},
"security": {
"0bit": "Tom",
"8bit": "8 bitar",
"128bit": "128 bitar",
"256bit": "256 bitar"
},
"unknown": {
"longName": "Okänd",
"shortName": "UNK",
"notAvailable": "–",
"num": "??"
},
"nodeUnknownPrefix": "!",
"unset": "EJ SATT",
"fallbackName": "Meshtastic {{last4}}",
"node": "Nod",
"formValidation": {
"unsavedChanges": "Osparade ändringar",
"tooBig": {
"string": "Texten är för lång. Ange en text mindre än eller lika med {{maximum}} tecken långt.",
"number": "Värdet är för stort. Ange ett numeriskt värde mindre än eller lika med {{maximum}}.",
"bytes": "Värdet är för stort. En längd mindre än eller lika med {{params.maximum}} bytes krävs."
},
"tooSmall": {
"string": "Texten är för kort. Ange en text längre än eller lika med {{minimum}} tecken långt.",
"number": "Värdet är för litet. Ange ett numeriskt värde större än eller lika med {{minimum}}."
},
"invalidFormat": {
"ipv4": "Ogiltigt format, en giltig IPv4-adress krävs.",
"key": "Ogiltigt format, en giltig Base64-kodad nyckel krävs (PSK)."
},
"invalidType": {
"number": "Ogiltig typ, fältet måste innehålla ett tal."
},
"pskLength": {
"0bit": "Fältet måste vara tomt.",
"8bit": "Nyckeln måste vara en 8-bitars nyckel (PSK).",
"128bit": "Nyckeln måste vara en 128-bitars nyckel (PSK).",
"256bit": "Nyckeln måste vara en 256-bitars nyckel (PSK)."
},
"required": {
"generic": "Obligatoriskt fält.",
"managed": "Åtminstone en administratörsnyckel krävs om noden fjärrhanteras.",
"key": "En nyckel måste anges."
},
"invalidOverrideFreq": {
"number": "Ogiltigt format, förväntat värde i intervallet 410-930 MHz eller 0 (använd standard)."
}
},
"yes": "Ja",
"no": "Nej"
}
@@ -0,0 +1,458 @@
{
"page": {
"title": "Inställningar",
"tabUser": "Användare",
"tabChannels": "Kanaler",
"tabBluetooth": "Bluetooth",
"tabDevice": "Enhet",
"tabDisplay": "Display",
"tabLora": "LoRa",
"tabNetwork": "Nätverk",
"tabPosition": "Plats",
"tabPower": "Ström",
"tabSecurity": "Säkerhet"
},
"sidebar": {
"label": "Konfiguration"
},
"device": {
"title": "Enhetsinställningar",
"description": "Inställningar för enheten",
"buttonPin": {
"description": "Stift för knapp",
"label": "Knapp-stift"
},
"buzzerPin": {
"description": "Stift för summer",
"label": "Summer-stift"
},
"disableTripleClick": {
"description": "Inaktivera trippeltryck",
"label": "Inaktivera trippeltryck"
},
"doubleTapAsButtonPress": {
"description": "Behandla dubbeltryck som knapptryck",
"label": "Dubbeltryck som knapptryck"
},
"ledHeartbeatDisabled": {
"description": "Inaktivera blinkande LED",
"label": "LED-puls inaktiverad"
},
"nodeInfoBroadcastInterval": {
"description": "Hur ofta nod-info ska sändas",
"label": "Sändningsintervall för nod-info"
},
"posixTimezone": {
"description": "POSIX-tidszonsträng för enheten",
"label": "POSIX-tidszon"
},
"rebroadcastMode": {
"description": "Hur enheten hanterar återutsändning",
"label": "Återutsändningsläge"
},
"role": {
"description": "Vilken roll enheten har på nätet",
"label": "Roll"
}
},
"bluetooth": {
"title": "Bluetooth-inställningar",
"description": "Inställningar för Bluetooth-modulen",
"note": "OBS! Vissa enheter (ESP32) kan inte använda både Bluetooth och WiFi samtidigt.",
"enabled": {
"description": "Aktivera eller inaktivera Bluetooth",
"label": "Aktiverad"
},
"pairingMode": {
"description": "Metod för parkoppling",
"label": "Parkopplingsläge"
},
"pin": {
"description": "Pinkod för parkoppling",
"label": "Pinkod"
}
},
"display": {
"description": "Inställningar för enhetens display",
"title": "Displayinställningar",
"headingBold": {
"description": "Visa rubriktexten i fetstil",
"label": "Fetstil för rubriktext"
},
"carouselDelay": {
"description": "Tid mellan automatiskt byte av sida",
"label": "Karusellfördröjning"
},
"compassNorthTop": {
"description": "Fixera norr till toppen av kompassen",
"label": "Kompassens norrläge"
},
"displayMode": {
"description": "Variant på displaylayout",
"label": "Visningsläge"
},
"displayUnits": {
"description": "Visa metriska eller Brittiska enheter",
"label": "Enheter"
},
"flipScreen": {
"description": "Vänd displayen 180 grader",
"label": "Vänd skärmen"
},
"gpsDisplayUnits": {
"description": "Koordinatformat för visning",
"label": "Koordinatformat"
},
"oledType": {
"description": "Typ av OLED-skärm ansluten till enheten",
"label": "OLED-typ"
},
"screenTimeout": {
"description": "Stäng av skärmen efter denna tid",
"label": "Tidsgräns för display"
},
"twelveHourClock": {
"description": "Använd 12-timmarsformat",
"label": "12-timmars klocka"
},
"wakeOnTapOrMotion": {
"description": "Väck enheten när rörelse upptäcks av enhetens accelerometer",
"label": "Vakna vid rörelse"
}
},
"lora": {
"title": "Inställningar för nät",
"description": "Inställningar för LoRa-nätet",
"bandwidth": {
"description": "Kanalens bandbredd i kHz",
"label": "Bandbredd"
},
"boostedRxGain": {
"description": "Ökad RX-förstärkning",
"label": "Ökad RX-förstärkning"
},
"codingRate": {
"description": "Nämnaren för kodningshastighet",
"label": "Kodningshastighet"
},
"frequencyOffset": {
"description": "Frekvensförskjutning för att korrigera vid kalibreringsfel i kristallen",
"label": "Frekvensförskjutning"
},
"frequencySlot": {
"description": "LoRa-kanalnummer för frekvens",
"label": "Frekvens-slot"
},
"hopLimit": {
"description": "Maximalt antal hopp",
"label": "Hoppgräns"
},
"ignoreMqtt": {
"description": "Vidarebefordra inte MQTT-meddelanden över nätet",
"label": "Ignorera MQTT"
},
"modemPreset": {
"description": "Modem-förinställningar som enheten använder",
"label": "Modem-förinställningar"
},
"okToMqtt": {
"description": "När den är aktiverad anger denna konfiguration att användaren godkänner att paketet sänds till MQTT. Om avaktiverad uppmanas andra noder att inte vidarebefordra enhetens paket till MQTT",
"label": "OK till MQTT"
},
"overrideDutyCycle": {
"description": "Ersätt gräns för driftsperiod",
"label": "Åsidosätt gräns för driftsperiod"
},
"overrideFrequency": {
"description": "Åsidosätt frekvens",
"label": "Åsidosätt frekvens"
},
"region": {
"description": "Anger regionen för din nod",
"label": "Region"
},
"spreadingFactor": {
"description": "Indikerar antalet chirps per symbol",
"label": "Spridningsfaktor"
},
"transmitEnabled": {
"description": "Aktivera/inaktivera sändning (TX) från LoRa-radion",
"label": "Sändning aktiverad"
},
"transmitPower": {
"description": "Max sändningseffekt",
"label": "Sändningseffekt"
},
"usePreset": {
"description": "Använd en av de fördefinierade modeminställningarna",
"label": "Använd förinställning"
},
"meshSettings": {
"description": "Inställningar för LoRa-nät",
"label": "Inställningar för nät"
},
"waveformSettings": {
"description": "Inställningar för LoRa-vågformen",
"label": "Inställningar för vågform"
},
"radioSettings": {
"label": "Radioinställningar",
"description": "Inställningar för LoRa-radio"
}
},
"network": {
"title": "Wifi-konfiguration",
"description": "Konfiguration av WiFi-radio",
"note": "OBS! Vissa enheter (ESP32) kan inte använda både Bluetooth och WiFi samtidigt.",
"addressMode": {
"description": "Val för tilldelning av IP-adress",
"label": "Adress-läge"
},
"dns": {
"description": "DNS-server",
"label": "DNS"
},
"ethernetEnabled": {
"description": "Aktivera eller inaktivera Ethernet-porten",
"label": "Aktiverad"
},
"gateway": {
"description": "Standard-gateway",
"label": "Gateway"
},
"ip": {
"description": "IP-adress",
"label": "Ip-adress"
},
"psk": {
"description": "Nätverkslösenord",
"label": "PSK"
},
"ssid": {
"description": "Nätverksnamn",
"label": "SSID"
},
"subnet": {
"description": "Subnätmask",
"label": "Subnät"
},
"wifiEnabled": {
"description": "Aktivera eller inaktivera WiFi-radio",
"label": "Aktiverad"
},
"meshViaUdp": {
"label": "Mesh via UDP"
},
"ntpServer": {
"label": "NTP-server"
},
"rsyslogServer": {
"label": "Rsyslog-server"
},
"ethernetConfigSettings": {
"description": "Ethernet-portens konfiguration",
"label": "Ethernet-konfiguration"
},
"ipConfigSettings": {
"description": "IP-konfiguration",
"label": "IP-konfiguration"
},
"ntpConfigSettings": {
"description": "NTP-konfiguration",
"label": "NTP-konfiguration"
},
"rsyslogConfigSettings": {
"description": "Rsyslog-konfiguration",
"label": "Rsyslog-konfiguration"
},
"udpConfigSettings": {
"description": "UDP över nät-konfiguration",
"label": "UDP-konfiguration"
}
},
"position": {
"title": "Platsinställningar",
"description": "Inställningar för platsmodulen",
"broadcastInterval": {
"description": "Hur ofta din plats skickas ut över nätet",
"label": "Sändningsintervall"
},
"enablePin": {
"description": "Stift för aktivering av GPS-modulen",
"label": "Stift för aktivering"
},
"fixedPosition": {
"description": "Rapportera inte den inhämtade GPS-positionen, utan en manuellt angiven sådan",
"label": "Fast plats"
},
"gpsMode": {
"description": "Konfigurera om enhetens GPS är aktiverad, inaktiverad eller saknas",
"label": "GPS-läge"
},
"gpsUpdateInterval": {
"description": "Hur ofta en GPS-position ska inhämtas",
"label": "Intervall för GPS-uppdatering"
},
"positionFlags": {
"description": "Valfria fält att inkludera vid sammansättning av positionsmeddelanden. Ju fler fält som väljs, desto större kommer meddelandet att bli. Längre meddelanden leder till högre sändningsutnyttnande och en högre risk för paketförlust.",
"label": "Positionsflaggor"
},
"receivePin": {
"description": "RX-stift för GPS-modulen",
"label": "RX-stift"
},
"smartPositionEnabled": {
"description": "Sänd bara positionsuppdatering när det har skett en tillräckligt stor förändring av positionen",
"label": "Aktivera smart position"
},
"smartPositionMinDistance": {
"description": "Minsta avstånd (i meter) som enheten måste förflyttas innan en positionsuppdatering sänds",
"label": "Minimiavstånd för smart position"
},
"smartPositionMinInterval": {
"description": "Minsta tidsintervall (i sekunder) som måste passera innan en positionsuppdatering skickas",
"label": "Minimiintervall för smart position"
},
"transmitPin": {
"description": "TX-stift för GPS-modulen",
"label": "TX-stift"
},
"intervalsSettings": {
"description": "Hur ofta enheten skickar positionsuppdateringar",
"label": "Intervall"
},
"flags": {
"placeholder": "Välj positionsflaggor...",
"altitude": "Altitud",
"altitudeGeoidalSeparation": "Geoidhöjd",
"altitudeMsl": "Altitud är medelhavsnivå",
"dop": "Bidrag till osäkerhet i precision (DOP) PDOP används som standard",
"hdopVdop": "Om DOP är satt, använd HDOP / VDOP värden istället för PDOP",
"numSatellites": "Antal satelliter",
"sequenceNumber": "Sekvensnummer",
"timestamp": "Tidsstämpel",
"unset": "Ej inställd",
"vehicleHeading": "Rörelseriktning",
"vehicleSpeed": "Rörelsehastighet"
}
},
"power": {
"adcMultiplierOverride": {
"description": "Används för att justera batterispänningsavläsning",
"label": "ADC faktor"
},
"ina219Address": {
"description": "I2C-adress till INA219 batterimonitorn",
"label": "INA219-adress"
},
"lightSleepDuration": {
"description": "Hur länge enheten kommer att vara i lätt strömsparläge",
"label": "Tid för lätt strömsparläge"
},
"minimumWakeTime": {
"description": "Minsta tid enheten kommer att vara vaken efter att ha tagit emot ett paket",
"label": "Minsta vakna tid"
},
"noConnectionBluetoothDisabled": {
"description": "Om enheten inte har en aktiv Bluetooth-anslutning inaktiveras Bluetooth-radion efter så här lång tid",
"label": "Bluetooth inaktiverad vid frånkoppling"
},
"powerSavingEnabled": {
"description": "Välj om du strömmatar enheten från en lågströmkälla (sol) för att minimera strömförbrukningen så mycket som möjligt.",
"label": "Aktivera strömsparläge"
},
"shutdownOnBatteryDelay": {
"description": "Automatisk avstängning av enheten efter att ha strömmatats från batteri så här lång tid, 0 för obestämd tid",
"label": "Fördröjd avstängning vid batteridrift"
},
"superDeepSleepDuration": {
"description": "Hur länge enheten kommer att vara i djupt strömsparläge",
"label": "Tid för djupt strömsparläge"
},
"powerConfigSettings": {
"description": "Inställningar för strömmodulen",
"label": "Ströminställningar"
},
"sleepSettings": {
"description": "Strömsparlägesinställningar för strömmodulen",
"label": "Inställningar för strömsparläge"
}
},
"security": {
"description": "Inställningar för säkerhet",
"title": "Säkerhetsinställningar",
"button_backupKey": "Säkerhetskopiera nyckel",
"adminChannelEnabled": {
"description": "Tillåt inkommande styrning via den förlegade, osäkra, administrationskanalen",
"label": "Tillåt förlegad administration"
},
"enableDebugLogApi": {
"description": "Skriv felsökningsloggar över seriell kommunikation samt visa och exportera positions-rensade loggar över Bluetooth",
"label": "Aktivera API för felsökningslogg"
},
"managed": {
"description": "Om aktiverad, kan enhetens konfigurationsalternativ bara ändras på distans av en fjärradministratörsnod via administratörsmeddelanden. Aktivera inte detta alternativ om inte minst en lämplig fjärradministratörsnod har konfigurerats och den publika nyckeln matats in i något av fälten ovan.",
"label": "Fjärrhanterad"
},
"privateKey": {
"description": "Används för att skapa en delad nyckel med en fjärrnod",
"label": "Privat nyckel"
},
"publicKey": {
"description": "Sänds ut till andra noder på nätet för att de ska kunna beräkna en delad hemlig nyckel",
"label": "Publik nyckel"
},
"primaryAdminKey": {
"description": "Den primära publika nyckeln hos en fjärradministratörsnod auktoriserad att skicka administratörsmeddelanden till den här noden",
"label": "Primär administratörsnyckel"
},
"secondaryAdminKey": {
"description": "Den sekundära publika nyckeln hos en fjärradministratörsnod auktoriserad att skicka administratörsmeddelanden till den här noden",
"label": "Sekundär administratörsnyckel"
},
"serialOutputEnabled": {
"description": "Seriell kommunikation över Stream API",
"label": "Seriell kommunikation aktiverad"
},
"tertiaryAdminKey": {
"description": "Den tertiära publika nyckeln hos en fjärradministratörsnod auktoriserad att skicka administratörsmeddelanden till den här noden",
"label": "Tertiär administratörsnyckel"
},
"adminSettings": {
"description": "Inställningar för fjärradministration",
"label": "Fjärradministrationsinställningar"
},
"loggingSettings": {
"description": "Inställningar för loggning",
"label": "Loggningsinställningar"
}
},
"user": {
"title": "Användarinställningar",
"description": "Konfigurera enhetens namn och identitetsinställningar",
"longName": {
"label": "Långt namn",
"description": "Ditt fullständiga visningsnamn (1-40 tecken)",
"validation": {
"min": "Långt namn måste vara minst 1 tecken",
"max": "Långt namn får inte vara längre än 40 tecken"
}
},
"shortName": {
"label": "Kort namn",
"description": "Ditt förkortade namn (2-4 tecken)",
"validation": {
"min": "Kort namn måste ha minst 2 tecken",
"max": "Kort namn får inte vara längre än 4 tecken"
}
},
"isUnmessageable": {
"label": "Meddelanden läses ej",
"description": "Används för att identifiera oövervakade eller infrastrukturnoder så att meddelanden inte skickas till noder som inte kommer svara."
},
"isLicensed": {
"label": "Licensierad radioamatör (HAM)",
"description": "Aktivera om du är en licensierad amatörradiooperatör. Att aktivera detta alternativ inaktiverar kryptering och är inte kompatibel med standard Meshtastic-nätverket."
}
}
}
@@ -0,0 +1,34 @@
{
"page": {
"title": "Anslut till en Meshtastic-enhet",
"description": "Lägg till en enhetsanslutning via HTTP, Bluetooth eller seriell kommunikation. Dina sparade anslutningar sparas i din webbläsare."
},
"connectionType_ble": "BLE",
"connectionType_serial": "Seriell kommunikation",
"connectionType_network": "Nätverk",
"deleteConnection": "Ta bort anslutning",
"areYouSure": "Detta kommer ta bort {{name}}. Du kan inte ångra denna åtgärd.",
"moreActions": "Fler åtgärder",
"noConnections": {
"title": "Inga anslutningar än.",
"description": "Skapa din första anslutning. Den ansluts omedelbart och sparas."
},
"lastConnectedAt": "Senast ansluten: {{date}}",
"neverConnected": "Aldrig ansluten",
"toasts": {
"connected": "Ansluten",
"nowConnected": "{{name}} är nu ansluten",
"nowDisconnected": "{{name}} är nu frånkopplad",
"disconnected": "Frånkopplad",
"failed": "Anslutning misslyckades",
"checkConnetion": "Kontrollera enheten och inställningarna och försök igen",
"defaultSet": "Standard vald",
"defaultConnection": "Standardanslutningen är nu {{nameisconnected}}",
"deleted": "Borttagen",
"deletedByName": "{{name}} togs bort",
"pickConnectionAgain": "Kunde inte ansluta. Du kan behöva välja enheten/porten på nytt.",
"added": "Anslutning tillagd",
"savedByName": "{{name}} sparad.",
"savedCantConnect": "Anslutningen har sparats men enheten kunde inte anslutas till."
}
}
@@ -0,0 +1,428 @@
{
"page": {
"title": "Konfiguration",
"tabBluetooth": "Bluetooth",
"tabDevice": "Enhet",
"tabDisplay": "Display",
"tabLora": "LoRa",
"tabNetwork": "Nätverk",
"tabPosition": "Plats",
"tabPower": "Ström",
"tabSecurity": "Säkerhet"
},
"sidebar": {
"label": "Moduler"
},
"device": {
"title": "Enhetsinställningar",
"description": "Inställningar för enheten",
"buttonPin": {
"description": "Stift för knapp",
"label": "Knapp-stift"
},
"buzzerPin": {
"description": "Stift för summer",
"label": "Summer-stift"
},
"disableTripleClick": {
"description": "Inaktivera trippeltryck",
"label": "Inaktivera trippeltryck"
},
"doubleTapAsButtonPress": {
"description": "Behandla dubbeltryck som knapptryck",
"label": "Dubbeltryck som knapptryck"
},
"ledHeartbeatDisabled": {
"description": "Inaktivera blinkande LED",
"label": "LED-puls inaktiverad"
},
"nodeInfoBroadcastInterval": {
"description": "Hur ofta nod-info ska sändas",
"label": "Sändningsintervall för nod-info"
},
"posixTimezone": {
"description": "POSIX-tidszonsträng för enheten",
"label": "POSIX-tidszon"
},
"rebroadcastMode": {
"description": "Hur enheten hanterar återutsändning",
"label": "Återutsändningsläge"
},
"role": {
"description": "Vilken roll enheten har på nätet",
"label": "Roll"
}
},
"bluetooth": {
"title": "Bluetooth-inställningar",
"description": "Inställningar för Bluetooth-modulen",
"note": "OBS! Vissa enheter (ESP32) kan inte använda både Bluetooth och WiFi samtidigt.",
"enabled": {
"description": "Aktivera eller inaktivera Bluetooth",
"label": "Aktiverad"
},
"pairingMode": {
"description": "Metod för parkoppling",
"label": "Parkopplingsläge"
},
"pin": {
"description": "Pinkod för parkoppling",
"label": "Pinkod"
}
},
"display": {
"description": "Inställningar för enhetens display",
"title": "Displayinställningar",
"headingBold": {
"description": "Visa rubriktexten i fetstil",
"label": "Fetstil för rubriktext"
},
"carouselDelay": {
"description": "Tid mellan automatiskt byte av sida",
"label": "Karusellfördröjning"
},
"compassNorthTop": {
"description": "Fixera norr till toppen av kompassen",
"label": "Kompassens norrläge"
},
"displayMode": {
"description": "Variant på displaylayout",
"label": "Visningsläge"
},
"displayUnits": {
"description": "Visa metriska eller Brittiska enheter",
"label": "Enheter"
},
"flipScreen": {
"description": "Vänd displayen 180 grader",
"label": "Vänd skärmen"
},
"gpsDisplayUnits": {
"description": "Koordinatformat för visning",
"label": "Koordinatformat"
},
"oledType": {
"description": "Typ av OLED-skärm ansluten till enheten",
"label": "OLED-typ"
},
"screenTimeout": {
"description": "Stäng av skärmen efter denna tid",
"label": "Tidsgräns för display"
},
"twelveHourClock": {
"description": "Använd 12-timmarsformat",
"label": "12-timmars klocka"
},
"wakeOnTapOrMotion": {
"description": "Väck enheten när rörelse upptäcks av enhetens accelerometer",
"label": "Vakna vid rörelse"
}
},
"lora": {
"title": "Inställningar för nät",
"description": "Inställningar för LoRa-nätet",
"bandwidth": {
"description": "Kanalens bandbredd i kHz",
"label": "Bandbredd"
},
"boostedRxGain": {
"description": "Ökad RX-förstärkning",
"label": "Ökad RX-förstärkning"
},
"codingRate": {
"description": "Nämnaren för kodningshastighet",
"label": "Kodningshastighet"
},
"frequencyOffset": {
"description": "Frekvensförskjutning för att korrigera vid kalibreringsfel i kristallen",
"label": "Frekvensförskjutning"
},
"frequencySlot": {
"description": "LoRa-kanalnummer för frekvens",
"label": "Frekvens-slot"
},
"hopLimit": {
"description": "Maximalt antal hopp",
"label": "Hoppgräns"
},
"ignoreMqtt": {
"description": "Vidarebefordra inte MQTT-meddelanden över nätet",
"label": "Ignorera MQTT"
},
"modemPreset": {
"description": "Modem-förinställningar som enheten använder",
"label": "Modem-förinställningar"
},
"okToMqtt": {
"description": "När den är aktiverad anger denna konfiguration att användaren godkänner att paketet sänds till MQTT. Om avaktiverad uppmanas andra noder att inte vidarebefordra enhetens paket till MQTT",
"label": "OK till MQTT"
},
"overrideDutyCycle": {
"description": "Ersätt gräns för driftsperiod",
"label": "Åsidosätt gräns för driftsperiod"
},
"overrideFrequency": {
"description": "Åsidosätt frekvens",
"label": "Åsidosätt frekvens"
},
"region": {
"description": "Anger regionen för din nod",
"label": "Region"
},
"spreadingFactor": {
"description": "Indikerar antalet chirps per symbol",
"label": "Spridningsfaktor"
},
"transmitEnabled": {
"description": "Aktivera/inaktivera sändning (TX) från LoRa-radion",
"label": "Sändning aktiverad"
},
"transmitPower": {
"description": "Max sändningseffekt",
"label": "Sändningseffekt"
},
"usePreset": {
"description": "Använd en av de fördefinierade modeminställningarna",
"label": "Använd förinställning"
},
"meshSettings": {
"description": "Inställningar för LoRa-nät",
"label": "Inställningar för nät"
},
"waveformSettings": {
"description": "Inställningar för LoRa-vågformen",
"label": "Inställningar för vågform"
},
"radioSettings": {
"label": "Radioinställningar",
"description": "Inställningar för LoRa-radio"
}
},
"network": {
"title": "Wifi-konfiguration",
"description": "Konfiguration av WiFi-radio",
"note": "OBS! Vissa enheter (ESP32) kan inte använda både Bluetooth och WiFi samtidigt.",
"addressMode": {
"description": "Val för tilldelning av IP-adress",
"label": "Adress-läge"
},
"dns": {
"description": "DNS-server",
"label": "DNS"
},
"ethernetEnabled": {
"description": "Aktivera eller inaktivera Ethernet-porten",
"label": "Aktiverad"
},
"gateway": {
"description": "Standard-gateway",
"label": "Gateway"
},
"ip": {
"description": "IP-adress",
"label": "Ip-adress"
},
"psk": {
"description": "Nätverkslösenord",
"label": "PSK"
},
"ssid": {
"description": "Nätverksnamn",
"label": "SSID"
},
"subnet": {
"description": "Subnätmask",
"label": "Subnät"
},
"wifiEnabled": {
"description": "Aktivera eller inaktivera WiFi-radio",
"label": "Aktiverad"
},
"meshViaUdp": {
"label": "Mesh via UDP"
},
"ntpServer": {
"label": "NTP-server"
},
"rsyslogServer": {
"label": "Rsyslog-server"
},
"ethernetConfigSettings": {
"description": "Ethernet-portens konfiguration",
"label": "Ethernet-konfiguration"
},
"ipConfigSettings": {
"description": "IP-konfiguration",
"label": "IP-konfiguration"
},
"ntpConfigSettings": {
"description": "NTP-konfiguration",
"label": "NTP-konfiguration"
},
"rsyslogConfigSettings": {
"description": "Rsyslog-konfiguration",
"label": "Rsyslog-konfiguration"
},
"udpConfigSettings": {
"description": "UDP över nät-konfiguration",
"label": "UDP-konfiguration"
}
},
"position": {
"title": "Platsinställningar",
"description": "Inställningar för platsmodulen",
"broadcastInterval": {
"description": "Hur ofta din plats skickas ut över nätet",
"label": "Sändningsintervall"
},
"enablePin": {
"description": "Stift för aktivering av GPS-modulen",
"label": "Stift för aktivering"
},
"fixedPosition": {
"description": "Rapportera inte den inhämtade GPS-positionen, utan en manuellt angiven sådan",
"label": "Fast plats"
},
"gpsMode": {
"description": "Konfigurera om enhetens GPS är aktiverad, inaktiverad eller saknas",
"label": "GPS-läge"
},
"gpsUpdateInterval": {
"description": "Hur ofta en GPS-position ska inhämtas",
"label": "Intervall för GPS-uppdatering"
},
"positionFlags": {
"description": "Valfria fält att inkludera vid sammansättning av positionsmeddelanden. Ju fler fält som väljs, desto större kommer meddelandet att bli. Längre meddelanden leder till högre sändningsutnyttnande och en högre risk för paketförlust.",
"label": "Positionsflaggor"
},
"receivePin": {
"description": "RX-stift för GPS-modulen",
"label": "RX-stift"
},
"smartPositionEnabled": {
"description": "Sänd bara positionsuppdatering när det har skett en tillräckligt stor förändring av positionen",
"label": "Aktivera smart position"
},
"smartPositionMinDistance": {
"description": "Minsta avstånd (i meter) som enheten måste förflyttas innan en positionsuppdatering sänds",
"label": "Minimiavstånd för smart position"
},
"smartPositionMinInterval": {
"description": "Minsta tidsintervall (i sekunder) som måste passera innan en positionsuppdatering skickas",
"label": "Minimiintervall för smart position"
},
"transmitPin": {
"description": "TX-stift för GPS-modulen",
"label": "TX-stift"
},
"intervalsSettings": {
"description": "Hur ofta enheten skickar positionsuppdateringar",
"label": "Intervall"
},
"flags": {
"placeholder": "Välj positionsflaggor...",
"altitude": "Altitud",
"altitudeGeoidalSeparation": "Geoidhöjd",
"altitudeMsl": "Altitud är medelhavsnivå",
"dop": "Bidrag till osäkerhet i precision (DOP) PDOP används som standard",
"hdopVdop": "Om DOP är satt, använd HDOP / VDOP värden istället för PDOP",
"numSatellites": "Antal satelliter",
"sequenceNumber": "Sekvensnummer",
"timestamp": "Tidsstämpel",
"unset": "Ej inställd",
"vehicleHeading": "Rörelseriktning",
"vehicleSpeed": "Rörelsehastighet"
}
},
"power": {
"adcMultiplierOverride": {
"description": "Används för att justera batterispänningsavläsning",
"label": "ADC faktor"
},
"ina219Address": {
"description": "I2C-adress till INA219 batterimonitorn",
"label": "INA219-adress"
},
"lightSleepDuration": {
"description": "Hur länge enheten kommer att vara i lätt strömsparläge",
"label": "Tid för lätt strömsparläge"
},
"minimumWakeTime": {
"description": "Minsta tid enheten kommer att vara vaken efter att ha tagit emot ett paket",
"label": "Minsta vakna tid"
},
"noConnectionBluetoothDisabled": {
"description": "Om enheten inte har en aktiv Bluetooth-anslutning inaktiveras Bluetooth-radion efter så här lång tid",
"label": "Bluetooth inaktiverad vid frånkoppling"
},
"powerSavingEnabled": {
"description": "Välj om du strömmatar enheten från en lågströmkälla (sol) för att minimera strömförbrukningen så mycket som möjligt.",
"label": "Aktivera strömsparläge"
},
"shutdownOnBatteryDelay": {
"description": "Automatisk avstängning av enheten efter att ha strömmatats från batteri så här lång tid, 0 för obestämd tid",
"label": "Fördröjd avstängning vid batteridrift"
},
"superDeepSleepDuration": {
"description": "Hur länge enheten kommer att vara i djupt strömsparläge",
"label": "Tid för djupt strömsparläge"
},
"powerConfigSettings": {
"description": "Inställningar för strömmodulen",
"label": "Ströminställningar"
},
"sleepSettings": {
"description": "Strömsparlägesinställningar för strömmodulen",
"label": "Inställningar för strömsparläge"
}
},
"security": {
"description": "Inställningar för säkerhet",
"title": "Säkerhetsinställningar",
"button_backupKey": "Säkerhetskopiera nyckel",
"adminChannelEnabled": {
"description": "Tillåt inkommande styrning via den förlegade, osäkra, administrationskanalen",
"label": "Tillåt förlegad administration"
},
"enableDebugLogApi": {
"description": "Skriv felsökningsloggar över seriell kommunikation samt visa och exportera positions-rensade loggar över Bluetooth",
"label": "Aktivera API för felsökningslogg"
},
"managed": {
"description": "Om aktiverad, kan enhetens konfigurationsalternativ bara ändras på distans av en fjärradministratörsnod via administratörsmeddelanden. Aktivera inte detta alternativ om inte minst en lämplig fjärradministratörsnod har konfigurerats och den publika nyckeln matats in i något av fälten ovan.",
"label": "Fjärrhanterad"
},
"privateKey": {
"description": "Används för att skapa en delad nyckel med en fjärrnod",
"label": "Privat nyckel"
},
"publicKey": {
"description": "Sänds ut till andra noder på nätet för att de ska kunna beräkna en delad hemlig nyckel",
"label": "Publik nyckel"
},
"primaryAdminKey": {
"description": "Den primära publika nyckeln hos en fjärradministratörsnod auktoriserad att skicka administratörsmeddelanden till den här noden",
"label": "Primär administratörsnyckel"
},
"secondaryAdminKey": {
"description": "Den sekundära publika nyckeln hos en fjärradministratörsnod auktoriserad att skicka administratörsmeddelanden till den här noden",
"label": "Sekundär administratörsnyckel"
},
"serialOutputEnabled": {
"description": "Seriell kommunikation över Stream API",
"label": "Seriell kommunikation aktiverad"
},
"tertiaryAdminKey": {
"description": "Den tertiära publika nyckeln hos en fjärradministratörsnod auktoriserad att skicka administratörsmeddelanden till den här noden",
"label": "Tertiär administratörsnyckel"
},
"adminSettings": {
"description": "Inställningar för fjärradministration",
"label": "Fjärradministrationsinställningar"
},
"loggingSettings": {
"description": "Inställningar för loggning",
"label": "Loggningsinställningar"
}
}
}
@@ -0,0 +1,238 @@
{
"deleteMessages": {
"description": "Den här åtgärden kommer att rensa all meddelandehistorik. Detta kan inte ångras. Är du säker på att du vill fortsätta?",
"title": "Rensa alla meddelanden"
},
"import": {
"description": "Den aktuella LoRa konfigurationen kommer att skrivas över.",
"error": {
"invalidUrl": "Ogiltig Meshtastic URL"
},
"channelPrefix": "Kanal: ",
"primary": "Primär ",
"doNotImport": "Importera inte",
"channelName": "Namn",
"channelSlot": "Plats",
"channelSetUrl": "Kanalinställning/QR-kod URL",
"useLoraConfig": "Importera LoRa-konfiguration",
"presetDescription": "Den nuvarande LoRa-konfigurationen kommer att ersättas.",
"title": "Importera kanaluppsättning"
},
"locationResponse": {
"title": "Plats: {{identifier}}",
"altitude": "Höjd:",
"coordinates": "Koordinater: ",
"noCoordinates": "Koordinater saknas"
},
"pkiRegenerateDialog": {
"title": "Förnya nyckel?",
"description": "Är du säker på att du vill förnya den fördelade nyckeln?",
"regenerate": "Förnya"
},
"addConnection": {
"title": "Lägg till anslutning",
"description": "Välj en anslutningstyp och fyll i uppgifterna",
"validation": {
"requiresWebBluetooth": "Den här anslutningstypen kräver <0>Web Bluetooth</0>. Använd en webbläsare som stöds, till exempel Chrome eller Edge.",
"requiresWebSerial": "Den här anslutningstypen kräver <0>Web Serial</0>. Använd en webbläsare som stöds, till exempel Chrome eller Edge.",
"requiresSecureContext": "Denna applikation kräver en <0>säker kontext</0>. Anslut med HTTPS eller localhost.",
"additionallyRequiresSecureContext": "Dessutom kräver den ett <0>säker kontext</0>. Vänligen anslut med HTTPS eller localhost."
},
"bluetoothConnection": {
"namePlaceholder": "Min Bluetooth-nod",
"supported": {
"title": "Web Bluetooth stöds"
},
"notSupported": {
"title": "Web Bluetooth stöds inte",
"description": "Din webbläsare eller enhet har inte stöd för Web Bluetooth"
},
"short": "BT: {{deviceName}}",
"long": "Bluetooth-enhet",
"device": "Enhet",
"selectDevice": "Välj enhet",
"selected": "Bluetooth-enhet vald",
"notSelected": "Ingen enhet vald",
"helperText": "Använder Meshtastic Bluetooth-tjänsten för upptäckt."
},
"serialConnection": {
"namePlaceholder": "Min seriella nod",
"helperText": "Att välja en port ger behörighet så att appen kan öppna den för att ansluta.",
"supported": {
"title": "Web Serial stöds"
},
"notSupported": {
"title": "Web Serial stöds inte",
"description": "Din webbläsare eller enhet har inte stöd för Web Serial"
},
"portSelected": {
"title": "Seriell port vald",
"description": "Portbehörigheter beviljade."
},
"port": "Port",
"selectPort": "Välj port",
"deviceName": "USB {{vendorId}}:{{productId}}",
"notSelected": "Ingen port vald"
},
"httpConnection": {
"namePlaceholder": "Min HTTP-nod",
"inputPlaceholder": "192.168.1.10 eller meshtastic.local",
"heading": "URL eller IP",
"useHttps": "Använd HTTPS",
"invalidUrl": {
"title": "Ogiltig adress",
"description": "Ange en giltig HTTP- eller HTTPS-URL."
},
"connectionTest": {
"description": "Testa konnetionen innan du sparar för att verifiera att enheten är nåbar.",
"button": {
"loading": "Testar...",
"label": "Testa anslutningen"
},
"reachable": "Nåbar",
"notReachable": "Kan inte nås",
"success": {
"title": "Anslutningstest lyckades",
"description": "Enheten verkar vara nåbar."
},
"failure": {
"title": "Anslutningen misslyckades",
"description": "Kunde inte nå enheten. Kontrollera URL:en och försök igen."
}
}
}
},
"nodeDetails": {
"message": "Meddelande",
"requestPosition": "Begär plats",
"traceRoute": "Spåra rutt",
"airTxUtilization": "Sändningsutnyttjande",
"allRawMetrics": "All oformaterad data",
"batteryLevel": "Batterinivå",
"channelUtilization": "Kanalutnyttjande",
"details": "Detaljer:",
"deviceMetrics": "Enhetens mätvärden:",
"hardware": "Hårdvara: ",
"lastHeard": "Senast hörd: ",
"nodeHexPrefix": "Nod-hex: ",
"nodeNumber": "Nodnummer: ",
"position": "Plats:",
"role": "Roll: ",
"uptime": "Drifttid: ",
"voltage": "Spänning",
"title": "Nodinformation för {{identifier}}",
"ignoreNode": "Ignorera nod",
"removeNode": "Ta bort nod",
"unignoreNode": "Ta bort favoritmarkering",
"security": "Säkerhet:",
"publicKey": "Publik nyckel: ",
"messageable": "Övervakad: ",
"KeyManuallyVerifiedTrue": "Den publika nyckeln har verifierats manuellt",
"KeyManuallyVerifiedFalse": "Den publika nyckeln är inte manuellt verifierad"
},
"pkiBackup": {
"loseKeysWarning": "Om du förlorar dina nycklar måste du återställa din enhet.",
"secureBackup": "Det är viktigt att säkerhetskopiera dina publika och privata nycklar och förvara din säkerhetskopia säkert.",
"footer": "=== END OF KEYS ===",
"header": "=== MESHTASTIC KEYS FOR {{longName}} ({{shortName}}) ===",
"privateKey": "Privat nyckel:",
"publicKey": "Publik nyckel:",
"fileName": "meshtastic_keys_{{longName}}_{{shortName}}.txt",
"title": "Säkerhetskopiera nycklar"
},
"pkiBackupReminder": {
"description": "Vi rekommenderar att du säkerhetskopierar dina nycklar regelbundet. Vill du säkerhetskopiera nu?",
"title": "Påminnelse om säkerhetskopiering",
"remindLaterPrefix": "Påminn mig om",
"remindNever": "Påminn mig aldrig",
"backupNow": "Säkerhetskopiera nu"
},
"pkiRegenerate": {
"description": "Är du säker på att du vill förnya nyckelpar?",
"title": "Förnya nyckelpar"
},
"qr": {
"addChannels": "Lägg till kanaler",
"replaceChannels": "Ersätt kanaler",
"description": "Den aktuella LoRa-konfigurationen kommer också att delas.",
"sharableUrl": "Delbar URL",
"title": "Generera QR-kod"
},
"reboot": {
"title": "Starta om enhet",
"description": "Starta om nu eller schemalägga en omstart av den anslutna noden. Alternativt kan du välja att starta om till OTA (Over-the-Air) läge.",
"ota": "Starta om till OTA-läge",
"enterDelay": "Ange fördröjning",
"scheduled": "Omstart har schemalagts",
"schedule": "Schemalägg omstart",
"now": "Starta om nu",
"cancel": "Avbryt schemalagd omstart"
},
"refreshKeys": {
"description": {
"acceptNewKeys": "Detta kommer att ta bort noden från enheten och begära nya nycklar.",
"keyMismatchReasonSuffix": ". Detta beror på att fjärrnodens nuvarande publika nyckel inte matchar den tidigare lagrade nyckeln för den här noden.",
"unableToSendDmPrefix": "Din nod kan inte skicka ett direkt meddelande till noden: "
},
"acceptNewKeys": "Godkänn nya nycklar",
"title": "Nycklarna matchar inte - {{identifier}}"
},
"removeNode": {
"description": "Är du säker på att du vill ta bort den här noden?",
"title": "Ta bort noden?"
},
"shutdown": {
"title": "Schemalägg avstängning",
"description": "Stäng av den anslutna noden efter x minuter."
},
"traceRoute": {
"routeToDestination": "Rutt till destination:",
"routeBack": "Rutt tillbaka:"
},
"tracerouteResponse": {
"title": "Spåra rutt: {{identifier}}"
},
"unsafeRoles": {
"confirmUnderstanding": "Ja, jag vet vad jag gör",
"conjunction": " och blogginlägget om ",
"postamble": " och förstår konsekvenserna av att ändra roll.",
"preamble": "Jag har läst ",
"choosingRightDeviceRole": "Att välja rätt enhetsroll",
"deviceRoleDocumentation": "Dokumentation för enhetsroll",
"title": "Är du säker?"
},
"managedMode": {
"confirmUnderstanding": "Ja, jag vet vad jag gör",
"title": "Är du säker?",
"description": "Aktivering av fjärrhanterat läge blockerar klienter (inklusive webbklienten) från att skriva inställningar till en radio. När detta är aktiverat kan enhetens inställningar endast ändras via fjärradministratörsmeddelanden. Den här inställningen krävs inte för fjärradministration."
},
"clientNotification": {
"title": "Meddelande från enheten",
"TraceRoute can only be sent once every 30 seconds": "Ruttspårning kan bara skickas en gång per 30 sekunder",
"Compromised keys were detected and regenerated.": "Komprometterade nycklar upptäcktes på enheten och nya har genererats."
},
"resetNodeDb": {
"title": "Återställ noddatabas",
"description": "Detta kommer att rensa alla noder från den anslutna enhetens noddatabas och rensa all meddelandehistorik i klienten. Detta kan inte ångras. Är du säker på att du vill fortsätta?",
"confirm": "Återställ noddatabas",
"failedTitle": "Det gick inte att återställa noddatabasen. Försök igen."
},
"clearAllStores": {
"title": "Töm all lokal lagring",
"description": "Detta kommer att rensa all lokalt lagrad data, inklusive meddelandehistorik och noddatabaser för alla tidigare anslutna enheter. Detta kommer att kräva att du återansluter till din nod och kan inte ångras. Är du säker på att du vill fortsätta?",
"confirm": "Töm all lokal lagring",
"failedTitle": "Det gick inte att rensa lokal lagring. Försök igen."
},
"factoryResetDevice": {
"title": "Fabriksåterställ enhet",
"description": "Detta kommer fabriksåterställa den anslutna enheten, radera alla konfigurationer och data på enheten samt alla noder och meddelanden som sparats i klienten. Detta kan inte ångras. Är du säker på att du vill fortsätta?",
"confirm": "Fabriksåterställ enhet",
"failedTitle": "Det gick inte att utföra fabriksåterställningen. Försök igen."
},
"factoryResetConfig": {
"title": "Fabriksåterställ konfigurationen",
"description": "Detta kommer fabriksåterställa konfigurationen på den anslutna enheten och radera alla inställningar på enheten. Detta kan inte ångras. Är du säker på att du vill fortsätta?",
"confirm": "Fabriksåterställ konfigurationen",
"failedTitle": "Det gick inte att utföra fabriksåterställningen. Försök igen."
}
}
@@ -0,0 +1,38 @@
{
"maplibre": {
"GeolocateControl.FindMyLocation": "Hitta min plats",
"NavigationControl.ZoomIn": "Zooma in",
"NavigationControl.ZoomOut": "Zooma ut",
"CooperativeGesturesHandler.WindowsHelpText": "Använd ctrl + scroll för att zooma kartan",
"CooperativeGesturesHandler.MacHelpText": "Använd ⌘ + scroll för att zooma kartan",
"CooperativeGesturesHandler.MobileHelpText": "Använd två fingrar för att flytta kartan"
},
"layerTool": {
"nodeMarkers": "Visa noder",
"directNeighbors": "Visa direktanslutningar",
"remoteNeighbors": "Visa fjärranslutningar",
"positionPrecision": "Visa positionens precision",
"traceroutes": "Visa traceroutes",
"waypoints": "Visa vägpunkter"
},
"mapMenu": {
"locateAria": "Hitta min nod",
"layersAria": "Ändra kartstil"
},
"waypointDetail": {
"edit": "Ändra",
"description": "Beskrivning:",
"createdBy": "Ändrad av:",
"createdDate": "Skapad:",
"updated": "Uppdaterad:",
"expires": "Löper ut:",
"distance": "Avstånd:",
"bearing": "Absolut bäring:",
"lockedTo": "Låst av:",
"latitude": "Latitud:",
"longitude": "Longitud:"
},
"myNode": {
"tooltip": "Den här enheten"
}
}
@@ -0,0 +1,39 @@
{
"page": {
"title": "Meddelanden: {{chatName}}",
"placeholder": "Ange meddelande"
},
"emptyState": {
"title": "Välj en chatt",
"text": "Det finns inga meddelanden ännu."
},
"selectChatPrompt": {
"text": "Välj en kanal eller nod för att börja chatta."
},
"sendMessage": {
"placeholder": "Ange ditt meddelande här...",
"sendButton": "Skicka"
},
"actionsMenu": {
"addReactionLabel": "Lägg till reaktion",
"replyLabel": "Svara"
},
"deliveryStatus": {
"delivered": {
"label": "Meddelandet har levererats",
"displayText": "Meddelandet har levererats"
},
"failed": {
"label": "Meddelandeleverans misslyckades",
"displayText": "Leverans misslyckades"
},
"unknown": {
"label": "Okänd meddelandestatus",
"displayText": "Okänd status"
},
"waiting": {
"label": "Skickar meddelande",
"displayText": "Väntar på leverans"
}
}
}
@@ -0,0 +1,448 @@
{
"page": {
"tabAmbientLighting": "Omgivande belysning",
"tabAudio": "Ljud",
"tabCannedMessage": "Fördefinierade meddelanden",
"tabDetectionSensor": "Detekteringssensor",
"tabExternalNotification": "Extern avisering",
"tabMqtt": "MQTT",
"tabNeighborInfo": "Granninformation",
"tabPaxcounter": "Paxcounter",
"tabRangeTest": "Räckvidd",
"tabSerial": "Seriell kommunikation",
"tabStoreAndForward": "Lagra & vidarebefodra",
"tabTelemetry": "Telemetri"
},
"ambientLighting": {
"title": "Inställningar för omgivande belysning",
"description": "Inställningar för modulen för omgivande belysning",
"ledState": {
"label": "LED-läge",
"description": "Anger om lysdioden ska vara på eller av"
},
"current": {
"label": "Ström",
"description": "Ställer in strömmen för LED-utgången. Standardvärdet är 10"
},
"red": {
"label": "Rött",
"description": "Anger nivån för den röda lysdioden. Värdena är 0-255"
},
"green": {
"label": "Grönt",
"description": "Anger nivån för den gröna lysdioden. Värdena är 0-255"
},
"blue": {
"label": "Blått",
"description": "Anger nivån för den blåa lysdioden. Värdena är 0-255"
}
},
"audio": {
"title": "Ljudinställningar",
"description": "Inställningar för ljudmodulen",
"codec2Enabled": {
"label": "Codec 2 aktiverad",
"description": "Aktivera Codec 2-ljudkodning"
},
"pttPin": {
"label": "PTT-stift",
"description": "GPIO-stift för PTT"
},
"bitrate": {
"label": "Bitrate",
"description": "Bitrate att använda för ljudkodning"
},
"i2sWs": {
"label": "i2S WS",
"description": "GPIO-stift att använda för i2S WS"
},
"i2sSd": {
"label": "i2S SD",
"description": "GPIO-stift att använda för i2S SD"
},
"i2sDin": {
"label": "i2S DIN",
"description": "GPIO-stift att använda för i2S DIN"
},
"i2sSck": {
"label": "i2S SCK",
"description": "GPIO-stift att använda för i2S SCK"
}
},
"cannedMessage": {
"title": "Inställningar för fördefinierade meddelanden",
"description": "Inställningar för modulen för fördefinierade meddelanden",
"moduleEnabled": {
"label": "Modul aktiverad",
"description": "Aktivera fördefinierade meddelanden"
},
"rotary1Enabled": {
"label": "Vridomkopplare #1 aktiverad",
"description": "Aktivera vridomkopplare"
},
"inputbrokerPinA": {
"label": "Vridomkopplarstift A",
"description": "GPIO-stift (1-39) för vridomkopplarens A-stift"
},
"inputbrokerPinB": {
"label": "Vridomkopplarstift B",
"description": "GPIO-stift (1-39) för vridomkopplarens B-stift"
},
"inputbrokerPinPress": {
"label": "Vridomkopplarens knappstift",
"description": "GPIO-stift (1-39) för vridomkopplarens knapp-stift"
},
"inputbrokerEventCw": {
"label": "Medurs inmatningshändelse",
"description": "Välj inmatningshändelse."
},
"inputbrokerEventCcw": {
"label": "Moturs inmatningshändelse",
"description": "Välj inmatningshändelse."
},
"inputbrokerEventPress": {
"label": "Inmatningshändelse för tryck",
"description": "Välj inmatningshändelse."
},
"updown1Enabled": {
"label": "Upp/ned aktiverad",
"description": "Aktivera upp/ner vridomkopplaren"
},
"allowInputSource": {
"label": "Tillåten inmatningskälla",
"description": "Välj från: '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
},
"sendBell": {
"label": "Skicka klocka",
"description": "Skickar det speciella klock-tecknet med varje meddelande"
}
},
"detectionSensor": {
"title": "Inställningar för detekteringssensor",
"description": "Inställningar för detekteringssensor-modulen",
"enabled": {
"label": "Aktiverad",
"description": "Aktivera eller inaktivera detekteringssensor-modulen"
},
"minimumBroadcastSecs": {
"label": "Minsta sändningsintervall",
"description": "Tidsintervall i sekunder hur ofta vi kan skicka ett meddelande till nätet när en tillståndsändring upptäckts"
},
"stateBroadcastSecs": {
"label": "Högsta sändningsintervall",
"description": "Tidsintervall i sekunder hur ofta vi ska skicka ett meddelande till nätet med nuvarande tillstånd oavsett eventuella förändringar"
},
"sendBell": {
"label": "Skicka klocka",
"description": "Skicka det speciella klock-tecknet med meddelandet"
},
"name": {
"label": "Visningsnamn",
"description": "Används för att formatera meddelandet som skickas till nätet, max 20 tecken"
},
"monitorPin": {
"label": "Stift att övervaka",
"description": "GPIO-stiftet att övervaka för tillståndsändringar"
},
"detectionTriggerType": {
"label": "Typ för utlösande händelse",
"description": "Typ av utlösande händelse som ska användas"
},
"usePullup": {
"label": "Använd Pullup",
"description": "Huruvida INPUT_PULLUP-läget ska användas för GPIO-stiftet "
}
},
"externalNotification": {
"title": "Inställningar för extern avisering",
"description": "Konfigurera modulen för extern avisering",
"enabled": {
"label": "Modul aktiverad",
"description": "Aktivera extern avisering"
},
"outputMs": {
"label": "Längd",
"description": "Hur länge ska notifikationen vara aktiverad"
},
"output": {
"label": "Utgång",
"description": "GPIO-stift för utgång"
},
"outputVibra": {
"label": "Vibrationsutgång",
"description": "GPIO-stift för vibrationsutgång"
},
"outputBuzzer": {
"label": "Summerutgång",
"description": "GPIO-stift för summerutgång"
},
"active": {
"label": "Aktiv",
"description": "Aktiv"
},
"alertMessage": {
"label": "Meddelande-utgång",
"description": "Aktivera utgång när nytt meddelande tas emot"
},
"alertMessageVibra": {
"label": "Meddelande-vibrationsutgång",
"description": "Aktivera vibrationsutgång när nytt meddelande tas emot"
},
"alertMessageBuzzer": {
"label": "Meddelande-summer",
"description": "Aktivera summerutgång när nytt meddelande tas emot"
},
"alertBell": {
"label": "Klock-tecken-utgång",
"description": "Aktivera utgång när ett inkommande meddelande innehåller det speciella klock-tecknet?"
},
"alertBellVibra": {
"label": "Klock-tecken-vibration",
"description": "Aktivera vibrationsutgång när ett inkommande meddelande innehåller det speciella klock-tecknet"
},
"alertBellBuzzer": {
"label": "Klock-tecken-summer",
"description": "Aktivera summerutgång när ett inkommande meddelande innehåller det speciella klock-tecknet"
},
"usePwm": {
"label": "Använd PWM",
"description": "Använd pulsbreddsmodulering (PWM)"
},
"nagTimeout": {
"label": "Time-out för påminnelse",
"description": "Time-out för påminnelse"
},
"useI2sAsBuzzer": {
"label": "Använd I²S-stift som summer",
"description": "Ange I²S-stift som summerutgång"
}
},
"mqtt": {
"title": "MQTT Inställningar",
"description": "Inställningar för MQTT-modulen",
"enabled": {
"label": "Aktiverad",
"description": "Aktivera eller inaktivera MQTT"
},
"address": {
"label": "MQTT-serveradress",
"description": "MQTT-serveradress att använda för standard/anpassade servrar"
},
"username": {
"label": "MQTT-användarnamn",
"description": "MQTT-användarnamn att använda för standard/anpassade servrar"
},
"password": {
"label": "MQTT-lösenord",
"description": "MQTT-lösenord att använda för standard/anpassade servrar"
},
"encryptionEnabled": {
"label": "Aktivera kryptering ",
"description": "Aktivera eller inaktivera MQTT-kryptering. OBS: Alla meddelanden skickas okrypterade till MQTT-servern om det här alternativet inte är aktiverat, även när dina kanaler med aktiverad MQTT-upplänk har krypteringsnycklar. Detta inkluderar positionsdata."
},
"jsonEnabled": {
"label": "JSON aktiverat",
"description": "Om du vill skicka/ta emot JSON-paket på MQTT"
},
"tlsEnabled": {
"label": "TLS aktiverat",
"description": "Aktivera eller inaktivera TLS"
},
"root": {
"label": "Rotämne (root topic)",
"description": "MQTT rotämne (root topic) att använda för standard/anpassade servrar "
},
"proxyToClientEnabled": {
"label": "MQTT-klientproxy aktiverad",
"description": "Utnyttja nätverksanslutningen för att vidarebefodra MQTT-meddelanden till klienten."
},
"mapReportingEnabled": {
"label": "Kartrapportering aktiverad",
"description": "Din nod kommer periodvis skicka ett okrypterat paket till den konfigurerade MQTT-servern som inkluderar id, kort och långt namn, ungefärlig plats, hardvarumodell, enhetsroll, mjukvaru-version, LoRa-region, modeminställning och den primära kanalens namn."
},
"mapReportSettings": {
"publishIntervalSecs": {
"label": "Intervall för kartrapportering",
"description": "Intervall i sekunder för hur ofta kartrapportering ska ske"
},
"positionPrecision": {
"label": "Ungefärlig plats",
"description": "Den delade platsen kommer att avrundas till denna noggrannhet",
"options": {
"metric_km23": "Inom 23 km",
"metric_km12": "Inom 12 km",
"metric_km5_8": "Inom 5,8 km",
"metric_km2_9": "Inom 2,9 km",
"metric_km1_5": "Inom 1,5 km",
"metric_m700": "Inom 700 m",
"metric_m350": "Inom 350 m",
"metric_m200": "Inom 200 m",
"metric_m90": "Inom 90 meter",
"metric_m50": "inom 50 m",
"imperial_mi15": "Inom 15 engelska mil",
"imperial_mi7_3": "Inom 7,3 engelska mil",
"imperial_mi3_6": "Inom 3,6 engelska mil",
"imperial_mi1_8": "Inom 1,8 engelska mil",
"imperial_mi0_9": "Inom 0,9 engelska mil",
"imperial_mi0_5": "Inom 0,5 engelska mil",
"imperial_mi0_2": "Inom 0,2 engelska mil",
"imperial_ft600": "Inom 600 fot",
"imperial_ft300": "Inom 300 fot",
"imperial_ft150": "Inom 150 fot"
}
}
}
},
"neighborInfo": {
"title": "Inställningar för granninformation",
"description": "Inställningar för granninformation-modulen",
"enabled": {
"label": "Aktiverad",
"description": "Aktivera eller inaktivera granninformation-modulen"
},
"updateInterval": {
"label": "Uppdateringsintervall",
"description": "Intervall i sekunder av hur ofta granninformation ska försöka skickas till nätet"
}
},
"paxcounter": {
"title": "Inställningar för Paxcounter",
"description": "Inställningar för Paxcounter-modulen",
"enabled": {
"label": "Modul aktiverad",
"description": "Aktivera Paxcounter"
},
"paxcounterUpdateInterval": {
"label": "Uppdateringsintervall (sekunder)",
"description": "Hur lång tid mellan paxcounter paket skickas"
},
"wifiThreshold": {
"label": "Tröskelvärde för WiFi RSSI ",
"description": "På vilken WiFi RSSI-nivå ska räknaren öka. Standardvärdet är -80."
},
"bleThreshold": {
"label": "Tröskelvärde för Bluetooth RSSI ",
"description": "På vilken Bluetooth RSSI-nivå ska räknaren öka. Standardvärdet är -80."
}
},
"rangeTest": {
"title": "Inställningar för räckviddstest",
"description": "Inställningar för räckviddstest-modulen",
"enabled": {
"label": "Modul aktiverad",
"description": "Aktivera räckviddstest"
},
"sender": {
"label": "Meddelandeintervall",
"description": "Hur lång tid mellan utsändning av testpaket"
},
"save": {
"label": "Spara CSV till lagring",
"description": "Spara CSV till enhetens egna flashminne. Endast tillgängligt på ESP32-enheter."
}
},
"serial": {
"title": "Inställningar för seriell kommunikation",
"description": "Inställningar för den seriella modulen",
"enabled": {
"label": "Modul aktiverad",
"description": "Aktivera seriell utmatning"
},
"echo": {
"label": "Eko",
"description": "Alla paket du skickar kommer att upprepas tillbaka till din enhet"
},
"rxd": {
"label": "Stift för mottagning",
"description": "Ställ in GPIO-stift till det RXD-stift du har konfigurerat."
},
"txd": {
"label": "Stift för sändning",
"description": "Ställ in GPIO-stift till det TXD-stift du har konfigurerat."
},
"baud": {
"label": "Hastighet",
"description": "Den seriella kommunikationens hastighet"
},
"timeout": {
"label": "Timeout",
"description": "Tid att vänta innan ditt paket betraktas som \"klart\"."
},
"mode": {
"label": "Typ",
"description": "Välj typ av paket"
},
"overrideConsoleSerialPort": {
"label": "Åsidosätt konsolens serieport",
"description": "Om du har en seriell port ansluten till konsolen kommer detta att ersätta den."
}
},
"storeForward": {
"title": "Inställningar för lagra & vidarebefodra",
"description": "Inställningar för lagra & vidarebefodra-modulen",
"enabled": {
"label": "Modul aktiverad",
"description": "Aktivera lagra & vidarebefodra-modulen"
},
"heartbeat": {
"label": "Puls aktiverad",
"description": "Aktivera sändning av lagra & vidarebefodra-puls "
},
"records": {
"label": "Antal poster",
"description": "Antal poster att lagra"
},
"historyReturnMax": {
"label": "Maxstorlek för historik",
"description": "Maximalt antal poster att returnera"
},
"historyReturnWindow": {
"label": "Returfönstrets storlek för historik",
"description": "Returnera poster från detta tidsfönster (minuter)"
}
},
"telemetry": {
"title": "Inställningar för telemetri",
"description": "Inställningar för telemetrimodulen",
"deviceUpdateInterval": {
"label": "Enhetens mätvärden",
"description": "Uppdateringsintervall för enhetsdata"
},
"environmentUpdateInterval": {
"label": "Uppdateringsintervall för miljömätningar",
"description": ""
},
"environmentMeasurementEnabled": {
"label": "Modul aktiverad",
"description": "Aktivera miljötelemetri"
},
"environmentScreenEnabled": {
"label": "Visa på display",
"description": "Visa telemetri-värden på OLED-displayen"
},
"environmentDisplayFahrenheit": {
"label": "Visa Fahrenheit",
"description": "Visa temperatur i Fahrenheit"
},
"airQualityEnabled": {
"label": "Aktivera luftkvalitet ",
"description": "Aktivera telemetri för luftkvalitet"
},
"airQualityInterval": {
"label": "Intervall för uppdatering av luftkvalitet",
"description": "Hur ofta att skicka data om luftkvalitet över nätet"
},
"powerMeasurementEnabled": {
"label": "Effektmätning aktiverad",
"description": "Aktivera telemetri för effektmätning"
},
"powerUpdateInterval": {
"label": "Intervall för effektuppdatering",
"description": "Hur ofta ska effektdata skickas över nätet"
},
"powerScreenEnabled": {
"label": "Aktivera strömskärm",
"description": "Aktivera skärmen för strömdata"
}
}
}
@@ -0,0 +1,59 @@
{
"nodeDetail": {
"publicKeyEnabled": {
"label": "Publik nyckel aktiverad"
},
"noPublicKey": {
"label": "Publik nyckel saknas"
},
"directMessage": {
"label": "Direktmeddelande {{shortName}}"
},
"favorite": {
"label": "Favorit",
"tooltip": "Lägg till eller ta bort den här noden från dina favoriter"
},
"notFavorite": {
"label": "Inte en favorit"
},
"error": {
"label": "Fel",
"text": "Ett fel inträffade vid hämtning av nodens detaljer. Försök igen senare."
},
"status": {
"heard": "Hörd",
"mqtt": "MQTT"
},
"elevation": {
"label": "Höjd"
},
"channelUtil": {
"label": "Kanalutnyttjande"
},
"airtimeUtil": {
"label": "Sändningstidsutnyttjande"
}
},
"nodesTable": {
"headings": {
"longName": "Långt namn",
"connection": "Anslutning",
"lastHeard": "Senast hörd",
"encryption": "Kryptering",
"model": "Modell",
"macAddress": "MAC-adress"
},
"connectionStatus": {
"direct": "Direkt",
"away": "bort",
"viaMqtt": ", via MQTT"
}
},
"actions": {
"added": "Tillagd",
"removed": "Borttagen",
"ignoreNode": "Ignorera nod",
"unignoreNode": "Ta bort ignorering",
"requestPosition": "Begär plats"
}
}
+230
View File
@@ -0,0 +1,230 @@
{
"navigation": {
"title": "Navigering",
"messages": "Meddelanden",
"map": "Karta",
"settings": "Inställningar",
"channels": "Kanaler",
"radioConfig": "Radioinställningar",
"deviceConfig": "Enhetskonfiguration",
"moduleConfig": "Modulinställningar",
"manageConnections": "Hantera anslutningar",
"nodes": "Noder"
},
"app": {
"title": "Meshtastic",
"logo": "Meshtastic logotyp"
},
"sidebar": {
"collapseToggle": {
"button": {
"open": "Öppna sidopanel",
"close": "Stäng sidopanel"
}
},
"deviceInfo": {
"volts": "{{voltage}} volt",
"firmware": {
"title": "Firmware",
"version": "v{{version}}",
"buildDate": "Kompileringsdatum: {{date}}"
}
}
},
"batteryStatus": {
"charging": "{{level}}%, laddar",
"pluggedIn": "Ansluten",
"title": "Batteri"
},
"search": {
"nodes": "Sök noder...",
"channels": "Sök kanaler...",
"commandPalette": "Sök kommandon..."
},
"toast": {
"positionRequestSent": {
"title": "Platsbegäran skickad."
},
"requestingPosition": {
"title": "Begär plats, var god vänta..."
},
"sendingTraceroute": {
"title": "Skickar Traceroute (spåra rutt), vänligen vänta..."
},
"tracerouteSent": {
"title": "Traceroute (spåra rutt) skickat.."
},
"savedChannel": {
"title": "Sparat kanal: {{channelName}}"
},
"messages": {
"pkiEncryption": {
"title": "Chatten använder PKI-kryptering."
},
"pskEncryption": {
"title": "Chatten använder PSK-kryptering."
}
},
"configSaveError": {
"title": "Kunde inte spara inställningarna",
"description": "Ett fel inträffade när inställningarna sparades."
},
"validationError": {
"title": "Det förekommer inställningsfel",
"description": "Vänligen åtgärda felen i inställningarna innan du sparar."
},
"saveSuccess": {
"title": "Sparar inställningarna",
"description": "Ändrignarna av {{case}}-inställningarna har sparats."
},
"saveAllSuccess": {
"title": "Sparat",
"description": "Alla konfigurationsändringar har sparats."
},
"favoriteNode": {
"title": "{{action}} {{nodeName}} {{direction}} dina favoriter.",
"action": {
"added": "La till",
"removed": "Tog bort",
"to": "till",
"from": "från"
}
},
"ignoreNode": {
"title": "{{action}} {{nodeName}} {{direction}} dina ignorerade noder",
"action": {
"added": "La till",
"removed": "Tog bort",
"to": "till",
"from": "från"
}
}
},
"notifications": {
"copied": {
"label": "Kopierat!"
},
"copyToClipboard": {
"label": "Kopiera till Urklipp"
},
"hidePassword": {
"label": "Dölj lösenord"
},
"showPassword": {
"label": "Visa lösenord"
},
"deliveryStatus": {
"delivered": "Levererad",
"failed": "Leverans misslyckades",
"waiting": "Väntar",
"unknown": "Okänd"
}
},
"general": {
"label": "Allmänt"
},
"hardware": {
"label": "Hårdvara"
},
"metrics": {
"label": "Telemetri"
},
"role": {
"label": "Roll"
},
"filter": {
"label": "Filter"
},
"advanced": {
"label": "Advancerat"
},
"clearInput": {
"label": "Rensa inmatning"
},
"resetFilters": {
"label": "Återställ filter"
},
"nodeName": {
"label": "Nodnamn/nummer",
"placeholder": "Meshtastic 1234"
},
"airtimeUtilization": {
"label": "Sändningstidsutnyttjande (%)",
"short": "Sändningstidsutnyttjande (%)"
},
"batteryLevel": {
"label": "Batterinivå (%)",
"labelText": "Batterinivå (%): {{value}}"
},
"batteryVoltage": {
"label": "Batterispänning (V)",
"title": "Spänning"
},
"channelUtilization": {
"label": "Kanalutnyttjande (%)",
"short": "Kanalutnyttjande (%)"
},
"hops": {
"direct": "Direkt",
"label": "Antal hopp",
"text": "Antal hopp: {{value}}"
},
"lastHeard": {
"label": "Senast hörd",
"labelText": "Senast hörd: {{value}}",
"nowLabel": "Nu"
},
"snr": {
"label": "SNR (db)"
},
"favorites": {
"label": "Favoriter"
},
"hide": {
"label": "Dölj"
},
"showOnly": {
"label": "Visa endast"
},
"viaMqtt": {
"label": "Ansluten via MQTT"
},
"hopsUnknown": {
"label": "Okänt antal hopp"
},
"showUnheard": {
"label": "Senast hörd okänt"
},
"language": {
"label": "Språk",
"changeLanguage": "Byt språk"
},
"theme": {
"dark": "Mörkt",
"light": "Ljust",
"system": "Automatisk",
"changeTheme": "Ändra färgschema"
},
"errorPage": {
"title": "Det här är lite pinsamt...",
"description1": "Vi är verkligen ledsna men ett fel inträffade i webbklienten som fick den att krascha. <br /> Detta var inte meningen, men vi arbetar hårt för att åtgärda det.",
"description2": "Det bästa sättet att förhindra att detta händer igen för dig eller någon annan är att rapportera problemet till oss.",
"reportInstructions": "Vänligen inkludera följande information i din rapport:",
"reportSteps": {
"step1": "Vad du gjorde när felet inträffade",
"step2": "Vad du förväntade dig skulle hända",
"step3": "Vad som faktiskt hände",
"step4": "All annan relevant information"
},
"reportLink": "Du kan rapportera problemet på vår <0>GitHub</0>",
"connectionsLink": "Återgå till <0>-anslutningarna</0>",
"detailsSummary": "Detaljer om felet",
"errorMessageLabel": "Felmeddelande:",
"stackTraceLabel": "Stackspårning:",
"fallbackError": "{{error}}"
},
"footer": {
"text": "Drivs av <0>▲ Vercel</0> | Meshtastic® är ett registrerat varumärke som tillhör Meshtastic LLC. | <1>Juridisk information</1>",
"commitSha": "Commit SHA: {{sha}}"
}
}