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": "Kanavat",
"channelName": "Kanava: {{channelName}}",
"broadcastLabel": "Ensisijainen",
"channelIndex": "Ch {{index}}",
"import": "Tuo",
"export": "Vie"
},
"validation": {
"pskInvalid": "Syötä kelvollinen {{bits}} bittinen PSK."
},
"settings": {
"label": "Kanava-asetukset",
"description": "Crypto, MQTT ja muut asetukset"
},
"role": {
"label": "Rooli",
"description": "Laitteen telemetriatiedot lähetetään ENSISIJAISEN kanavan kautta. Vain yksi ENSISIJAINEN kanava sallitaan",
"options": {
"primary": "ENSISIJAISEN",
"disabled": "POIS KÄYTÖSTÄ",
"secondary": "TOISIJAINEN"
}
},
"psk": {
"label": "Esijaettu avain",
"description": "Tuetut PSK-pituudet: 256-bit, 128-bit, 8-bit, tyhjät (0-bit)",
"generate": "Luo"
},
"name": {
"label": "Nimi",
"description": "Kanavan yksilöllinen nimi (alle 12 merkkiä), jätä tyhjäksi käyttääksesi oletusta"
},
"uplinkEnabled": {
"label": "Lähetys käytössä",
"description": "Lähetä viestejä paikallisesta verkosta MQTT-verkkoon"
},
"downlinkEnabled": {
"label": "Vastaanotto käytössä",
"description": "Lähetä viestejä MQTT:stä paikalliseen verkkoon"
},
"positionPrecision": {
"label": "Sijainti",
"description": "Kanavalle jaettavan sijainnin tarkkuus. Voi poistaa käytöstä.",
"options": {
"none": "Älä jaa sijaintia",
"precise": "Tarkka Sijainti",
"metric_km23": "23 kilometrin säteellä",
"metric_km12": "12 kilometrin säteellä",
"metric_km5_8": "5,8 kilometrin säteellä",
"metric_km2_9": "2,9 kilometrin säteellä",
"metric_km1_5": "1,5 kilometrin säteellä",
"metric_m700": "700 metrin säteellä",
"metric_m350": "350 metrin säteellä",
"metric_m200": "200 metrin säteellä",
"metric_m90": "90 metrin säteellä",
"metric_m50": "50 metrin säteellä",
"imperial_mi15": "15 mailin säteellä",
"imperial_mi7_3": "7,3 mailin säteellä",
"imperial_mi3_6": "3,6 mailin säteellä",
"imperial_mi1_8": "1,8 mailin säteellä",
"imperial_mi0_9": "0,9 mailin säteellä",
"imperial_mi0_5": "0,5 mailin säteellä",
"imperial_mi0_2": "0,2 mailin säteellä",
"imperial_ft600": "600 jalan säteellä",
"imperial_ft300": "300 jalan säteellä",
"imperial_ft150": "150 jalan säteellä"
}
}
}
@@ -0,0 +1,51 @@
{
"emptyState": "Tuloksia ei löytynyt.",
"page": {
"title": "Komentovalikko"
},
"pinGroup": {
"label": "Kiinnitä komentoryhmä"
},
"unpinGroup": {
"label": "Irroita komentoryhmä"
},
"goto": {
"label": "Siirry",
"command": {
"messages": "Viestit",
"map": "Kartta",
"config": "Asetukset",
"nodes": "Laitteet"
}
},
"manage": {
"label": "Hallinnoi",
"command": {
"switchNode": "Vaihda laitetta",
"connectNewNode": "Yhdistä uusi laite"
}
},
"contextual": {
"label": "Kontekstin mukainen",
"command": {
"qrCode": "QR-koodi",
"qrGenerator": "QR-koodigeneraattori",
"qrImport": "Tuo",
"scheduleShutdown": "Ajasta sammutus",
"scheduleReboot": "Käynnistä laite uudelleen",
"resetNodeDb": "Nollaa laitteen DB-tietokanta",
"dfuMode": "Syötä DFU-tila",
"factoryResetDevice": "Palauta tehdasasetukset",
"factoryResetConfig": "Tehdasasetusten palautusasetukset",
"disconnect": "Katkaise yhteys"
}
},
"debug": {
"label": "Vianetsintä",
"command": {
"reconfigure": "Määritä uudelleen",
"clearAllStoredMessages": "Tyhjennä kaikki tallennetut viesti",
"clearAllStores": "Tyhjennä kaikki paikallisesta tallennustilasta"
}
}
}
@@ -0,0 +1,165 @@
{
"button": {
"apply": "Hyväksy",
"addConnection": "Lisää yhteys",
"saveConnection": "Tallenna yhteys",
"backupKey": "Varmuuskopioi avain",
"cancel": "Peruuta",
"connect": "Yhdistä",
"clearMessages": "Tyhjennä viestit",
"close": "Sulje",
"confirm": "Vahvista",
"delete": "Poista",
"dismiss": "Hylkää",
"download": "Lataa",
"disconnect": "Katkaise yhteys",
"export": "Vie",
"generate": "Luo",
"regenerate": "Luo uudelleen",
"import": "Tuo",
"message": "Viesti",
"now": "Nyt",
"ok": "OK",
"print": "Tulosta",
"remove": "Poista",
"requestNewKeys": "Pyydä uudet avaimet",
"requestPosition": "Pyydä sijaintia",
"reset": "Palauta",
"retry": "Yritä uudelleen",
"save": "Tallenna",
"setDefault": "Aseta oletukseksi",
"unsetDefault": "Poista oletusasetus",
"scanQr": "Skannaa QR-koodi",
"traceRoute": "Reitinselvitys",
"submit": "Lähetä"
},
"app": {
"title": "Meshtastic",
"fullTitle": "Meshtastic Web Client"
},
"loading": "Ladataan...",
"unit": {
"cps": "CPS",
"dbm": "dBm",
"hertz": "Hz",
"hop": {
"one": "Hyppy",
"plural": "Hyppyä"
},
"hopsAway": {
"one": "{{count}} hypyn päässä",
"plural": "{{count}} hypyn päässä",
"unknown": "Hyppyjen määrä tuntematon"
},
"megahertz": "MHz",
"kilohertz": "kHz",
"raw": "raakatieto",
"meter": {
"one": "Metri",
"plural": "Metriä",
"suffix": "m"
},
"kilometer": {
"one": "Kilometri",
"plural": "Kilometriä",
"suffix": "km"
},
"minute": {
"one": "Minuutti",
"plural": "Minuuttia"
},
"hour": {
"one": "Tunti",
"plural": "Tuntia"
},
"millisecond": {
"one": "Millisekunti",
"plural": "Millisekuntia",
"suffix": "ms"
},
"second": {
"one": "Sekunti",
"plural": "Sekuntia"
},
"day": {
"one": "Päivä",
"plural": "Päivää",
"today": "Tänään",
"yesterday": "Eilen"
},
"month": {
"one": "Kuukausi",
"plural": "Kuukautta"
},
"year": {
"one": "Vuosi",
"plural": "Vuotta"
},
"snr": "SNR",
"volt": {
"one": "Voltti",
"plural": "Voltit",
"suffix": "V"
},
"record": {
"one": "Tiedot",
"plural": "Tiedot"
},
"degree": {
"one": "Aste",
"plural": "Astetta",
"suffix": "°"
}
},
"security": {
"0bit": "Tyhjä",
"8bit": "8-bittiä",
"128bit": "128-bittiä",
"256bit": "256 bittiä"
},
"unknown": {
"longName": "Tuntematon",
"shortName": "UNK",
"notAvailable": "N/A",
"num": "??"
},
"nodeUnknownPrefix": "!",
"unset": "EI ASETETTU",
"fallbackName": "Meshtastic {{last4}}",
"node": "Laite",
"formValidation": {
"unsavedChanges": "Tallentamattomat muutokset",
"tooBig": {
"string": "Teksti on liian pitkä – sallittu enimmäispituus on {{maximum}} merkkiä.",
"number": "Arvo on liian suuri – sallittu enimmäisarvo on {{maximum}}.",
"bytes": "Liian suuri koko – sallittu enimmäismäärä on {{params.maximum}} tavua."
},
"tooSmall": {
"string": "Teksti on liian lyhyt – vähimmäispituus on {{minimum}} merkkiä.",
"number": "Arvo on liian pieni – pienin sallittu arvo on {{minimum}}."
},
"invalidFormat": {
"ipv4": "Virheellinen muoto – odotettu muoto on IPv4-osoite.",
"key": "Virheellinen muoto – odotettu muoto on Base64-koodattu jaettu avain (PSK)."
},
"invalidType": {
"number": "Virheellinen tyyppi – arvon tulee olla numero."
},
"pskLength": {
"0bit": "Avainkentän on oltava tyhjä.",
"8bit": "Avaimen on oltava 8-bittinen jaettu avain (PSK).",
"128bit": "Avaimen on oltava 128-bittinen jaettu avain (PSK).",
"256bit": "Avaimen on oltava 256-bittinen jaettu avain (PSK)."
},
"required": {
"generic": "Tämä kenttä on pakollinen.",
"managed": "Vähintään yksi hallinta-avain vaaditaan, jos laitetta hallitaan.",
"key": "Avain on pakollinen."
},
"invalidOverrideFreq": {
"number": "Virheellinen arvo, odotetaan taajuutta väliltä 410–930 MHz tai arvoa 0 (käytä oletusta)."
}
},
"yes": "Kyllä",
"no": "Ei"
}
@@ -0,0 +1,458 @@
{
"page": {
"title": "Asetukset",
"tabUser": "Käyttäjä",
"tabChannels": "Kanavat",
"tabBluetooth": "Bluetooth",
"tabDevice": "Laite",
"tabDisplay": "Näyttö",
"tabLora": "LoRa",
"tabNetwork": "Verkko",
"tabPosition": "Sijainti",
"tabPower": "Virta",
"tabSecurity": "Turvallisuus"
},
"sidebar": {
"label": "Asetukset"
},
"device": {
"title": "Laitteen asetukset",
"description": "Laitteen asetukset",
"buttonPin": {
"description": "Painikkeen pinnin ohitus",
"label": "Painikkeen pinni"
},
"buzzerPin": {
"description": "Summerin pinnin ohitus",
"label": "Summerin pinni"
},
"disableTripleClick": {
"description": "Poista kolmoisklikkaus käytöstä",
"label": "Poista kolmoisklikkaus käytöstä"
},
"doubleTapAsButtonPress": {
"description": "Käsittele kaksoisnapautus painikkeen painalluksena",
"label": "Kaksoisnapautus painikkeen painalluksena"
},
"ledHeartbeatDisabled": {
"description": "Poista ledin vilkkuminen käytöstä",
"label": "Ledin vilkkuminen poistettu käytöstä"
},
"nodeInfoBroadcastInterval": {
"description": "Kuinka usein laitteen tiedot lähetetään verkkoon",
"label": "Laitteen tietojen lähetyksen aikaväli"
},
"posixTimezone": {
"description": "POSIX-aikavyöhykkeen merkkijono laitetta varten",
"label": "POSIX-aikavyöhyke"
},
"rebroadcastMode": {
"description": "Kuinka uudelleenlähetyksiä käsitellään",
"label": "Uudelleenlähetyksen tila"
},
"role": {
"description": "Mikä rooli laitteella on mesh-verkossa",
"label": "Rooli"
}
},
"bluetooth": {
"title": "Bluetooth asetukset",
"description": "Bluetooth moduulin asetukset",
"note": "Huomautus: Jotkin laitteet (ESP32) eivät voi käyttää bluetoothia sekä WiFiä samanaikaisesti.",
"enabled": {
"description": "Ota Bluetooth käyttöön tai poista käytöstä",
"label": "Käytössä"
},
"pairingMode": {
"description": "PIN-koodin valinnan käyttäytyminen.",
"label": "Paritustila"
},
"pin": {
"description": "Bluetooth PIN-koodi, jota käytetään pariliitettäessä",
"label": "PIN"
}
},
"display": {
"description": "Laitteen näytön asetukset",
"title": "Näyttöasetukset",
"headingBold": {
"description": "Lihavoi otsikkoteksti",
"label": "Lihavoitu otsikko"
},
"carouselDelay": {
"description": "Kuinka nopeasti ikkunat kulkevat",
"label": "Karusellin Viive"
},
"compassNorthTop": {
"description": "Kiinnitä pohjoinen kompassin yläreunaan",
"label": "Kompassin pohjoinen ylhäällä"
},
"displayMode": {
"description": "Näytön asettelun vaihtoehdot",
"label": "Näyttötila"
},
"displayUnits": {
"description": "Näytä metriset tai imperiaaliset yksiköt",
"label": "Näyttöyksiköt"
},
"flipScreen": {
"description": "Käännä näyttöä 180 astetta",
"label": "Käännä näyttö"
},
"gpsDisplayUnits": {
"description": "Koordinaattien näyttömuoto",
"label": "GPS näyttöyksiköt"
},
"oledType": {
"description": "Laitteeseen liitetyn OLED-näytön tyyppi",
"label": "OLED-tyyppi"
},
"screenTimeout": {
"description": "Sammuta näyttö tämän ajan jälkeen",
"label": "Näytön aikakatkaisu"
},
"twelveHourClock": {
"description": "Käytä 12 tunnin kelloa",
"label": "12 tunnin kello"
},
"wakeOnTapOrMotion": {
"description": "Herätä laite napauttamalla tai liikkeestä",
"label": "Herätä napauttamalla tai liikkeellä"
}
},
"lora": {
"title": "Mesh-verkon asetukset",
"description": "LoRa-verkon asetukset",
"bandwidth": {
"description": "Kanavan kaistanleveys kHz",
"label": "Kaistanleveys"
},
"boostedRxGain": {
"description": "RX tehostettu vahvistus",
"label": "RX tehostettu vahvistus"
},
"codingRate": {
"description": "Koodausnopeuden nimittäjä",
"label": "Koodausnopeus"
},
"frequencyOffset": {
"description": "Taajuuskorjaus kalibrointivirheiden korjaamiseksi",
"label": "Taajuuspoikkeama"
},
"frequencySlot": {
"description": "LoRa-taajuuden kanavanumero",
"label": "Taajuuspaikka"
},
"hopLimit": {
"description": "Maksimimäärä hyppyjä",
"label": "Hyppyraja"
},
"ignoreMqtt": {
"description": "Älä välitä MQTT-viestejä mesh-verkon yli",
"label": "Ohita MQTT"
},
"modemPreset": {
"description": "Käytössä olevan modeemin esiasetus",
"label": "Modeemin esiasetus"
},
"okToMqtt": {
"description": "Kun asetetaan arvoksi true, tämä asetus tarkoittaa, että käyttäjä hyväksyy paketin lähettämisen MQTT:lle. Jos asetetaan arvoksi false, etälaitteita pyydetään olemaan välittämättä paketteja MQTT:lle",
"label": "MQTT päällä"
},
"overrideDutyCycle": {
"description": "Ohita käyttöaste (Duty Cycle)",
"label": "Ohita käyttöaste (Duty Cycle)"
},
"overrideFrequency": {
"description": "Käytä mukautettua taajuutta",
"label": "Mukautettu taajuus"
},
"region": {
"description": "Asettaa alueen laitteelle",
"label": "Alue"
},
"spreadingFactor": {
"description": "Ilmaisee symbolia kohden lähetettävien taajuuksien määrän",
"label": "Levennyskerroin"
},
"transmitEnabled": {
"description": "LoRa-radion lähetyksen (TX) käyttöönotto tai poiskytkentä",
"label": "Lähetys käytössä"
},
"transmitPower": {
"description": "Suurin lähetysteho",
"label": "Lähetysteho"
},
"usePreset": {
"description": "Käytä ennalta määriteltyä modeemin esiasetusta",
"label": "Käytä esiasetusta"
},
"meshSettings": {
"description": "LoRa-verkon asetukset",
"label": "Mesh-verkon asetukset"
},
"waveformSettings": {
"description": "LoRa-aaltomuodon asetukset",
"label": "Signaalimuodon asetukset"
},
"radioSettings": {
"label": "Radioasetukset",
"description": "LoRa-laitteen asetukset"
}
},
"network": {
"title": "WiFi-asetukset",
"description": "WiFi-radion asetukset",
"note": "Huomautus: Jotkin laitteet (ESP32) eivät voi käyttää sekä Bluetoothia että WiFiä samanaikaisesti.",
"addressMode": {
"description": "Osoitteen määrityksen valinta",
"label": "Osoitetila"
},
"dns": {
"description": "DNS-palvelin",
"label": "DNS"
},
"ethernetEnabled": {
"description": "Ota käyttöön tai poista käytöstä ethernet-portti",
"label": "Käytössä"
},
"gateway": {
"description": "Oletusyhdyskäytävä",
"label": "Yhdyskäytävä"
},
"ip": {
"description": "IP-osoite",
"label": "IP"
},
"psk": {
"description": "Verkon salasana",
"label": "PSK"
},
"ssid": {
"description": "Verkon nimi",
"label": "SSID"
},
"subnet": {
"description": "Aliverkon peite",
"label": "Aliverkko"
},
"wifiEnabled": {
"description": "Ota WiFi käyttöön tai poista se käytöstä",
"label": "Käytössä"
},
"meshViaUdp": {
"label": "Mesh UDP:n kautta"
},
"ntpServer": {
"label": "NTP-palvelin"
},
"rsyslogServer": {
"label": "Rsyslog-palvelin"
},
"ethernetConfigSettings": {
"description": "Ethernet-portin asetukset",
"label": "Ethernet-asetukset"
},
"ipConfigSettings": {
"description": "IP-osoitteen asetukset",
"label": "IP-osoitteen asetukset"
},
"ntpConfigSettings": {
"description": "NTP-asetukset",
"label": "NTP-asetukset"
},
"rsyslogConfigSettings": {
"description": "Rsyslog määritykset",
"label": "Rsyslog määritykset"
},
"udpConfigSettings": {
"description": "UDP-yhdeyden asetukset",
"label": "UDP-asetukset"
}
},
"position": {
"title": "Sijainnin asetukset",
"description": "Sijaintimoduulin asetukset",
"broadcastInterval": {
"description": "Kuinka usein sijainti lähetetään mesh-verkon yli",
"label": "Lähetyksen aikaväli"
},
"enablePin": {
"description": "GPS-moduulin käyttöönottopinnin korvaus",
"label": "Ota pinni käytöön"
},
"fixedPosition": {
"description": "Älä raportoi GPS-sijaintia, vaan käytä manuaalisesti määritettyä sijaintia",
"label": "Kiinteä sijainti"
},
"gpsMode": {
"description": "Määritä, onko laitteen GPS käytössä, pois päältä vai puuttuuko se kokonaan",
"label": "GSP-tila"
},
"gpsUpdateInterval": {
"description": "Kuinka usein GPS-paikannus suoritetaan",
"label": "GPS-päivitysväli"
},
"positionFlags": {
"description": "Valinnaiset kentät, jotka voidaan sisällyttää sijaintiviesteihin. Mitä enemmän kenttiä valitaan, sitä suurempi viesti on, mikä johtaa pidempään lähetysaikaan ja suurempaan pakettihäviöriskiin.",
"label": "Sijaintimerkinnät"
},
"receivePin": {
"description": "GPS-moduulin käyttöönottopinnin korvaus",
"label": "Vastaanoton pinni"
},
"smartPositionEnabled": {
"description": "Lähetä sijainti vain, kun sijainnissa on tapahtunut merkittävä muutos",
"label": "Ota älykäs sijainti käyttöön"
},
"smartPositionMinDistance": {
"description": "Vähimmäisetäisyys (metreinä), joka on kuljettava ennen sijaintipäivityksen lähettämistä",
"label": "Älykkään sijainnin minimietäisyys"
},
"smartPositionMinInterval": {
"description": "Lyhin aikaväli (sekunteina), joka on kuluttava ennen sijaintipäivityksen lähettämistä",
"label": "Älykkään sijainnin vähimmäisetäisyys"
},
"transmitPin": {
"description": "GPS-moduulin käyttöönottopinnin korvaus",
"label": "Lähetyksen pinni"
},
"intervalsSettings": {
"description": "Kuinka usein sijaintipäivitykset lähetetään",
"label": "Aikaväli"
},
"flags": {
"placeholder": "Valitse sijaintiasetukset...",
"altitude": "Korkeus",
"altitudeGeoidalSeparation": "Korkeuden geoidinen erotus",
"altitudeMsl": "Korkeus on mitattu merenpinnan tasosta",
"dop": "Tarkkuuden heikkenemä (DOP), oletuksena käytetään PDOP-arvoa",
"hdopVdop": "Jos DOP on asetettu, käytä HDOP- ja VDOP-arvoja PDOP:n sijaan",
"numSatellites": "Satelliittien määrä",
"sequenceNumber": "Sekvenssinumero",
"timestamp": "Aikaleima",
"unset": "Ei yhdistetty",
"vehicleHeading": "Ajoneuvon suunta",
"vehicleSpeed": "Ajoneuvon nopeus"
}
},
"power": {
"adcMultiplierOverride": {
"description": "Käytetään akun jännitteen lukeman säätämiseen",
"label": "Korvaava AD-muuntimen kerroin"
},
"ina219Address": {
"description": "Akkunäytön INA219 osoite",
"label": "INA219 Osoite"
},
"lightSleepDuration": {
"description": "Kuinka kauan laite on kevyessä lepotilassa",
"label": "Kevyen lepotilan kesto"
},
"minimumWakeTime": {
"description": "Vähimmäisaika, jonka laite pysyy hereillä paketin vastaanoton jälkeen",
"label": "Minimi heräämisaika"
},
"noConnectionBluetoothDisabled": {
"description": "Jos laite ei saa Bluetooth-yhteyttä, BLE-radio poistetaan käytöstä tämän ajan kuluttua",
"label": "Ei yhteyttä. Bluetooth on pois käytöstä"
},
"powerSavingEnabled": {
"description": "Valitse, jos laite saa virtaa matalavirtalähteestä (esim. aurinkopaneeli), jolloin virrankulutusta minimoidaan mahdollisimman paljon.",
"label": "Ota virransäästötila käyttöön"
},
"shutdownOnBatteryDelay": {
"description": "Sammuta laite automaattisesti tämän ajan kuluttua akkukäytöllä, 0 tarkoittaa toistaiseksi päällä",
"label": "Viive laitteen sammuttamisessa akkukäytöllä"
},
"superDeepSleepDuration": {
"description": "Kuinka pitkään laite on supersyvässä lepotilassa",
"label": "Supersyvän lepotilan kesto"
},
"powerConfigSettings": {
"description": "Virtamoduulin asetukset",
"label": "Virran asetukset"
},
"sleepSettings": {
"description": "Virtamoduulin lepotila-asetukset",
"label": "Lepotilan asetukset"
}
},
"security": {
"description": "Turvallisuuskokoonpanon asetukset",
"title": "Turvallisuusasetukset",
"button_backupKey": "Varmuuskopioi avain",
"adminChannelEnabled": {
"description": "Salli saapuva laitteen ohjaus suojaamattoman vanhan admin-kanavan kautta",
"label": "Salli vanha admin ylläpitäjä"
},
"enableDebugLogApi": {
"description": "Lähetä reaaliaikainen debug-loki sarjaportin kautta, katso ja vie laitteen lokitiedostot, joista sijaintitiedot on poistettu, Bluetoothin kautta",
"label": "Ota käyttöön virheenkorjauslokin API-rajapinta"
},
"managed": {
"description": "Jos tämä on käytössä, laitteen asetuksia voi muuttaa vain etäadmin-laitteen hallintaviestien kautta. Älä ota tätä käyttöön, ellei vähintään yhtä sopivaa etäadmin-laitetta ole määritetty ja julkinen avain ei ole tallennettu johonkin yllä olevista kentistä.",
"label": "Hallinnoitu"
},
"privateKey": {
"description": "Käytetään jaetun avaimen luomiseen etälaitteen kanssa",
"label": "Yksityinen avain"
},
"publicKey": {
"description": "Lähetetään muille mesh-verkon laitteille, jotta ne voivat laskea jaetun salaisen avaimen",
"label": "Julkinen avain"
},
"primaryAdminKey": {
"description": "Ensisijainen julkinen avain, jolla on oikeus lähettää hallintaviestejä tälle laitteelle",
"label": "Ensisijainen järjestelmänvalvojan avain"
},
"secondaryAdminKey": {
"description": "Toissijainen julkinen avain, jolla on oikeus lähettää hallintaviestejä tälle laitteelle",
"label": "Toissijainen järjestelmänvalvojan avain"
},
"serialOutputEnabled": {
"description": "Sarjakonsoli Stream API:n yli",
"label": "Sarjaulostulo Käytössä"
},
"tertiaryAdminKey": {
"description": "Kolmas julkinen avain, jolla on oikeus lähettää hallintaviestejä tälle laitteelle",
"label": "Kolmas järjestelmänvalvojan hallinta-avain"
},
"adminSettings": {
"description": "Järjestelmänvalvojan asetukset",
"label": "Ylläpitäjän asetukset"
},
"loggingSettings": {
"description": "Kirjautumisen asetukset",
"label": "Kirjautumisen asetukset"
}
},
"user": {
"title": "Käyttäjäasetukset",
"description": "Aseta laitteen nimi ja tunnistetiedot",
"longName": {
"label": "Pitkä nimi",
"description": "Koko näyttönimi (1–40 merkkiä)",
"validation": {
"min": "Pitkässä nimessä on oltava vähintään 1 merkki",
"max": "Pitkässä nimessä saa olla enintään 40 merkkiä"
}
},
"shortName": {
"label": "Lyhytnimi",
"description": "Lyhytnimesi (2–4 merkkiä)",
"validation": {
"min": "Lyhytnimen on oltava vähintään 2 merkkiä pitkä",
"max": "Lyhytnimessä saa olla enintään 4 merkkiä"
}
},
"isUnmessageable": {
"label": "Ei vastaanota viestejä",
"description": "Käytetään tunnistamaan valvomattomat tai infrastruktuurilaitteet, jotta viestintä ei olisi käytettävissä laitteille, jotka eivät koskaan vastaa."
},
"isLicensed": {
"label": "Lisensoitu radioamatööri (HAM)",
"description": "Ota käyttöön, jos olet luvanvarainen radioamatööri. Tämän asetuksen käyttöönotto poistaa salauksen käytöstä, eikä se ole yhteensopiva oletusarvoisen Meshtastic-verkon kanssa."
}
}
}
@@ -0,0 +1,34 @@
{
"page": {
"title": "Yhdistä Meshtastic-laitteeseen",
"description": "Lisää laiteyhteys HTTP:n, Bluetoothin tai sarjaportin kautta. Tallennetut yhteydet tallennetaan selaimeesi."
},
"connectionType_ble": "BLE",
"connectionType_serial": "Sarjaliitäntä",
"connectionType_network": "Verkko",
"deleteConnection": "Poista yhteys",
"areYouSure": "Tämä poistaa kohteen {{name}}. Tätä toimintoa ei voi perua.",
"moreActions": "Lisää toimintoja",
"noConnections": {
"title": "Ei yhteyksiä vielä.",
"description": "Luo ensimmäinen yhteytesi. Yhteys muodostetaan heti ja tallennetaan myöhempää käyttöä varten."
},
"lastConnectedAt": "Viimeksi yhdistetty: {{date}}",
"neverConnected": "Ei koskaan yhdistetty",
"toasts": {
"connected": "Yhdistetty",
"nowConnected": "{{name}} on nyt yhdistetty",
"nowDisconnected": "{{name}} ei ole enää yhteydessä",
"disconnected": "Ei yhdistetty",
"failed": "Yhteyden muodostaminen epäonnistui",
"checkConnetion": "Tarkista laitteesi tai asetukset ja yritä uudelleen",
"defaultSet": "Asetettu oletukseksi",
"defaultConnection": "Oletusyhteys on nyt {{nameisconnected}}",
"deleted": "Poistettu",
"deletedByName": "{{name}} poistettiin",
"pickConnectionAgain": "Yhteyttä ei voitu muodostaa. Saatat joutua valitsemaan laitteen tai portin uudelleen.",
"added": "Yhteys lisätty",
"savedByName": "{{name}} tallennettu.",
"savedCantConnect": "Yhteys tallennettiin, mutta siihen ei voitu yhdistää."
}
}
@@ -0,0 +1,428 @@
{
"page": {
"title": "Asetukset",
"tabBluetooth": "Bluetooth",
"tabDevice": "Laite",
"tabDisplay": "Näyttö",
"tabLora": "LoRa",
"tabNetwork": "Verkko",
"tabPosition": "Sijainti",
"tabPower": "Virta",
"tabSecurity": "Turvallisuus"
},
"sidebar": {
"label": "Moduulit"
},
"device": {
"title": "Laitteen asetukset",
"description": "Laitteen asetukset",
"buttonPin": {
"description": "Painikkeen pinnin ohitus",
"label": "Painikkeen pinni"
},
"buzzerPin": {
"description": "Summerin pinnin ohitus",
"label": "Summerin pinni"
},
"disableTripleClick": {
"description": "Poista kolmoisklikkaus käytöstä",
"label": "Poista kolmoisklikkaus käytöstä"
},
"doubleTapAsButtonPress": {
"description": "Käsittele kaksoisnapautus painikkeen painalluksena",
"label": "Kaksoisnapautus painikkeen painalluksena"
},
"ledHeartbeatDisabled": {
"description": "Poista ledin vilkkuminen käytöstä",
"label": "Ledin vilkkuminen poistettu käytöstä"
},
"nodeInfoBroadcastInterval": {
"description": "Kuinka usein laitteen tiedot lähetetään verkkoon",
"label": "Laitteen tietojen lähetyksen aikaväli"
},
"posixTimezone": {
"description": "POSIX-aikavyöhykkeen merkkijono laitetta varten",
"label": "POSIX-aikavyöhyke"
},
"rebroadcastMode": {
"description": "Kuinka uudelleenlähetyksiä käsitellään",
"label": "Uudelleenlähetyksen tila"
},
"role": {
"description": "Mikä rooli laitteella on mesh-verkossa",
"label": "Rooli"
}
},
"bluetooth": {
"title": "Bluetooth asetukset",
"description": "Bluetooth moduulin asetukset",
"note": "Huomautus: Jotkin laitteet (ESP32) eivät voi käyttää bluetoothia sekä WiFiä samanaikaisesti.",
"enabled": {
"description": "Ota Bluetooth käyttöön tai poista käytöstä",
"label": "Käytössä"
},
"pairingMode": {
"description": "PIN-koodin valinnan käyttäytyminen.",
"label": "Paritustila"
},
"pin": {
"description": "Bluetooth PIN-koodi, jota käytetään pariliitettäessä",
"label": "PIN"
}
},
"display": {
"description": "Laitteen näytön asetukset",
"title": "Näyttöasetukset",
"headingBold": {
"description": "Lihavoi otsikkoteksti",
"label": "Lihavoitu otsikko"
},
"carouselDelay": {
"description": "Kuinka nopeasti ikkunat kulkevat",
"label": "Karusellin Viive"
},
"compassNorthTop": {
"description": "Kiinnitä pohjoinen kompassin yläreunaan",
"label": "Kompassin pohjoinen ylhäällä"
},
"displayMode": {
"description": "Näytön asettelun vaihtoehdot",
"label": "Näyttötila"
},
"displayUnits": {
"description": "Näytä metriset tai imperiaaliset yksiköt",
"label": "Näyttöyksiköt"
},
"flipScreen": {
"description": "Käännä näyttöä 180 astetta",
"label": "Käännä näyttö"
},
"gpsDisplayUnits": {
"description": "Koordinaattien näyttömuoto",
"label": "GPS näyttöyksiköt"
},
"oledType": {
"description": "Laitteeseen liitetyn OLED-näytön tyyppi",
"label": "OLED-tyyppi"
},
"screenTimeout": {
"description": "Sammuta näyttö tämän ajan jälkeen",
"label": "Näytön aikakatkaisu"
},
"twelveHourClock": {
"description": "Käytä 12 tunnin kelloa",
"label": "12 tunnin kello"
},
"wakeOnTapOrMotion": {
"description": "Herätä laite napauttamalla tai liikkeestä",
"label": "Herätä napauttamalla tai liikkeellä"
}
},
"lora": {
"title": "Mesh-verkon asetukset",
"description": "LoRa-verkon asetukset",
"bandwidth": {
"description": "Kanavan kaistanleveys kHz",
"label": "Kaistanleveys"
},
"boostedRxGain": {
"description": "RX tehostettu vahvistus",
"label": "RX tehostettu vahvistus"
},
"codingRate": {
"description": "Koodausnopeuden nimittäjä",
"label": "Koodausnopeus"
},
"frequencyOffset": {
"description": "Taajuuskorjaus kalibrointivirheiden korjaamiseksi",
"label": "Taajuuspoikkeama"
},
"frequencySlot": {
"description": "LoRa-taajuuden kanavanumero",
"label": "Taajuuspaikka"
},
"hopLimit": {
"description": "Maksimimäärä hyppyjä",
"label": "Hyppyraja"
},
"ignoreMqtt": {
"description": "Älä välitä MQTT-viestejä mesh-verkon yli",
"label": "Ohita MQTT"
},
"modemPreset": {
"description": "Käytössä olevan modeemin esiasetus",
"label": "Modeemin esiasetus"
},
"okToMqtt": {
"description": "Kun asetetaan arvoksi true, tämä asetus tarkoittaa, että käyttäjä hyväksyy paketin lähettämisen MQTT:lle. Jos asetetaan arvoksi false, etälaitteita pyydetään olemaan välittämättä paketteja MQTT:lle",
"label": "MQTT päällä"
},
"overrideDutyCycle": {
"description": "Ohita käyttöaste (Duty Cycle)",
"label": "Ohita käyttöaste (Duty Cycle)"
},
"overrideFrequency": {
"description": "Käytä mukautettua taajuutta",
"label": "Mukautettu taajuus"
},
"region": {
"description": "Asettaa alueen laitteelle",
"label": "Alue"
},
"spreadingFactor": {
"description": "Ilmaisee symbolia kohden lähetettävien taajuuksien määrän",
"label": "Levennyskerroin"
},
"transmitEnabled": {
"description": "LoRa-radion lähetyksen (TX) käyttöönotto tai poiskytkentä",
"label": "Lähetys käytössä"
},
"transmitPower": {
"description": "Suurin lähetysteho",
"label": "Lähetysteho"
},
"usePreset": {
"description": "Käytä ennalta määriteltyä modeemin esiasetusta",
"label": "Käytä esiasetusta"
},
"meshSettings": {
"description": "LoRa-verkon asetukset",
"label": "Mesh-verkon asetukset"
},
"waveformSettings": {
"description": "LoRa-aaltomuodon asetukset",
"label": "Signaalimuodon asetukset"
},
"radioSettings": {
"label": "Radioasetukset",
"description": "LoRa-laitteen asetukset"
}
},
"network": {
"title": "WiFi-asetukset",
"description": "WiFi-radion asetukset",
"note": "Huomautus: Jotkin laitteet (ESP32) eivät voi käyttää sekä Bluetoothia että WiFiä samanaikaisesti.",
"addressMode": {
"description": "Osoitteen määrityksen valinta",
"label": "Osoitetila"
},
"dns": {
"description": "DNS-palvelin",
"label": "DNS"
},
"ethernetEnabled": {
"description": "Ota käyttöön tai poista käytöstä ethernet-portti",
"label": "Käytössä"
},
"gateway": {
"description": "Oletusyhdyskäytävä",
"label": "Yhdyskäytävä"
},
"ip": {
"description": "IP-osoite",
"label": "IP"
},
"psk": {
"description": "Verkon salasana",
"label": "PSK"
},
"ssid": {
"description": "Verkon nimi",
"label": "SSID"
},
"subnet": {
"description": "Aliverkon peite",
"label": "Aliverkko"
},
"wifiEnabled": {
"description": "Ota WiFi käyttöön tai poista se käytöstä",
"label": "Käytössä"
},
"meshViaUdp": {
"label": "Mesh UDP:n kautta"
},
"ntpServer": {
"label": "NTP-palvelin"
},
"rsyslogServer": {
"label": "Rsyslog-palvelin"
},
"ethernetConfigSettings": {
"description": "Ethernet-portin asetukset",
"label": "Ethernet-asetukset"
},
"ipConfigSettings": {
"description": "IP-osoitteen asetukset",
"label": "IP-osoitteen asetukset"
},
"ntpConfigSettings": {
"description": "NTP-asetukset",
"label": "NTP-asetukset"
},
"rsyslogConfigSettings": {
"description": "Rsyslog määritykset",
"label": "Rsyslog määritykset"
},
"udpConfigSettings": {
"description": "UDP-yhdeyden asetukset",
"label": "UDP-asetukset"
}
},
"position": {
"title": "Sijainnin asetukset",
"description": "Sijaintimoduulin asetukset",
"broadcastInterval": {
"description": "Kuinka usein sijainti lähetetään mesh-verkon yli",
"label": "Lähetyksen aikaväli"
},
"enablePin": {
"description": "GPS-moduulin käyttöönottopinnin korvaus",
"label": "Ota pinni käytöön"
},
"fixedPosition": {
"description": "Älä raportoi GPS-sijaintia, vaan käytä manuaalisesti määritettyä sijaintia",
"label": "Kiinteä sijainti"
},
"gpsMode": {
"description": "Määritä, onko laitteen GPS käytössä, pois päältä vai puuttuuko se kokonaan",
"label": "GSP-tila"
},
"gpsUpdateInterval": {
"description": "Kuinka usein GPS-paikannus suoritetaan",
"label": "GPS-päivitysväli"
},
"positionFlags": {
"description": "Valinnaiset kentät, jotka voidaan sisällyttää sijaintiviesteihin. Mitä enemmän kenttiä valitaan, sitä suurempi viesti on, mikä johtaa pidempään lähetysaikaan ja suurempaan pakettihäviöriskiin.",
"label": "Sijaintimerkinnät"
},
"receivePin": {
"description": "GPS-moduulin käyttöönottopinnin korvaus",
"label": "Vastaanoton pinni"
},
"smartPositionEnabled": {
"description": "Lähetä sijainti vain, kun sijainnissa on tapahtunut merkittävä muutos",
"label": "Ota älykäs sijainti käyttöön"
},
"smartPositionMinDistance": {
"description": "Vähimmäisetäisyys (metreinä), joka on kuljettava ennen sijaintipäivityksen lähettämistä",
"label": "Älykkään sijainnin minimietäisyys"
},
"smartPositionMinInterval": {
"description": "Lyhin aikaväli (sekunteina), joka on kuluttava ennen sijaintipäivityksen lähettämistä",
"label": "Älykkään sijainnin vähimmäisetäisyys"
},
"transmitPin": {
"description": "GPS-moduulin käyttöönottopinnin korvaus",
"label": "Lähetyksen pinni"
},
"intervalsSettings": {
"description": "Kuinka usein sijaintipäivitykset lähetetään",
"label": "Aikaväli"
},
"flags": {
"placeholder": "Valitse sijaintiasetukset...",
"altitude": "Korkeus",
"altitudeGeoidalSeparation": "Korkeuden geoidinen erotus",
"altitudeMsl": "Korkeus on mitattu merenpinnan tasosta",
"dop": "Tarkkuuden heikkenemä (DOP), oletuksena käytetään PDOP-arvoa",
"hdopVdop": "Jos DOP on asetettu, käytä HDOP- ja VDOP-arvoja PDOP:n sijaan",
"numSatellites": "Satelliittien määrä",
"sequenceNumber": "Sekvenssinumero",
"timestamp": "Aikaleima",
"unset": "Ei yhdistetty",
"vehicleHeading": "Ajoneuvon suunta",
"vehicleSpeed": "Ajoneuvon nopeus"
}
},
"power": {
"adcMultiplierOverride": {
"description": "Käytetään akun jännitteen lukeman säätämiseen",
"label": "Korvaava AD-muuntimen kerroin"
},
"ina219Address": {
"description": "Akkunäytön INA219 osoite",
"label": "INA219 Osoite"
},
"lightSleepDuration": {
"description": "Kuinka kauan laite on kevyessä lepotilassa",
"label": "Kevyen lepotilan kesto"
},
"minimumWakeTime": {
"description": "Vähimmäisaika, jonka laite pysyy hereillä paketin vastaanoton jälkeen",
"label": "Minimi heräämisaika"
},
"noConnectionBluetoothDisabled": {
"description": "Jos laite ei saa Bluetooth-yhteyttä, BLE-radio poistetaan käytöstä tämän ajan kuluttua",
"label": "Ei yhteyttä. Bluetooth on pois käytöstä"
},
"powerSavingEnabled": {
"description": "Valitse, jos laite saa virtaa matalavirtalähteestä (esim. aurinkopaneeli), jolloin virrankulutusta minimoidaan mahdollisimman paljon.",
"label": "Ota virransäästötila käyttöön"
},
"shutdownOnBatteryDelay": {
"description": "Sammuta laite automaattisesti tämän ajan kuluttua akkukäytöllä, 0 tarkoittaa toistaiseksi päällä",
"label": "Viive laitteen sammuttamisessa akkukäytöllä"
},
"superDeepSleepDuration": {
"description": "Kuinka pitkään laite on supersyvässä lepotilassa",
"label": "Supersyvän lepotilan kesto"
},
"powerConfigSettings": {
"description": "Virtamoduulin asetukset",
"label": "Virran asetukset"
},
"sleepSettings": {
"description": "Virtamoduulin lepotila-asetukset",
"label": "Lepotilan asetukset"
}
},
"security": {
"description": "Turvallisuuskokoonpanon asetukset",
"title": "Turvallisuusasetukset",
"button_backupKey": "Varmuuskopioi avain",
"adminChannelEnabled": {
"description": "Salli saapuva laitteen ohjaus suojaamattoman vanhan admin-kanavan kautta",
"label": "Salli vanha admin ylläpitäjä"
},
"enableDebugLogApi": {
"description": "Lähetä reaaliaikainen debug-loki sarjaportin kautta, katso ja vie laitteen lokitiedostot, joista sijaintitiedot on poistettu, Bluetoothin kautta",
"label": "Ota käyttöön virheenkorjauslokin API-rajapinta"
},
"managed": {
"description": "Jos tämä on käytössä, laitteen asetuksia voi muuttaa vain etäadmin-laitteen hallintaviestien kautta. Älä ota tätä käyttöön, ellei vähintään yhtä sopivaa etäadmin-laitetta ole määritetty ja julkinen avain ei ole tallennettu johonkin yllä olevista kentistä.",
"label": "Hallinnoitu"
},
"privateKey": {
"description": "Käytetään jaetun avaimen luomiseen etälaitteen kanssa",
"label": "Yksityinen avain"
},
"publicKey": {
"description": "Lähetetään muille mesh-verkon laitteille, jotta ne voivat laskea jaetun salaisen avaimen",
"label": "Julkinen avain"
},
"primaryAdminKey": {
"description": "Ensisijainen julkinen avain, jolla on oikeus lähettää hallintaviestejä tälle laitteelle",
"label": "Ensisijainen järjestelmänvalvojan avain"
},
"secondaryAdminKey": {
"description": "Toissijainen julkinen avain, jolla on oikeus lähettää hallintaviestejä tälle laitteelle",
"label": "Toissijainen järjestelmänvalvojan avain"
},
"serialOutputEnabled": {
"description": "Sarjakonsoli Stream API:n yli",
"label": "Sarjaulostulo Käytössä"
},
"tertiaryAdminKey": {
"description": "Kolmas julkinen avain, jolla on oikeus lähettää hallintaviestejä tälle laitteelle",
"label": "Kolmas järjestelmänvalvojan hallinta-avain"
},
"adminSettings": {
"description": "Järjestelmänvalvojan asetukset",
"label": "Ylläpitäjän asetukset"
},
"loggingSettings": {
"description": "Kirjautumisen asetukset",
"label": "Kirjautumisen asetukset"
}
}
}
@@ -0,0 +1,238 @@
{
"deleteMessages": {
"description": "Tämä toiminto poistaa kaiken viestihistorian. Toimintoa ei voi perua. Haluatko varmasti jatkaa?",
"title": "Tyhjennä kaikki viestit"
},
"import": {
"description": "Nykyinen LoRa-asetus ylikirjoitetaan.",
"error": {
"invalidUrl": "Virheellinen Meshtastic verkko-osoite"
},
"channelPrefix": "Kanava: ",
"primary": "Ensisijainen ",
"doNotImport": "Tuonti ei onnistu",
"channelName": "Nimi",
"channelSlot": "Paikka",
"channelSetUrl": "Kanavan asetus / QR-koodin URL-osoite",
"useLoraConfig": "Tuo LoRa-asetukset",
"presetDescription": "Nykyiset LoRa-asetukset korvataan uusilla.",
"title": "Tuo kanava-asetukset"
},
"locationResponse": {
"title": "Sijainti: {{identifier}}",
"altitude": "Korkeus: ",
"coordinates": "Koordinaatit: ",
"noCoordinates": "Ei koordinaatteja"
},
"pkiRegenerateDialog": {
"title": "Luodaanko ennalta jaettu avain uudelleen?",
"description": "Haluatko varmasti luoda ennalta jaetun avaimen uudelleen?",
"regenerate": "Luo uudelleen"
},
"addConnection": {
"title": "Lisää yhteys",
"description": "Valitse yhteystyyppi ja täytä tiedot",
"validation": {
"requiresWebBluetooth": "Tämä yhteystyyppi vaatii <0>Web-sarjaportti bluetooth</0> -tuen. Käytä tuettua selainta, kuten Chromea tai Edgeä.",
"requiresWebSerial": "Tämä yhteystyyppi vaatii <0>Web-sarjaportti</0> -tuen. Käytä tuettua selainta, kuten Chromea tai Edgeä.",
"requiresSecureContext": "Tämä sovellus vaatii <0>suojatun yhteyden</0>. Yhdistä käyttämällä HTTPS:ää tai localhostia.",
"additionallyRequiresSecureContext": "Lisäksi se vaatii <0>suojatun yhteyden</0>. Yhdistä käyttämällä HTTPS:ää tai localhostia."
},
"bluetoothConnection": {
"namePlaceholder": "Bluetoothilla yhdistetty laite",
"supported": {
"title": "Verkkoselaimen Bluetooth-tuettu"
},
"notSupported": {
"title": "Verkkoselaimen Bluetooth ei ole tuettu",
"description": "Selaimesi tai laitteesi ei tue Web Bluetooth -toimintoa"
},
"short": "BT: {{deviceName}}",
"long": "Bluetooth-laite",
"device": "Laite",
"selectDevice": "Valitse laite",
"selected": "Bluetooth-laite valittu",
"notSelected": "Ei laitetta valittuna",
"helperText": "Käyttää Meshtasticin Bluetooth-palvelua laitteiden etsintään."
},
"serialConnection": {
"namePlaceholder": "Sarjaliitännällä yhdistetty laite",
"helperText": "Portin valitseminen antaa sovellukselle luvan avata sen yhteyden muodostamista varten.",
"supported": {
"title": "Verkkoselaimen sarjaliitäntä tuettu"
},
"notSupported": {
"title": "Verkkoselaimen sarjaliitäntä ei ole tuettu",
"description": "Selaimesi tai laitteesi ei tue Web Serial -toimintoa"
},
"portSelected": {
"title": "Sarjaportti valittu",
"description": "Porttioikeudet myönnetty."
},
"port": "Portti",
"selectPort": "Valitse portti",
"deviceName": "USB {{vendorId}}:{{productId}}",
"notSelected": "Ei porttia valittuna"
},
"httpConnection": {
"namePlaceholder": "HTTP-yhteydellä toimiva laite",
"inputPlaceholder": "192.168.1.10 tai meshtastic.local",
"heading": "URL tai IP",
"useHttps": "Käytä HTTTPS",
"invalidUrl": {
"title": "Virheellinen URL-osoite",
"description": "Anna kelvollinen HTTP- tai HTTPS-osoite."
},
"connectionTest": {
"description": "Testaa yhteys ennen tallennusta varmistaaksesi, että laite on tavoitettavissa.",
"button": {
"loading": "Testataan...",
"label": "Testaa yhteys"
},
"reachable": "Yhteys toimii",
"notReachable": "Yhteys ei toimi",
"success": {
"title": "Yhteystesti onnistui",
"description": "Laite vaikuttaa olevan tavoitettavissa."
},
"failure": {
"title": "Yhteystesti epäonnistui",
"description": "Laitetta ei voitu tavoittaa. Tarkista URL-osoite ja yritä uudelleen."
}
}
}
},
"nodeDetails": {
"message": "Viesti",
"requestPosition": "Pyydä sijaintia",
"traceRoute": "Reitinselvitys",
"airTxUtilization": "Ilmatien TX käyttöaste",
"allRawMetrics": "Kaikki raakatiedot:",
"batteryLevel": "Akun varaus",
"channelUtilization": "Kanavan käyttöaste",
"details": "Tiedot:",
"deviceMetrics": "Laitteen mittausloki:",
"hardware": "Laitteisto: ",
"lastHeard": "Viimeksi kuultu: ",
"nodeHexPrefix": "Laitteen Hex: ",
"nodeNumber": "Laitteen numero: ",
"position": "Sijainti:",
"role": "Rooli: ",
"uptime": "Käyttöaika: ",
"voltage": "Jännite",
"title": "Tiedot laitteelle {{identifier}}",
"ignoreNode": "Älä huomioi laitetta",
"removeNode": "Poista laite",
"unignoreNode": "Poista laitteen ohitus käytöstä",
"security": "Turvallisuus:",
"publicKey": "Julkinen avain: ",
"messageable": "Viestittävissä: ",
"KeyManuallyVerifiedTrue": "Julkinen avain on vahvistettu manuaalisesti",
"KeyManuallyVerifiedFalse": "Julkista avainta ei ole vahvistettu manuaalisesti"
},
"pkiBackup": {
"loseKeysWarning": "Jos menetät avaimesi, sinun täytyy palauttaa laite tehdasasetuksiin.",
"secureBackup": "On tärkeää varmuuskopioida julkiset ja yksityiset avaimet ja säilyttää niiden varmuuskopioita turvallisesti!",
"footer": "=== AVAIMIEN LOPPU ===",
"header": "=== MESHTASTIC AVAIMET {{longName}} ({{shortName}}) LAITTEELLE ===",
"privateKey": "Yksityinen avain:",
"publicKey": "Julkinen avain:",
"fileName": "meshtastic_avaimet_{{longName}}_{{shortName}}.txt",
"title": "Varmuuskopioi avaimet"
},
"pkiBackupReminder": {
"description": "Suosittelemme avaintietojen säännöllistä varmuuskopiointia. Haluatko varmuuskopioida nyt?",
"title": "Varmuuskopion Muistutus",
"remindLaterPrefix": "Muistuta minua",
"remindNever": "Älä muistuta minua koskaan",
"backupNow": "Varmuuskopioi nyt"
},
"pkiRegenerate": {
"description": "Haluatko varmasti luoda avainparin uudelleen?",
"title": "Luo avainpari uudelleen"
},
"qr": {
"addChannels": "Lisää kanavia",
"replaceChannels": "Korvaa kanavia",
"description": "Nykyinen LoRa-kokoonpano tullaan myös jakamaan.",
"sharableUrl": "Jaettava URL",
"title": "Generoi QR-koodi"
},
"reboot": {
"title": "Käynnistä laite uudelleen",
"description": "Käynnistä laite uudelleen heti tai ajasta sen uudelleenkäynnistys. Halutessasi voit valita käynnistyksen OTA-tilaan (Over-the-Air ohjelmistopäivitystilaan).",
"ota": "Käynnistä uudelleen OTA-tilaan",
"enterDelay": "Aseta viive",
"scheduled": "Uudelleenkäynnistys on ajastettu",
"schedule": "Ajasta uudelleen käynnistys",
"now": "Uudelleen käynnistä nyt",
"cancel": "Peruuta ajastettu uudelleen käynnistys"
},
"refreshKeys": {
"description": {
"acceptNewKeys": "Tämä poistaa laitteen laitteesta ja pyytää uusia avaimia.",
"keyMismatchReasonSuffix": ". Tämä johtuu siitä, että etälaitteen nykyinen julkinen avain ei vastaa aiemmin tallennettua avainta tälle laitteelle.",
"unableToSendDmPrefix": "Laitteesi ei pysty lähettämään suoraa viestiä laitteelle: "
},
"acceptNewKeys": "Hyväksy uudet avaimet",
"title": "Avaimet eivät täsmää - {{identifier}}"
},
"removeNode": {
"description": "Haluatko varmasti poistaa tämän laitteen?",
"title": "Poista laite?"
},
"shutdown": {
"title": "Ajasta sammutus",
"description": "Sammuta yhdistetty laite x minuutin päästä."
},
"traceRoute": {
"routeToDestination": "Reitin määränpää:",
"routeBack": "Reitti takaisin:"
},
"tracerouteResponse": {
"title": "Reitinselvitys: {{identifier}}"
},
"unsafeRoles": {
"confirmUnderstanding": "Kyllä, tiedän mitä teen",
"conjunction": " ja blogikirjoitukset ",
"postamble": " ja ymmärrän roolin muuttamisen vaikutukset.",
"preamble": "Olen lukenut ",
"choosingRightDeviceRole": "Valitse laitteelle oikea rooli",
"deviceRoleDocumentation": "Roolien dokumentaatio laitteelle",
"title": "Oletko varma?"
},
"managedMode": {
"confirmUnderstanding": "Kyllä, tiedän mitä teen",
"title": "Oletko varma?",
"description": "Hallintatilan käyttöönotto estää asiakassovelluksia (mukaan lukien verkkoselain) tekemästä muutoksia laitteen asetuksiin. Kun hallintatila on käytössä, laitteen asetuksia voidaan muuttaa ainoastaan etähallintaviesteillä (Remote Admin). Tämä asetus ei ole pakollinen etähallintaan."
},
"clientNotification": {
"title": "Sovellusilmoitukset",
"TraceRoute can only be sent once every 30 seconds": "Reitinselvityksen voi tehdä kerran 30:ssä sekunnissa",
"Compromised keys were detected and regenerated.": "Turvallisuudeltaan vaarantuneet avaimet havaittiin ja ne generoitiin uudestaan."
},
"resetNodeDb": {
"title": "Nollaa laitteen tietokanta",
"description": "Tämä poistaa kaikki laitteet tietokannasta ja tyhjentää kaiken viestihistorian päätelaitteen sovelluksesta. Tätä toimintoa ei voi perua. Haluatko varmasti jatkaa?",
"confirm": "Nollaa laitteen tietokanta",
"failedTitle": "Tietokannan nollaamisessa tapahtui virhe. Yritä uudelleen."
},
"clearAllStores": {
"title": "Tyhjennä kaikki paikallisesta tallennustilasta",
"description": "Tämä poistaa kaiken paikallisesti tallennetun tiedon, mukaan lukien viestihistorian ja laitetietokannat kaikilta aiemmin yhdistetyiltä laitteilta. Toiminnon jälkeen sinun on muodostettava yhteys omaan laitteeseesi uudelleen. Tätä toimintoa ei voi perua. Haluatko varmasti jatkaa?",
"confirm": "Tyhjennä kaikki paikallisesta tallennustilasta",
"failedTitle": "Paikallisen tallennustilan tyhjentämisessä tapahtui virhe. Yritä uudelleen."
},
"factoryResetDevice": {
"title": "Palauta tehdasasetukset",
"description": "Tämä palauttaa yhdistetyn laitteen tehdasasetuksiin ja poistaa kaikki laitteen asetukset, tiedot, laitteet ja viestit, jotka on tallennettu asiakasohjelmaan. Tätä toimintoa ei voi perua. Haluatko varmasti jatkaa?",
"confirm": "Palauta tehdasasetukset",
"failedTitle": "Tehdasasetusten palauttamisessa tapahtui virhe. Yritä uudelleen."
},
"factoryResetConfig": {
"title": "Tehdasasetusten palautusasetukset",
"description": "Tämä palauttaa yhdistetyn laitteen asetukset tehdasasetuksiin ja poistaa kaikki laitteen nykyiset asetukset. Tätä toimintoa ei voi perua. Haluatko varmasti jatkaa?",
"confirm": "Tehdasasetusten palautusasetukset",
"failedTitle": "Tehdasasetusten palauttamisessa tapahtui virhe. Yritä uudelleen."
}
}
@@ -0,0 +1,38 @@
{
"maplibre": {
"GeolocateControl.FindMyLocation": "Paikanna sijaintini",
"NavigationControl.ZoomIn": "Suurenna",
"NavigationControl.ZoomOut": "Pienennä",
"CooperativeGesturesHandler.WindowsHelpText": "Pidä Ctrl-näppäin painettuna ja rullaa hiirellä suurentaaksesi tai pienentääksesi karttaa",
"CooperativeGesturesHandler.MacHelpText": "Pidä ⌘-näppäin painettuna ja rullaa hiirellä suurentaaksesi tai pienentääksesi karttaa",
"CooperativeGesturesHandler.MobileHelpText": "Käytä kahta sormea siirtääksesi karttaa"
},
"layerTool": {
"nodeMarkers": "Näytä laitteet",
"directNeighbors": "Näytä suorat yhteydet",
"remoteNeighbors": "Näytä etäyhteydet",
"positionPrecision": "Näytä sijainnin tarkkuus",
"traceroutes": "Näytä reititykset",
"waypoints": "Näytä reittipisteet"
},
"mapMenu": {
"locateAria": "Paikanna laitteeni",
"layersAria": "Vaihda kartan tyyliä"
},
"waypointDetail": {
"edit": "Muokkaa",
"description": "Kuvaus:",
"createdBy": "Muokannut:",
"createdDate": "Luotu:",
"updated": "Päivitetty:",
"expires": "Vanhenee:",
"distance": "Etäisyys:",
"bearing": "Kompassisuunta kohteeseen:",
"lockedTo": "Lukinnut:",
"latitude": "Leveysaste:",
"longitude": "Pituusaste:"
},
"myNode": {
"tooltip": "Tämä laite"
}
}
@@ -0,0 +1,39 @@
{
"page": {
"title": "Viestit: {{chatName}}",
"placeholder": "Kirjoita viesti"
},
"emptyState": {
"title": "Valitse keskustelu",
"text": "Ei vielä viestejä."
},
"selectChatPrompt": {
"text": "Valitse kanava tai laite aloittaaksesi viestinnän."
},
"sendMessage": {
"placeholder": "Kirjoita viesti tähän...",
"sendButton": "Lähetä"
},
"actionsMenu": {
"addReactionLabel": "Lisää reaktio",
"replyLabel": "Vastaa"
},
"deliveryStatus": {
"delivered": {
"label": "Viesti toimitettu",
"displayText": "Viesti toimitettu"
},
"failed": {
"label": "Viestin toimitus epäonnistui",
"displayText": "Toimitus epäonnistui"
},
"unknown": {
"label": "Viestin tila tuntematon",
"displayText": "Tuntematon tila"
},
"waiting": {
"label": "Lähetetään viestiä",
"displayText": "Odottaa toimitusta"
}
}
}
@@ -0,0 +1,448 @@
{
"page": {
"tabAmbientLighting": "Ympäristövalaistus",
"tabAudio": "Ääni",
"tabCannedMessage": "Ennalta asetettu",
"tabDetectionSensor": "Havaitsemisanturi",
"tabExternalNotification": "Ext-ilmoitus",
"tabMqtt": "MQTT",
"tabNeighborInfo": "Naapuritieto",
"tabPaxcounter": "PAX-laskuri",
"tabRangeTest": "Kuuluvuustesti",
"tabSerial": "Sarjaliitäntä",
"tabStoreAndForward": "S&V",
"tabTelemetry": "Telemetria"
},
"ambientLighting": {
"title": "Ympäristövalaistuksen asetukset",
"description": "Ympäristövalaistuksen moduulin asetukset",
"ledState": {
"label": "Ledin tila",
"description": "Aseta ledi päälle tai pois päältä"
},
"current": {
"label": "Virta",
"description": "Asettaa nykyisen ledin ulostulon. Oletus on 10"
},
"red": {
"label": "Punainen",
"description": "Asettaa punaisen ledin tason. Arvot ovat 0-255"
},
"green": {
"label": "Vihreä",
"description": "Asettaa vihreän ledin tason. Arvot ovat 0-255"
},
"blue": {
"label": "Sininen",
"description": "Asettaa sinisen ledin tason. Arvot ovat 0-255"
}
},
"audio": {
"title": "Ääniasetukset",
"description": "Äänimoduulin asetukset",
"codec2Enabled": {
"label": "Codec 2 käytössä",
"description": "Ota Codec 2 äänenkoodaus käyttöön"
},
"pttPin": {
"label": "PTT pinni",
"description": "PTT:lle käytettävä GPIO-pinni"
},
"bitrate": {
"label": "Tiedonsiirtonopeus",
"description": "Tiedonsiirtonopeus äänenkoodaukselle"
},
"i2sWs": {
"label": "i2S WS",
"description": "GPIO-pinni jota käytetään i2S WS:ssä"
},
"i2sSd": {
"label": "i2S SD",
"description": "GPIO-pinni jota käytetään i2S SD:ssä"
},
"i2sDin": {
"label": "i2S DIN",
"description": "GPIO-pinni jota käytetään i2S DIN:ssä"
},
"i2sSck": {
"label": "i2S SD",
"description": "GPIO-pinni jota käytetään i2S SCK:ssa"
}
},
"cannedMessage": {
"title": "Välitettyjen viestien asetukset",
"description": "Asetukset välitettyjen viestien moduulissa",
"moduleEnabled": {
"label": "Moduuli Käytössä",
"description": "Ota käyttöön välitetyt viestit"
},
"rotary1Enabled": {
"label": "Kiertovalitsin #1 käytössä",
"description": "Ota kiertovalitsimen kooderi käyttöön"
},
"inputbrokerPinA": {
"label": "Kooderin pinni A",
"description": "GPIO-pinni (1–39) kooderin portille A"
},
"inputbrokerPinB": {
"label": "Kooderin pinni B",
"description": "GPIO-pinni (1–39) kooderin portille B"
},
"inputbrokerPinPress": {
"label": "Kooderin pinni painallukselle",
"description": "GPIO-pinni (1–39) kooderin painallukselle"
},
"inputbrokerEventCw": {
"label": "Myötäpäiväinen liike",
"description": "Valitse syöttötapahtuma."
},
"inputbrokerEventCcw": {
"label": "Myötäpäiväisen liikkeen laskuri",
"description": "Valitse syöttötapahtuma."
},
"inputbrokerEventPress": {
"label": "Painamisen tapahtuma",
"description": "Valitse syöttötapahtuma"
},
"updown1Enabled": {
"label": "Ylös alas käytössä",
"description": "Ota käyttöön ylös / alas-suuntaa tunnistava kooderi"
},
"allowInputSource": {
"label": "Salli syöttölaitteen lähde",
"description": "Valitse '_any', 'rotEnc1', 'upDownEnc1', 'cardkb'"
},
"sendBell": {
"label": "Lähetä äänimerkki",
"description": "Lähettää äänimerkkimerkin jokaisen viestin mukana"
}
},
"detectionSensor": {
"title": "Tunnistinsensorin asetukset",
"description": "Tunnistinsensori-moduulin asetukset",
"enabled": {
"label": "Käytössä",
"description": "Ota käyttöön tai poista käytöstä tunnistinsensorin moduuli"
},
"minimumBroadcastSecs": {
"label": "Minimilähetys (sekuntia)",
"description": "Aikaväli sekunteina kuinka usein viestejä voi lähettää mesh-verkkoon tilamuutoksen havaitsemisen jälkeen"
},
"stateBroadcastSecs": {
"label": "Tilatiedon lähetys (sekuntia)",
"description": "Kuinka usein sekunteina lähetetään viesti mesh-verkkoon nykytilasta, vaikka tilassa ei olisi muutoksia"
},
"sendBell": {
"label": "Lähetä äänimerkki",
"description": "Lähetä ASCII-äänimerkki hälytyssanoman mukana"
},
"name": {
"label": "Käyttäjäystävälinen nimi",
"description": "Käytetään muotoilemaan mesh-verkkoon lähetettävä viesti, enintään 20 merkkiä"
},
"monitorPin": {
"label": "Valvonta pinni",
"description": "GPIO-pinni valvonnan tilan muutoksien seurantaan"
},
"detectionTriggerType": {
"label": "Tunnistuksen havaintotyyppi",
"description": "Käytettävän tunnistustapahtuman tyyppi"
},
"usePullup": {
"label": "Käytä vetokytkintä (pullup)",
"description": "Käytetäänkö GPIO-pinnin INPUT_PULLUP-tilaa"
}
},
"externalNotification": {
"title": "Ulkoisten ilmoituksien asetukset",
"description": "Määritä ulkoisten ilmoitusten moduulin asetukset",
"enabled": {
"label": "Moduuli käytössä",
"description": "Ota ulkoiset ilmoitukset käyttöön"
},
"outputMs": {
"label": "Ulostulo MS",
"description": "Ulostulo MS"
},
"output": {
"label": "Ulostulo",
"description": "Ulostulo"
},
"outputVibra": {
"label": "Värinän ulostulo",
"description": "Värinän ulostulo"
},
"outputBuzzer": {
"label": "Summerin ulostulo",
"description": "Summerin ulostulo"
},
"active": {
"label": "Käytössä",
"description": "Käytössä"
},
"alertMessage": {
"label": "Hälytysviesti",
"description": "Hälytysviesti"
},
"alertMessageVibra": {
"label": "Hälytysviestin värinä",
"description": "Hälytysviestin värinä"
},
"alertMessageBuzzer": {
"label": "Hälytysviestin summeri",
"description": "Hälytysviestin summeri"
},
"alertBell": {
"label": "Hälytysääni",
"description": "Pitäisikö hälytyksen aktivoitua, kun vastaanotetaan äänimerkki?"
},
"alertBellVibra": {
"label": "Hälytysäänen värinä",
"description": "Hälytysäänen värinä"
},
"alertBellBuzzer": {
"label": "Hälytysäänen summeri",
"description": "Hälytysäänen summeri"
},
"usePwm": {
"label": "Käytä PWM",
"description": "Käytä PWM"
},
"nagTimeout": {
"label": "Toistokehotuksen aikakatkaisu",
"description": "Toistokehotuksen aikakatkaisu"
},
"useI2sAsBuzzer": {
"label": "Use I²S pinniä summerille",
"description": "Määritä I²S-pinni summerin ulostuloon"
}
},
"mqtt": {
"title": "MQTT-asetukset",
"description": "MQTT-moduulin asetukset",
"enabled": {
"label": "Käytössä",
"description": "Ota MQTT käyttöön tai poista se käytöstä"
},
"address": {
"label": "MQTT-palvelimen osoite",
"description": "MQTT-palvelimen osoite, jota käytetään oletus- tai mukautetuissa palvelimissa"
},
"username": {
"label": "MQTT käyttäjänimi",
"description": "MQTT käyttäjänimi, jota käytetään oletus- tai mukautetuissa palvelimissa"
},
"password": {
"label": "MQTT salasana",
"description": "MQTT salasana, jota käytetään oletus- tai mukautetuissa palvelimissa"
},
"encryptionEnabled": {
"label": "Salaus käytössä",
"description": "Ota MQTT-salaus käyttöön tai pois käytöstä. Huom: Jos tämä asetus ei ole käytössä, kaikki viestit lähetetään MQTT-välittäjälle salaamattomina, vaikka lähetyskanavillasi olisi salausavaimet asetettuna. Tämä koskee myös sijaintitietoja."
},
"jsonEnabled": {
"label": "JSON käytössä",
"description": "Lähetetäänkö / otetaanko vastaan JSON-paketteja MQTT:llä"
},
"tlsEnabled": {
"label": "TLS käytössä",
"description": "Ota TLS käyttöön tai poista se käytöstä"
},
"root": {
"label": "Palvelimen osoite (root topic)",
"description": "MQTT-palvelimen osoite, jota käytetään oletus- tai mukautetuissa palvelimissa"
},
"proxyToClientEnabled": {
"label": "MQTT-välityspalvelin käytössä",
"description": "Käyttää verkkoyhteyttä välittämään MQTT-viestejä asiakkaalle."
},
"mapReportingEnabled": {
"label": "Karttaraportointi käytössä",
"description": "Laitteesi lähettää säännöllisin väliajoin salaamattoman karttaraporttipaketin määritettyyn MQTT-palvelimeen. Paketti sisältää tunnisteen, lyhyen ja pitkän nimen, likimääräisen sijainnin, laitteistomallin, roolin, laiteohjelmistoversion, LoRa-alueen, modeemin esiasetukset sekä ensisijaisen kanavan nimen."
},
"mapReportSettings": {
"publishIntervalSecs": {
"label": "Karttaraportoinnin aikaväli (s)",
"description": "Aikaväli sekunneissa karttaraporttien julkaisemiseksi"
},
"positionPrecision": {
"label": "Arvioitu sijainti",
"description": "Jaetun sijainnin tarkkuus on tämän etäisyyden rajoissa",
"options": {
"metric_km23": "23 kilometrin säteellä",
"metric_km12": "12 kilometrin säteellä",
"metric_km5_8": "5,8 kilometrin säteellä",
"metric_km2_9": "2,9 kilometrin säteellä",
"metric_km1_5": "1,5 kilometrin säteellä",
"metric_m700": "700 metrin säteellä",
"metric_m350": "350 metrin säteellä",
"metric_m200": "200 metrin säteellä",
"metric_m90": "90 metrin säteellä",
"metric_m50": "50 metrin säteellä",
"imperial_mi15": "15 mailin säteellä",
"imperial_mi7_3": "7,3 mailin säteellä",
"imperial_mi3_6": "3,6 mailin säteellä",
"imperial_mi1_8": "1,8 mailin säteellä",
"imperial_mi0_9": "0,9 mailin säteellä",
"imperial_mi0_5": "0,5 mailin säteellä",
"imperial_mi0_2": "0,2 mailin säteellä",
"imperial_ft600": "600 jalan säteellä",
"imperial_ft300": "300 jalan säteellä",
"imperial_ft150": "150 jalan säteellä"
}
}
}
},
"neighborInfo": {
"title": "Naapuritiedon asetukset",
"description": "Naapuritietojen moduulin asetukset",
"enabled": {
"label": "Käytössä",
"description": "Ota käyttöön tai poista käytöstä naapuruustietomoduuli"
},
"updateInterval": {
"label": "Päivitysväli",
"description": "Aikaväli sekunneissa siitä, kuinka usein mesh-verkossa lähetetään naapuritietoja verkkoon"
}
},
"paxcounter": {
"title": "Pax-laskurin asetukset",
"description": "Pax-laskurin moduulin asetukset",
"enabled": {
"label": "Moduuli käytössä",
"description": "Ota pax-laskuri käyttöön"
},
"paxcounterUpdateInterval": {
"label": "Päivityksen aikaväli (sekuntia)",
"description": "Kuinka kauan odotetaan pax-laskurin pakettien lähettämisen välillä"
},
"wifiThreshold": {
"label": "WiFi-RSSI kynnysarvo",
"description": "Millä WiFi RSSI tasolla laskurin täytyisi kasvaa. Oletus on -80."
},
"bleThreshold": {
"label": "WiFi-RSSI kynnysarvo",
"description": "Millä BLE RSSI-arvolla laskuri kasvaa. Oletus: -80."
}
},
"rangeTest": {
"title": "Kuuluvuustestin asetukset",
"description": "Kuuluvuustesti moduulin asetukset",
"enabled": {
"label": "Moduuli käytössä",
"description": "Ota kuuluvuustesti käytöön"
},
"sender": {
"label": "Viestin aikaväli",
"description": "Kuinka kauan odotetaan testipakettien lähettämisen välillä"
},
"save": {
"label": "Tallenna CSV tallennustilaan",
"description": "Vain ESP32"
}
},
"serial": {
"title": "Sarjaliitännän asetukset",
"description": "Sarjaliitäntä-moduulin asetukset",
"enabled": {
"label": "Sarjaliitäntä käytössä",
"description": "Ota sarjaliitäntä käyttöön"
},
"echo": {
"label": "Toista",
"description": "Kaikki lähettämäsi paketit toistetaan takaisin laitteellesi"
},
"rxd": {
"label": "Vastaanota PIN-koodi",
"description": "Määritä GPIO-pinni käyttämään aiemmin asetettua RXD-pinniä."
},
"txd": {
"label": "Lähetä PIN-koodi",
"description": "Määritä GPIO-pinni käyttämään aiemmin asetettua TXD-pinniä."
},
"baud": {
"label": "Baud-siirtonopeus",
"description": "Sarjaliitännän baud-siirtonopeus"
},
"timeout": {
"label": "Aikakatkaisu",
"description": "Kuinka monta sekuntia odotetaan, ennen kuin paketti merkitään valmiiksi"
},
"mode": {
"label": "Tila",
"description": "Valitse tila"
},
"overrideConsoleSerialPort": {
"label": "Ohita konsolin sarjaliitännän portti",
"description": "Jos sinulla on sarjaportti kytkettynä konsoliin, tämä ohittaa sen."
}
},
"storeForward": {
"title": "Varastoi & välitä asetukset",
"description": "Varastoi & välitä moduulin asetukset",
"enabled": {
"label": "Moduuli käytössä",
"description": "Ota varastoi & välitä käyttöön"
},
"heartbeat": {
"label": "Heartbeat käytössä",
"description": "Ota varastoi & välitä heartbeat käyttöön"
},
"records": {
"label": "Kirjausten määrä",
"description": "Tallennettavien tietueiden määrä"
},
"historyReturnMax": {
"label": "Historian maksimimäärä",
"description": "Enimmäismäärä tietueita palautettaviksi"
},
"historyReturnWindow": {
"label": "Historian aikamäärä",
"description": "Palauta tietueet tästä aikaikkunasta (minuutit)"
}
},
"telemetry": {
"title": "Telemetrian asetukset",
"description": "Telemetria-moduulin asetukset",
"deviceUpdateInterval": {
"label": "Laitteen mittausloki",
"description": "Laitteen mittaustietojen päivitysväli (sekuntia)"
},
"environmentUpdateInterval": {
"label": "Ympäristötietojen päivitysväli (sekuntia)",
"description": ""
},
"environmentMeasurementEnabled": {
"label": "Moduuli käytössä",
"description": "Ota käyttöön ympäristön telemetria"
},
"environmentScreenEnabled": {
"label": "Näytetään näytöllä",
"description": "Näytä moduulin telemetriatiedot OLED-näytöllä"
},
"environmentDisplayFahrenheit": {
"label": "Näytä fahrenheitissa",
"description": "Näytä lämpötila fahrenheitissa"
},
"airQualityEnabled": {
"label": "Ilmanlaatu käytössä",
"description": "Ota ilmanlaadun telemetria käyttöön"
},
"airQualityInterval": {
"label": "Ilmanlaadun päivitysväli",
"description": "Kuinka usein ilmanlaadun tiedot lähetetään mesh-verkon kautta"
},
"powerMeasurementEnabled": {
"label": "Tehomittaus käytössä",
"description": "Ota tehomittauksen telemetria käyttöön"
},
"powerUpdateInterval": {
"label": "Tehomittauksen päivitysväli",
"description": "Kuinka usein tehomittauksen tiedot lähetetään mesh-verkon kautta"
},
"powerScreenEnabled": {
"label": "Tehomittauksen näyttö käytössä",
"description": "Ota tehomittauksen telemetrian näyttö käyttöön"
}
}
}
@@ -0,0 +1,59 @@
{
"nodeDetail": {
"publicKeyEnabled": {
"label": "Julkinen avain käytössä"
},
"noPublicKey": {
"label": "Ei julkinen avain"
},
"directMessage": {
"label": "Suora Viesti {{shortName}}"
},
"favorite": {
"label": "Suosikki",
"tooltip": "Lisää tai poista tämä laite suosikeistasi"
},
"notFavorite": {
"label": "Ei suosikki"
},
"error": {
"label": "Virhe",
"text": "Tapahtui virhe haettaessa laitteen tietoja. Yritä uudelleen myöhemmin."
},
"status": {
"heard": "Kuultu",
"mqtt": "MQTT"
},
"elevation": {
"label": "Korkeus"
},
"channelUtil": {
"label": "Kanavan käyttö"
},
"airtimeUtil": {
"label": "Lähetysajan käyttö"
}
},
"nodesTable": {
"headings": {
"longName": "Pitkä nimi",
"connection": "Yhteys",
"lastHeard": "Viimeksi kuultu",
"encryption": "Salaus",
"model": "Malli",
"macAddress": "MAC-osoite"
},
"connectionStatus": {
"direct": "Suora",
"away": "poissa",
"viaMqtt": ", MQTT välityksellä"
}
},
"actions": {
"added": "Lisätty",
"removed": "Poistettu",
"ignoreNode": "Älä huomioi laitetta",
"unignoreNode": "Huomioi laite uudelleen",
"requestPosition": "Pyydä sijaintia"
}
}
+230
View File
@@ -0,0 +1,230 @@
{
"navigation": {
"title": "Navigointi",
"messages": "Viestit",
"map": "Kartta",
"settings": "Asetukset",
"channels": "Kanavat",
"radioConfig": "Radion asetukset",
"deviceConfig": "Laitteen asetukset",
"moduleConfig": "Moduulin asetukset",
"manageConnections": "Hallinnoi yhteyksiä",
"nodes": "Laitteet"
},
"app": {
"title": "Meshtastic",
"logo": "Meshtastic Logo"
},
"sidebar": {
"collapseToggle": {
"button": {
"open": "Avaa sivupalkki",
"close": "Sulje sivupalkki"
}
},
"deviceInfo": {
"volts": "{{voltage}} volttia",
"firmware": {
"title": "Laiteohjelmisto",
"version": "v{{version}}",
"buildDate": "Koontipäivä: {{date}}"
}
}
},
"batteryStatus": {
"charging": "{{level}} % latauksessa",
"pluggedIn": "Kytketty verkkovirtaan",
"title": "Akku"
},
"search": {
"nodes": "Etsi laitteita...",
"channels": "Etsi kanavia...",
"commandPalette": "Etsi komentoja..."
},
"toast": {
"positionRequestSent": {
"title": "Sijaintipyyntö lähetetty."
},
"requestingPosition": {
"title": "Pyydetään sijaintia, odota..."
},
"sendingTraceroute": {
"title": "Reitinselvitys lähetetty, odota..."
},
"tracerouteSent": {
"title": "Reitinselvitys lähetetty."
},
"savedChannel": {
"title": "Tallennettu Kanava: {{channelName}}"
},
"messages": {
"pkiEncryption": {
"title": "Keskustelu käyttää PKI-salausta."
},
"pskEncryption": {
"title": "Keskustelu käyttää PKI-salausta."
}
},
"configSaveError": {
"title": "Virhe asetusten tallentamisessa",
"description": "Asetusten tallennuksessa tapahtui virhe."
},
"validationError": {
"title": "Asetuksissa on virheitä",
"description": "Ole hyvä ja korjaa asetusvirheet ennen tallentamista."
},
"saveSuccess": {
"title": "Tallennetaan asetukset",
"description": "Asetuksien muutos {{case}} on tallennettu."
},
"saveAllSuccess": {
"title": "Tallennettu",
"description": "Kaikki asetukset on tallennettu."
},
"favoriteNode": {
"title": "{{action}} {{nodeName}} {{direction}} suosikit.",
"action": {
"added": "Lisätty",
"removed": "Poistettu",
"to": "saakka",
"from": "alkaen"
}
},
"ignoreNode": {
"title": "{{action}} {{nodeName}} {{direction}} estolista",
"action": {
"added": "Lisätty",
"removed": "Poistettu",
"to": "saakka",
"from": "alkaen"
}
}
},
"notifications": {
"copied": {
"label": "Kopioitu!"
},
"copyToClipboard": {
"label": "Kopioi leikepöydälle"
},
"hidePassword": {
"label": "Piilota salasana"
},
"showPassword": {
"label": "Näytä salasana"
},
"deliveryStatus": {
"delivered": "Toimitettu",
"failed": "Toimitus epäonnistui",
"waiting": "Odottaa",
"unknown": "Tuntematon"
}
},
"general": {
"label": "Yleinen"
},
"hardware": {
"label": "Laite"
},
"metrics": {
"label": "Mittaustiedot"
},
"role": {
"label": "Rooli"
},
"filter": {
"label": "Suodatus"
},
"advanced": {
"label": "Lisäasetukset"
},
"clearInput": {
"label": "Tyhjennä kenttä"
},
"resetFilters": {
"label": "Tyhjennä suodattimet"
},
"nodeName": {
"label": "Laitteen nimi tai numero",
"placeholder": "Meshtastic 1234"
},
"airtimeUtilization": {
"label": "Ajan käyttöaste (%)",
"short": "Lähetysaika­käyttö (%)"
},
"batteryLevel": {
"label": "Akun varaus (%)",
"labelText": "Akun varaus (%): {{value}}"
},
"batteryVoltage": {
"label": "Akun jännite (V)",
"title": "Jännite"
},
"channelUtilization": {
"label": "Kanavan käyttö (%)",
"short": "Kanavan käyttöaste (%)"
},
"hops": {
"direct": "Suora",
"label": "Hyppyjen määrä",
"text": "Hyppyjen määrä: {{value}}"
},
"lastHeard": {
"label": "Viimeksi kuultu",
"labelText": "Viimeksi kuultu: {{value}}",
"nowLabel": "Nyt"
},
"snr": {
"label": "SNR (db)"
},
"favorites": {
"label": "Suosikit"
},
"hide": {
"label": "Piilota"
},
"showOnly": {
"label": "Näytä pelkästään"
},
"viaMqtt": {
"label": "Yhdistetty MQTT-yhteydellä"
},
"hopsUnknown": {
"label": "Tuntematon määrä hyppyjä"
},
"showUnheard": {
"label": "Ei koskaan kuultu"
},
"language": {
"label": "Kieli",
"changeLanguage": "Vaihda kieli"
},
"theme": {
"dark": "Tumma",
"light": "Vaalea",
"system": "Automaattinen",
"changeTheme": "Vaihda väriteema"
},
"errorPage": {
"title": "Tämä on hieman noloa...",
"description1": "Pahoittelemme, mutta verkkosovelluksessa tapahtui virhe, joka aiheutti kaatumisen. <br /> \nTällaista ei pitäisi tapahtua ja me työskentelemme ahkerasti ongelman korjaamiseksi.",
"description2": "Paras tapa estää tämän tapahtuminen uudelleen sinulle tai kenellekään muulle, on ilmoittaa meille ongelmasta.",
"reportInstructions": "Lisääthän raporttiisi seuraavat tiedot:",
"reportSteps": {
"step1": "Mitä olit tekemässä virheen tapahtuessa",
"step2": "Mitä odotit tapahtuvan",
"step3": "Mitä todellisuudessa tapahtui",
"step4": "Muut mahdollisesti oleelliset tiedot"
},
"reportLink": "Voit raportoida ongelmasta <0>GitHubissa</0>",
"connectionsLink": "Palaa <0>yhteyksiin</0>",
"detailsSummary": "Virheen tiedot",
"errorMessageLabel": "Virheilmoitus:",
"stackTraceLabel": "Virheen jäljityslista:",
"fallbackError": "{{error}}"
},
"footer": {
"text": "Powered by <0>▲ Vercel</0> | Meshtastic® on Meshtastic LLC:n rekisteröity tavaramerkki. | <1>Oikeudelliset tiedot</1>",
"commitSha": "Ohjelmistokehitysversion SHA-tunniste: {{sha}}"
}
}